CajunBot PlanningThe most obvious techniques that must be employed are those that allow the vehicle to decide where to go and how to get there. Over the years, we've tried a number of different ideas to convince the vehicle to travel in a useful direction and to do it safely. Some of these methods have worked well, some of them have turned into their own little nightmare. One of our earliest attempts to drive the vehicle involved using a physics inspired flow model. In this method, the vehicle would assign high values to unnavigable areas and low values to easily traversed terrain. Then the vehicle would simply attempt to "flow" through the terrain to its goal. This proved to be a useful enough model in the beginning, but with the increasingly complicated scenarios created by the later Challenges, this method started to have trouble. Our current method starts with a list of maneuvers that the vehicle is able to perform. The system then attempts to apply the simplest set of these maneuvers that will connect the vehicle's current position to its next checkpoint. At the same time the vehicle must be sure that the set of maneuvers will not perform any improper behavior, such as hitting other objects in the area. This newer method has thus far shown to be very robust at traversing normal environments, although it does have trouble when it cannot find a set of maneuvers that will allow it to accomplish its current goal.


CajunBot SteeringOnce a series of maneuvers has been decided upon, the vehicle must actually carry them out. This task is closely related to the platform that we are working with. As CajunBot was a six-wheeled vehicle that used skid-steering to navigate, many of the algorithms used to drive it did not transfer well to Ragin'Bot with its common car and truck design. While the exact mechanisms required to drive the two vehicles were quite different, the overall concept remains the same. How do you direct the vehicle in the requested direction and apply the appropriate speed. This means that we were able to transfer some of the algorithms that determined what needed to be done when changing platforms. The only remaining task then was to link those algorithms into the actual steering systems. This part of the task was easily done using existing formulas about vehicle motion.


BlackboardIn order to operate properly many different tasks have to be going on at the same time. For example, this would mean that the driving algorithms cannot have direct knowledge of what the planning algorithms are actually doing. However, the driving algorithms must still know what the planning algorithms decide, so there must be some form of communication between them. To facilitate this communication we use something similar to a personal blackboard. Each program can have one or more of these blackboards that they can write to. While any program can read from which ever blackboard it wants, it can only write to its own blackboards. This removes many of the complexities of having two programs attempting to write to the same blackboard at the same time, but can also make it hard for more than one program to collaborate to solve a problem.


With both CajunBot and Ragin'Bot, hardware is everywhere. Everything that you can see about the robot is hardware, and the hardware is what ultimately gets the job done. Each of our vehicles have used different hardware to accomplish its goals, but the basic components remain the same: a vehicle, some sensors, some motors to interact with the vehicle and some computers to connect it all together. A simple enough recipe, but one that requires a lot of attention to detail to ensure that everything works together properly.


Looking Forward
We often start with a preexisting hardware solution and improve upon it where needed. We have adopted several system which provide a sufficiently accurate solution to the problem in most cases. These include the ibeo LIDAR sensors, the Iteris lane departure warning system and the Oxford inertial navigation system. All three of these systems provide accurate information about the vehicle and its environment. However, all three of these systems rely on well tested and known algorithms. In each case they can be improved upon by using more modern methods and state-of-the-art algorithms. While we do not expect to need all of the technology that we create for the immediate Challenge, most of it will be essential for the future Challenges and to solve the fundamental problem.

Additional information