ROS package for CFC-based collision detection framework, with applications on motion planning.
This is the ROS package for the collision detection algorithms using closed-form contact space (CFC) parameterization. It includes visualizations and applications on robot motion planning. Direct interface with OMPL is implemented.
- Paper: IEEE Robotics and Automation Letters (RA-L)
- Project page: https://chirikjianlab.github.io/cfc-collision/
- C++ core library: https://github.com/ChirikjianLab/cfc-collision/
Sipu Ruan, Xiaoli Wang and Gregory S. Chirikjian
CFC-collision
: Core C++ library for CFC-based collision detection, fetch as a submodule (see installation instructions).ROS Noetic (Ubuntu 20.04)
Ceres solver (>= 2.0)
MoveIt 1.0
: Binary installation is recommended.panda_moveit_config
ompl
moveit_visual_tools
eigen_conversions
Installation command
[sudo] apt install ros-noetic-moveit ros-noetic-panda-moveit-config ros-noetic-ompl ros-noetic-moveit-visual-tools ros-noetic-eigen-conversions
- Install required dependencies
- Generate catkin workspace and download the source code
mkdir -p ~/catkin_ws/src/
cd ~/catkin_ws/src/
git clone --recurse-submodules https://github.com/ChirikjianLab/cfc_collision_ros.git
- Build the package
cd ~/catkin_ws/
catkin build
Show contact points as described in MoveIt tutorial -- visualizing collisions.
roslaunch cfc_collision_ros moveit_visualize_collision.launch
Additional feature: when the object and robot are close to each other, a line segment connecting the closest witness points are shown.
Separated | In collision |
---|---|
roslaunch cfc_collision_ros ompl_planning.launch
Note
- Please change the parameters for different robots (here) and environment types (here). Can also specify as
roslaunch cfc_collision_ros ompl_planning.launch robot_name:=panda_arm env_type:=sparse
- For real Panda robot, use
ompl_planning_real.launch
- For end points in workspace (only supports
panda_arm
robot model), useompl_planning_ee.launch
. Before planning, please run IK solver launch file first (instructed below).
Reproduction of figures in paper
To reproduce figures in the paper (Figure 6), please use the following arguments when launching ompl_planning.launch
:
Figure | Robot name | Environment type | Argument |
---|---|---|---|
Fig. 6(a) | Snake | Narrow | robot_name:=snake env_type:=narrow |
Fig. 6(b) | Panda single arm | Dense | robot_name:=panda_arm env_type:=dense |
Fig. 6(c) | Panda dual arm | Sparse | robot_name:=panda_dual_arm env_type:=sparse |
Snake-like robot | Franka Emika Panda robot |
---|---|
Given a set of SE(3) poses, solve inverse kinematics using the MoveIt feature (moveit::core::RobotState::setFromIK)
roslaunch cfc_collision_ros moveit_ik_solver.launch
Note
- For testing on real scenes, use
moveit_ik_solver_real.launch
- Visualize collision and distance via interactive markers
- Direct interface with OMPL using CFC-based collision checker
- Panda arm (7 DOF)
- Panda dual-arm (14 DOF)
- Snake-like manipulator (15 DOF)
- Sparse
- Cluttered
- Narrow
- Dense
- Real lab experiments
- Joint space (C-space): For all robots
- Workspace (end effector poses): Only for "panda_arm"
If you find our work useful in your research, please consider citing:
-
S. Ruan, X. Wang and G. S. Chirikjian, "Collision Detection for Unions of Convex Bodies With Smooth Boundaries Using Closed-Form Contact Space Parameterization," in IEEE Robotics and Automation Letters, vol. 7, no. 4, pp. 9485-9492, Oct. 2022, doi: 10.1109/LRA.2022.3190629.
-
BibTeX
@ARTICLE{ruan2022collision,
author={Ruan, Sipu and Wang, Xiaoli and Chirikjian, Gregory S.},
journal={IEEE Robotics and Automation Letters},
title={Collision Detection for Unions of Convex Bodies With Smooth Boundaries Using Closed-Form Contact Space Parameterization},
year={2022},
volume={7},
number={4},
pages={9485-9492},
doi={10.1109/LRA.2022.3190629}}