The Cube

Project Objectives

Project Objectives

This project was inspired by a robotic controls engineering project created by Mohanarajah Gajamohan, a robotics researcher at ETH Zurich. The goal of this project was to create a self-balancing metal cube that could balance on an edge.

Mechanical Design

To ensure robustness, we designed a cube frame capable of withstanding heavy impacts while allowing for easy assembly and maintenance.

Manufacturing

Using precise tools like the waterjet, mill, and lathe, we ensured tight tolerances to maintain structural integrity.

Electrical Integration

Integration involved powering the system, using Arduino Nano PWM outputs, and processing IMU readings for PID tuning.

PID Loop Tuning

We combined the Ziegler-Nichols method and guess-and-check to tune PID values for balancing.

IMU Drift Filtering

Drift was mitigated using startup calibration and the Madgwick filter for real-time pitch corrections.

Firmware Development

The firmware programmed the Arduino Nano to handle IMU data, implement PID corrections, and control the flywheel motor.

Data Flow Diagram

Interactive Map