XM540-W270-T/R impedance control and compliance

Hi all, I’m using XM540-W270-T/R servos to control a humanoid robots and I have some questions about setting the compliance in order to realize an impedance control for the robot arms.

My setup is a daisy chain of 5 XM540-W270-T/R + U2D2 + Servo Power Board + Power Supply.
As controller I’m using the package for ROS named dynamixel_workbench, which include a set of dynamixel_workbench_controllers.

I’m using the defaul firmware i found with the wizard and I selected the position control mode.

My aim is to realize a compliant interaction, and I saw on the robotis youtube channel this is possible using current based position control mode, tuning the current limit and PID parameters.

Question: do I have loss of resolution by using the current based position control mode? My range of value for position in this case will be mapped from -256 to 256 instead 0-4096 ? This for me means loss of resolution.

I was thinking about using a high-level impedance control and keep the operating mode of the dynamixel in position control, but it’s difficult estimate the inertia and all the dynamical properties of the robot actually

My plan is to estimate the minimum current to keep the arms high, measure the current and then limit the current in that range of values for each joint + tuning the PD parameters for position control.


1 Like

Hello Gabriele, and welcome to the community page! It’s great to hear you found us from our YouTube comments. Regarding your question, allow me to share some information below based on my experience:

  1. Foremost, I can reassure you that there should be no change in resolution of your servo caused by selecting Current Based Position Control Mode. This mode uses the full position range of the DYNAMIXEL (0-4095) unless a position limit is set elsewhere in the firmware. Can I ask where you read that the Position-based Current control may affect resolution?

  2. Based on your description, it sounds like Current-Based Position Control may be a good choice for the application. You can use the Goal Current firmware address to specify your desired current used during motions, while the firmware address for Current Limit is used to limit the accepted range of Goal Current.

It sounds like you’ve planned the application well so far- may I ask if it is a personal project, or academic/professional?

Let me know if the information above is helpful or whether you have any additional questions!