You are browsing as a guest. Sign up (or log in) to start making projects!

Self-Leveling Robot

Hardware
  • 5 Devlogs
  • 15 Total hours

A self-leveling robot that uses a PID (Proportional-Integral-Derivative) control algorithm made by RL (Reinforcement learning) and an IMU sensor to continuously balance on two wheels. The robot detects its tilt angle in real time and automatically adjusts its motors to remain upright.

Open comments for this post

1h 14m 2s logged

Dev Log #5 – Project Complete!

I wrapped up the final parts of the project by preparing everything for release.

I finished writing the GitHub README, making sure it included all of the information someone would need to understand, build, and test the robot. I also organized the project files so they would be easy to navigate and use.

To demonstrate the project, I created a video showing the self-balancing robot in action. The video explains what the robot does and gives people a look at the final build and balancing performance.

Finally, I uploaded all of the 3D-printable parts to Printables so anyone can download and print the components themselves. This makes it much easier for others to recreate the project without having to design the parts from scratch.

The project is officially complete!

0

Loading discussion…

0
4
Open comments for this post

7h 8m 47s logged

Dev Log #4 – First Balance Tests

This week I made a lot of progress and got the robot fully assembled.

After going through the wiring again, I realized I didn’t actually need the buck converter. Instead, I powered the ESP32 through USB while the battery powers the motors. This made the wiring much simpler and reduced the number of components inside the robot.

With that change, I finished assembling the entire robot in about 4–5 hours. I made a few minor tweaks to the 3D-printed parts to improve the fit of some components, but overall the design worked as planned and everything came together successfully.

Once the hardware was complete, I started testing and tuning the PID controller. This was the first time the robot attempted to balance on its own. After adjusting the PID values through several rounds of testing, I got the robot to balance for around 10–20 seconds before it eventually tipped over. While it’s not stable enough yet, it’s a huge step forward because the control system is working and now only needs further tuning and refinement.

0

Loading discussion…

0
3
Open comments for this post

1h 32m 40s logged

Dev Log #3 – Hardware Complete!

Today is a big milestone for the self-balancing robot. I officially finished designing all of the 3D models and printed the final parts.(NOT AT ALL) The robot’s main structure is now complete, and all of the electronics have a place to be mounted.

While assembling everything, I discovered a design mistake, I forgot to include mounting locations for the buck converter and the MPU-6050 IMU. Since the IMU is one of the most important sensors for a balancing robot, I couldn’t leave it out. I went back into CAD, redesigned the electronics holder, and reprinted the updated version with proper mounting points for both components.

On the software side, I spent more time learning about PID (Proportional-Integral-Derivative) control. After researching how each value affects the robot’s behavior, I now have a solid understanding of how PID works and how I’ll tune it once the robot is assembled. This should make the balancing process much easier when I begin testing.

I’m also starting work on a complete wiring diagram to make assembly cleaner and reduce wiring mistakes before powering everything on for the first time.

3

Loading discussion…

1
70
Open comments for this post

3h 1m 54s logged

Dev Log #2 – Designing the Brain

Today I focused on designing and building the brain of my self-balancing robot.

I started by creating a custom 3D model to hold the robot’s electronics, including the controller and motor driver. Since space is limited on a balancing robot, I spent a lot of time adjusting dimensions and component placement to make sure everything would fit correctly. After several revisions, I 3D printed the parts and tested the fit of the electronics.

I also spent a significant amount of time researching PID (Proportional-Integral-Derivative) control. Since PID is what allows a self-balancing robot to stay upright, I wanted to understand how each part of the algorithm affects the robot’s behavior. I studied how PID controllers respond to movement, how tuning works, and how other balancing robots use PID to maintain stability.

Although there is still a lot of work ahead, this was an important step because it established the foundation for both the hardware and software of the project.

0

Loading discussion…

1
27
Open comments for this post

2h 27m 23s logged

Dev Log #1 – Designing the Self-Leveling Robot

Today I began work on my PID self-leveling robot project. The first step was designing the robot in CAD and deciding what components would be included in the final build. I spent time planning the overall structure, thinking about where the motors, battery, controller, and sensors would be mounted to keep the robot balanced and compact.

After finalizing the concept, I created the 3D models for the main structural parts and prepared them for assembly. A major focus was making sure the design would be sturdy while keeping the center of gravity in a good position for balancing.

Once the modeling was complete, I started assembling the printed and purchased components to verify that everything fit together correctly. This stage helped identify areas that may need adjustments before moving on to electronics integration and PID tuning.

Next steps include completing the mechanical assembly, mounting the electronics, and beginning development of the balancing algorithm.

1

Loading discussion…

1
38

Followers

Loading…