MARIO
the 3-DOF arm students learn ROS2 on at my college. I ported it off a dying simulator and made it nicer to use.
jul – aug 2024 · me + SRA · SRA lab, VJTI · teaching
MARIO is a small robot arm that exists twice: once in simulation, once as real hardware running micro-ROS on an ESP32. It’s what SRA uses to teach ROS2 workshops.
The simulation was stuck on Gazebo Classic, which hit end-of-life. So I ported the whole thing to Gazebo Fortress — model, plugins, launch files — wrote a new teleop that’s easier for beginners, and cleaned up the ESP32 ↔ micro-ROS pipeline so the same commands drive both the sim and the real arm.

try the math it runs
This is the same idea MARIO uses to reach things: 2-link inverse kinematics. Move your cursor around. Notice it refuses to leave its workspace — real arms have real limits.
instrument · inverse kinematics, live — move your cursor
θ1: — · θ2: — · target: in reach
Fixing up someone else’s working robot is its own skill. The rule isn’t “make it work”, it’s “don’t break what the next workshop depends on”.
made with
- ROS2
- Gazebo Fortress
- micro-ROS
- ESP32
- URDF
- C++
- Python