A reaction wheel inverted pendulum built using an ESP32, MPU6050, and custom reaction wheel assembly.
SCHTICK began as an attempt to stabilize a reaction wheel inverted pendulum using modern control techniques.
The original workflow was:
- System Identification
- State-Space Modeling
- LQR Control
- PID Control
- Limit Cycle Exploration
While simulation results were promising, real-world hardware constraints revealed several practical limitations involving actuator authority, parameter estimation uncertainty, and model mismatch.
This repository documents both the successes and failures encountered during development.
- ESP32
- MPU6050 IMU
- DC Motor + Reaction Wheel
- H-Bridge Motor Driver
- Custom 3D Printed Structure
Additional details can be found in:
parts/assembly/
docs/ Project documentation
matlab/
├── sysid/
├── modeling/
├── lqr/
├── pid/
src/
├── sysid/
├── control/
├── lqr/
├── pid/
├── limit_cycle/
- Successful in simulation
- Failed to consistently stabilize hardware
- Achieved short-duration balancing (~3 seconds)
- Revealed actuator authority limitations
- Currently being explored as an alternative control strategy
Detailed project notes are available in:
docs/control_artifacts.mddocs/system_identification.mddocs/modeling.mddocs/lqr_controller.mddocs/pid_controller.mddocs/limit_cycling.mddocs/lessons_learned.mddocs/future_directions.md
The hardest part of this project was not designing the controller.
It was understanding why mathematically correct controllers behaved differently once real hardware constraints entered the picture.
MIT License
