Smiling Robo Logo

SmilingRobo

MABEL - self balancing robot

By raspibotics

Balancing-Robot

Share this project to show your support

MABEL (Multi Axis Balancer Electronically Levelled)

MABEL

About MABEL

MABEL is an ongoing open-source self-balancing robot project inspired by the famous Boston Dynamics Handle robot. The robot is controlled via an Arduino that handles all of the PID calculations (based on open-source YABR firmware) based on the angle received from an MPU-6050 Accelerometer/Gyro, while 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 Boston Dynamics Handle robot that can be 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 builds on the open-source YABR project for the PID controller, with the addition of servos and a Raspberry Pi that helps interface them and control everything.

Features and design

  • Movable Legs (Enhanced mobility, terrain, and stabilization capabilities)
  • Inverse Kinematics for each leg, enabling 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 materials can be purchased from Amazon/eBay at a low cost)
  • Stepper Motors (Accurate positioning and precise control)

Bill of Materials

3D Printable

3D Printable files are available here

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: Frame assembly

Insert M5 nuts into their respective places in the lower body, use epoxy or glue if they do not stay in place. The lower legs and upper legs are interchangeable, though it is best to use different colors so that you can easily see what leg is what.

Step 2: Motor installation

Attach the stepper motors to the frame using the M5 bolts and washers. Ensure the motors are securely mounted.

Step 3: Wheel attachment

Attach the wheels to the stepper motors. Make sure they are properly aligned for smooth movement.

Electronics and wiring

Step 4: Arduino and Raspberry Pi setup

Install the Arduino and Raspberry Pi in the designated areas of the robot. Connect the necessary components such as the MPU-6050, servos, and motor drivers according to the wiring diagram.

Step 5: Power supply

Connect the LiPo battery to the power distribution board and ensure all components are receiving the correct voltage.

Programming

Step 6: Firmware upload

Upload the YABR firmware to the Arduino for PID control and the inverse kinematics code to the Raspberry Pi for leg movement.

Step 7: Testing and calibration

Power on the robot and test the balancing functionality. Calibrate the sensors and adjust the PID parameters as necessary for stable performance.

Media

SmilngRobo

SmilingRobo, a platfrom of opensource robotics

Opensource Robotics Platform with opensource tools and resources. We are on a journey to advance and democratize robotics through opensource.