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
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}
}
Overall, the installation has three parts:
- Install dependencies by running
InstallPackage
- Compile desktop-side codebase (Python)
- 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
Run the InstallPackage
file to install necessary packages.
./InstallPackage
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 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
- How to turn on/off the robot
- How to install spacemouse
- How to set up the RTOS
- How to record and replay a trajectory
- How to write a simple motor program
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.
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