Analysis updated 2026-05-18
3D print the included STL files to build the physical self-righting robot body.
Train a reinforcement learning policy for a self-righting motion using MuJoCo and PPO.
Export a trained policy to a C header file and run it on an M5Atom microcontroller.
| homemadegarbage/selfrisingrobot | jakobfriedl/usb-monitor-bof | unclecheng-li/poc-lab | |
|---|---|---|---|
| Stars | 38 | 39 | 37 |
| Language | C | C | C |
| Setup difficulty | hard | hard | hard |
| Complexity | 4/5 | 4/5 | 4/5 |
| Audience | researcher | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires a 3D printer, a MuJoCo and Python RL setup, and an M5Atom board to reproduce the full pipeline.
SelfRisingRobot is a small robotics project that teaches a two-servo physical robot named "poco" to stand itself up from a lying position. The robot never learns this skill on the real hardware directly. Instead, the motion is trained entirely inside a physics simulator, and the resulting behavior is then transferred to the actual robot. The simulation side uses MuJoCo, a physics engine that models how physical objects move and interact. The learning algorithm is PPO (Proximal Policy Optimization), a reinforcement learning technique where the robot is rewarded for successfully rising and penalized when it fails. Training runs many thousands of attempts inside the simulator until the robot figures out the correct sequence of joint movements. Stable-Baselines3, a Python library for reinforcement learning, handles the training loop. Once training is complete, the learned policy gets exported as a plain C header file called policy_network.h. This file contains the neural network weights in a format that can run directly on the M5Atom, a tiny microcontroller roughly the size of a thumb. The Arduino sketch on the M5Atom reads that header file and drives the two servos based on what the trained network tells them to do. The physical robot body is printed on a 3D printer. The repository includes four STL model files covering the foot, two arm segments, and an arm horn. Full build details and a walkthrough of the whole process are documented in a separate blog post linked in the README. The repository is organized into three folders: 3Dmodel for the printable parts, RL for the simulation and training code, and Arduino for the embedded firmware that runs on the finished robot.
SelfRisingRobot is a two-servo robot that learns to stand itself up using reinforcement learning in a physics simulator, then runs that trained behavior on real M5Atom microcontroller hardware.
Mainly C. The stack also includes C, Arduino, MuJoCo.
No license file is included, so terms of use are unclear.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.