For advanced users wishing to develop on common libraries that MoveIt depends on, we provide some loose experimental/unsupported instructions for doing so within a combined catkin workspace. These instructions are liable to become outdated and developers are recommended to use these along with the libraries’ main install instructions, but the following will hopefully help developers dig deeper into the combined software. If you find errors, please submit pull requests to fix.
TODO: test these instructions for Melodic and update this page.
These instructions assume you are using catkin_tools and are using ROS Kinetic. Currently we have instructions for:
Note: These instructions are temporary for Jade/Kinetic only, until the warehouse_ros_mongo package is updated to an Ubuntu supported mongo driver.
The Warehouse functionality allows planning scenes, robot states, and benchmark data to be loaded to and from a database.
In order to build from source you’ll need to install the mongo c++ drivers
First get the driver:
git clone -b 26compat https://github.com/mongodb/mongo-cxx-driver.git
Then compile using scons:
sudo apt install scons
cd mongo-cxx-driver
sudo scons --prefix=/usr/local/ --full --use-system-boost --disable-warnings-as-errors
sudo scons install
You’ll next need to add two packages to your catkin workspace. The jade-devel branches for the warehouse packages work for kinetic, jade, and melodic distros.
cd ~/ws_moveit/src
wstool set -yu warehouse_ros_mongo --git https://github.com/moveit/warehouse_ros_mongo.git -v jade-devel
wstool set -yu warehouse_ros --git https://github.com/moveit/warehouse_ros.git -v jade-devel
Now you should be able to build using regular catkin build
OMPL is MoveIt’s main planning library, their official install instructions can be found here.
Clone the OMPL repos from either Bitbucket or Github into your catkin workspace:
git clone https://github.com/ompl/ompl
You should be able to build using regular catkin build
FCL is MoveIt’s default collision checker, their official install instructions can be found here.
sudo apt -qq install libccd-dev
Clone the repo into your catkin workspace:
git clone https://github.com/flexible-collision-library/fcl
cd fcl
Pick the correct version depending on the version of MoveIt you use:
git checkout fcl-0.5 # for kinetic
git checkout master # for melodic+
Next manually add a package.xml as used in the ROS release wrapper:
wget https://raw.githubusercontent.com/ros-gbp/fcl-release/debian/jade/fcl/package.xml
In order for moveit_core
to wait until fcl
is finished build, edit fcl/package.xml
and rename the project to libfcl-dev
.
Now you should be able to build using regular catkin build