Obstacles can be positive (sticking up from the ground plane), negative (dips below the ground plane), or roll obstacles (sloped ground in which the vehicle is in danger of rolling over). Our system fuses the data from two lasers, one scanning vertically and the other horizontally, and estimates the ground location by fitting a plane from large patches of points. The terrain is classified as too dangerous to drive on if the ground plane is sloped too much, or if there are detected objects which stick up too far from the ground plane.
The robot must drive the prescribed path while avoiding obstacles along the way. Since the vehicle is moving at high speeds, dynamics are an important consideration. We designed a reactive obstacle avoidance algorithm called Dodger. Dodger operates as a potential field in the space of vehicle heading, where a goal point along the prescribed path acts as an attractor for the heading, while any obstacle points act as repellants. Goal attraction is a function of the goal's angle to the vehicle. Obstacle repulsion is a function of the obstacle's distance and angle to the vehicle, as well as a factor that takes into account the obstacle's distance from the prescribed path.
Dodger proved adept at reacting quickly to steer the vehicle around small obstacles. However, in some cases the obstacle configurations can be too difficult for reactive algorithms. Our autonomous system detects situations in which the vehicle would get stuck using Dodger alone and plans around the obstacles, giving Dodger a better goal point with which to operate.
Like all navigation and avoidance algorithms, Dodger depends on a set of variable parameters in its control function. Most programmers tune these parameters by hand, guessing at which parameters will give the best performance. We achieved better vehicle behavior by tuning the parameters with machine learning. A user drove the vehicle on a prescribed path through various obstacle scenarios, and we used simple machine learning techniques to match predicted vehicle paths to those driven by the user.
GPS is an unreliable localization source, as it can be occluded by trees or tall buildings. These occlusions can be prevalent in the vehicle's operating environment, which necessitates a method to localize the vehicle in GPS gaps. We have devised a system which builds maps of the environment using registered laser range data. As the vehicle drives a path more than once our system can estimate its location by comparing its current laser data with the previously-built map.