ME 84 HW #2: Butterfly Swimmer Michael Phelps

Shunta Muto, Osvaldo Calzada


The team did research on other people’s projects of walking EV3 robot on Youtube. The videos inspired us to use various mechanism including gear train and rotation-translation movement conversion from the motor. However, for this project, we figured that the initial design should be simple with smallest number of parts, so that we can add on different features and to continuously improve. We started off with multiple support towards the back of the design, but this resulted in too much friction causing the walker to move less. We then removed the supports and placed the single ball bearing, but the significant inclination towards the rear resulted in the design not moving much. This made us focus into trying to balance the center of mass between both stages of the gait ( when the wheels are touching the carpet, and when they’re rotating freely).

Failed Attempt

First, the team tried to come up with a mechanism to construct a 4-leg walking robot. This robot would have had two motors (right and left) that drive the gears, which are then connected to the mechanism that converts rotational motion to vertical motion. The vertical motion is used to produce a “step” of the walk. However, we realized that the parts we have in the EV3 kit may not be enough to construct the robot of our design. Furthermore, we realized that our design looks similar to the previous projects of other people, so we decided to come up with our original design with trial and error. Thus, we began prototyping with the simple design of a walking robot that consist of two motors and two legs. Two motors were used because this would improve the torque capacity of the robot.

Robot Construction

Our robot construction is very simple. It only requires two motors, two L-shaped legs, tail, and anchors. Legs are connected to the motors directly on each side, but the motors are connected through a rod so that they are synchronized in motion. At the tail, we connected a ball bearing so that it produces minimum friction while supporting the robot from the back. Anchors are simply bars that keep the robot from falling to the side while the legs are not in touch with the ground.

Image Image

above: Robot construction sideview

below: Robot construction rearview

Robot Walking Mechanism

The robot walks like a swimmer in butterfly stroke. The motors act as the right and left legs and they move continuously in a synchronized manner, just as a swimmer rotates the arms in butterfly strokes. As the legs push the ground, the robot jumps forward. When the legs are off the ground, anchors and the tail temporarily support the robot allowing the legs to rotate around and repeat the process.


Videos below show the robot walking forward and back at low (speed=50), mid (speed=150), and high speed (speed=300). We noticed that the robot actually moves more distance/time backward than forward…:) We also noticed that lower speed provides more distance per stroke and helps the robot to keep its path straight, because high speed results in a lot of “bumps” when the robot touches the ground in a small free-fall after each stroke. These bumps cause the robot to change direction slightly after each stroke. In conclusion, our Michael Phelps robot can walk pretty well (forward AND backwards)!

Above: Low, speed = 50

Middle: Mid, speed = 150

Below: high, speed = 300


This robot keeps walking forever !

def main():

ev3 = Device('this')

Rmotor = ev3.LargeMotor('outC') #Large Motor Port C

Lmotor = ev3.LargeMotor('outB') #Large Motor port B

speed = 500

while True:

Rmotor.run_forever(speed_sp = speed)

Lmotor.run_forever(speed_sp = speed)

if name == 'main':



Michael Phelps Swimming Butterfly:

Bi-Ped Walker:

4-Legged Walker:

6-Legged Walker: