Presenting the Egg Robot (aka “ham steak”), a 1-dimensional balancing robot. The main purpose of the robot is to balance at different angles. The balancing will be accomplished by adjusting the center of gravity of the robot using a weighted pendulum driven by a servo.
My goals with this project:
- Reviewing experience with computer aided design
- Experience with printing larger scale (>12 hour prints)
- Practice writing and tuning control algorithms
- Building a robot capable of weight shifting
Overall these goals have been met. I designed the robot using Autodesk Fusion 360. The print of the outer shell took 19 hours and ~160 grams of PLA. The biggest problem was that it exhibited some warping and weird printing artifacts around the inside. Simple bang-bang and proportional control algorithms have currently been implemented and tuned. Neither works particularly well, so PID is the next step. The robot is capable of balancing, but cannot tolerate even small disruptions. More tuning is required. Overall, all goals of version 1 are met, but a version 2 would be a good idea before moving on to more complex robots.
In future projects this summer, I would like to develop a simple walking version of the egg robot that can move in two dimensions using simple hip-only legs by shifting it’s weight between the legs as required to maintain a walking gait. This current robot is a foray into the idea of using a weighted pendulum for weight shifting.
The balance angle is measured using the Pololu MinIMU version 6. In future revisions, a full AHRS system could be implemented. Currently, the orientation data is very noisy and frequently upsets the balance. Filtering/smoothing the raw accelerometer output might improve balance behavior.
Software updates for continued work on the current egg robot version:
- Demonstrate shifting balance between sides to mimic shifting between two legs
- PID controller
Challenges/Improvements for next revision, version 2:
- Improve the screw attachments
- Screws flush or inside body shell
- Screw hole diameters tested for clearance and threading
- Lower static center of gravity below the center of rotation of the shell
- Remove the dedicated breadboard mount and integrate servo and breadboard mounting bracket.
- Replace servo to reduce twitching and noise
- PID control
Long term ideas:
- Lower static center of gravity below the center of rotation of the shell
- Reducing shell thickness above mounting bracket
- Dedicated circuit board to replace the breadboard and reduce weight
- Heavier pendulum weight material like lead
- Machine learning based control
- Increase range of motion of the pendulum (ideally to servo limit of 180 degrees)
- Tapping the body of the robot to change behavior
- Improve/filter/smooth the orientation sensing
- Robot holding orientation that it is placed in
- Adding an eye or face to the robot
- Higher friction base material to reduce slipping
- Creating “shoes” to improve grip
- A skirt or leotard or other functional and decorative outfit choice for the robot
- Current shell has “flat spots.” Create smoother curves.
- Ability to complete dynamic movements like
- Rolling over
- Balancing on the top