pantor / frankx

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

ImpedanceMotion Segfault and other issues on system version 4 and libfranka 0.8.0 #21

Open jmkl009 opened 3 years ago

jmkl009 commented 3 years ago

I observed the following errors on a clean Ubuntu 21.04 install with linux kernel version 5.10 patched with rt support. Frankx is compiled against libfranka 0.8.0. The franka panda arm firmware version is shown as 1.3.4-F-AX and 1.3.4-F-A7, system version 4.1.1

pantor commented 3 years ago

Hi @jmkl009, thanks for your feedback! I'll have a look at your issues soon, however please keep in mind that frankx only supports system version 3 and libfranka 0.7. This is because my robot is not (yet) supported by Franka for system version 4, or at least that was the state a few weeks ago.

lukashermann commented 3 years ago

@jmkl009 Did you manage to resolve these issues in the meantime?

Fang-Haoshu commented 3 years ago

@jmkl009 Hi, did you manage to resolve these issues in the meantime?

jmkl009 commented 3 years ago

@lukashermann @Fang-Haoshu @BlGene I managed to resolve all but one issues above with custom patches plus many convenience functions. However, that one issue plagued our application the most and eventually led me to drop frankx. Namely, the low success rate in finishing execute a cartesian path with elbow control (no matter how small I set the velocity and acceleration to be). @pantor if LinearMotion/WaypointMotion/PathMotion works much better in 0.7.1 and system version 3, I am curious about what was changed from 0.7.1 to 0.8.0 and system version 4 that causes this.

pantor commented 3 years ago

@jmkl009 I think there is no information about internal changes between system version 2/3 and 4, so I really don't have an idea neither. What do you use now (instead of frankx) to mitigate the issues of cartesian control?

jmkl009 commented 3 years ago

My solution is not perfect, I currently use franka_ros_interface which in turn uses moveit and a joint trajectory controller ROS package that interpolates between the points of a motion plan generated from moveit. Although it controls panda through joint positions, each joint position is calculated from a cartesian pose along a cartesian path, so as to eventually achieve cartesian motion. The reason why this solution is not perfect is because I do not have control over the elbows so I always have to do a cartesian motion followed by a joint motion to achieve my desired end pose.

BlGene commented 3 years ago

@jmkl009 we have a similar workaround as well.

Can you please be a bit more specific, were you getting the following error: command aborted: motion aborted by reflex! ? If you have a small debugging script that generates your error that would be helpful too.

jmkl009 commented 3 years ago

@BlGene I always get one of two errors, one the same as yours, the other command aborted: cartesian_motion_generator_joint_acceleration_discontinuity

dkuss-tudresden commented 2 years ago

Any update about ImpedanceMotion's "Segmentation fault (core dumped)" using libfranka 0.7.1 and system 3?