Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/upkie/vulp

Robot/simulation switch for the mjbots stack
https://github.com/upkie/vulp

c-plus-plus cpp17 locomotion-control mjbots motion-control python real-time robotics simulation

Last synced: about 2 months ago
JSON representation

Robot/simulation switch for the mjbots stack

Awesome Lists containing this project

README

        

# Vulp – Robot/simulation switch

> [!IMPORTANT]\
> Vulp has been merged into the [Upkie wheeled biped software](https://github.com/upkie/upkie) and is not developed as a standalone library any more. If you need similar features for your own robot, we recommend you rather start from the latest [moteus](https://pypi.org/project/moteus/) C++ bindings.

Vulp provides an action-observation loop to control robots from a standalone "agent" process, like this:


Action-observation loop with Vulp

Vulp is designed for robots built with the mjbots stack ([moteus](https://github.com/mjbots/moteus/) servo controllers and [pi3hat](https://github.com/mjbots/pi3hat/) communication board). It provides a robot/simulation switch to train or test agents in [Bullet](https://github.com/bulletphysics/bullet3) before running them on the real system. Vulp supports Linux and macOS for development, and Raspberry Pi OS for robot deployment.

## See also

* [moteus](https://pypi.org/project/moteus/): bindings for moteus brushless controllers.
* [odri_control_interface](https://github.com/open-dynamic-robot-initiative/odri_control_interface): interface to control robots built with the [ODRI](https://github.com/open-dynamic-robot-initiative) Master Board.
* [kodlab_mjbots_sdk](https://github.com/KodlabPenn/kodlab_mjbots_sdk): C++-only framework integrated with [LCM](https://lcm-proj.github.io/lcm/) for logging and remote I/O.
* [mc\_rtc](https://github.com/jrl-umi3218/mc_rtc/): C++ real-time control framework with QP-based whole-body control.
* [robot\_interfaces](https://github.com/open-dynamic-robot-initiative/robot_interfaces): IPC between non-realtime Python and real-time C++ processes with Python bindings.
* [ros2_control](https://github.com/ros-controls/ros2_control): C++ framework for real-time control using ROS2 (still a work in progress).

## Why the name "Vulp"?

[Vulp](https://en.wiktionary.org/wiki/vulp#Noun_2) means "fox" in Romansh, a language spoken in the Swiss canton of the Grisons. Foxes are arguably quite reliable in their reaction times 🦊