ROS & ROS2 Bridge¶
About¶
The ROS / ROS2 Bridge Extensions connect Omniverse Isaac Sim to ROS or ROS2. The Robot Operating System (ROS) is a set of software libraries and tools to help build robot applications. This extension provides a common set of components to define the data being published/received between Omniverse Isaac Sim and ROS.
Note
Only one of the ROS Bridge Extensions can be enabled at any given time. See Enable ROS/ROS2 Bridge Extension for more details.
ROS Bridge¶
The ROS Bridge Extension enables publishing and subscribing of several rostopics and rosservices that are commonly needed for robotic simulation.
This extension is enabled by default. If it is ever disabled, it can be re-enabled from the Extension Manager
by searching for omni.isaac.ros_bridge
.
You should now be able to run the samples below on the docker host if ROS is installed, or inside of the running container by first running roscore to start the ROS master node.
Note
Internally the ROS bridge runs a custom roscpp build of ROS Noetic so that it works properly with the Omniverse framework and python 3. This is backwards compatible with ROS Melodic.
Note
If communicating with another host (i.e real robot, an existing ROS stack, etc) please set the ROS_IP
and ROS_MASTER_URI
environment variables before starting Isaac Sim
Prerequisites¶
This extension requires a ROS installation capable of running roscore
. The extension will continually check if rosmaster is available before starting up.
Note
Omniverse Isaac Sim does not run roscore by default, this is to be more flexible for use cases where Omniverse Isaac Sim is being integrated with existing ROS workflows.
ROS Specific Commands¶
There are also several API Commands specific to the ROS bridge that allow for more control over various functionality.
ROS2 Bridge¶
Similar to the ROS Bridge, the ROS2 Bridge Extension enables publishing and subscribing of several rostopics and rosservices that are commonly needed for robotic simulation.
This extension is enabled by default. If it is ever disabled, it can be re-enabled from the Extension Manager
by searching for omni.isaac.ros2_bridge
.
Prerequisites¶
It is recommended that ROS2 Foxy Fitzroy and Ubuntu 20.04 are used. See the ROS2 Release Documentation for exact requirements and installation instructions.
ROS2 Packages¶
A list of sample ROS2 packages created for Omniverse Isaac Sim:
isaac_ros2_messages: A custom set of ROS2 messages for 2d/3d bounding boxes and pose service messages.
carter_navigation: Contains the required launch file and ROS2 navigation parameters for the NVIDIA Carter robot.
carter_description: Description of the NVIDIA Carter robot model.
To install these ROS2 packages refer to the section, ROS2 Workspace.
Go to ROS2 Build a Package tutorial for more information.
ROS2 Specific Commands¶
There are also several API Commands specific to the ROS2 bridge that allow for more control over various functionality.
Common Components For ROS and ROS2¶
The following components can be created from the Create -> Isaac -> ROS
menu and are compatible with both ROS and ROS2.
Custom Messages¶
The following set of ROS messages and services are provided for both ROS and ROS2 in their respective workspaces.
2D Bounding Box¶
1 2 3 4 5 6 | string name
float64 confidence
int64 xmin
int64 ymin
int64 xmax
int64 ymax
|
2D Bounding Box Array¶
1 2 | std_msgs/Header header
IsaacBoundingBox[] bboxes
|
3D Bounding Box¶
1 2 3 4 | string name
float64 confidence
geometry_msgs/Pose center
geometry_msgs/Vector3 size
|
3D Bounding Box Array¶
1 2 | std_msgs/Header header
BoundingBox3D[] bboxes
|
IsaacPose Service Type¶
The Pose Teleport Service uses a custom IsaacPose
rosservice type:
1 2 3 4 5 6 | std_msgs/Header header
string[] names
geometry_msgs/Pose[] poses
geometry_msgs/Twist[] velocities
geometry_msgs/Vector3[] scales
---
|
Tutorials & Examples¶
The following tutorials and examples showcase how to best use this extension:
Tutorials
How To Import and Drive TurtleBot3 Tutorial
Cameras Tutorial
Transform Trees Tutorial
April Tags Tutorial
ROS Navigation Tutorial
Multiple Robot ROS Navigation Tutorial
MoveIt Motion Planning Framework Tutorial
Custom Message Tutorial
ROS Bridge in Standalone Workflow Tutorial
Examples
Navigation Example: Isaac Examples > ROS > Navigation
Stereo Camera Example: Isaac Examples > ROS > Stereo
April Tag Example: Isaac Examples > ROS > April Tag
Multiple Robot Navigation Example: Isaac Examples > ROS > Multiple Robot Navigation > Hospital Scene
Multiple Robot Navigation Example: Isaac Examples > ROS > Multiple Robot Navigation > Office Scene
MoveIt Example: Isaac Examples > ROS > MoveIt