Lego Robotics
Project Details / Background
In this course, we learned how to design, build, and program autonomous robots to accomplish specific tasks. The bodies of the robots were made out of legos, and the basic
electrical hardware included: DC motors, servos, break beam sensors, reflective sensors, range sensors, limit switches, light sensors, batteries, and an Arduino Uno with a motor shield. Though the
Arduino is not a great platform for robots, its limited capabilities served as a good base for the projects, and actually led to lessons in how data is processed stored. Apart from learning to work with
the afore mentioned hardware, working on the projects gave valubale lessons on brainstorming, concept selection, teamwork and communication.
Seen above is the layout of the board on which robots had to perform. On either side of the board is an LED panel, the illumination of which initiates the robot's program.
The surface of the board was painted white with black lines, and foam cubes were placed on the board depending on the project. Throughout the course there were three projects: obstacle avoidance, cube
delivery, and the "RoboRat". Each project built upon the previous assignment, with new challenges for building a robot to accomplish each new task.
Below are images of the robots my partner and I made throughout the course.
Image Gallery
We had to calibrate all electronic hardware we used on our robot, and seen here is the calibration of our DC motors using the break beam sensors.
This is our initial motor setup, with a 1:5 gear ratio. The gear ratio ended up being much lower than what we needed for optimal performance, but it was
a very compact design.
This was our first robot, the bump bot. The robot was designed to drive forward until it hit an obstacle, and then turn and keep going like a rooomba.
The two bumpers on the front of the robot were placed in front of limit switches, which acted as the sensors for detecting a collision.
Here is a side view of the bump bot. The limit switches were placed in the front of the robot, and a photoresistor was placed in the back for detecting the start light.
The task of the second project was to make a delivery bot, which would move one foam cube from one side of the board to the other. Seen here is the first
version of this robot, which used the chassis of the bump bot and had a four bar linkage claw actuated by a servo.
After realizing there were too many issues with the old chassis, we scrapped it and started making a new one to accomodate a larger gear ratio and reflective sensors to be
used for line following.
The new drivetrain we ended up using for the rest of the course used worm gears to drive the wheels. This setup ended up reaching a gear ratio of 1:72, which allowed for
much better directional control.
This was our final delivery bot. We decided to push the cube around because of its simplicity, and used a range sensor to determine if the robot had the cube. The robot also
used another range sensor to detect walls in front of it, and two reflective sensors on its underside for line following.
The task of the third project, the RoboRat was to collect as much "cheese" as possible on the gameboard and deposit it in the starting location of the robot.
Seen here is the development of the first prototypes of this robot, which had a catching area under the chassis and arms to funnel the cheese in using servos.
Shown here is the the final version first prototype of the RoboRat. We added break beam sensors in the back of the robot to be used as encoders for the wheels, but this
proved to be unreliable and difficult to integrate with line following.
This was the final RoboRat, which was the second version of the previous RoboRat. It used a range sensor to follow the perimeter of the gameboard, a reflective sensor to detect lines that it crossed, a servo to actuate an arm,
and a break beam sensor to make calibrated 90 degree turns. Using a range sensor was much more robust than tracking the lines painted on the gameboard, and also allowed the robot to avoid physical obstacles
it wouldn't have seen previously.
After finishing the last event, we had to take apart our robot and return all of our equipment. This course was one of the most fun classes I have taken in my major, but
also one of, if not the most gruelling. I learned about mechanical design, mechatronic integration, and definitely a lot about making design choices and teamwork.