GithubHelp home page GithubHelp logo

tiers / isaac-marl-mobile-manipulation Goto Github PK

View Code? Open in Web Editor NEW
22.0 2.0 3.0 10.96 MB

Multi-Agent Reinforcement Learning for Mobile Manipulation with NVIDIA Isaac Sim

License: MIT License

Python 96.72% CMake 3.28%

isaac-marl-mobile-manipulation's Introduction

Multi-Agent Reinforcement Learning for Mobile Manipulation with Isaac Sim

Partially and Globally Observable Multi-Agent Reinforcement Learning for Mobile Manipulation with NVIDIA Isaac Sim

Introduction

In this repo, we explore multi-agent RL for distributing the control policies of a mobile manipulator. We study whether separating the base and manipulator control policies yields a different performance or robustness.

Installation

(Modified from https://github.com/NVIDIA-Omniverse/OmniIsaacGymEnvs/tree/release/2022.2.0)

Follow the Isaac Sim documentation to install the latest Isaac Sim release. (Only tested with Isaac Sim version 2022.2.0.)

Once installed, this repository can be used as a python module, omniisaacgymenvs, with the python executable provided in Isaac Sim.

To install omniisaacgymenvs, first clone this repository:

git clone https://github.com/TIERS/isaac-marl-mobile-manipulation

Once cloned, locate the python executable in Isaac Sim. By default, this should be python.sh. We will refer to this path as PYTHON_PATH.

To set a PYTHON_PATH variable in the terminal that links to the python executable, we can run a command that resembles the following. Make sure to update the paths to your local path.

For Linux: alias PYTHON_PATH=~/.local/share/ov/pkg/isaac_sim-*/python.sh
For Windows: doskey PYTHON_PATH=C:\Users\user\AppData\Local\ov\pkg\isaac_sim-*\python.bat $*
For IsaacSim Docker: alias PYTHON_PATH=/isaac-sim/python.sh

Install omniisaacgymenvs as a python module for PYTHON_PATH. Change directory to root of this repo and run:

PYTHON_PATH -m pip install -e .

Training

Training can be run with the following commands from inside the omniisaacgymenvs folder:

For single-agent PPO

PYTHON_PATH scripts/rlgames_train.py task=MobileFranka

For MARL with full observations

PYTHON_PATH scripts/rlgames_train.py task=MobileFrankaMARL

For MARL with partial observations

PYTHON_PATH scripts/rlgames_train.py task=MobileFrankaMARL_cv

You can vary the parallel environments number by num_envs argument:

PYTHON_PATH scripts/rlgames_train.py task=MobileFranka num_envs=512

Note that

  • rl-games requires minibatch_size defined in the training config to be a factor of horizon_length * num_envs. If this is not the case, you may see an assertion error assert(self.batch_size % self.minibatch_size == 0). Please adjust the parameters in the training config yaml file accordingly.
  • Good starting point for figuring out the minibatch size is usually (horizon_length * num_envs) / 2

For more information, please check out the documentation for OmniIsaacGymEnvs.

isaac sim training

Exporting the neural network

Neural networks can be exported to ONNX format for deployment on a real robot. After running the following scripts the .onnx file will appear in the folder where you executed the script.

For single-agent PPO

PYTHON_PATH scripts/rlgames_onnx_normalized.py task=MobileFranka test=True checkpoint=CHECKPOINT_PATH

For multi-agent

PYTHON_PATH scripts/rlgames_onnx_normalized_marl.py task=MobileFrankaMARL test=True checkpoint=CHECKPOINT_PATH

(change MobileFrankaMARL to MobileFrankaMARL_cv for partial MARL)

Citation

If you use this dataset for any academic work, please cite the following publication:

@misc{wenshuai2023less,
    title={Less Is More: Robust Robot Learning via Partially Observable Multi-Agent Reinforcement Learning}, 
    author={Wenshuai Zhao and Eetu Rantala and Joni Pajarinen and Jorge Peña Queralta},
    year={2023},
    eprint={},
    archivePrefix={arXiv},
    primaryClass={cs.RO}
}

isaac-marl-mobile-manipulation's People

Contributors

jopequ avatar ranzuh avatar

Stargazers

Mohammed Azharudeen avatar  avatar LFM avatar Nahyun Kwon avatar  avatar 陈志林 avatar Dinara Aliyeva avatar Bomin Zhang avatar  avatar 賴溡雨Lai Shih-Yu avatar  avatar Mohamed Amr avatar  avatar Cheol-Hui Min avatar TheMadScientiist avatar  avatar Jinseok Kim avatar luqin avatar sanjeev avatar Makoto Sato avatar HyeRyung Choo avatar zcy avatar

Watchers

justiceli avatar LFM avatar

isaac-marl-mobile-manipulation's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.