/deoxys_control

A modular, real-time controller library for Franka Emika Panda robots

Primary LanguagePythonApache License 2.0Apache-2.0

Tests Passing GitHub Contributors Issues

[Documentation]

Deoxys is a modular, real-time controller library for Franka Emika Panda arm, aiming to facilitate a wide range of robot learning research. Deoxys comes with a user-friendly python interface and real-time controller implementation in C++. If you are a robosuite user, Deoxys APIs provide seamless transfer from you simulation codebase to real robot experiments!

Past.projects.using.Deoxys.mp4

Cite our codebase

If you use this codebase for your research projects, please cite our codebase based on the following project:

@article{zhu2022viola,
  title={VIOLA: Imitation Learning for Vision-Based Manipulation with Object Proposal Priors},
  author={Zhu, Yifeng and Joshi, Abhishek and Stone, Peter and Zhu, Yuke},
  journal={arXiv preprint arXiv:2210.11339},
  doi={10.48550/arXiv.2210.11339},
  year={2022}
}

Installation of codebase

Overall, the installation has three parts:

  1. Install dependencies by running InstallPackage
  2. Compile desktop-side codebase (Python)
  3. Compile NUC-side codebase (C++)

Here are the details. For more information, please refer to the Codebase Installation Page.

Clone this repo to the robot workspace directory on Desktop computer (e.g. /home/USERNAME/robot-control-ws)

cd deoxys_control/deoxys

Install dependencies

Run the InstallPackage file to install necessary packages.

./InstallPackage

Deoxys - Desktop

Make sure that you are in your python virtual environment before building this.

make -j build_deoxys=1

And install all the python dependencies (feel free to add pull requests if anything is missing) from deoxys_control/requirements.txt, by doing:

pip install -U -r requirements.txt

Franka Interface - Intel NUC

Franka Interface is the part which is supposed to run on NUC. Run this command in directory deoxys_control/deoxys/ on Intel NUC.

make -j build_franka=1

A laundry list of pointers:

Control the robot

Commands on Desktop

Here is a quick guide to run Deoxys.

Under deoxys_control/deoxys, run

python examples/run_deoxys_with_space_mouse.py 

Change 1) spacemouse vendor_id and product_id (here) 2) robot interface config (here) if necessary.

You might also check and change the PC / NUC names here.

Commands on Control PC (Intel NUC)

Under deoxys_control/deoxys, run two commands. One for real-time control of the arm, one for non real-time control of the gripper.

bin/franka-interface config/charmander.yml
bin/gripper-interface config/charmander.yml