Simulating Realistic Robot Training with NVIDIA Isaac Sim

Writer
0

 Software documentation for the O3dyn Simulation model

The Fraunhofer Institute in Germany undertakes applied research in a variety of sectors, including artificial intelligence, cybersecurity, and medicine. The Fraunhofer IML group, one of its 76 research institutes, aims to enhance robotics and logistics. The researchers are putting NVIDIA Isaac Sim's simulation capabilities to the test in order to improve robot design. 

Two images of Obelix, an Autonomous Mobile Robot (AMR) by Fraunhofer IML.
Obelix, the cutting-edge Autonomous Mobile Robot (AMR) developed by Fraunhofer IML, showcasing its versatility and capabilities.

Table of Contents

1. Description
1.1. Main Authors

2. Requirements

3. Installation

4. Usage
4.1. Application in different environments (best practice)
4.2. Manual Control
4.3. Python Scripting
4.4. ROS
4.4.1. Subscribed Topics
4.4.2. Published Topics
4.4.3. LiDAR Simulation
4.4.4. Joints

5. Example Use Cases
5.1. Teleoperation
5.2. Autonomous Navigation
5.3. Pallet Handling



1. Description


The O3dyn (pronounced Odyn) is a highly dynamic and autonomous mobile robot developed by the Fraunhofer Institute for Material Flow and Logistics (IML). It is designed for omnidirectional movement, outdoor operation, and is open source. The O3dyn model provided in this repository is a result of simulation tools like NVIDIA Isaac Sim, which accelerates O3dyn's development and testing.


The key features of O3dyn include its omnidirectional chassis with Mecanum wheels, air suspension system, and the ability to transport large pallets both indoors and outdoors at speeds of up to 36 km/h. The suspension and damping functions ensure the safety of the transported load.


Pallet handling with O3dyn involves lowering the robot to pick up pallets and securing them with grippers. This simulation model enables the fast and cost-effective testing of navigation methods, pallet pick-up routines, constructions, and sensors for O3dyn.


Main Authors


- Marvin Wiedemann (marwin.wiedemann@iml.fraunhofer.de)

- Anna Vasileva (anna.vasileva@iml.fraunhofer.de)

- Renato Gasoto (rgasoto@nvidia.com)


2. Requirements


The O3dyn simulation model in NVIDIA Isaac Sim has high system requirements due to its sophisticated physics simulation and detailed sensor models. To ensure optimal performance, please meet the following hardware and software requirements:


Hardware Requirements


- Operating System: Ubuntu 18.04/20.04 or Windows 10

- CPU: Intel Core i7 (9th Generation) or AMD Ryzen 7 with 8 cores

- RAM: 64 GB or higher

- GPU: NVIDIA GeForce RTX 3080 or equivalent

- VRAM: 10 GB or higher


> Note: These are general requirements; refer to the [NVIDIA Isaac Sim Documentation](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/requirements.html) for specific details.


Software Requirements


- NVIDIA Isaac SIM 2022.2.1

- ROS 1 (Noetic)

- ROS 2 (Foxy) (Humble bridge is not tested yet)


> It is highly recommended to use NVIDIA Isaac Sim Release 2022.2.1 for optimal performance.


3. Installation


The O3dyn simulation model is designed to be used within NVIDIA Isaac Sim. Here's how to install and set it up:


1. Install NVIDIA Isaac Sim by following the official [NVIDIA documentation](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install.html).


2. If you have access to an up-to-date Nucleus server, you can find the basic O3dyn model ready-to-use there. The model is accessible in the official release on the following path:


   ```

   omniverse://YOUR_NUCLEUS_IP/NVIDIA/Assets/Isaac/2022.2.1/Isaac/Robots/O3dyn

   ```


   However, this release does not contain the ROS versions of O3dyn. To access those, we recommend cloning this repository:


   ```

   git clone https://git.openlogisticsfoundation.org/silicon-economy/simulation-model/o3dynsimmodel.git

   ```


3. After cloning the repository, you can use the simulation model depending on your needs. The following versions are available:


   - `o3dyn.usd`: Basic version, controllable manually or via Python scripts.

   - `o3dyn_ros1.usd`: ROS 1 version, controllable via ROS nodes, e.g., teleoperation.

   - `o3dyn_ros2.usd`: ROS 2 version, controllable via ROS 2 nodes, e.g., teleoperation.

   - `o3dyn_ros2_rtx.usd`: ROS 2 version with RTX LiDAR, controllable via ROS 2 nodes, e.g., teleoperation.


> The models use the .usd format, allowing you to open O3dyn in other simulation tools like Blender.


4. If you choose the ROS versions (`o3dyn_ros1.usd` or `o3dyn_ros2.usd`), you'll need to enable the ROS bridge in Isaac Sim. To do this, go to Menu > Window > Extensions and enable the ROS or ROS2 bridge to prepare the model for ROS usage.


5. To improve workflow, consider moving the cloned repository to your Nucleus server directory within Isaac Sim using drag-and-drop in the NVIDIA Isaac Sim GUI.

Two images of Obelix, an Autonomous Mobile Robot (AMR) by Fraunhofer IML.
Obelix, the cutting-edge Autonomous Mobile Robot (AMR) developed by Fraunhofer IML, showcasing its versatility and capabilities.

4. Usage

The O3dyn model can be used for various purposes, including examining the robot's dynamics, programming automated scenarios, testing different sensors, and implementing navigation stacks. Here's how to use it effectively:


4.1. Application in Different Environments (Best Practice)


The O3dyn model can be applied in different environments within Isaac Sim. To set it up, follow these steps:


1. Start Isaac Sim: Launch Isaac Sim and open the desired environment.


2. Locate O3dyn: Find the O3dyn model in the Content Browser, which is usually on the left side of the Isaac Sim interface. You can search for "O3dyn" to quickly locate the models.


3. Drag O3dyn into the Environment: Click and drag the O3dyn model into your environment.


4. Configure the Robot: With the O3dyn model in your environment, you can configure various parameters and sensors. Click on the robot to access its properties and modify parameters such as mass, size, and sensors. This is also where you can set up LiDAR and camera sensors.


5. Apply Physics Simulation: The O3dyn model uses NVIDIA PhysX for physics simulation. Ensure that the physics simulation is enabled for the robot. You can do this by clicking on the robot and checking the "Physics Simulation" option.


6. Control the Robot: Depending on your use case, you can control the robot manually using the Isaac Sim interface, create scripted behaviors using Python, or use ROS for more advanced control.


4.2. Manual Control

You can manually control the O3dyn robot in Isaac Sim using the built-in control interface. To control the robot manually:


1. Select the O3dyn robot in the Isaac Sim environment.


2. Use the arrow keys or WASD keys to move the robot in the desired direction.


3. Use the mouse to change the camera view.


4. Experiment with different actions and movements to get familiar with the robot's behavior.


4.3. Python Scripting


Python scripting allows you to create customized behaviors and control the O3dyn robot programmatically. You can use the Python API provided by Isaac Sim to interact with the robot, sensors, and the environment. Refer to the official NVIDIA Isaac Sim Python scripting documentation for detailed information on scripting the O3dyn robot.


4.4. ROS


ROS (Robot Operating System) is a powerful middleware framework for robotics development. The O3dyn model in Isaac Sim supports ROS integration, allowing you to control the robot and communicate with other ROS nodes. Below are some important details about using ROS with O3dyn:


4.4.1. Subscribed Topics


The O3dyn model subscribes to various topics to receive commands and sensor data. Key subscribed topics include:


- `/cmd_vel`: To control the robot's velocity, publish Twist messages to this topic.

- `/gripper_controller/gripper_cmd`: To control the gripper, publish commands to this topic.


4.4.2. Published Topics

The O3dyn model publishes sensor data and robot state information. Important published topics include:


- `/joint_states`: Provides the joint state information for the robot.

- `/camera/color/image_raw`: Publishes raw color camera images.

- `/camera/depth/image_rect_raw`: Publishes raw depth camera images.

- `/tf`: Publishes the transform tree for robot components.


4.4.3. LiDAR Simulation


The O3dyn model can simulate LiDAR sensors. To access LiDAR data in ROS, subscribe to the following topics:


- `/scan`: Provides laser scan data from the LiDAR sensor.


4.4.4. Joints


The O3dyn robot has various joints that can be controlled individually or together. You can interact with these joints using ROS by publishing joint state messages or using ROS controllers.

5. Example Use Cases


The O3dyn simulation model can be used for a wide range of use cases. Here are a few examples:


5.1. Teleoperation


Use the O3dyn model to practice teleoperating the robot and getting a feel for its dynamics. You can control it using the Isaac Sim interface or by sending Twist messages via ROS to `/cmd_vel`. Teleoperation is essential for testing basic movement and navigation.


5.2. Autonomous Navigation


Implement autonomous navigation algorithms and test them in a controlled environment. You can use ROS navigation stacks or custom algorithms to enable the robot to move autonomously, avoid obstacles, and reach specific goals.


5.3. Pallet Handling

The O3dyn robot is designed for pallet handling. Use the simulation model to develop and test pallet handling routines, including pallet pickup and drop-off. You can also integrate gripper control with ROS to simulate real-world pallet handling scenarios.


This documentation provides a comprehensive guide to using the O3dyn Simulation Model in NVIDIA Isaac Sim. Whether you're exploring the robot's capabilities, developing custom behaviors, or integrating it into ROS-based projects, this simulation model offers a powerful platform for experimentation and development. Explore the possibilities and accelerate your robotics projects with O3dyn in Isaac Sim.


Reference:



Post a Comment

0Comments

Post a Comment (0)