MABEL
MABEL is a feature-packed, open-source, legged balancing robot based off of the Boston Dynamics Handle robot.
Install / Use
/learn @raspibotics/MABELREADME
MABEL (Multi Axis Balancer Electronically Levelled)

Table of contents
About MABEL
MABEL is an ongoing open source self balancing robot project that is inspired by the famous Boston Dynamics Handle robot. The robot is controlled via an Arduino that handles all of the PID calculations (based off of open source YABR firmware) based on the angle received from an MPU-6050 Accelerometer/Gyro, whilst a Raspberry pi (code in python) manages Bluetooth and servo control, running an inverse kinematics algorithm to translate the robot legs perfectly in two axes.
The goal of MABEL is to create an affordable legged balancing robot platform like the the Boston Dynamics Handle robot that can built on a hobby scale using cheap Amazon parts and components.
By having a balancing platform with articulated legs MABEL will be able to actively balance in multiple Axes and vary leg length depending on the surroundings to increase terrain and off-road performance.
MABEL has built on the open source YABR project for the PID controller but with the addition of servos and a pi that helps interface them and control everything.
Features and design
Some of the stand-out features that make MABEL different from other balancing robots are:
- Movable Legs (Enhanced mobility, terrain and stabilisation capabilities)
- Inverse Kinematics for each legs that enables accurate translation in (x, y) coordinates using the IKSolve.py class
- Raspberry Pi enabled (for Bluetooth control, wireless connectivity and Computer Vision capabilities)
- Common/cheap build materials (All of the materials can be purchased off of Amazon/Ebay for a low cost)
- Stepper Motors (Accurate positioning and precise control)
Bill of materials
3D Printable
3D Printable files are found in /CAD/3D Models (To Print)
- BatteryPack (Optional - holds LiPo battery onto back of robot with M5 Bolts)
- 2x BodyPanel (Mounting for the 'Hip' servos and side panels of the body)
- BodyTop
- 4x DriverGear
- Housing (LOWER body housing for MABEL)
- 2x LowerLeg
- 2x UpperLeg
- PanBracketHead (Optional Pan servo bracket for head assembly)
- TiltBracketHead (Optional Tilt servo bracket for head assembly)
- UpperBody (UPPER body housing for MABEL)
- 2x Wheel (Optional You can 3D Print your own set of wheels, or buy wheels)
Non 3D Printable
Here are the Non 3D printable materials to build MABEL that must be either purchased or sourced. This includes all of the electronics, mechanical hardware and fixings. It is recommended to overbuy the nuts and bolts fixings, as the exact number can change between builds. This amazon list contains a rough idea of what needs to be purchased.
Electronic components
- Raspberry Pi Zero W
- PCA9865 Servo Controller (A PiconZero could, and previously was used)
- Variable voltage regulator (Optionally 2x regulator to supply servos with a higher voltage than the 5V required for the pi)
- Arduino Uno
- 6x MG996R metal gear servos
- 2x 38mm NEMA17 stepper motors
- 2x A4988 (or DRV8825) stepper motor drivers
- Arduino CNC Shield
- MPU-6050 gyro/accelerometer
- 11.1V 2800mAh 3S LiPo (LiPo battery charger is required)
Mechanical components
- Optional Grippy rubber material for tyre tread if you are using the Wheel provided.
- 6x Aluminium servo horns (for MG996R servos)
- 8x 10mm diameter bearings (5mm internal diameter) x 4mm depth
- 12x 10mm M3 bolts
- 12 15mm M5 bolts
- 4x 30mm M5 bolts
- 16x 15mm M4 bolts
- 20x M5 locknuts and washers
Build instructions
UNDER CONSTRUCTION: This section will include:
- Recommended 3D printer settings for 3D Printable parts
- Mechanical assembly instructions
- Electronics/Wiring instructions
Mechanical assembly
Step 1: Press the bearings into the joints
<img src="https://i.imgur.com/iYMrObD.jpg" alt="push fit the bearings and secure with a nut and bolt" title="Push fit bearings" width="270" height="210" ALIGN="right" HSPACE="65"/>Each leg section (UpperLeg and LowerLeg) requires two bearings (thats 8x bearings in total) to push fit on opposing sides to ensure smooth rotation. The bearings can be quite tricky to fit so it's advisable to either apply slow, even pressure with a bench vice, or to soften the plastic with a hairdryer to make it easier to push in by hand. Once you've fitted the bearings, you need to push an M5 (4x in total) (30mm) bolt through the hole left and secure with a locknut. More reference images for Step 1
Step 2: Attach 4x Servos to the UpperLeg(s)and BodyPanel(s) using M4 (15mm) bolts
<img src="https://i.imgur.com/Y1E7Eal.jpg" alt="Attach servos with M4 bolt" title="Attach servos" width="270" height="200" ALIGN="right" HSPACE="65"/>4x MG996R servos must be secured to 2x BodyPanel and 2x UpperLeg using 4x M4 (15mm) bolts (16x in total). The servos must sit flat against these parts with the shaft facing towards the outside of the robot. Your servos may have a small rib that you can easily sand or file off to get the servo to sit in this orientation. More reference images for Step 2
Step 3: Push fit and screw the servo horns into the DriverGear(s) and attach the assemblies to the servos
<img src="https://i.imgur.com/08lZZj5.jpg" alt="push fit servo horns and attach gear to servo" title="Assemble DriverGear" width="270" height="200" ALIGN="right" HSPACE="65"/>Take your 4x DriverGear parts and 4x Aluminium Servo horns and push it into the recess on the bottom of the gear. Then secure the servo horns to each of the gears using the screws that (should) come with servo horns. Once the gear assembly has been completed, screw it on to the servo shaft using one M3 (10mm) bolt per servo. More reference images for Step 3
Step 4: Attach the NEMA17 Motors to the LowerLeg and fit the wheels
<img src="https://i.imgur.com/fxMZ7wn.jpg" alt="push fit wheels, attach motors" title="Fit wheels and motors" width="270" height="270" ALIGN="right" HSPACE="65"/>Secure one NEMA17 (2x in total) stepper motor to each of your (2x) LowerLeg parts with 4x M3 (10mm) bolts (8x in total). Next, prepare your wheels and then push fit onto the NEMA17 shafts, securing if necessary with an M4 bolt:
- If you are using the included Wheel part, you will **n
