Skip to content
/ rpc Public

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.

License

Notifications You must be signed in to change notification settings

shbang91/rpc

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

@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}
}

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

No packages published