In order to move through an unknown area, an autonomous vehicle needs a map, just like humans. Maps used for autonomy are more complex than those used by humans and are called HD (high definition) maps. Usually, such maps store several levels of information, including:
- road grid
- traffic lane grid
- dynamic information about traffic conditions
- information about static objects, such as signs, poles, buildings, etc.
- terrain shape information.
The HD map data stored in the vehicle must be kept up to date. Different map levels may require different frequencies of data updates. In particular, advanced autonomous systems have to enable continuous connectivity to the database and/or other vehicles so that the map’s dynamic information can be updated.
The terrain shape is stored as a 3D point cloud. This cloud can be generated in advance using a vehicle equipped with a precise lidar, GPS, and inertial sensors. Such a vehicle drives over the mapped area, capturing data from the sensors. The recordings are pre-filtered, and then the point clouds from successive frames are matched with each other to obtain a coherent, static point cloud of the entire area. The resulting point cloud is filtered again to create the final map. Such a map is used to determine the positioning of the vehicle based on the point cloud reading from the lidar placed on the autonomous vehicle.
The SLAM (Simultaneous Localization and Mapping) family of algorithms is an extension of this concept. As part of this approach, the map’s point cloud is created or updated in real time when the vehicle is on the move. When the vehicle starts, the map’s point cloud is either potentially outdated or non-existent. As the vehicle moves, incoming sensor data is used to determine the positioning relative to the already generated part of the map, and then used to update the map’s point cloud. The resulting map can be distorted by the accumulation of minor errors from subsequent data frame matches. That is why map optimization is an important element of many SLAM algorithms. A popular optimization method is loop detection, which detects re-visited places on the map and corrects map geometry so that past information is consistent with the information read in the present.