Skip to content
forked from shbang91/rpc

用于机器人规划、控制和部署 (RPC) 的模块化框架。它旨在集成多个基于物理的模拟器、规划和控制模块、可视化工具、绘图和记录实用程序以及机器人系统的操作员界面。

License

Notifications You must be signed in to change notification settings

TenYearsADream/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

@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

用于机器人规划、控制和部署 (RPC) 的模块化框架。它旨在集成多个基于物理的模拟器、规划和控制模块、可视化工具、绘图和记录实用程序以及机器人系统的操作员界面。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 66.5%
  • Python 16.1%
  • C 11.7%
  • MATLAB 4.0%
  • CMake 1.5%
  • HTML 0.1%
  • Other 0.1%