Development of a ball-balancing robot

I’m developing a ball-balancing robot(BBR) for multi-purposes.

BBR Overview

– Mass: 8.9kg

– Height: 90cm

– Motor: Maxon EC-i 40 100W, 48V BLDC motor x 3

– Speed reducer: a customized stepped planetary gear, ratio 9.04:1

– Motor driver: ELMO G-SOLWHI20/100S x 3

– Communication: CAN 2.0

– Power supply: a 13S1P battery pack(48.1V) for motor drivers and an interface board, a 4S2P battery pack(14.8V) for a NUC PC

– IMU: 6-axis

– PC: NUC13ANKi3, 32GB RAM, 256GB SSD

– Real-time O/S: Ubuntu 20.04 patched with Xenomai

Actuator Design


Each actuator consists of an omniwheel, a customized stepped planetary gear, a brushless DC (BLDC) motor, and a magnetic encoder.

Electrics Design

An interface board
(1st layer: DC-DC converter PCB, 2nd layer: microcontroller PCB, 3rd layer: IMU and connectors PCB)
The 13S1P battery for motor drivers and an interface board
(rated 48.1V, charged 54.6V)
The 4S2P battery for a NUC PC
(rated 14.8V, charged 16.8V)