Skip to content

Commit

Permalink
Update README.md and documentation for Isaac Sim Extension Module
Browse files Browse the repository at this point in the history
Related to space-ros#18
 - Add documentation for Isaac Sim Extension Module
 - Add images for Isaac Sim Extension Module documentation
 - Update README.md with information about Isaac Sim Extension Module
 - Add .gitattributes file to handle large files
  • Loading branch information
franklinselva committed Sep 1, 2024
1 parent 1db6977 commit 3c3a2ba
Show file tree
Hide file tree
Showing 20 changed files with 110 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
docs/resources/* filter=lfs diff=lfs merge=lfs -text
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Space ROS IsaacSim Extension Package

This repository is an extension module for Nvidia's IsaacSim. It provides the following features:

- Simulation Assets for Space Robotics
- ROS2 Interface for Space Robotics
- Extenstions for IsaacSim for Space Robotics

### Prerequisites

| Dependency | Version | Description |
| ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IsaacSim | >=4.0.0 | Nvidia's IsaacSim. You can setup the simulation from official website. Instrcutions [here](https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_workstation.html) |
| ROS2 | ==Humble | ROS2 Humble acts as a middle layer. This will be soon ported to the native project |

### Installation

1. Clone the repository to your local machine
<!-- TODO: Complete the installation instructions -->

### Documentation

1. Simulation Assets
- [Space Robotics Environments](docs/assets//environments.md)
- [Space Robotics Robots](docs/assets/robots.md)
- [Space Robotics Scenes](docs/assets/scenes.md)
2. ROS2 Interface
- [ROS2 Interface](docs/ros2.md)
21 changes: 21 additions & 0 deletions docs/assets/environments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Space ROS Environments

At the moment, we only provide the support for environments focusing on International Space Station (ISS), Mars surface ans Lunar surface.

You can find the assets in the directory `./assets/Environments`. These environments are simulation ready and can be used in the IsaacSim.

## List of Environments

| Environment | Description | Preview |
| ------------ | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| ISS | International Space Station | ![ISS](../resources/images/international-space-station.png) |
| ISS Interior | International Space Station Interior for Astrobee and Robonaut2 | ![ISS Interior](../resources/images/interior-of-international-space-station.png) |
| Mars | Mars Surface of size 800 sq.m for extraction and exploration related tasks | ![Mars](../resources/images/mars-environment-curiosity-rover.png) |
| Moon | Lunar Surface of size 800 sq.m for extraction and exploration related tasks | ![Moon](../resources/images/moon-environment.png) |
| Robotnaut2 | Robotnaut2 in Manipulation Room | ![Robotnaut2](../resources/images/robonaut2-chessboard-manipulation.png) |

## Usage

You can use the environments in your simulation by importing the assets in the IsaacSim. The assets are provided in the `./assets/Environments` directory.

You will need to create scenes in the IsaacSim and import the assets in the scene. The scenes can be created using either IsaacSim's Omniverse Kit or Omniverse Create. More information on creating scenes can be found in the [documentation](./scenes.md).
16 changes: 16 additions & 0 deletions docs/assets/robots.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Robot Assets

The robot assets are the models of the robots that can be used in the IsaacSim simulation environment. The robot assets are available in the `./assets/Robots` directory.

## List of Robots

| Robot Name | Description | Preview |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| Canadarm2 | Canadarm2 is a robotic arm used on the International Space Station (ISS) for various tasks like capturing and docking spacecraft, moving equipment, etc. | ![Canadarm2](../resources/images/canadarm2.png) |
| Canadarm2 17DoFs | Canadarm2 with 17 Degrees of Freedom (DoFs) | ![Canadarm2 17DoFs](../resources/images/canadarm2-17dof.png) |
| Space Robot Manipulator | Space Robot Manipulator is a robotic arm used for manipulation tasks in space. It is designed for tasks like capturing and docking spacecraft, moving equipment, etc. | ![Space Robot Manipulator](../resources/images/space-station-robotic-arm.png) |
| Robotnaut2 | Robotnaut2 is a humanoid robot designed for space exploration. It is equipped with a manipulator arm and a camera for performing tasks in space. | ![Robotnaut2](../resources/images/robonaut.png) |
| Robonaut2 Upper Body | Robonaut2 Upper Body is the upper part of the Robonaut2 humanoid robot. It is equipped with a manipulator arm and a camera for performing tasks in space. | ![Robonaut2 Upper Body](../resources/images/robonaut2-upperbody.png) |
| Curiosity Rover | Curiosity Rover is a Mars rover designed for exploration tasks on the Mars surface. It is equipped with a manipulator arm and a camera for performing tasks. | ![Curiosity Rover](../resources/images/curiosity-rover.png) |
| Perseverance Rover | Perseverance Rover is a Mars rover designed for exploration tasks on the Mars surface. It is equipped with a manipulator arm and a camera for performing tasks. | ![Perseverance Rover](../resources/images/perseverance-rover.png) |
| Ingenuity Helicopter | Ingenuity Helicopter is a Mars helicopter designed for aerial exploration tasks on the Mars surface. It is equipped with a camera for performing tasks. | ![Ingenuity Helicopter](../resources/images/ingenuity-helicopter.png) |
35 changes: 35 additions & 0 deletions docs/assets/scenes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Working with IsaacSim Scenes

Scenes are the core of the IsaacSim simulation environment. They are the virtual world where you can place robots, objects, and other assets to simulate various scenarios. This document provides an overview of how to work with scenes in IsaacSim.

You are already provided with a set of scenes in the IsaacSim. You can find the scenes in the directory `./assets/Scenes`. These scenes are simulation ready and can be used in the IsaacSim.


## List of Scenes

| Scene Name | Description | Preview |
| ----------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------ |
| ISS | International Space Station | ![ISS](../resources/images/canadarm2-iss.png) |
| Robotnaut2 | Robotnaut2 in Manipulation Room | ![Robotnaut2](../resources/images/robonaut2-chessboard-manipulation.png) |
| Curiosity Rover in Mars | Mars Surface with Curiosity Rover for exploration related tasks | ![Mars](../resources/images/mars-environment-curiosity-rover.png) |


## Custom Scenes

You can create your own custom scenes using the IsaacSim Scene Editor. The Scene Editor allows you to create a new scene from scratch or modify an existing scene. You can add robots, objects, and other assets to the scene and configure their properties. The Scene Editor provides a visual interface to place and configure assets in the scene. The assets can be imported from the Asset Browser or created using the Asset Builder.

The available assets are listed here:
- `./assets/Robots` - Contains robot models like Canadarm2, Robotnaut2, etc.
- `./assets/Props` - Contains objects like earth, etc.
- `./assets/Environments` - Contains environment models like Mars, ISS, etc.
- `./assets/Scenes` - Contains the scenes that are simulation ready.

To creaste a custom scene, the simulation environment should have three components:

1. **Environment**: The environment is the background of the scene. It can be a room, a building, a planet, etc. The environment provides the context for the scene. You can choose from the available environment models or create a custom environment using the Asset Builder.
2. **Robot**: The robot is the main actor in the scene. It can be a robot arm, a mobile robot, a humanoid robot, etc. You can choose from the available robot models or create a custom robot using the Asset Builder.
3. **Physics**: The physics engine simulates the physical interactions between the objects in the scene. You can configure the physics properties like gravity, friction, etc. to simulate the real-world physics.
1. **Gravity**: The gravity in the scene can be set to simulate the real-world gravity. You can set the gravity in the scene using the Scene Editor.
2. **Friction**: The friction in the scene can be set to simulate the real-world friction. You can set the friction in the scene using the Scene Editor.
3. **Collision**: The collision properties in the scene can be set to simulate the real-world collisions. You can set the collision properties in the scene using the Scene Editor.
4. **Dynamics**: The dynamics properties in the scene can be set to simulate the real-world dynamics. You can set the dynamics properties in the scene using the Scene Editor.
Binary file added docs/resources/images/canadarm2-17dof.png
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/resources/images/canadarm2-iss.png
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/resources/images/canadarm2.png
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/resources/images/curiosity-rover.png
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/resources/images/ingenuity-helicopter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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/resources/images/moon-environment.png
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/resources/images/perseverance-rover.png
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/resources/images/robonaut.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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/resources/images/robonaut2-upperbody.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions docs/ros2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ROS Bridge for IsaacSim

This document provides an overview of the ROS2 interface for the IsaacSim simulation environment. The ROS2 interface allows you to communicate with the IsaacSim simulation environment using ROS2 messages and services. You can use the ROS2 interface to send commands to the robots, receive sensor data, and interact with the simulation environment.

## Overview

You can refer to the official documentation for the ROS2 interface [here](https://docs.omniverse.nvidia.com/isaacsim/latest/features/external_communication/ext_omni_isaac_ros_bridge.html).

More information will be added soon.

0 comments on commit 3c3a2ba

Please sign in to comment.