add rounding to 5 decimal places to command sending to prevent H0117 …#22
add rounding to 5 decimal places to command sending to prevent H0117 …#22wolfv wants to merge 2 commits into
Conversation
|
Good move, but I'm not quite sure why this could happen. The controller node just send constant command value so no oscillation should be there.
I slightly doubted the problem came from PID control gain of the joints, which could make oscillation at particular posture. |
|
Or, it just comes to my mind, the angle range of J3 is from zero to 160 deg. |
|
Could you make this adding r3 driver as an independent PR? |
|
yes definitely! I just pushed to the wrong branch, sorry. |
|
I've reverted adding the R3 stuff here. |
|
Regarding the issue: I could reproduce it doing the following:
I don't know the exact cause but I believe that maybe somewhere is a division by zero or some number becomes NaN because the movement is too small... |
|
Yesterday's our investigation shows:
My latest guess is, the command angle smaller than the resolution of the encoder may cause this problem. As you know, the encoder represent the joint angle with discrete value (i.e. pulse), so the commanded joint angle under the resolution is never realized by servo system. Usually the servo controller should convert the command value (angle in rad.) into encoder pulse before compute the motor current reference, but somehow this controller seems not to do so. I have no idea why this oscillation cause the brake error though. In case my guess is right, your patch is reasonable, because it makes the command angle larger than the encoder resolution. I will check my hypothesis with RT Toolbox, and inquire the vendor if possible. Please wait for a while. |
|
Hi, thanks for looking into this. Hopefully you can find more informations. It's not very urgent for us + we have the patch. |
|
Unfortunately I was not able to reproduce the oscillation with RT Toolbox (simulator) 😞 @wolfv |
|
I asked MELFA's support about this problem. Their answer is
I'm not sure you are still involved this, so I think I should merge this feature with rosparam 'round_command_angle' and setting default false. |
|
Hi Ryosuke-san, Sorry to keep you waiting for so long, I was busy finishing this project and then immediately another one. |
…error
As the comment indicates, and as mentioned in a private message to @7675t we've encountered a H0117 on hardware CR800-D with RV-4FRL-D
The cause seem to have been small oscillations around 0 in joints 4, 5, and 6.
Rounding the command that is sent to the robot to 5 decimal places fixes this issue for us.
Are you fine with this fix?
Best,
Wolf