marcbone / liborl

Cartesian motion generation for Franka Emika Panda robots
European Union Public License 1.2
40 stars 10 forks source link

Motion aborted due to joint_velocity_discontinuity #5

Closed zhulixiao closed 1 year ago

zhulixiao commented 1 year ago

Hello Machone,

I appreciate your work on the ORL implementation. I'm currently utilizing the robot to repeatedly follow a bezier curve. The way points are (0.2,0.2,0.2),(0.4,0.2.0.6),(0.6,0.2,0.2). The speed profile is quintic. However, I've encountered an obstacle concerning joint_velocity_discontinuity. This issue arises particularly when the execution time is short (around 1.2 seconds in my case). Could this potentially indicate that the robot is approaching its maximum speed? From what I've observed, the robot's maximum speed is approximately 1.7 m/s, and I have doubts that the robot is operating at that velocity in this scenario.

marcbone commented 1 year ago

Hi zhulixia,

thanks for using my library. The maximum speed of the robot is quite confusing. The 1.7 m/s are what I call a "maximum maximum". It means that when the robot is stretched out it will stop at 1.7 m/s. However, you cannot reach 1.7 m/s in all configurations! So, in 97% of cases you will reach a joint velocity limit instead (same for acceleration <- your problem). I didnt knew this when I was developing this library, and therefore there is no way in this library to directly limit the joint velocities/accelerations. This means you will have to increase the execution time or choose a different speed profile. Also you can play around with the waypoints of your bezier curve to make the trajectory slower at the point where it crashes.

zhulixiao commented 1 year ago

Thank you for responding! I agree that it's reasonable not to directly restrict joint velocities or accelerations within the library, given that these values are computed through formulas. I'll adjust the via points to potentially shorten the path. Thank you for your help!