Dynamic Reconstruction in Isaac Sim

https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_nvblox/isaac_sim_dynamic_example.gif/

This tutorial demonstrates how to perform general dynamic reconstruction in nvblox with Isaac Sim.

The algorithm used for nvblox dynamic reconstruction is based on the following paper:

  • Lukas Schmid, Olov Andersson, Aurelio Sulser, Patrick Pfreundschuh, and Roland Siegwart.
    Dynablox: Real-time Detection of Diverse Dynamic Objects in Complex Environments
    in IEEE Robotics and Automation Letters (RA-L), Vol. 8, No. 10, pp. 6259 - 6266, October 2023.

For more about general dynamic reconstruction in nvblox see Technical Details.

Note

Due to a known issue, there is no animation of humans in the scene.

Note

Dynamic reconstruction requires accurate pose estimation. Objects moving slower than the odometry drift can’t be detected as dynamic.

Tutorial Walkthrough

Before continuing this example, you must have successfully completed the Static Reconstruction in Isaac Sim.

Note

This tutorial runs Isaac ROS Visual SLAM for pose estimation, instead of using the Isaac Sim poses, because of a known issue in Isaac Sim.

  1. Open the Isaac Sim terminal and export the necessary environment variables as explained in steps 2-3 of the Isaac Sim Setup Guide.

  2. Start the simulation by running the following command in the terminal:

    ./python.sh ${ISAAC_ROS_WS}/src/isaac_ros_nvblox/nvblox_examples/nvblox_isaac_sim/omniverse_scripts/start_isaac_sim.py --with_people --gpu_physics_enabled --scenario_path=/Isaac/Samples/NvBlox/carter_warehouse_navigation_with_dynamics.usd
    

    Note

    For more information on the start_isaac_sim script see the README.

  3. In another terminal, run the ROS Docker container using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
      ./scripts/run_dev.sh
    
  4. Inside the container, install isaac_ros_visual_slam

sudo apt-get install -y ros-humble-isaac-ros-visual-slam
  1. Launch the pre-composed graph launch file:

    ros2 launch nvblox_examples_bringup isaac_sim_dynamics_example.launch.py run_vslam:=True global_frame:=odom_vslam
    
  2. Use the 2D Goal Pose button to navigate the robot around.

Troubleshooting

Refer to the Isaac Sim Issues.