Repo symbol

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble
Repo symbol

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble
Repo symbol

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble
Repo symbol

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble

Repository Summary

Description This repository provides various utilities (operation with ros2_control, automatic sensor generation and sensor data publishing) for easy use of Isaac Sim.
Checkout URI https://github.com/hijimasa/isaac-ros2-control-sample.git
VCS Type git
VCS Version main
Last Updated 2025-01-16
Dev Status UNKNOWN
Released UNRELEASED
Tags ros2 sensor-simulation isaac-sim ros2-control ros2-humble
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

isaac-ros2-control-sample

  • ros2_control Demo ros2_control_demo
  • LiDAR output Demo lidar_output_demo
  • Camera output Demo camera_output_demo
  • Arm robot Demo arm_robot_demo

This repository shows how to control the robot from ros2_control to make Isaac Sim easier to use. Important packages are “topic_based_ros2_control” and “isaac_ros2_scripts”. “topic_based_ros2_control” provide hardware_interface class and send the commands from ros2_control to “isaac_ros2_scripts”. “isaac_ros2_scripts” is needed bacause Isaac Sim needs specific python environment. “isaac_ros2_scripts” has the python script to launch and control Isaac Sim.

The features of this repository are below:

  • This shows how to control a robot on Isaac Sim with ros2_control.
  • This provides a Dockerfile where Isaac Sim and ROS2 Humble can coexist.
  • This currently supports prismatic and rotational joints using position and velocity control.
  • This sends joint status (position, velocity and effort) to ros2_control from Isaac Sim.
  • This launches sensors from URDF description.
  • This spawns URDF model at the desired timing and position.
  • This launchs sensors and controller at the desired timing.
  • This sets stiffness, damping and friction from URDF description.

Prerequisite

  1. Docker
  2. Isaac Sim Docker Image (Tested using image based on nvcr.io/nvidia/isaac-sim:2022.2.1)
  3. Nucleus Server (I installed with the Omniverse Laungher)

How to use

  1. Install Docker and pull Isaac Sim Docker Image. refer to https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_container.html

  2. Clone the repo to your ros2 workspace

   git clone https://github.com/hijimasa/isaac-ros2-control-sample.git
   
  1. Get git submodules
   cd isaac-ros2-control-sample
   git submodule update --init --recursive
   
  1. Build a docker image with shell script.
   cd docker
   ./build_docker_image.sh
   
  1. Launch a docker container
   ./launch_docker.sh
   
  1. Build ros2 source codes
   colcon build && source install/setup.sh
   
  1. Launch the package

    7.1. For Mobile Robot

    • To launch simulator
   ros2 run isaac_ros2_scripts launcher
   
  • To spawn robot (another terminal)
   docker exec -it isaac-sim /bin/bash
   ros2 launch isaac_diffbot_sim diffbot_spawn.launch.py
   
  • To launch teleop_twist_keyboard (another terminal)
   docker exec -it isaac-sim /bin/bash
   ros2 run teleop_twist_keyboard teleop_twist_keyboard
   

7.2. For Arm Robot

  • To launch simulator
   ros2 run isaac_ros2_scripts launcher
   
  • To spawn robot (another terminal)
   docker exec -it isaac-sim /bin/bash
   ros2 launch franka_moveit_config demo.launch.py 
   

[!NOTE] For the first time, launching Isaac Sim takes a very long time. Isaac Sim must be fully launched to spawn the robot.

Next

You can make URDF for Isaac Sim with this documentation.

File truncated at 100 lines see the full file

Repo symbol

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble
Repo symbol

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble
Repo symbol

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble
Repo symbol

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble