How can I apply External PID controller to my Dynamixel?

Hi Everyone,


I am using Open MANIPULATOR X for my project

Control Environment

I am using Windows 10 , MATLAB version 2021 for controlling Dynamixel XM430-W350-T. I have used Dynamixel wizard 2.0 and Dynamixel SDK.

Hardware Description

Open manipulator x (OpenMANIPULATOR-X)

Issue Description

I have to apply my own PID controller to my Open manipulator X. I have developed the PID controller algorithm and I have changed the operating modes from Position control to PWM mode. So how can I give my algorithm to the hardware ? Can anyone tell this in detail,

Thanks in advance

To use your PID algorithm to control your DYNAMIXELs, send the goal PWM values defined by your algorithm to the servos via the Goal PWM control table item.

The built in PID controller cannot be replaced by your custom controller, but sending the goal PWM values allows complete control of the DYNAMIXEL’s motion.

1 Like

I have applied my own PID controller and its working good. But now I am not able to control the speed of Dynamixel. Previously it was controlled by using profile velocity. Why this is happening ?

Thanks in advance

According to the ROBOTIS e-Manual, it looks like that Profile Velocity is not used when you are in PWM Control Mode.

1 Like

Thank you, Is there any other ways to control the speed then?
Please let me know


how can I control the Dynamixel in both clockwise and counter clockwise direction? at present it can only rotate in one direction (cck), why its so?

According to the Robotis e-manual Goal PWM can take on positive and negative values.

1 Like

Is there any way to control the speed of DYNAMIXEL with PWM CONTROL MODE operation?

When in PWM mode, specifying the desired PWM values to send to the motor is responsible for controlling the speed, direction, and torque of the motor.

1 Like