Skip to content

🤖 Simulate and control two Universal Robots arms simultaneously using NVIDIA Isaac Sim. Explore real-time control, collision avoidance, and path planning in a digital twin environment.

License

Notifications You must be signed in to change notification settings

MetaToolEU/MT_Isaac_sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

🤖 Simulate and control two Universal Robots (UR) arms concurrently using NVIDIA Isaac Sim. This project provides a digital twin environment for realistic robotic simulation and testing control algorithms.

UR_demo_1.mp4

Features

  • Dual UR Arm Simulation: Simulate UR3e arms simultaneously.
  • Real-Time Digital Twin Control: Implement real-time control using UR RTDE interface.
  • Collision Avoidance: Integrate collision detection for safe operations.
  • Path Planning: Develop optimized trajectories using Isaac Sim extensions.

System Requirements

To run the Docker-based simulation tutorial, ensure your system meets the following requirements:

  • Operating System: Ubuntu 20.04 LTS or later (preferred); Docker is also available for Windows and macOS.
  • Docker: Docker Engine and Docker Compose installed (version 1.27+ recommended).
  • CPU: Multi-core processor (e.g., Intel Core i7 or equivalent).
  • GPU: NVIDIA GPU with CUDA support (e.g., RTX 2060 or higher) and driver version 525.60.11 or later.
  • RAM: Minimum 8 GB (16 GB recommended).
  • Storage: At least 50 GB of free disk space for Docker images and data.
  • Network: Stable internet connection for downloading Docker images and dependencies.

Important: Ensure Docker is properly configured to utilize the GPU if required and that your system has adequate resources for smooth operation. Verify GPU availability with the following command:

docker run --rm --gpus all nvidia/cuda:11.2.2-base-ubuntu20.04 nvidia-smi

Additional Requirements

  • Isaac Sim
  • Python 3.7 or later
  • UR RTDE
  • Curobo v0.6.2 (The project is developed and tested on Curobo version 0.6.2)

Setup using Docker (RECOMENDED)

  1. Setup NVIDIA GPU Cloud (NGC) Environment:

    Ensure you have an NGC API key. Follow the instructions here to generate one.

    Log in to NGC using Docker:

    docker login nvcr.io
    Username: $oauthtoken
    Password: [Your NGC API Key]
  2. Install and configure your omniverse Nucleus user:

    Ensure that you have Omniverse Launcher installed

    After installing Omniverse Launcher, configure your local Nucleus Server

Getting Started

1. Clone the repository:

git clone https://github.com/MetaToolEU/MT_Isaac_sim.git
cd MT_Isaac_sim/Docker

2 Build the Docker image:

Run the provided script to set up the environment and build the Docker image:

bash build_docker.sh isaac_sim_2023.1.0

3 Run the Docker Container:

Enable GUI visualization on your host machine:

xhost + # this will enable gui visualization

Start the Isaac Sim container:

bash start_docker.sh isaac_sim_2023.1.0
cd examples/Isaac_launch

If you are using Curobo local installation :

1. Add an alias to Isaac Sim’s python in your bashrc file:

echo "alias omni_python='~/.local/share/ov/pkg/isaac_sim-2022.2.1/python.sh'" >> ~/.bashrc

2. Update your bash environment to include the new alias:

source ~/.bashrc

Launch Demos

1. To launch dual robot digital twin run the Python script with Isaac Sim:

Replace "yyy.yyy.yyy.yyy" with the actual IP addresses of your first and second robots.

omni_python isaac_rtde_dual_arm.py --robot-ip "yyy.yyy.yyy.yyy" --robot-ip2 "yyy.yyy.yyy.yyy"

2. To launch the Curobo multi_arm_reacher_MT example run :

omni_python multi_arm_reacher_MT.py

3. To launch the Curobo Simple_stacking_ur example run :

omni_python simple_stacking_ur.py

About

🤖 Simulate and control two Universal Robots arms simultaneously using NVIDIA Isaac Sim. Explore real-time control, collision avoidance, and path planning in a digital twin environment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published