Skip to content

Commit

Permalink
update document
Browse files Browse the repository at this point in the history
  • Loading branch information
hijimasa committed Mar 2, 2024
1 parent 6cac41a commit 0be55c9
Show file tree
Hide file tree
Showing 108 changed files with 16,885 additions and 1,810 deletions.
28 changes: 26 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,26 @@
# isaac_ros2_utils
This ROS 2 package provides various utilities (operation with ros2_control, automatic sensor generation and sensor data publishing) for easy use of Isaac Sim.
# ROS 2 utilities for Isaac Sim

This repository provides utilities to use [Isaac Sim](https://developer.nvidia.com/isaac-sim) like [Gazebo classic](https://classic.gazebosim.org/).

## Features

- This spawns URDF model at the desired timing and position.
- This provide ros2_control plugin to use ros2_controller, for example diff_drive_controller.
- This supports rotational and prismatic 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 launchs sensors and controller at the desired timing.

## System Requirements

| Element | Minimum Spec |
|----|--------------------|
| OS | Ubuntu 22.04 |
| CPU | Intel Core i7 (7th Generation) <br/> AMD Ryzen 5 |
| Cores | 4 |
| RAM | 32GB |
| Storage | 50GB SSD |
| GPU | GeForce RTX 2070 |
| VRAM | 8GB |
| ROS 2 | Humble |

48 changes: 48 additions & 0 deletions docs/Demos/demo_for_arm_robot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Demo For Arm Robot

![demo movie](../figs/arm_robot_test.gif)

1. Install Docker and pull [Isaac Sim Docker Image](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_container.html).

2. Clone the repo to your ros2 workspace<br/>
```bash
git clone https://github.com/hijimasa/isaac-ros2-control-sample.git
```

3. Get git submodules<br/>
```bash
cd isaac-ros2-control-sample
git submodule update --init --recursive
```

4. Build a docker image with shell script.<br/>
```bash
cd docker
./build_docker_image.sh
```

5. Launch a docker container<br/>
```bash
./launch_docker.sh
```

6. Build ros2 source codes<br/>
```bash
colcon build && source install/setup.bash
```

7. Launch simulator<br/>
```bash
ros2 run isaac_ros2_scripts launcher
```

8. To spawn robot (another terminal)<br/>
```bash
docker exec -it isaac-sim /bin/bash
ros2 launch franka_moveit_config demo.launch.py
```
<br/>You can control the robot from RViz.

> [!NOTE]
> For the first time, launching Isaac Sim takes a very long time.
> Isaac Sim must be fully launched to spawn the robot.
53 changes: 53 additions & 0 deletions docs/Demos/demo_for_mobile_robot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Demo For Mobile Robot

![demo movie](../figs/shm_movie-2023-08-05_13.14.29.gif)

1. Install Docker and pull [Isaac Sim Docker Image](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_container.html).

2. Clone the repo to your ros2 workspace<br/>
```bash
git clone https://github.com/hijimasa/isaac-ros2-control-sample.git
```

3. Get git submodules<br/>
```bash
cd isaac-ros2-control-sample
git submodule update --init --recursive
```

4. Build a docker image with shell script.<br/>
```bash
cd docker
./build_docker_image.sh
```

5. Launch a docker container<br/>
```bash
./launch_docker.sh
```

6. Build ros2 source codes<br/>
```bash
colcon build && source install/setup.bash
```

7. Launch simulator<br/>
```bash
ros2 run isaac_ros2_scripts launcher
```

8. Spawn robot (another terminal)<br/>
```bash
docker exec -it isaac-sim /bin/bash
ros2 launch isaac_diffbot_sim diffbot_spawn.launch.py
```

9. Launch teleop_twist_keyboard (another terminal)<br/>
```bash
docker exec -it isaac-sim /bin/bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
```

> [!NOTE]
> For the first time, launching Isaac Sim takes a very long time.
> Isaac Sim must be fully launched to spawn the robot.
25 changes: 25 additions & 0 deletions docs/LICENCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# LICENCE

```
MIT License
Copyright (c) 2024 Masaaki Hijikata
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
13 changes: 13 additions & 0 deletions docs/Tutorials/tutorial.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Tutorials

- Set up URDF for ros2_control

- Set up URDF for Sensors

- How to Use Simulator Launcher

- How to Spawn Robot

- How to Launch ros2_control

- How to Launch Sensors
Binary file added docs/figs/arm_robot_test.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/figs/shm_movie-2023-06-13_21.52.52.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/figs/shm_movie-2023-08-05_13.14.29.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 48 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Introduction

![demo movie](./figs/shm_movie-2023-06-13_21.52.52.gif)

[This repository](https://github.com/hijimasa/isaac_ros2_utils) provides utilities to use [Isaac Sim](https://developer.nvidia.com/isaac-sim) like [Gazebo classic](https://classic.gazebosim.org/).

## Features

- This spawns URDF model at the desired timing and position.
- This provide ros2_control plugin to use ros2_controller, for example diff_drive_controller.
- This supports rotational and prismatic 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 launchs sensors and controller at the desired timing.

## System Requirements

| Element | Minimum Spec |
|----|--------------------|
| OS | Ubuntu 22.04 |
| CPU | Intel Core i7 (7th Generation) <br/> AMD Ryzen 5 |
| Cores | 4 |
| RAM | 32GB |
| Storage | 50GB SSD |
| GPU | GeForce RTX 2070 |
| VRAM | 8GB |
| ROS 2 | Humble |

Please refer to [Isaac Sim System Requirements](https://docs.omniverse.nvidia.com/isaacsim/latest/installation/requirements.html#system-requirements).

## Demo

[This sample repository](https://github.com/hijimasa/isaac-ros2-control-sample) provides demonstlations for mobile robot and arm robot.

Please check following documents.

[For Mobile Robot](./Demos/demo_for_mobile_robot.md)

[For Arm Robot](./Demos/demo_for_arm_robot.md)

## How to Use

Check [this tutorial](./Tutorials/tutorial.md).

## LICENCE

This repository is provided with MIT licence.
Please refer to [this](./LICENCE.md).
1 change: 1 addition & 0 deletions docs/ja/LICENCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# ライセンス
48 changes: 48 additions & 0 deletions docs/ja/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# はじめに

![demo movie](../figs/shm_movie-2023-06-13_21.52.52.gif)

[このリポジトリ](https://github.com/hijimasa/isaac_ros2_utils)は、[Gazebo Classic](ttps://classic.gazebosim.org/)のような使いやすいユーティリティツールを[Isaac Sim](https://developer.nvidia.com/isaac-sim)で提供するためのものです。

## 特徴

- URDFモデルを任意のタイミングと位置姿勢で生成できます。
- ros2_controller(例:diff_drive_controller)を使用するためのros2_controlプラグインを提供します。
- 位置制御と速度制御を使った回転関節と角柱関節をサポートしています。
- Isaac Simからros2_controlに関節の状態(位置、速度、力)を送信します。
- URDFの記述からセンサを起動します。
- センサとコントローラを任意のタイミングで起動できます。

## システム要件

| 要素 | 最小スペック |
|----|--------------------|
| OS | Ubuntu 22.04 |
| CPU | Intel Core i7 (7th Generation) <br/> AMD Ryzen 5 |
| Cores | 4 |
| RAM | 32GB |
| Storage | 50GB SSD |
| GPU | GeForce RTX 2070 |
| VRAM | 8GB |
| ROS 2 | Humble |

[こちら](https://docs.omniverse.nvidia.com/isaacsim/latest/installation/requirements.html#system-requirements)のIsaac Simのシステム要件を参照してください。

## デモ

[サンプルリポジトリ](https://github.com/hijimasa/isaac-ros2-control-sample)で移動ロボットとアームロボットのデモンストレーションを提供しています。

使い方は下記のドキュメントを参照ください。

- [移動ロボット向け](./デモ/demo_for_mobile_robot.md)

- [アームロボット向け](./デモ/demo_for_arm_robot.md)

## 使い方

[こちら](./チュートリアル/tutorial.md)のドキュメントを参照ください。

## ライセンス

このリポジトリはMITライセンスで提供されます。
詳細は[こちら](./LICENCE.md)を参照ください。
13 changes: 13 additions & 0 deletions docs/ja/チュートリアル/tutorial.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# チュートリアル

- URDFへのros2_cotnrolタグの記述方法

- URDFへのセンサ情報の記述方法

- シミュレーションランチャーの使い方

- ロボットの生成方法

- ros2_controlの立ち上げ方

- センサの立ち上げ方
46 changes: 46 additions & 0 deletions docs/ja/デモ/demo_for_arm_robot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# アームロボット向けデモ

1. Install Docker and pull [Isaac Sim Docker Image](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_container.html).

2. Clone the repo to your ros2 workspace<br/>
```bash
git clone https://github.com/hijimasa/isaac-ros2-control-sample.git
```

3. Get git submodules<br/>
```bash
cd isaac-ros2-control-sample
git submodule update --init --recursive
```

4. Build a docker image with shell script.<br/>
```bash
cd docker
./build_docker_image.sh
```

5. Launch a docker container<br/>
```bash
./launch_docker.sh
```

6. Build ros2 source codes<br/>
```bash
colcon build && source install/setup.bash
```

7. Launch simulator<br/>
```bash
ros2 run isaac_ros2_scripts launcher
```

8. To spawn robot (another terminal)<br/>
```bash
docker exec -it isaac-sim /bin/bash
ros2 launch franka_moveit_config demo.launch.py
```
<br/>You can control the robot from RViz.

> [!NOTE]
> For the first time, launching Isaac Sim takes a very long time.
> Isaac Sim must be fully launched to spawn the robot.
51 changes: 51 additions & 0 deletions docs/ja/デモ/demo_for_mobile_robot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 移動ロボット向けデモ

1. Install Docker and pull [Isaac Sim Docker Image](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_container.html).

2. Clone the repo to your ros2 workspace<br/>
```bash
git clone https://github.com/hijimasa/isaac-ros2-control-sample.git
```

3. Get git submodules<br/>
```bash
cd isaac-ros2-control-sample
git submodule update --init --recursive
```

4. Build a docker image with shell script.<br/>
```bash
cd docker
./build_docker_image.sh
```

5. Launch a docker container<br/>
```bash
./launch_docker.sh
```

6. Build ros2 source codes<br/>
```bash
colcon build && source install/setup.bash
```

7. Launch simulator<br/>
```bash
ros2 run isaac_ros2_scripts launcher
```

8. Spawn robot (another terminal)<br/>
```bash
docker exec -it isaac-sim /bin/bash
ros2 launch isaac_diffbot_sim diffbot_spawn.launch.py
```

9. Launch teleop_twist_keyboard (another terminal)<br/>
```bash
docker exec -it isaac-sim /bin/bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
```

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

0 comments on commit 0be55c9

Please sign in to comment.