Laser-cut Balancing Robot "LaserBot"

Using computer simulation to design a control system for balancing robot made of laser-cut acrylic.

Similar projects worth following
Previously, I've built a simple two-wheel balancing robot out of laser-cut acrylic using Arduino. It didn't work. Either the actuators, the control system, or the chassis geometry prevented it from balancing properly. My prime suspect is the control system.
In this project I want to use "proper" design techniques to implement a good control system. I'm going to use MATLAB and Simulink to simulate the robot's behavior and design the best possible control system. I'm planning to replace Arduino with ARM microcontroller and use Bluetooth to transmit data from the robot to computer. I want to create a Python application to analyze data received from the robot. After some simulation I may discover that I need to rebuild the robot with different components or different geometry.

Project revisions: 
Rev1.0 - built in March 2014 with Arduino. Didn't sucessfully balance.
Rev1.1 - built in September 2014. Battery compartment moved to the top. Didn't successfully  balance.

Rev2.0 - currently in design stage with ARM microcontroller. 


Rev1 Arduino firmware

ino - 7.73 kB - 08/21/2017 at 10:53



Rev1 Processing application for controlling the robot

pde - 8.14 kB - 08/21/2017 at 10:51



Rev 1.1 laser cutter drawings

AutoCAD DXF - 244.67 kB - 08/21/2017 at 10:50



Rev 1.0 laser cutter drawings (obsolete)

RAR Archive - 53.76 kB - 08/21/2017 at 10:50


  • 1 × MPU6050 Inertial measurement unit
  • 2 × Pololu 100:1 Micro Metal Gearmotor HP with Extended Motor Shaft
  • 1 × SparkFun RedBoard Arduino Uno analog
  • 2 × 18650 Li-Ion rechargeable battery
  • 1 × Pololu TB6612FNG Dual Motor Driver Carrier

View all 7 components

  • Prequel 2: LaserBot Rev1.1

    Kirill Salita08/21/2017 at 11:15 0 comments

    In September 2014 I thought that the reason the LaserBot didn't balance properly is because I designed it to have a reasonably low center of gravity (having the battery compartment at the back of the bot). I discovered that balancing robots need to have a high center of gravity, so that force created at the contact of wheels and ground can create maximum torque about the CG. I had very little time to work on the project at the time, so I still didn't do any calculations or simulation. I just tried to build a new LaserBot chassis with battery compartment on the top. I designed it in Solidworks and again cut it out of 3mm acrylic. Unfortunately it still couldn't balance properly and I still didn't know why.


  • Prequel 1: LaserBot Rev1.0

    Kirill Salita08/21/2017 at 10:34 0 comments

    I designed and built the first revision of the LaserBot in Spring 2014 during my second year at Simon Fraser University. The main goal of the project was to practice using laser cutter and Arduino. I also wanted to learn how to work with an IMU.

    This was way before I have taken any courses on feedback control or system simulation. Also I was quite busy with university courses. For these reasons I didn't design the robot carefully. I didn't calculate any dynamics, didn't do any simulations. I just eyeballed the chassis design and picked the first motors that seemed decent to me. 

    I must mention that I picked rather small motors and small wheels. I wanted to make the task more challenging for myself. 

    I designed the rev1.0 chassis in Autodesk inventor and cut it on a laser cutter out of 3mm acrylic sheet. I programmed the Arduino using complementary filter for IMU and PID controller. The controller loop was not even called by a timed interrupt, so there was no guarantee that it ran at a constant frequency. 

    I wrote a Desktop application using Processing. The application could receive data about robot's attitude over serial port and display it graphically. It could also control PID gain constants on the robot.

    In the end, rev1.0 couldn't balance itself no matter how I tuned the PID constants. At that moment I had to means of figuring out what was wrong.   

View all 2 project logs

Enjoy this project?



davedarko wrote 08/21/2017 at 12:43 point

I like the rolling friendly cut of the acrylics!

  Are you sure? yes | no

Kirill Salita wrote 08/21/2017 at 12:47 point

Thanks! I will post a video of it rolling over some time later. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates