MFC Dynamixel Actuator Control
C++ MFC GUI driving position, velocity and current modes of an XM430 over TTL with real-time state monitoring.
Period 2021.08 – 2021.12 · Affiliation Keimyung University (undergraduate researcher) · Role MFC GUI design and development, three-mode control implementation, bidirectional TTL communication, real-time monitoring
Background and Goals
The goal was to control the actuator, the core drive component of a robot, directly and beyond the level of SDK examples. I programmed all three operating modes of the Dynamixel and configured the system to respond to GUI input in real time while monitoring the current state (position, velocity, current).
Approach
- MFC GUI design: A Windows application composed of Connection/Disconnection, Enable (torque on), Present Value (current state), Goal Value (target input), Torque Value, and MOVE buttons.
- Three control modes: Position control (target angle, for joints), velocity control (continuous rotation at a target RPM, for wheels), and current control (precise torque control using the relationship \(\tau = K_t I\), with the torque value displayed in real time).
- TTL communication: PC USB → USB-to-TTL converter → Dynamixel. Multiple actuators daisy-chained over half-duplex TTL serial.
- Real-time monitoring: Read the Present Value and compared it with the Goal Value to check control accuracy at a glance.
Results
Gained system-level programming experience in which C++/MFC communicates with and controls hardware directly, and learned the differences between position, velocity, and current control through real hardware responses. This experience later became the foundation for the integrated actuator and sensor control of the wheel-leg robot.
Tech Stack
C++ · MFC · Dynamixel SDK · TTL half-duplex serial communication · Visual Studio · ROBOTIS XM430-W350