Can't Find FCL when Installing MoveIt From Source

asked 2020-09-04 23:23:02 -0500

wijdpoqwaijdmolqwdinm gravatar image

I'm trying to install MoveIt and OMPL from source to use with ROS Kinetic and catkin tools for compiling. I've created a new catkin workspace.

Following these instructions, I've first downloaded OMPL and FCL in my workspace:

cd moveit_ws/src
git clone
sudo apt -qq install libccd-dev
git clone
cd fcl
git checkout fcl-0.5

I then renamed the project to <name>libfcl-dev</name> in this package.xml as instructed so fcl builds before MoveIt. Next, to install MoveIt:

rosdep update
sudo apt update
sudo apt dist-upgrade
sudo apt install python-wstool python-catkin-tools clang-format-10
source /opt/ros/kinetic/setup.bash
wstool init src
wstool merge -t src
wstool update -t src
rosdep install -r --from-paths src --ignore-src --rosdistro ${ROS_DISTRO}

As fcl was already added to my repo, I get this error: libfcl-dev: Cannot locate rosdep definition for [libccd] I instead run:

rosdep install -r --from-paths src --ignore-src --rosdistro ${ROS_DISTRO}
catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build

fcl, ompl, and a few of the MoveIt packages compile fine, but moveit-core can't find fcl:

Errors     << moveit_core:cmake /home/mcorsaro/moveit_ws/logs/moveit_core/build.cmake.001.logNot searching for unused variables given on the command line.
Re-run cmake no build system arguments
moveit_core: You did not request a specific build type: Choosing 'Release' for maximum performance
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   date_time
--   thread
--   iostreams
--   regex
--   chrono
--   atomic
-- Could NOT find Bullet: Found unsuitable version "2.83", but required is at least "2.87" (found BulletSoftBody;BulletDynamics;BulletCollision;LinearMath)
-- Version of Bullet too old or not available: disabling Bullet collision detection plugin. Try using Ubuntu 18.04 or later.
-- Checking for module 'fcl'
--   No package 'fcl' found
CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:367 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:532 (_pkg_check_modules_internal)
  CMakeLists.txt:50 (pkg_check_modules)

I get the same error when I change the libfcl-dev package name back to fcl and rebuild a couple of times.

Is this a problem on my end? Or is adding a package.xml not enough to turn fcl into a ROS package? Are there other things that should be added to fcl's CMake files? I hacked around and tried to make fcl generate a fclConfig.cmake, but it still wouldn't compile. What else can I do to debug this issue?

edit retag flag offensive close merge delete