OUR FINAL PROJECT
Spring 2008
GE 423
Matt Pepich
Sharath Avadhanam
Tejaswi Tamminedi
Heather Curran
OBJECTIVE
This yearÕs
objective was to navigate the course designed by Dan, Carlos, and Chris while
cleaning up and recycling certain materials. We had to pick up a can and deposit it in the correct area
after triggering specified IR beams and refueling at a specified station. Next we had to collect blue and orange
golf balls, or Òtrash,Ó and deposit them in the correct garbage shoot according
to color. All these tasks were
performed without running into the walls of the course or performing things out
of order.
OUR
MECHANICAL DESIGNS
The final
design for our can gripper slowly emerged after many trials and errors with
several initial grippers. First,
we started with a plastic three-piece design consisting of a two-pronged
gripper on one side with a single-pronged gripper on the other side, which
conveniently slid between the two on the opposite side. This gripper held the can firmly in place and because
of the extra support from the third ÒarmÓ the can was released upright and
never tipped over. In the end,
this gripper idea was scrapped because there was not enough room underneath the
third arm for golf balls to freely move, and the gripper was constantly coming
loose from the base. The second
gripper design involved the initial design minus an arm. We removed the third component, and
while the gripper still held the can firmly in place and deposited it upright
ninety percent of the time, it was still coming loose from the base and needed
constant readjustment. The final
gripper design was composed of two arms made of plastic foam board that worked
like scissors, which easily picked up the can slightly off the ground for
better transport to the depositing spot. We added two additional top pieces
onto the gripper to further stabilize the can while in transport.
The golf
ball holder door design was constructed after several ideas being tossed around
by our group members. The first
design we were going to implement consisted of two separate doors controlled by
servos that would open and close according to the color of the golf ball. Orange and blue golf balls would be
separated with a center divider and deposited in the correct color garbage
shoot. However, upon learning that
if the robot merely drove over the garbage shoot, the balls would be considered
deposited, this idea was thrown out.
The new design was to have two arm-like doors that opened and shuffled
the balls underneath the robot body rather than running over them with a
door-like design. We made
replacement arms due to the robot destroying some by running into walls and
crushing them.
CODE
IMPLEMENTATION
Soon after
we started working on the code, we realized there were many problems with our
little robot. The camera was
attached crooked so when the robot ÒcenteredÓ an object, it was about 5 degrees
off from being actually centered.
Then we found out that our left motor ran at a faster speed than our
right motor so we had to adjust the friction compensation gains to run the
robot in a straight line. When
trying to fix the threshold values using the camera, we discovered that our
robot could not correctly see blue and had a difficult time finding the blue
golf balls. Every time we left the
lab late at night to return the next morning, several parts of the code needed
to be readjusted because of our picky robot. Our group spent more time redoing code and trying to get our
robot to run the same way as it had when we left, than actually writing new
code. Then late one night while
group member Matt was hard at work, our robot got a mind of its own and decided
to stop working according to our code and violently spin in place. Carlos was kind enough to give us a new
robot, which worked amazingly better than our old one. Although we were all sad to see the old
one go, the time we spent re-correcting everything vanished which made us very
happy.
Our code
was designed according to a state machine system. Each state was designed with respect to a flow chart of one
run of the entire course. The code
was developed for each major state and then adjusted for each specific state
according to the overall flow chart.
Writing code by state allowed for easy manageability of each individual
state, simplified debugging, and the ability to move states around if something
was not working. The main state breakdown is as follows:
CAN FINDING: Our robot spins in place until the IR
sensors recognize an object, or the can, and the robot moves towards it. The object is centered before the robot
moves forward a designated distance and grabs the can.
LIGHT RECOGNITION: After successfully
grabbing the can, our robot is sent to a certain x-y position in the
course. It then looks for a white
light with the camera. Upon
finding the center white light, the robot looks left and right to find the next
white light, goes towards it, and then the right-wall-follow is implemented.
CAN DROP OFF: The robot stays in a
right-wall-following state until it reaches a certain range of x position
values. It then spins and goes to
another designated x-y position, until stopping and moving forward. It then looks for the white light with
the camera, moves towards it, and finally drops the can close to the light.
GOLF BALL FINDING: After dropping off
the can, the robot spins in place and goes to a designated x-y position. It then navigates the course looking
for orange golf balls all while avoiding blue golf balls, walls, and sharp
corners. After it has collected
all the orange balls, it is sent around the course to the beginning to deposit
them in the correct Ògarbage shoot.Ó
After dropping off the orange balls, the robot goes back into the course
to repeat the same code adjusted to find the blue golf balls.
GOLF BALL DROP OFF: The car is sent to
the designated x-y position depending on which color golf ball it has just
collected. The golf ball arms
open, the robot backs up, and the arms are closed.
GROUP
MEMBERS
Matt Pepich is
a Graduate Student in Electrical and Computer Engineering. He decided to
take this course to gain experience programming DSPs. After graduation,
he plans to pursue a job in the Defense Industry.
Sharath Avadhanam is a
Graduate Student pursuing a Masters degree in the College of Engineering at
UIUC. He will be graduating with a Master's degree in Industrial Enterprise and
Systems Engineering in August 2008. He has a BachelorÕs Degree in Mechanical
Engineering. His interest in
Motion PLanning and Control motivated him to take this course.
Tejaswi Tamminedi is a Graduate Student in the IESE department. This course was one
of the best learning experiences he has had. After graduating in August 2007,
he plans to work in the field of robotics and automation to gain expertise and
eventually start his own company back in India, where he hails from.
Heather Curran is
an Undergraduate Student in General Engineering. Her favorite part of this
course was watching the robot finally do what it was supposed to. After graduation next December, she plans
on attending law school
and becoming a Patent Lawyer.
Check
out the video of our robot in action: video,
introduction