Awesome
Isaac ROS cuMotion
NVIDIA accelerated packages for arm motion planning and control
<div align="center"><a class="reference internal image-reference" href="https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_cumotion/cumotion_ur10_demo.gif/"><img alt="image" src="https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_cumotion/cumotion_ur10_demo.gif/" width="600px"/></a></div>Overview
Isaac ROS cuMotion provides CUDA-accelerated manipulation capabilities for robots in ROS 2. It provides two main capabilities:
- Motion generation for robot arms via integration of cuMotion into MoveIt 2
- Segmentation of robots from depth streams using cuMotion’s kinematics and geometry processing functions to accurately identify and filter out parts of the robot. This allows reconstruction of obstacles in the environment without spurious contributions from the robot itself.
The key advantages of using Isaac ROS cuMotion are:
- Improved cycle times: cuMotion produces smooth, optimal-time trajectories in the presence of obstacles, generally reducing motion times compared to previous state-of-the-art planners. In cluttered environments and other challenging scenarios, cuMotion can often produce a valid trajectory when other planners might fail altogether.
- Improved planning times: cuMotion takes advantage of CUDA acceleration to produce collision-free, optimal-time trajectories in a fraction of a second.
- Avoidance of obstacles captured by depth camera(s): cuMotion optionally leverages nvblox to perform 3D reconstruction of an environment from one or more depth image streams. The environment is represented as a signed distance field (SDF) for efficient obstacle-aware planning. Support is provided for segmenting and filtering the robot itself from the depth stream(s).
- Flexibility: A modular design simplifies integration with existing ROS 2 workflows, especially those already using MoveIt 2.
[!Warning] Before using or developing with cuMotion or other Isaac Manipulator software, please read and familiarize yourself with the associated safety information that is provided by your robot manufacturer.
In addition, we provide the following best practices:
- Familiarize yourself with the location of the emergency stop buttons, and be prepared to apply if necessary.
- Before operation, ensure the working area is free of any persons or other potential hazards.
- Before operation, alert all persons near the working area that robot operation is about to begin.
- Before and during operation, be aware of any persons entering the vicinity around the working area, and be prepared to give necessary warnings, instructions, or take other necessary actions.
- Take extra caution when testing or deploying new features or code.
The Isaac ROS cuMotion repository currently contains the following packages:
isaac_ros_cumotion
:
: This package contains the cuMotion planner node and the robot segmentation node.
isaac_ros_cumotion_examples
:
: This package contains various examples demonstrating use of cuMotion with MoveIt.
isaac_ros_cumotion_moveit
:
: This package provides a plugin for MoveIt 2 that exposes cuMotion as an external planner, leveraging isaac_ros_cumotion
.
Isaac ROS cuMotion is also featured as part of Isaac Manipulator.
Documentation
Please visit the Isaac ROS Documentation to learn how to use this repository.
Packages
isaac_ros_cumotion
isaac_ros_cumotion_moveit
isaac_ros_esdf_visualizer
isaac_ros_moveit_goal_setter
isaac_ros_moveit_goal_setter_interfaces
Latest
Update 2024-09-26: Updated for Isaac ROS 3.1