by: Jake Arnold, Nick Farace, & Matt Williams


Links: Code Composer Files, VBA Files

Video #1 - Failure

Video #2 - Success

Video #3 - Success


Nick “Lost his leg”


Jake “Electric Love” Arnold

Matt “Baby Caught me Coding” Williams


Control Strategy


Control was divided into five different control states.


Control State 0

Control state zero handles waypoint movement of the xy_control function. This is the default control case.


The robot will abort right wall following and enter this state when the destination is on the left of the robot at a distance greater than half a tile. Similarly, it will abort left wall following and enter this state when the destination is on the right of the robot by the same distance threshold.


This control state is also resumed after a ball has been collected.


Control State 1

Control state one handles left and right wall following. Left and right wall following flags are set by looking at LADAR readings to the left and the right of the robot. If the left LADAR distance is less, the robot will enter left wall follow, and vice versa for right wall following.


Reference velocity and turn commands are based off of proportional control.


Control State 2

Control state two handles ball following. This is accomplished through analyzing a camera image with a determined RGB threshold for orange and blue. Once a golf ball is seen, the robot orients itself (using proportional control and the x centroid of the subset of pixels) so that it is pointing directly at the ball before it moves forward. A 4th order polynomial is used to determine the distance of the golf ball from the center of the robot.


Once oriented, the robot moves forward. Simultaneously a servo moves a separator in the ball receptacle and another servo opens the door. The separator position is determined based upon the color of the ball the robot it moving toward. This keeps the balls separated while in the receptacle.


Control State 3

Control state three handles the final collection of balls. Because a golf ball will be out of range of the camera when it is right in front of the robot, this control state uses timers to make sure that the robot continues to drive forward and closes the door in order to secure the ball.


Control State 4

[404] - This control state is missing.


Control State 5

Control state five handles the deposition of balls in the “black holes of doom” that are taped off outside of the course. The separator servo adjusts to the appropriate position, the ball bay door opens, the robot backs up, the balls flow out, and the course is completed!