5. ROS & ROS2 Installation

Omniverse Isaac Sim provides both a ROS and a ROS2 bridge for ROS system integration. The same set of common components are used to define the type of data being published/received by the simulator.

For the ROS bridge, Isaac Sim is internally running 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.

For the ROS2 bridge, Isaac Sim is currently compatible with ROS2 Foxy. Using Ubuntu 20.04 is recommended for ROS2

Important

For ROS, In the steps below replace noetic with melodic if you are installing on Ubuntu 18.04

5.1. Running Native ROS

  1. Follow instruction on the official website to download

  2. Make sure to source the ROS environment in the terminals each time before using any ROS commands.

    ROS

    source /opt/ros/noetic/setup.bash
    

    ROS 2

    source /opt/ros/foxy/setup.bash
    

    You can also automatically source it by adding it to your ~/.bashrc file. Change <ros-distro> to noetic, melodic or foxy as appropriate

    echo "source /opt/ros/<ros-distro>/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    
  3. For ROS only: Start roscore in a ROS sourced terminal. Isaac Sim does not run roscore by default, this is to be more flexible for use cases where Isaac Sim is being integrated with existing ROS workflows.

5.2. Enable ROS/ROS2 Bridge Extension

To enable the ROS/ROS2 bridge extension, go to the extension manager menu Windows->Extensions and search for ROS bridge. Only one of the ROS Bridge extensions can be enabled at any given time.

../_images/isaac_ros_install_enable.gif

5.3. Setting Up Workspaces

5.3.1. ROS Tutorials

There are a few ROS packages that are needed to go through our ROS/ROS2 tutorial series. To make it easy, we prepared an entire ROS workspaces with the necessary packages.

Follow the steps below to build it and source the overlay of this package.

  1. First make sure your native ROS has been sourced if not already

    $ source /opt/ros/noetic/setup.bash
    

    You can check if it is successful by checking the ROS_PACKAGE_PATH environment variable.

    $ echo $ROS_PACKAGE_PATH
    /opt/ros/noetic/share
    
  2. Resolve any package dependencies from the root of the ROS workspace by running the following command:

    $ cd ros_workspace
    $ rosdep install -i --from-path src --rosdistro noetic -y
    
  3. Then in the ROS-sourced terminal, build the Isaac ros_workspace folder then source the overlay.

    $ catkin_make
    $ source devel/setup.bash
    

    This will put Isaac Sim’s ROS workspace in your ROS_PACKAGE_PATH. You can echo $ROS_PACKAGE_PATH again to see that the path to the Isaac Sim’s ROS workspace has been added in front of your original one.

  4. Alternatively, you can also move the individual rospackages inside our ros_workspace/src folder into your own ROS workspaces and build it.

    A list of sample ROS packages created for Omniverse Isaac Sim:

    • isaac_tutorials: Contains launch files, rviz config files, and scripts for the tutorial series.

    • isaac_ros_messages: A custom set of messages for 2d/3d bounding boxes and pose service messages.

    • carter_2dnav: Contains the required launch file and ROS navigation parameters for the NVIDIA Carter robot.

    • carter_description: Description of the NVIDIA Carter robot model.

    • isaac_moveit: Contains the required launch and config files for running ROS MoveIt.

  5. Go to the ROS website for tutorials on building your own ROS packages.

  6. If you wish Isaac Sim to have access to your existing packages, make sure to set ROS_PACKAGE_PATH environment variable to include the desire ROS workspace in the same terminal before starting up Omniverse Isaac Sim.

5.3.2. ROS 2 tutorials

  1. In order to build the ros2 workspace additional packages might need to be installed:

    # For rosdep install command
    $ sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
    # For colcon build command
    $ sudo apt install python3-colcon-common-extensions
    
  2. Make sure your native ROS2 has been sourced if not already

    $ source /opt/ros/foxy/setup.bash
    
  3. Resolve any package dependencies from the root of the ROS2 workspace by running the following command:

    $ cd ros2_workspace
    $ rosdep install -i --from-path src --rosdistro foxy -y
    
  4. Build the workspace:

    $ colcon build
    

    Under the root directory, new build, install, and log directories will be created.

  5. To start using the ROS2 packages built within this workspace, it is important to open a new terminal, and sourcing the workspace with the following commands:

    $ source /opt/ros/foxy/setup.bash
    $ cd ros2_workspace
    $ . install/local_setup.bash
    

Important

Remember to source your ROS2 workspace each time a new terminal is opened or whenever a new ROS2 package is included.

Warning

Do not source ROS2 in the terminal where you are running Isaac Sim as that can cause errors during startup because of conflicting symbols.