RPC is a Modular Framework for Robot Planning, Control, and Deployment. It is designed to integrate multiple physics-based simulators, planning and control modules, visualization tools, plotting and logging utilities, and operator interfaces for robotic systems.
If you find our work useful in your research, please consider the following citation.
The controller has been tested on Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, and Mac OSX Sonoma. It builds on the shoulders of the following software:
- anaconda: For Pybullet simulator
- python dependencies:
$ conda env create -f rpc.yml
- pinocchio: Rigid body dynamics library
- hpipm-cpp: C++ wrapper for HPIPM (QP solver). Note that blasfo, hpipm, and hpipm-cpp wrapper should be installed
- Teleoperation: Please follow the instructions for installation and usage
- MatLogger2: logging numeric data (cpp to MAT-files)
- zmq: socket communication protocol
- protobuf: structured data serialization
- conan: package manager for C/C++ (for Foxglove)
- Foxglove: websocket & schema protocols for robot visualization and parameter operations
- Source conda environment:
$ conda activate rpc
- Compile:
$ mkdir build && cd build
$ cmake ..
$ make -j4
- Run simulation:
$ python simulator/pybullet/draco_main.py
- Compile:
$ mkdir build && cd build
$ cmake ..
$ make -j4
- Run simulation:
$ ./bin/run_draco
- Please see the example implementation for DRACO 3
- Source conda environment:
$ conda activate rpc
- Compile:
$ mkdir -p ~/.conan2/profiles/ && cp .github/conan_profile ~/.conan2/profiles/default
$ conan install conanfile.txt --build=missing
$ cd build
$ cmake .. -DBUILD_WITH_ZMQ_PROTOBUF=ON -DBUILD_WITH_FOXGLOVE=ON
$ make -j4
$ conda env create -f visualize.yml
$ conda activate visualize
$ python UI/foxglove/UI_launcher.py --visualizer=foxglove
-
Access Foxglove server via either:
-
To set up the Foxglove URDF visualizer, please refer to the Readme in the UI folder
$ conda env create -f visualize.yml
$ conda activate visualize
$ python UI/foxglove/UI_launcher.py --visualizer=meshcat
- Please refer to this repository using rpc library
@misc{bang2024rpc,
title={RPC: A Modular Framework for Robot Planning, Control, and Deployment},
author={Bang, Seung Hyeon and Gonzalez, Carlos and Moore, Gabriel and Kang, Dong Ho
and Seo, Mingyo and Sentis, Luis},
year={2024}
eprint={2409.10015},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2409.10015}
}