Project Description
Teams of four students were given one month to design and build an autonomous mobile robot (also referred to as a "DrEd KART") that could complete three laps around a race course, shoot a ball into a bucket (the "Target Bucket") from a specific area in the race course (the "Shooting Zone"), and drive over a see-saw (the "Obstacle"). (A plan view of the race course is shown on the right.) The robot could only use two 7.2-V NiCd batteries and had to fit within a 12.75" circular cylinder (i.e., 12.75" diameter, 12.75" height).
In addition, the robot had to communicate with an outside system, called the DrEd Reckoning System (DRS), to receive information about the game status and the position and orientation of all robots on the race course. Various sensory inputs were placed on the race track, and teams were given the freedom to chose which to incorporate into their robot's design and which to ignore. These included:
|
Note: You may be wondering why our team name is "1023 MB." The reason is simple: we don't have any gigs yet.
Videos of Core Functionality:
(shown at 1.5x speed)
Completing LapsShooting Foam Balls |
Crossing the ObstacleAutonomous Zone Alignment |
Design Overview: The 1023 MB KART
Our KART (shown below) consisted of three tiers that were supported by threaded rods with nuts spaced vertically apart by approximately 3". Components that required the most structural robustness were made from Duron. All other components were made from foamcore to minimize weight, which facilitated crossing the obstacle on a limited power supply. The robot had two rear-drive wheels, each connected to an Igarishi 2732-0141-2434-16 motor powered by 14.4 V. The third contact with the ground was a ball caster located near the front of the KART. Details related to the mechanical and electrical design are provided on the Mechanical and Electrical pages of this website.
A Texas Instruments Tiva C Series LaunchPad microcontroller was used to control the KART's behavior through two orthogonal hierarchical state machines. Our code is listed on the Software page of this website.
A Texas Instruments Tiva C Series LaunchPad microcontroller was used to control the KART's behavior through two orthogonal hierarchical state machines. Our code is listed on the Software page of this website.
General Strategy
Our KART completed laps around the race track using tape sensors because an early-stage prototype proved that this strategy was very reliable and repeatable. Tape sensors also allowed us to tune the system independent of the DRS. For navigation off of the tape, our KART relied on encoders and filtered DRS data. This method was implemented for shooting and obstacle crossing, where accurate position data were required for success. Finally, our KART used a flywheel motor-based shooter because previous 218ers had advised us that this was a good strategy, and an early-stage prototype proved our KART could attain the correct range and accuracy. Details about these areas of core functionality are listed below.
Sensor-Based Navigation
To complete laps around the track, we implemented a tape-following proportional-derivative (PD) control algorithm using two tape sensors mounted on the belly of the KART. Refer to the first two pictures below from the left.
To drive straight and turn, we fabricated rotary encoders (i.e., by combining a slotted disk with a photo-interrupter) and attached them to each motor shaft (see rightmost picture). Using the encoders, our KART knew exactly how much each wheel was turning in real-time and could correct the desired duty cycle accordingly.
To drive straight and turn, we fabricated rotary encoders (i.e., by combining a slotted disk with a photo-interrupter) and attached them to each motor shaft (see rightmost picture). Using the encoders, our KART knew exactly how much each wheel was turning in real-time and could correct the desired duty cycle accordingly.
Communication-Based Navigation
Our KART was able to navigate itself using position and orientation data from the DRS. (Refer to the figure of the race course for the DRS coordinate system.) The position data were relatively noise-free, whereas the orientation data tended to be noisy. To filter the orientation noise, the KART computed the average of 10-15 orientation samples before executing a turn. The turns themselves were controlled using custom encoders. After turning, the robot would compare its current orientation with the desired orientation; if the error was larger than ±4 degrees, the KART would repeat this process. Overall, this methodology allowed for very accurate navigation. Our KART could successfully enter the Shooting Zone, face the Obstacle head-on, and find the tape once again after exiting the Shooting Zone and crossing the Obstacle.
Pictured below from left to right are the DRS communication board, a colored target to allow the DRS's mounted camera to track the KART, and an LED circuit that denotes which KART number (and which colored target) we were assigned at the beginning of a race.
Pictured below from left to right are the DRS communication board, a colored target to allow the DRS's mounted camera to track the KART, and an LED circuit that denotes which KART number (and which colored target) we were assigned at the beginning of a race.
Aiming & Shooting
Our KART could find the Target Bucket using an IR beacon sensor circuit. Upon orienting, the flywheel motor (seen in the white case on the right) would turn on and be given three seconds to attain maximum speed. Finally, a series of two servo-motors would ensure the release of only one foam ball per shot, and the ball would be propelled out of the flywheel over a ramp. Details of the shooting mechanism are given on the Mechanical page.
Gems of Wisdom
- Start prototyping any shooting device early. It often takes several iterations to get a reliable design.
- Mount all circuits so that they are accessible without moving other components.
- Hold regular check-ins with your entire team to make sure that everyone is on the same page and can voice their ideas.
- Consider how much torque your platform will need and size your drive wheels accordingly. We ran into some trouble because we chose 5"-diameter wheels.
- Keep the weight of your robot low, so that your batteries do not drain as fast from driving.
- Use Molex connectors on your circuits to allow for easy debugging and assembly.