isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

ros2 sensor-simulation isaac-sim ros2-control ros2-humble diffbot_description franka_moveit_config isaac_diffbot_sim moveit_resources_panda_description velocity_pub

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
CI status No Continuous Integration
Released UNRELEASED
Tags ros2 sensor-simulation isaac-sim ros2-control ros2-humble
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

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.

Bug

  • LaserScan topic do not published when 2D Lidar config file is used.
  • You should uncheck “Normarize Image” in your depth topic in RViz2 if you get black depth image.

CONTRIBUTING

No CONTRIBUTING.md found.

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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

isaac-ros2-control-sample repository

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