Funny thing happened on the way to qualify for worlds in the programming challenge… the robot won the Robodox driver challenge instead with our programmer Gevorg as the driver. Go figure. Lancerbots brought three robots to the competition but only one of them was working so the programming robot did double duty as both driver and programming entry. The drive skill score was 205 which puts it in the top 40 world rankings but you need to be in the top 30 to qualify. Being in the top 5 of the California robots qualifies it for the California State Championships on March 16th in Santa Clara near San Jose.
I helped the kids construct a solid programming robot that was very close to being qualified for worlds…except for a pesky sack that caused the robot to not complete its route. (robot video) The robot is a very efficent spatula robot that can pick up and dump a load of 16 sacks over its back. It is designed with encoders , line sensors and gyro sensors that are used to provide full navigation ( two axis position and speed as well as heading). The line sensors are used to update the navigation solution.
The field geometry is coded by 4 way points which are at the intersection of the crossing white lines used for line tracking. The waypoints are used to automatically steer toward using a waypoint tracker algorithm that nulls cross track distance and has heading inner loop. It makes the programming simple and straight forward and works great so long as the gyro doesn’t drift too much. The gyro is used to generate heading as a compass would. We know it is not a great sensor to use as a compass because it does drift at about 6 deg/min which is enough to mess you up on the last legs of the route. But we thought we would give it a try since it is a random phenomonon and sometimes it works great..if you are lucky. We have some ideas to make the compass heading more reliable by using a gyro rate deadzone and also blending the gyro with additional encoder data.
I think the robot is capable of competing at the world class level and probably could score 250 points (pending compass problem fixes and optimization). The world record currently stands at 185 points. Had it completed its route on Saturday, the score would have matched the current world record. Woulda shoulda coulda…frustrating to put in hours of work and have a darn sack trip you up.
I will publish the software at a future date. It uses four tasks: Navigation, System Control, Feedback Control and Task Control. The User and Autonomous functions generate engage commands for automatic functions and provide relavent parameters.
As an example: Suppose we want to track a line crossing through a waypoint. We simply set the waypoint number (a waypoint has a position and heading) , engage the tracker and use a “move until” distance function that stops the robot when it has reached the desired point along the track. The lateral tracking is done automatically. Any virtual line on the field can be tracked independent of the white lines given to the programmer to use.