PickNik Robotics and Carbon Robotics are excited to be releasing a standalone move_group
capability for planning semi-constrained Cartesian Paths with Descartes. This capability is a drop-in replacement for move_group
's MoveGroupCartesianPathService.
Developed by Mike Lautman at PickNik Consulting
NOTE: this package has not been released yet
sudo apt-get install ros-melodic-descartes_capability
These instructions assume you are running ROS Melodic on Ubuntu 18.04:
-
Install ROS Melodic and the following build tools.
sudo apt-get install python-wstool python-catkin-tools
-
Re-use or create a catkin workspace:
export CATKIN_WS=~/ws_catkin/ mkdir -p $CATKIN_WS cd $CATKIN_WS
-
Download the required repositories and install any dependencies:
git clone [email protected]:PickNikRobotics/descartes_capability.git wstool init src wstool merge -t src descartes_capability/descartes_capability.rosinstall wstool update -t src rosdep install --from-paths src --ignore-src --rosdistro melodic
-
Configure and build the workspace:
catkin config --extend /opt/ros/melodic --cmake-args -DCMAKE_BUILD_TYPE=Release catkin build
-
Source the workspace.
source devel/setup.bash
To make sure you have the latest repos:
cd $CATKIN_WS/src/descartes_capability
git checkout master
git pull origin master
cd ..
wstool merge descartes_capability/descartes_capability.rosinstall
wstool update
rosdep install --from-paths . --ignore-src --rosdistro melodic
To use the Descartes path service capability in place of the move_group
Cartesian path planning service, you must add move_group/MoveGroupCartesianPathService
and descartes_capability/MoveGroupDescartesPathService
to the move_group/disable_capabilities
parameter. One way to do this would be to load ./config/setup.yaml
to the parameter server. You can also set these parameters explicitly in your robot's move_group.launch
file.
move_group:
disable_capabilities: move_group/MoveGroupCartesianPathService
capabilities: descartes_capability/MoveGroupDescartesPathService
With your ROS parameters set, you can now run your favorite <robot>_moveit_config demo.launch
.
eg:
roslaunch panda_moveit_config demo.launch
If you set up your environment correctly, you should see these lines output to your console:
********************************************************
* MoveGroup using:
* - DescartesPathService
* - ApplyPlanningSceneService
* - ClearOctomapService
* - ExecuteTrajectoryAction
* - GetPlanningSceneService
* - KinematicsService
* - MoveAction
* - PickPlaceAction
* - MotionPlanService
* - QueryPlannersService
* - StateValidationService
********************************************************
You can now use your shiny new DescartesPathService
just like you used to use the CartesianPathService
.
Visualize an example plan by running:
rosrun descartes_capability example_cartesian_command.py
You must have a private rsa key ~/.ssh/id_rsa
that is not password protected and is attached to your Github and Bitbucket accounts. You must also have a working installation of docker
.
-
Navigate to
$CATKIN_WS/src/descartes_capability/.docker
. You should see theDockerfile
recipe in the directory. -
Build the docker image
cd $CATKIN_WS/src/descartes_capability/.docker cp ~/.ssh/id_rsa id_rsa && docker build -t descartes_capability:melodic-source .; rm id_rsa
-
Run the docker image
-
Without the gui
docker run -it --rm descartes_capability:melodic-source /bin/bash
-
With the gui (tested with Ubuntu native and a Ubuntu VM)
. ./gui-docker -it --rm descartes_capability:melodic-source /bin/bash
-
To run roslint, use the following command with catkin-tools.
catkin build --no-status --no-deps --this --make-args roslint
To run catkin lint, use the following command with catkin-tools.
catkin lint -W2 --rosdistro melodic
Use the following command with catkin-tools to run tests.
catkin run_tests --no-deps --this -i