Mapping is an essential part of long-distance autonomous navigation. But the term “mapping” can be nebulous on its own, and involves extensive technology to build a map and use it effectively. This high-level overview provides insights into what a map is from the perspective of an autonomous system, details of how maps are typically built and how they are useful to autonomous machines.
A map represents the physical world around an autonomous machine. The format of the map
can vary in complexity and dimensionality, depending on the needs of the machine. A simpler map may be a two-dimensional occupancy grid that represents the world as a flat grid. Within this simpler map, each grid square holds a single value that indicates if that square is occupied by an object or not. Typically, a more complex format is used, such as a voxel grid, a three-dimensional version of an occupancy grid that uses cubes called voxels instead of two-dimensional squares, or a point-cloud map, which is a representation of the world with an enormous number of unorganized three-dimensional points. In some applications, these maps can become very large, both in terms of the physical area they represent and the computer storage space they consume. In such cases, a map may be split into smaller submaps where the autonomous machine uses only the submap within which it is currently located. The splitting of maps into small submaps is often referred to as “tiling.”
In simple terms, the primary goal of a map is to represent which parts of the world contain objects, and which parts are free space that the machine can move through. But within autonomy, maps can play a more complex role by storing additional information about the machine’s environment. This data becomes particularly useful when informing the machine’s navigation. For example, an individual voxel may indicate if it is free or occupied, but it may also store a traversability metric, how easily the machine can move through that voxel, based on information such as the slope of the ground. This can be helpful for identifying negative obstacles such as irrigation ditches, trenches or large pot holes. Other information that might be stored includes the type of the object (e.g. pedestrian vs. car) or information necessary for proper operation, such as road information (street signs, speed limits, one-way streets).
These maps are populated and maintained by a complex system that involves combining data from multiple sensors. A sensor can tell a machine where an object is relative to the machine, but in order to translate that information into the map requires knowing the location and orientation of the machine within the map. That can be achieved using any combination of dead reckoning, visual odometry, or GNSS positioning. A great example of this can be found here. Once the map is built, it needs to be maintained. Each new frame of sensor data may update prior data in the map, based on probabilistic reasoning, while back-end algorithms may search for closed loops in the odometry of the machine to improve map accuracy, and so on, with many different algorithms being applied as necessary to maintain the most accurate representation of the world.
With the mapping system built and maintained, it can be used by the path planning algorithms to dynamically plot a route around obstacles stored in the map, even for obstacles that are outside the machine’s current field of view. This is particularly useful in dense environments like construction sites, where line of sight might be heavily restricted. Additional map information like traversability can allow machines to plan paths that are flatter and more efficient to traverse, saving fuel and minimizing damage to the environment. In agriculture, map information about the spacing between crop rows can allow the machine to place its wheels between the rows, thereby avoiding damage to the crop itself. Here’s an example of how these systems are already in place to facilitate autonomous functionality.
Even after the autonomous machine has completed its task for the day, the map it has built can be used for analytics purposes. Quite often a site operator or farmer might want to know how
their site or fields are changing over time. By comparing maps collected on different days,
operators can see changes occur over time in the size of crops, stockpiles and earthmoving
operations. These mapped changes over time are called “as-built” surveys, and can provide significant value.
The role of mapping for autonomous applications cannot be overstated. Its functional use to provide a safe or optimal path for machines is primary in the steps towards autonomy. Additionally, the data and analytics that are delivered by analyzing maps over time informs the next stages of the journey to autonomy. With few off-the-shelf solutions, most mapping systems in autonomy are highly customized to the needs of a specific machine or application.