Hi, Anyone please help me troubleshoot the below issue.
Everything worked fine until I tried to detach and re attach the bottom most dynamixel of the OpenManipulatorX arm (ID:11).
I had tried to troubleshoot dynamixels with the wizard, turning LEDs on/off and rotating each dynamixel using torque control works. but the firmware recovery was not happening when trying to just connect Dynamixel with ID 11 with U2D2 - followed the instruction displayed on the recovery window - turned off and then on and nothing happened.
Hi, I tried replacing the U2D2 controller and power hub in my setup with a new one and it is now working fine. Now the question remains if it was indeed the U2D2 controller issue, that caused the errors shown in the launch.log, How do I troubleshoot it? and take precautions that the issue wouldn’t repeat?
Hello!
Error code : -3002 is an error code for Incorect status packet.
It comes out like that when there’s noise in the communication. Replacing the cable, or replacing the U2D2, is a good solution. If it happens again, try replacing the cable one by one
I had the same issues with -3002 errors in my own project as well.
This problem occurred frequently when I used the Arduino RB and the U2D2 Power Hub , especially when connecting new Dynamixel motors after each session.
This happens because, when closing the port, it might not be completely flushed yet. I assume there’s still some data left in the buffer.
I don’t know the exact driver implementation in OpenManipulatorX, but to reduce communication noise, you can call portHandler.clearPort() at the beginning and at the end of the communication.
To be 100% sure it flushes correctly, make sure to call closePort() every time and use clearPort() together with closePort() inside a Lock
In Python, it could look like this:
lock = Lock()
with lock:
port_handler.clearPort()
port_handler.closePort()
If that still doesn’t work, you can experiment with timeout delays or retry logic, although I personally don’t like that approach …