arebgun / dynamixel_motor

ROS stack for interfacing with Robotis Dynamixel line of servo motors.
BSD 3-Clause "New" or "Revised" License
70 stars 169 forks source link

Enable to ignore fatal errors #97

Open pazeshun opened 2 years ago

pazeshun commented 2 years ago

When a Dynamixel motor detects some dangerous situations, the motor goes torque off: https://emanual.robotis.com/docs/en/dxl/mx/mx-28/#shutdown However, we sometimes want the motor to ignore the error and continue working. For example, when we use the motor in robotic fingers and these fingers grasp an object, these fingers should continue exerting strong force not to drop the object. In that situation, the motor continues detecting a big load, easily goes into Overload Error, and torque off.

To avoid this problem, we can remove errors from Shutdown (and Alarm LED) register of the motor to prevent torque off due to these errors. However, even when we do that, these errors are included in every response from the motor. dynamixel_motor detects them and prints many error messages (especially when Overload Error): https://github.com/arebgun/dynamixel_motor/blob/3d842328641a8c62f90388a254e5efb12929c1ae/dynamixel_driver/src/dynamixel_driver/dynamixel_io.py#L985-L1005 https://github.com/arebgun/dynamixel_motor/blob/3d842328641a8c62f90388a254e5efb12929c1ae/dynamixel_driver/src/dynamixel_driver/dynamixel_serial_proxy.py#L228-L238

This PR enables to suppress that phenomenon by setting rosparam.