pantor / frankx

High-Level Motion Library for Collaborative Robots
https://pantor.github.io/frankx/
GNU Lesser General Public License v3.0
268 stars 65 forks source link

cartesian_motion_generator_joint_acceleration_discontinuity, cartesian_motion_generator_joint_velocity_discontinuity #22

Closed whyy812 closed 3 years ago

whyy812 commented 3 years ago

Hello,

I have finished all the relevant configuration of Frankx and successfully run the joint motion generator. However, when I was trying to run the examples that use the cartesian motion generator, the exceptions were thrown by libfranka (e.g. cartesian_motion_generator_joint_acceleration_discontinuity, cartesian_motion_generator_joint_velocity_discontinuity,). So, could you please share the solutions if you have already solved the similar issues?

Best regards

pantor commented 3 years ago

Hi @whyy812,

first, please make sure that the robot does not in fact violate the joint constraints given to the specs. In particular, this might happen as the internal IK of Franka likes to move the elbow around. However, when this error persists even for slow motions, there is another issue that I even haven't solved completely on my setup. In my case, these discontinuity errors are thrown when a package is dropped and the duration (period) parameter in the real-time control loop is larger than 1ms. Are you able to confirm this?

I suspect that this is an internal bug in the Franka controller, as it seems to calculate the velocity/acceleration difference over the wrong period of time (e.g. 1ms instead of the true 2ms). I already had a discussion with the Franka support, but nothing came out of that. Anyway, I'm pretty sure that this is not a bug of Frankx but of the robot itself.

So, one possible solution would be to improve the PC<->robot connection and make sure that no package is dropped. Another one would be to calculate the IK yourself and control the joint positions (like MoveIt does).

whyy812 commented 3 years ago

Hi, @pantor I also noticed that when the robot fails to run in Cartesian space, the communication success rate becomes lower. However, I agree with you that this is not a bug of Frankx but of the robot itself. I will try some other methods to solve this issue. Thank you for your reply.

pantor commented 3 years ago

If there are any questions, feel free to reopen this issue.