Robot/simulation switch for the mjbots stack.


Keywords
motion, control, real, time, robotics, cpp17, locomotion-control, mjbots, motion-control, python, real-time, simulation
License
Apache-2.0
Install
pip install vulp==1.5.0

Documentation

Vulp – Robot/simulation switch

Important

Vulp has been merged into the Upkie wheeled biped software 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 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 servo controllers and pi3hat communication board). It provides a robot/simulation switch to train or test agents in Bullet before running them on the real system. Vulp supports Linux and macOS for development, and Raspberry Pi OS for robot deployment.

See also

  • moteus: bindings for moteus brushless controllers.
  • odri_control_interface: interface to control robots built with the ODRI Master Board.
  • kodlab_mjbots_sdk: C++-only framework integrated with LCM for logging and remote I/O.
  • mc_rtc: C++ real-time control framework with QP-based whole-body control.
  • robot_interfaces: IPC between non-realtime Python and real-time C++ processes with Python bindings.
  • ros2_control: C++ framework for real-time control using ROS2 (still a work in progress).

Why the name "Vulp"?

Vulp means "fox" in Romansh, a language spoken in the Swiss canton of the Grisons. Foxes are arguably quite reliable in their reaction times 🦊