Skip to content

Synria-Robotics/Synria-Robots-Isaaclab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synria Robots Isaac Lab

English Version | 中文版

A comprehensive simulation framework for Synria robots (Bessica_D, Bessica_M, Alicia_D) using NVIDIA Isaac Sim and Isaac Lab.

Overview

This repository provides a complete simulation environment for Synria robotic systems, featuring:

  • 🤖 Multiple Robot Types: Support for Bessica_D, Bessica_M, and Alicia_D robots

  • 🎮 VR Teleoperation: Real-time teleoperation with camera streaming

  • 🔄 DDS Communication: Distributed communication for real-time control

  • 🎯 Task Framework: Extensible task system for various applications

Robot Types

Bessica_D

┌─────────────────┐
│   Left Arm      │ 7 joints
│   Right Arm     │ 7 joints
│   Grippers      │ 4 joints
└─────────────────┘
Total: 18 DOF (14 arm + 4 gripper)

Features:

  • Dual-arm fixed-base robot
  • 7 revolute joints per arm
  • 4 prismatic gripper joints (2 per arm)
  • Ideal for arm-only manipulation tasks

Bessica_M

┌─────────────────┐
│     Torso       │ 3 joints
│   Left Arm      │ 7 joints
│   Right Arm     │ 7 joints
│   Grippers      │ 4 joints
└─────────────────┘
Total: 21 DOF (3 torso + 14 arm + 4 gripper)

Features:

  • Dual-arm with waist humanoid robot
  • 3 revolute torso joints
  • 7 revolute joints per arm
  • 4 prismatic gripper joints
  • Full-body manipulation capabilities

Alicia_D

┌─────────────────┐
│   Single Arm    │ 6 joints
│   Gripper       │ 2 joints
└─────────────────┘
Total: 8 DOF (6 arm + 2 gripper)

Features:

  • Single-arm fixed-base robot
  • 6-DOF manipulator
  • 2 prismatic gripper joints
  • Compact design for single-arm tasks

Prerequisites

  • Operating System: Ubuntu 22.04 or later
  • Python: 3.10
  • GPU: NVIDIA GPU with CUDA 12.2 support (tested with RTX 3090)
  • NVIDIA Driver: Version 535.183.01 or compatible
  • Conda: Package manager for environment setup
  • CUDA: For GPU acceleration (optional)
  • DDS Middleware: For teleoperation features (installed via pyproject.toml)

Note: Isaac Sim 4.5.0 is automatically installed via pyproject.toml during the installation process. No manual installation required.

Installation

1. Create Conda Environment

conda create -n bessica python=3.10 pinocchio=3.1.0 numpy=1.26.4 -c conda-forge
conda activate bessica

2. Install Project Dependencies

Install all project dependencies from pyproject.toml (includes PyTorch, Isaac Sim, Isaac Lab, and other core packages):

pip install --upgrade pip
pip install -e . --extra-index-url https://download.pytorch.org/whl/cu121 --extra-index-url https://pypi.nvidia.com

Important: Both --extra-index-url flags are required:

  • PyTorch CUDA wheels from https://download.pytorch.org/whl/cu121
  • Isaac Sim from https://pypi.nvidia.com

Note: Isaac Sim installation can take significant time and requires substantial disk space.

Verify Installation:

python -c "import torch; print(f'PyTorch: {torch.__version__}, CUDA: {torch.cuda.is_available()}, GPUs: {torch.cuda.device_count()}')"

3. Download Robot Assets

Install git-lfs (if needed) and run the fetch script:

sudo apt install git-lfs  # Ubuntu
./fetch_assets.sh

Assets will be available under assets/robots/ in the project root.

Quick Start

  1. Run a simple raise-hands task

    python -m synria_lab.app.main --task Isaac-Bessica-RaiseHands-v0 --robot_type bessica_d
  2. Run VR teleoperation (Bessica_M)

    python -m synria_lab.app.main --task Isaac-VR-Teleoperation-Bessica-M-v0 --robot_type bessica_m --enable_cameras

Available Tasks

1. Raise Hands Task

A demonstration task that raises both arms of the robot to a target pose.

python -m synria_lab.app.main --task Isaac-Bessica-RaiseHands-v0 --robot_type bessica_d

Supported robots: Bessica_D, Bessica_M, Alicia_D

2. VR Teleoperation Task

Real-time teleoperation with camera streaming and DDS communication.

# For Bessica_D
python -m synria_lab.app.main --task Isaac-VR-Teleoperation-Bessica-D-v0 --robot_type bessica_d --enable_cameras

# For Bessica_M
python -m synria_lab.app.main --task Isaac-VR-Teleoperation-Bessica-M-v0 --robot_type bessica_m --enable_cameras

Features:

  • Real-time camera image streaming
  • DDS-based command reading
  • Robot state publishing
  • Interactive VR control

Command-Line Interface

Main Arguments

Argument Type Default Description
--task string Isaac-Bessica-RaiseHands-v0 Task name (gymnasium registered)
--robot_type string bessica_m Robot type: bessica_d, bessica_m, alicia_d
--num_envs int 1 Number of parallel environments
--action_source string bessica_d Action source (dds, simple, replay, etc.)
--device string cuda:0 Compute device (cuda:0, cpu)
--headless flag False Run without GUI

Examples

Basic simulation:

python -m synria_lab.app.main --task Isaac-Bessica-RaiseHands-v0 --robot_type bessica_d

Headless mode:

python -m synria_lab.app.main --task Isaac-Bessica-RaiseHands-v0 --robot_type bessica_d --headless

Multiple environments:

python -m synria_lab.app.main --task Isaac-Bessica-RaiseHands-v0 --robot_type bessica_d --num_envs 4

With camera:

python -m synria_lab.app.main --task Isaac-VR-Teleoperation-Bessica-M-v0 --robot_type bessica_m --enable_cameras

Project Structure (Isaac Lab–style)

Synria-Robots-Isaaclab/
├── synria_lab/           # Main package (recommended imports)
│   ├── app/              # Entry points
│   ├── envs/             # Env configs (Bessica/Alicia)
│   ├── tasks/            # Gym tasks & VR teleop
│   ├── control/          # Action providers
│   ├── comm/             # DDS + shared memory
│   ├── robots/           # Robot state & kinematics
│   ├── config/           # Robot & camera configs
│   ├── image/            # Image server utilities
│   └── utils/            # Common utilities
├── synria_lab/app/main.py  # Main entry (run: python -m synria_lab.app.main)
├── docs/                 # Usage docs
└── legacy dirs           # Backward-compatible wrappers to `synria_lab`

Key Features

🎯 Unified Action Provider

The SynriaActionProvider provides a unified interface for controlling all robot types:

  • Bessica_D/M: Dual-arm control in logical order [left1-N, right1-N]
  • Alicia_D: Single-arm control [Joint1-6]
  • Automatic mapping to interleaved articulation layout
  • DDS command reading and state publishing

🔄 DDS Communication

Distributed communication for real-time control:

  • Robot state publishing
  • Command reading from external systems
  • Shared memory management
  • Multi-robot support

Documentation

Troubleshooting

PyTorch CUDA Issues

If PyTorch doesn't detect your GPU:

# Verify CUDA
nvcc --version
nvidia-smi

# Reinstall PyTorch with CUDA support
pip uninstall torch torchvision
pip install torch==2.5.1 torchvision==0.20.1 --index-url https://download.pytorch.org/whl/cu121

Isaac Sim Installation Issues

If you encounter the "Didn't find wheel for isaacsim" error, ensure you're using both extra index URLs:

# Make sure to include both extra-index-url flags
pip install --upgrade pip setuptools wheel
pip install -e . --extra-index-url https://download.pytorch.org/whl/cu121 --extra-index-url https://pypi.nvidia.com

# Or install Isaac Sim separately first:
pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.com -v

Conda Environment Issues

# Use mamba for faster installation
conda install mamba -c conda-forge
mamba create -n bessica python=3.10 pinocchio=3.1.0 numpy=1.26.4 -c conda-forge

Notes

  • PyTorch cu121 wheels are compatible with CUDA 12.1, 12.2, and 12.3
  • Isaac Sim requires NVIDIA GPU with CUDA support and sufficient VRAM (recommended: 8GB+)
  • Tested on Ubuntu 22.04 with NVIDIA Driver 535.183.01

Acknowledgement

This code builds upon following open-source code-bases. Please visit the URLs to see the respective LICENSES:

License

Copyright (c) 2025 Synria Robotics Co., Ltd.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See LICENSE for details.

Contact

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


Note: This framework is designed for research and development purposes. Ensure proper safety measures when deploying to physical robots.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published