For General Robotics class, my team built and refined an innovative remote controlled, camera-equipped robot designed to traverse rubble and locate survivors in a mock urban rescue environment.
It was programmed using an MIT HandyBoard motor controller and the “Interactive C” environment, and remotely piloted using a joystick interface and infrared transmitter.
Its reconfigurable-tread chassis allowed it to navigate uneven terrain. The robot could squirm out of ditches, off of rocks, and right itself if it flipped over. The mechanisms are more clearly visible with the HandyBoard removed:
Here are some close-ups of its mechanisms:
The design was worked out in a LEGO CAD program called LDraw; perhaps overkill, but it was a lot of fun!
During the urban search and rescue challenge, it was battery-powered and teleoperated using a camera attached to the front.
Challenges encountered during this project really taught me the value of extensive testing. Some changes made after the robot was run through its paces on the proving ground resulted in unforseen complications: the robot was too big to fit through the starting gate!
The transmission used a worm gear to prevent back-driving, but under battery power the motors could barely overcome the drive train friction. Overall, despite so much time and effort spent on mechanical design, the result was underwhelming - but very educational.
I-Block & O-Block Sorter
This robot navigated a square arena and had to pick up blocks from the middle, move and place them in specified locations.
It used dead-reckoning navigation, but closed the motor control loop with an encoder made out of a cam and touch sensor. This makes the characteristic clicking sound heard while moving.
The sorting blocks were of known shape:
They needed to be picked up and moved to a specific corner of the square arena, depending on their topology.
The robot was programmed to navigate a very specific path, and could quickly and reliably execute the mission so long as it was not interfered with by another robot.
One of our first lab assignments was to make a robot that seeks out light using a simple control loop:
It uses two light sensors, pointed left and right, and simply gives more power to the motor on the dimmer side.
Inverse Kinematics with Pen
Another interesting assignment was to perform inverse kinematics. Our robot had to draw shapes by setting the arm to specific angles. One motor engaged and disengaged the pen, two more set the joint angles, and a third could move the entire robot along a straight line, if necessary.
This was an idea for a transmission arrangement that let you switch between fixed-axle forward wheel motion, or reverse-axle rotation. This allowed for mechanically precise dead-reckoning odometry. It worked very well in practice, but you were constrained to moving in a straight line or spinning in place - not an ideal control scheme.
Rube Goldberg Machine
Lastly, our first project as a group was a rube goldberg machine - I was quite proud of its compact size!