Skip to content

Balance Ball

A spherical robot that balances and maneuvers in three degrees of freedom using three orthogonal flywheels and a omnidirectional wheel base.

  • Other
  • Open source
  • 3D printable

Suggested by Robotheca, created by @sytnocui (opens in a new tab), from github.com/sytnocui/BalanceBall (opens in a new tab). Pinned to commit 411e3fe (opens in a new tab).

Photo and 3D model

Balance Ball, photo from its repository
Photo:@sytnocui (opens in a new tab)Apache-2.0source file (opens in a new tab)

3D preview converted from github.com/sytnocui/BalanceBall at 411e3fe, under Apache-2.0. View the original files from GitHub (887 KB) (opens in a new tab)

Degrees of freedom
3

What it can do

Written by Robotheca from the project's documents.

  • Moves in three rotational degrees of freedom on an omnidirectional wheel base
  • Performs three-axis angular velocity closed-loop control with power assist mode
  • Tracks and follows a three-axis target attitude using a handheld terminal
  • Publishes real-time three-axis attitude data over Wi-Fi for use as a game controller
  • Operates as a spherical version of a balancing cube using three orthogonal flywheels

Bill of materials

This repository has no parts list Robotheca can read yet.

Build guide

The creator's steps, each with its instructions.

  1. 1Prepare 3D printed parts and materials
  2. 2Assemble the spherical structure and internal frame
  3. 3Install the three orthogonal flywheels and motors
  4. 4Mount the omnidirectional wheel base
  5. 5Assemble and wire the control boards (main, FOC, encoder, gyroscope)
  6. 6Install and configure the electronics (battery, motors, sensors)
  7. 7Flash firmware to the control boards
  8. 8Calibrate and test the system

The guide appears here as you scroll.

Guide by @sytnocui (README.md), under Apache-2.0. The English translation is by Robotheca, shared under the same license.

Wiring and electronics

Notes written by Robotheca from the project's documents.

Main parts

  • Main control board with STM32F103C8T6 microcontroller
  • Three FOC driver boards based on GD32C103CBT6 for motor control
  • Three brushless motors with flywheels for angular momentum generation
  • Three encoder boards using MT6816 sensors for motor position feedback
  • IMU board with ICM20602 or MPU6050 for attitude sensing
  • ESP8266 Wi-Fi modules for wireless communication
  • CAN bus interface between main control and driver boards
  • 1s lithium battery 300mAh for handheld terminal power
  • 3s lithium battery 550mAh 85C for main robot power

Connections

  • Main control board connected to IMU via SPI or I2C
  • Main control board connected to three FOC driver boards via CAN bus
  • Each FOC driver board connected to one encoder board via SPI
  • Each FOC driver board connected to one brushless motor via three-phase power lines
  • ESP8266 modules connected to main control and handheld terminal via UART
  • Power supplied to driver boards and main control board via cascaded power lines
  • Handheld terminal communicates with main robot via Wi-Fi