Noetic & FCL issues

Issue #76 new
Erich Mielke created an issue

I’m trying to use the trac_ik kinematics plugin with ROS noetic on Ubuntu 20. I’m running into an issue (mostly with the ros-noetic-fcl package) where I have to remove the ros FCL package to build my package (because the ros FCL package won’t compile, I’ve built FCL from source, which allows me to build), then at run time, I need the trac-ik kinematics plugin, which I install via apt (ros-noetic-trac-ik-kinematics-plugin) which automatically installs ros-noetic-fcl again.

This is a major pain, as every time I compile, I have to perform this song and dance over and over. The good news is it works, so I’ve put off trying to fix the issue, but I’m getting closer to pushing the next update, so I need a production-ready version.

I’ve tried installing trac_ik from source, and everything builds just fine. However, I get a seg fault during run-time from the IK plugin (using with descartes & moveit).

Any advice on why this might be? The source version is using tag 1.6.6, which appears to be the ros-release version.

Comments (1)

  1. Ana Huaman

    Hi Erich,

    I am not quite sure I understand your setup, but it seems that you might be building FCL from source for your application. Now, trac-ik-kinematics-plugin depends on moveit_core, which in turn depends on ros-noetic-fcl. Without any other details, my guess is that your local build from FCL might be incompatible with the ros-noetic-fcl version (> 0.6, if I remember right), so I wouldn’t be surprised that linking errors might happen.

    As a sanity check, I just ran the panda demo launch file from panda_moveit_config, setting the IKSolver to be the TRACIK one (and using the one installed with apt). It worked as expected (not crashes).

    PS.- Some random thoughts that might help you debug your application:

    1. Remember that trac-ik-kinematics-plugin depends on moveit-core (which depends on ros-noetic-fcl), but itself does not have any dependency to FCL.
    2. The moveit-core dependency to ros-noetic-fcl is rather recent. I think it only came into effect a few short months ago. Before that, moveit_core might have depended only on fcl-0.5 (which was the default FCL version up to melodic).
    3. You are probably aware of this, but FCL 0.5 and ros-noetic-fcl (>0.6) have vastly different APIs. I am not quite clear why you’d need to build FCL from source. If you want the newest FCL features, I think ros-noetic-fcl should fit your needs. If you have code that depend on the old FCL version (0.5) and that also uses MoveIt!, then you might consider upgrading your FCL-depending code, in case you have it.

  2. Log in to comment