Skip to content
MowiboxPublic

About

Code and resources for a four-legged robot

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Chromapi

Chromapi is an open-source 12-DoF quadruped robot that I design and build on my own.

Chromapi Discord Python Software: Apache 2.0 CI: Linters CI: Unit Tests Issues Stars

chromapi

Getting started

chromapi

To build the robot, start with the Bill of Materials and the specifications on the Chroma website.

Installation

Requires Python 3.12 and uv (or pip).

git clone https://github.com/Mowibox/chromapi
cd chromapi
uv sync --all-extras    # or: pip install -e ".[all]"

The audio extra enables sounds on the robot and the rl extra installs MuJoCo for simulation.

In simulation

from chromapi.chromapi import Chromapi

with Chromapi(backend="mujoco", launch_viewer=True) as robot:
    robot.wake_up()
    robot.walk_distance(0.3)  # [m]
    robot.rest()

On the real robot

On the Raspberry Pi, once the motherboard firmware is flashed:

chromapi-setup-motors     # interactive: set each servo's ID and configuration, one servo at a time
chromapi-scan-motors      # check that all 12 servos answer on the bus
chromapi-diagnostics      # check the bridge, power monitor, IMU, audio and servos

The same code then runs on the robot with Chromapi(backend="hardware"), which talks to the motherboard over UART communication.

Project overview

Resource Description Location Status
📋 Bill of Materials Complete hardware, electronics, and 3D printed parts list to build Chromapi from scratch. Chroma Website Available
💻 Software API Python control framework, hardware interfaces, and kinematic solvers. /src/chromapi Work in Progress
📐 CAD Model 3D Mechanical design and robot assembly workspace. Onshape Document Available
📖 Documentation Specifications, design notes and communication protocol. Chroma Website Available
🛠️ Hardware Utilities Full system diagnostics and motor configuration tools. /src/chromapi/utils Available
🤖 Simulation Models URDF and MJCF models for MuJoCo simulation. /src/chromapi/model Available
⚡ Electronics Custom PCB files, schematics, and low-level firmware. chromapi_motherboard repository Available

Authors

Ousmane THIONGANE

Sponsors & Acknowledgements

This project has been made possible thanks to the sponsors listed below. Their contributions in manufacturing, assembly, and prototyping have greatly accelerated the development of Chromapi.

PCBWay ENSEA
PCBWay ENSEA
PCB Manufacturing & Assembly 3D Printing & Prototyping

Huge thanks to everyone who gave me feedback on the Chromapi's design, shared ideas, or simply took the time to brainstorm with me. This project wouldn't be where it is today without your help!

Contributions

Contributions are always welcome!

  • Report Issues: Found an error or have a feature request? Create a new issue here.
  • Fix Bugs & Add Features: Find out where you can lend a hand by checking out existing issues.

Before opening a pull request, don't forget to run the linters and unit tests: uv run ruff check . && uv run mypy && uv run pytest.

By submitting a contribution, you agree that it is published under the license of the part it belongs to.

License

This repository is multi-licensed:

Part Path License
Software (Python SDK, tools, tests, scripts) /src, /tests, /scripts Apache 2.0
Robot description (URDF, MJCF, configuration files) /src/chromapi/model Apache 2.0
3D meshes (.stl, .part) /src/chromapi/model/*/assets CC BY-NC-SA 4.0
Documentation and media (README, images, GIFs) /assets, this README CC BY-NC-SA 4.0

Third-party content keeps its own license: meshes of off-the-shelf parts (Raspberry Pi 4, IMX219 camera, Noctua NF-A4x10 fan, WS2812B ring, 18650 battery, speaker, microswitch, power switch, connectors, screws) come from their respective manufacturers. The ENSEA and PCBWay logos in /assets are trademarks of their respective owners.

About

Code and resources for a four-legged robot

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages