View Full Version : [Question(s)] pressure sensing dynamixel servos

02-18-2014, 03:23 PM
I have built a robotic arm using Dynamixel AX-12a servos and 3d printed parts and it works well, but I have a concern. I have made sure in the software that the gripper can not go beyond the point where the two pads meet when closed, but not sure how to make sure that I don't apply too much pressure against the servo mechanism when there is something in the grip of the gripper. I have no feedback to indicate pressure, so I could keep applying pressure after the gripper can not close any further. Obviously I would not do this on purpose, but it might happen accidentally and I am afraid I might damage the mechanism.

Is there a standard way to address this problem? Any suggestions would be appreciated.

Charlie R Chisholm

02-18-2014, 04:36 PM
It's not great for accuracy, but you can retrieve the current PWM value the AX-12 is using to drive the motor as a poor approximation of the torque. It is listed in the dynamixel address table as "CURRENT_LOAD", although the name is deceptive since only the MX-64 and MX-106 actually have current sensors and none of them have torque sensors.

It should work well enough as long as you do not need quick response. Just slowly close the gripper around the object and watch the PWM value until it reaches some limit before you change the goal position to the current position or to a slightly more open position (to back off the torque a bit). If you close the gripper too quickly or the mechanism requires too much torque to open/close, the PWM will not well reflect the load of the object on the closing gripper.

Built a gripper controller class for the DARwIn-OP framework using a very similar method since it only has MX-28 or AX-12 servos for the grippers and no sensors on the gripper (yet). It uses the 125Hz update rate of the framework's motion manager by sending new goal positions to incrementally close the gripper until a PWM limit is reached for more than about 10 calls to the motion manager's process() function. When that limit is reached, it may or may not back off a bit, depending on how the gripper object is being controlled.

02-19-2014, 07:51 AM
hmmm. I will probably play around with that and see how it might help. Last night I had the dream of building a pressure sensor into the jaw of the gripper using a plunger going throuqh a spring with a momentary switch at the bottom of the run. This would mean that the spring tension would dictate how much torque would be applied. The switch would be inline with the slider input such that, if depressed, it would disconnect the slider in that direction. I designed the jaw in Alibra, so it shouldn't be that much trouble to design this feature in. Then if it works, I can make it available on Thingiverse......~~~~ then I become famous and everyone flocks to the great jaw guru ~~~~~~~~

Thanks for the response and a great suggestion.

02-24-2014, 02:42 PM
I created a gripper jaw with a pressure sensor (detecter...not measure) in it using a 3d printer, a small mom switch, and a spring. It works surprisingly well. Since there did not seem to be a great depth of solutions to this problem of detecting pressure on the gripper, I thought I would make the info available to anyone who thinks they want to do this. The photo shows all the parts required and also the gripper itself. I can also make the stl files availble. The parts were designed in Alibra and those files can also be available as well.

Or not....


02-24-2014, 06:45 PM
An alternative is to set the "maximum PWM value" register in the servo configuration. This means that the servo will never exert more than X% of its full force, and thus won't over-load. This is register 14/15 ("Max Torque L/H")