Attention

As of June 30, 2025, the Isaac ROS Buildfarm for Isaac ROS 2.1 on Ubuntu 20.04 Focal is no longer supported.

Due to an isolated infrastructure event, all ROS 2 Humble Debian packages that were previously built for Ubuntu 20.04 are no longer available in the Isaac Apt Repository. All artifacts for Isaac ROS 3.0 and later are built and maintained with a more robust pipeline.

Users are encouraged to migrate to the latest version of Isaac ROS. The source code for Isaac ROS 2.1 continues to be available on the release-2.1 branches of the Isaac ROS GitHub repositories.

The original documentation for Isaac ROS 2.1 is preserved below.

Isaac ROS Occupancy Grid Localizer Nav2 Isaac Sim Tutorial

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/concepts/localization/lidar/nav2_isaac_sim.png/

Overview

This tutorial describes how to integrate the Isaac ROS Occupancy Grid Localizer with a simulated robot running in Isaac Sim with Nav2.

Tutorial Walkthrough

  1. Complete the quickstart here.

  2. Launch the Docker container using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
      ./scripts/run_dev.sh
    
  3. Install and launch Isaac Sim following the steps in the Isaac ROS Isaac Sim Setup Guide.

  4. Select /World/Carter_v2_4_ROS/ros_lidars/publish_front_2d_lidar_scan in the Stage pane and change the topic name for front 2D lidar as follows:

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/concepts/localization/lidar/isaac_sim_lidar_topic.png/
  1. Select /World/Carter_v2_4_ROS/ros_lidars/front_2d_lidar_render_product in the Stage pane and set enabled to True.

  2. Press Play to start publishing data from the Isaac Sim.

    https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/getting_started/isaac_sim_sample_scene.png/
  3. Run the launch file and validate that a Nav2 window pops up.

    ros2 launch isaac_ros_occupancy_grid_localizer isaac_ros_occupancy_grid_localizer_nav2.launch.py
    
  4. Open a new terminal using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
      ./scripts/run_dev.sh
    
  5. Trigger the localization service using the command line interface:

    ros2 service call /trigger_grid_search_localization std_srvs/srv/Empty {}
    
  6. You should see the laser scan in RViz. This happens when the transform between map and front_2d_lidar frame is available. The robot is now localized. You can give a position setpoint using the 2D Nav Goal button as shown below. You can relocalize again at any point by running the ros2 service call command.

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/concepts/localization/lidar/nav2_isaac_sim.gif/