SKILLS REQUIRED

Matlab

Arduino

Programming

Controls

Pneumatics

Manufacturing

 

SUMMARY: Built mechanical robot that ran a Death Star-themed race track

Pneumatic Piston Powered Robot

DESCRIPTION:

The goal for the project was to build a robot that could navigate an obstacle course autonomously using a pneumatic propulsion system and a magnetometer for guidance. The overall purpose of the project was to provide students with an understanding of how to move objects through space through the use of mechanical systems and to have students learn about steering and controls.

Track was based off Star Wars Episode 4’s Trench on the Death Star


The constraints of the project are as follows: students must guide a robot equipped with a tank of compressed air across a predetermined path using a piston for propulsion and whatever steering method desired. Another constraint was to have a piston as the main propulsion device and was to be operated by allowing some of the air from the compressed air tank escape into the airlines - providing the pressure necessary to move the piston. For our design, we used a rod with a rubber foot attached to the piston in order to make the robot move forward. In other words, as the piston fires, it extends the rod and rubber foot and hits the ground, moving the robot forward a little bit every time the piston is fired.

Robot Firing Too Slow


Timing how often/fast the piston was fired was of paramount importance because if fired too fast, the robot would become unstable and not move anywhere (or possibly fall over). Conversely, if the piston fired too slowly, it would not move anywhere due to a lack of momentum. To control the timing of the piston firing, an Arduino-controlled solenoid was placed on the main feed line between the compressed air tank and the piston. Lastly, we experimented with the frequency of the solenoid opening and closing so the robot wouldn’t fall over or lurch excessively once a stable center of mass was located.

Timing has been corrected


For the steering and suspension system, we used an Ackerman Steering setup to make sure our tires did not slip when turning. To achieve this setup, we bolted our tire to the base of the robot with the steering system made out of flat metal bars. Steering was controlled through a servo motor connected to the bars in the front of the robot and controlled the state of the front two wheels. Control of the servo motor was achieved through the same Arduino that controlled the solenoid. Finally, guidance of the entire robot was achieved through the use of a magnetometer (essentially a local GPS) connected to the Arduino. Since the path was predetermined, the main issue became staying in-bounds of the obstacle course - no small task considering the boundaries were not physical and colliding into other robots on the same course can widely throw off the robot’s orientation.

Ackerman Steering

For further reading and to see how the robot performed, please see the attached files.