Skip to content

transic-robot/transic-envs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TRANSIC-Envs: Simulation Environments for Sim-to-Real Policy Transfer

TRANSIC-Envs is a collection of simulation environments built on IsaacGym to support sim-to-real transfer of contact-rich robotic arm manipulation tasks. It is used in our CoRL paper "TRANSIC: Sim-to-Real Policy Transfer by Learning from Online Correction".

It extends the FurnitureSim from the FurnitureBench paper by supporting massive environment parallelization, point-cloud observations, and joint position actions. With our TRANSIC method, policies trained in the simulation can transfer to the real world and accomplish complex tasks, such as assembling the square table from FurnitureBench. Checkout videos on our website!

Table of Contents

  1. Installation
  2. Usage
  3. Acknowledgement
  4. Check out Our Paper
  5. License

Installation

First create a virtual environment named transic with Python 3.8. Note that IsaacGym only supports Python versions up to 3.8.

conda create -y -n transic python=3.8
conda activate transic

Download the IsaacGym Preview 4 release from the website, then follow the installation instructions in the documentation. Ensure that IsaacGym works on your system by running one of the examples from the python/examples directory, like joint_monkey.py.

Once IsaacGym works, clone this repo and install it.

git clone https://github.com/transic-robot/transic-envs
cd transic-envs
pip3 install -e .

Usage

Overview

To show all supported tasks, run

import transic_envs
print(transic_envs.TASK_MAP.keys())

>>> ['InsertFull',
     'InsertFullPCD',
     'InsertSingle',
     'InsertSinglePCD',
     'LiftLeanedLeg',
     'LiftLeanedLegPCD',
     'ReachAndGraspFull',
     'ReachAndGraspFullPCD',
     'ReachAndGraspSingle',
     'ReachAndGraspSinglePCD',
     'ScrewFull',
     'ScrewFullPCD',
     'ScrewSingle',
     'ScrewSinglePCD',
     'Stabilize',
     'StabilizePCD']
Task Description Visualization
Stabilize Push the tabletop into the right corner of the wall such that it remains stable in the following assembly steps.
ReachAndGraspSingle Reach and grasp a single table leg.
ReachAndGraspFull Reach and grasp a table leg with other assembly parts present.
LiftLeanedLeg Lift a table leg leaned against the wall such that it aligns with gripper fingers for the ease of insertion.
InsertSingle Insert a pre-grasped table leg into the assembly hole of the tabletop.
InsertFull Insert a pre-grasped table leg into the assembly hole of the tabletop with other assembly parts present.
ScrewSingle Screw an inserted table leg into the assembly hole.
ScrewFull Screw an inserted table leg into the assembly hole with other assembly parts present.

Observation Space and Action Space

Tasks without the PCD suffix are for teacher policy learning through RL. Tasks with the PCD suffix are for student policy distillation. For teacher policies, the observation space includes proprioception and privileged information about objects, such as pose and velocity. For example:

propObsDim: 29
obsKeys:
  - q
  - ...

privilegedObsDim: 130
privilegedObsKeys:
  - square_table_top_vel
  - ...

For student policies, the observation space only includes proprioception and point cloud. These are easily obtained in the real world.

In terms of the action space, teacher policies are trained with delta end-effector poses, while student policies are trained with joint positions, plus a binary gripper action for both.

# teacher policy
Box(-1.0, 1.0, (7,), float32)

# student policy
Box(-1.0, 1.0, (8,), float32)

Use with TRANSIC Policy Learning

For the detailed usage of TRANSIC-Envs for policy learning, please checkout our algorithm codebase.

Acknowledgement

We would like to acknowledge the following open-source projects that greatly inspired our development.

Check out Our Paper

Our paper is posted on arXiv. If you find our work useful, please consider citing us!

@inproceedings{jiang2024transic,
  title     = {TRANSIC: Sim-to-Real Policy Transfer by Learning from Online Correction},
  author    = {Yunfan Jiang and Chen Wang and Ruohan Zhang and Jiajun Wu and Li Fei-Fei},
  booktitle = {Conference on Robot Learning},
  year      = {2024}
}

License

Component License
Codebase (this repo) MIT License
Franka Asset Apache License
FurnitureBench Asset MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages