UIUC GE 423 Mechatronics Competition Spring 2017

“Second Place Finishers”

Members: (From left to right) Ilyas Bankole-Hameed, Abraham Vega, Michal Witek


The GE 423 Final Contest consisted of programming a robot car to autonomously navigate through a course within the Mechatronics Lab while locating blue and orange golf balls, identifying their locations, and bringing them back to drop off points outside the course. The robot should avoid obstacles and re-adjust its course when it detects an obstacle.


The robot utilized various methods of control to accomplish the final contest tasks. The sensor information that was used for the controllers were the LADAR for obstacle detection and wall following, the encoders in the motors for “dead reckoning” position and orientation, the reflective IR balls for the Optitrack GPS information, and finally the camera for color detection.

The lowest priority control was used for path planning. The A-star algorithm would run for the course each time the robot detected an obstacle. The LADAR angles used considered a 180 degree sweep from the right side of the robot to the left. The threshold for which a spot on the course would be marked as an obstacle was set to approximately half a meter. In order to make the object detection algorithm “smarter,” the 57-possible wall locations were scanned each time a new obstacle was detected, and certain points would be filled in if the center of a potential wall was detected as an obstacle.

The existing A-star algorithm was modified to allow diagonal movement for the robot. Furthermore, to avoid hitting corners, the robot was not allowed to travel diagonally to cut corners. Finally, to avoid redundant movements, points along the A-star course were skipped if the point in the course did not have any obstacles as neighbors. If the robot was skipping several A-star points, the speed would be increased since no obstacles are in the way of its path.

The next level of control priority was to approach golf balls. Once certain pixels in the camera image were determined to be a large enough object with the correct HSV color values of the golf balls, the robot would align itself to face the golf ball using the column centroid of the image object. It approaches the golf ball at a linearly decreasing speed based on a third order polynomial estimation of its distance away from the golf ball using the row centroid of the image object. Finally, when the object centroid is below a certain row in the image, the robot knows that the ball is about 1 tile away from the gripper. At this point, the position of the golf ball is marked by adding the cosine of the robot’s orientation to its x-position for the golf ball x-position, and adding the sine of the robot’s orientation to its y-position for the golf ball y-position. This information, as well as the ball’s color, was sent to LabVIEW to be plotted, along with the obstacles the robot has detected.

Once the robot is aligned with the golf ball and is 1 tile away, it enters an open loop control to collect the golf ball. The gripper used to collect golf balls consisted of two servos, one oriented vertically that controls the divider between the left and right sections of the gripper compartment, and a front flap to open the compartment for balls to enter. Depending on the color of the golf ball, the divider either moved left or right so that a golf ball would roll to its respective side.

The highest priority control was wall following which served as an emergency obstacle avoidance. If a LADAR value detected that the robot was within a quarter of a meter of an object, it would enter 500 milliseconds of either right or left wall following, depending on the index of the LADAR value that triggered the obstacle avoidance. This was crucial when the robot approaches a golf ball and is too close to an object, or if it enters the open loop golf ball collection code and gets too close to a wall.

Overall, the team’s robot had the fastest performance of all the groups in the class. The navigation code allowed the robot to maneuver any course in a very efficient manner. The robot also could identify and pick up golf balls very quickly and effectively. A very unfortunate brush of the back of the robot on an obstacle prevented the team from a 40 second point reduction in the contest, which would have won the contest. The team finished second out of all the groups.




















Code used: