Skip to content

shbang91/rpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

925 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Robot Planning, Control, and Deployment (rpc)

Build

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.

๐Ÿ“ฆ Mandatory Dependencies

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

๐Ÿ—ž๏ธ Optional Dependencies

๐Ÿšถ MPC for Locomotion

  • hpipm-cpp: C++ wrapper for HPIPM (QP solver). Note that blasfo, hpipm, and hpipm-cpp wrapper should be installed

๐Ÿค Teleoperation for Manipulation

  • Teleoperation: Please follow the instructions for installation and usage

๐Ÿงฐ Utilities for Visualization, Plotting, Logging and Operator Interfaces

  • 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

๐Ÿ’ป Usage

(1) PyBullet

  • Source conda environment:
$ conda activate rpc
  • Compile:
$ mkdir build && cd build
$ cmake ..
$ make -j4
  • Run simulation:
$ python simulator/pybullet/draco_main.py

(2) MuJoCo

  • Compile:
$ mkdir build && cd build
$ cmake ..
$ make -j4
  • Run simulation:
$ ./bin/run_draco

Keyboard Input

๐Ÿ“บ Visualization

(1) Foxglove UI (optional)

Build
  • 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
Run
$ conda env create -f visualize.yml
$ conda activate visualize
$ python UI/foxglove/UI_launcher.py --visualizer=foxglove

(2) Meshcat Visualizer (optional)

Run
$ conda env create -f visualize.yml
$ conda activate visualize
$ python UI/foxglove/UI_launcher.py --visualizer=meshcat

๐Ÿค– Hardware Usage

  • Please refer to this repository using rpc library

๐Ÿ“– Citation

@INPROCEEDINGS{10871130,
  author={Bang, Seung Hyeon and Gonzalez, Carlos and Moore, Gabriel and Kang, Dong Ho and Seo, Mingyo and Gupta, Ryan and Sentis, Luis},
  booktitle={2025 IEEE/SICE International Symposium on System Integration (SII)}, 
  title={RPC: A Modular Framework for Robot Planning, Control, and Deployment}, 
  year={2025},
  volume={},
  number={},
  pages={1142-1148},
  keywords={Legged locomotion;Software architecture;Scalability;Software algorithms;Debugging;System integration;Software;Planning;Robots;Testing},
  doi={10.1109/SII59315.2025.10871130}}

About

A Modular Framework for Robot Planning, Control, and Deployment (RPC). 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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors