Skip to content

ROS package for motion planning application using the collision detection framework based on closed-form contact space.

License

Notifications You must be signed in to change notification settings

ChirikjianLab/cfc_collision_ros

Repository files navigation

cfc_collision_ros

ROS Noetic CI

ROS package for CFC-based collision detection framework, with applications on motion planning.

Introduction

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.

Authors

Sipu Ruan, Xiaoli Wang and Gregory S. Chirikjian

Dependencies

Required ROS packages

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

Installation

  • 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

Usage

Visualize collision using interactivity marker

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
separated collided

Planning using OMPL

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

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
snake panda

Solve inverse kinematics

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

Status

Features

  • Visualize collision and distance via interactive markers
  • Direct interface with OMPL using CFC-based collision checker

Supported robots

  • Panda arm (7 DOF)
  • Panda dual-arm (14 DOF)
  • Snake-like manipulator (15 DOF)

Available environment types

  • Sparse
  • Cluttered
  • Narrow
  • Dense
  • Real lab experiments

Supported start/goal types

  • Joint space (C-space): For all robots
  • Workspace (end effector poses): Only for "panda_arm"

Reference

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}}

About

ROS package for motion planning application using the collision detection framework based on closed-form contact space.

Resources

License

Stars

Watchers

Forks

Packages

No packages published