![]() |
isaac-ros2-control-sample repositoryros2 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) |
Packages
Name | Version |
---|---|
diffbot_description | 0.0.0 |
franka_moveit_config | 0.3.0 |
isaac_diffbot_sim | 0.0.0 |
moveit_resources_panda_description | 2.0.6 |
velocity_pub | 0.0.0 |
README
isaac-ros2-control-sample
- ros2_control Demo
- LiDAR output Demo
- Camera output 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
- Docker
- Isaac Sim Docker Image (Tested using image based on nvcr.io/nvidia/isaac-sim:2022.2.1)
- Nucleus Server (I installed with the Omniverse Laungher)
How to use
-
Install Docker and pull Isaac Sim Docker Image. refer to https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_container.html
-
Clone the repo to your ros2 workspace
git clone https://github.com/hijimasa/isaac-ros2-control-sample.git
- Get git submodules
cd isaac-ros2-control-sample
git submodule update --init --recursive
- Build a docker image with shell script.
cd docker
./build_docker_image.sh
- Launch a docker container
./launch_docker.sh
- Build ros2 source codes
colcon build && source install/setup.sh
-
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.