Faults in or Improvements that can be made to Dynamixel Firmware

Hi! I’m new to the community, but have been here frequently and am a great fan of the poppy project! I think its a great open source initiative that could potentially open a lot of doors! I hope someday i can make som euseful contributions too!

I am developing a custom firmware for the Dynamixel AX-12 Series, mostly out of a want for sync read/write and was wondering if I could have some inputs on it? I’m using PID to control them completely unlike the Compliance dynamixel has used. It’s coming along well so far… However, I’m also trying to see if i can add any other improvements to it. I have a few questions I’d be glad if anyone could answer:

  1. I noticed that the MX series only uses a Proportional Controller (no integral or derivative gains). I’m surprised. Doesn’t that mean that at load, the motor will invariably deviate from goal position. have you guys ever had such a problem? Do you use the I & D terms? What kind of response do you look for?

  2. Overheating/over current seems to be a major problem, destrying many motors. Can any software fix this (with the same hardware limitations, of course)?

  3. What other issues do you face with dynamixel that could stand an improvement?

Thank you so much.
I’d also be very glad if anyone would like to give some inputs to me on the development of my custom firmware. I’ve gotten it to recognize dynamixel packets and am fairly along with the control itself. The integral IS giving me trouble though…

Thanks and Regards,
Shrek

Hello Shrek, Welcome here !

There is already an alternative firmware:

Concerning your questions:

  1. By default there is only the P but in the humanoid for example we tune more parameters, you can take a look here https://github.com/poppy-project/poppy-humanoid/blob/master/software/poppy_humanoid/primitives/posture.py
  • Yep it so easy to burn and we think it is possible to add software security inside which could stop the motor if the temperature increases.

  • Debug, detecting which motor is broken and is perturbing the communication.

Welcome Shrek,

the dynamixel are good motors but it is difficult to have total control on them when there is an issue. For the MX series, the temperature sensor is on the PCB… far from the motor. So the overheat protection can save the motor if it produces heat on long term. But for shocks leading to overheat and motor melting… there is no protection.
It could be useful to activate the overload protection linked with the current but this protection is too conservative. For Poppy, I decided to switch off this protection.
A combination of these two parameters could be interesting to avoid breaking motors.

Having a special firmware could be also very useful to control directly the motor output.

Well, in robotics it is very often the torque controller which means the measurement (or estimation) of the current is a must. This probably, can also be utilized in your heat protection.

As far as the gains of the controller, probably the reason they use only P gain is because they want to control the position of the shaft and not the velocity. Therefore the system has already an integrator so by using a second one will most likely give you troubles (;))

Hi! everyone!
does anyone succefully flash dynaban firmware before?as i have problem to run the make file :frowning:

Hi,
I suggest you ask directly your issues to the dedicated issue tracker of their GitHub repository.

Hi thanks for the suggestion!