Date: April 2013
Location: Oshawa, Ontario
Company: UOIT
Team: Cameron, Tyler
Objective
Build an automated robot controlled by an Arduino Uno that can perform the following 2 tasks.
- Navigate through a know area and deliver a parcel to a target destination
- Navigate through an unknown area and deliver a parcel upon contact with target at unknown location.
Solution
Chassis: We designed for tight spaces and maximum venerability. A zero turning radius and high-torque drive train were required to be able to tackle or avoid obstacles as needed. Two drive wheels in the front and a single castor in the rear were perfect for the prototype because there was no need for suspension.
Requiring the use of an Arduino Uno created some interesting restrictions along the way. Since the chip only has 2 interrupt pins, the wheel encoders could only be run with a single channel. Ultimately this meant we lost all measure of direction of the wheels.
Navigation: We used 3 ultrasonic sensors to detect barriers ahead of and to each side of the SARbot. The front ultrasonic sensor was to complement the wheel encoders for distance traveled as well as obstacle avoidance. Our sensors had a range from 4cm – 400cm. This range far exceeded any IR based sensors we found in our budget.
Following a straight line was accomplished through the sensors and encoders together. Since dead-reckoning is never optimal, the side sensors corrected any strafe and adjusted the estimated travel distances because traveling in a curve means travelling farther than the equivalent straight line.
Parcel Delivery: As seen in the video below, there is a servo-operated bucket that dropped a parcel over the wall of the test area to the target.
Further Work:
If we had the budget, I would have used 2 PIC or small ATMEL chips to use as motor drivers. They could easily have run the motors and encoders and just communicated with the primary controller (Arduino). As well, a proper chassis would have made this project far more presentable.