JeanElsner / panda-py

Python bindings for real-time control of Franka Emika robots.
https://jeanelsner.github.io/panda-py/
Apache License 2.0
77 stars 14 forks source link

Joint instability #17

Closed jc211 closed 6 months ago

jc211 commented 6 months ago

Thanks for the great work! I've been using this as my main Franka driver and I noticed that the joints will sometimes wildly oscillate when trying to get into a particular motion. Has anyone else encountered this issue? The error I get is "Power Limit Violation"

JeanElsner commented 6 months ago

I haven't encountered power limit violations, this suggests very high torques being applied. I can still look into this, provided you can give me some more information. Do you have a minimum working example that reproducibly demonstrates this behavior? Also, what version of the robot are you using? Are you using a special end-effector or applying a high load? Maybe your robot is mounted in a special orientation (on a wall or upside-down)?

jc211 commented 6 months ago

I think this happens mostly when go_to_joints is set to a destination that is far from its current state. The torques are not being clipped and thats when this happens. I found the solution was to use something like ruckig to create smooth curves for the joint trajectories.

JeanElsner commented 6 months ago

The newest release v0.7.4 clips the torques as well as the jerk, including the dynamic joint limit control term, which was previously excluded from clipping. I think this will add additional stability when the robot runs into or close to the joint limits. Maybe this will help with your problem. We're also working on better motion generators which will hopefully avoid this problem altogether.