How Baidu Apollo builds HD (High-Definition) maps for autonomous vehicles

Original Source Here

How Baidu Apollo builds HD (High-Definition) maps for autonomous vehicles

5-step building process, HD map elements, OpenDRIVE format

A high-definition map (HD map) is a highly accurate map used in autonomous driving. HD maps play an important role in autonomous driving modules including perception, simulation, localization, and path planning. As an map-maker, Baidu Apollo is a leading autonomous driving platform in China. In this blog, we will introduce how Baidu Apollo builds HD maps for autonomous driving.

An HD (high-definition) map [1]
  1. What is Baidu Apollo?

Baidu Apollo is an open platform for autonomous driving. The code is publicly available at github. Originally announced in 2017, it iterated from v1.0, v1.5, v2.0, …, till v6.0 today. As a complete autonomous driving platform, it contains the following modules:

  • Accurate perception: uses LiDAR, radar, and camera to detect obstacles and traffic lights.
  • Simulation: virtually drives millions of kilometers with real world traffic and autonomous driving data.
  • HD map: applies senors and deep learning to map making.
  • Localization: achieves centimeter level accuracy with comprehensive solution including GPS, IMU, HD map, and a variety of sensor inputs.
  • Planning: adapts to real time traffic conditions, resulting in precise trajectories that are both safe and comfortable.
  • Intelligent Control: handles different road conditions, speeds, vehicle types and canbus protocols with a control accuracy of ~10 cm.
  • Apollo Dataset: contains time-stamped LiDAR scans, camera images, and post-processed GPS trajectories.

2. How Baidu Apollo builds HD maps?

2.1 Building process

Apollo builds HD maps in 5 steps.

Apollo HD maps’ building process (Image by author)

Data sourcing: Baidu Apollo has a survey fleet driving on roads. The survey cars use different sensors, including LiDAR, GPS, IMU, antenna, and camera to collect data. Apollo defines a hardware framework that integrates these sensors into a single autonomous system. The survey car drives on roads with normal speed (~60 km/h).

Baidu Apollo Survery Car (Image source [2])

Data processing: The collected data includes point cloud data and image data. Apollo sorts, classifies, and cleans the collected data to get an initial map template without semantic information or annotation.

Object detection: Apollo applies deep learning and computer vision techniques to both point cloud and images, for example, point cloud segmentation and classification, and object detection of traffic signs/lights, lane lines/marks and poles.

Manual verification: This step is to manually correct the wrong annotations caused by previous automatic processes. For example, lane marks, lane boundaries, traffic lights/signs might be wrongly detected in previous steps. Also, some logical relationships need to be manually identified. For example, in junctions, there might be multiple traffic lights. Each lane needs to be manually associated with the correct traffic lights.

Map production: The HD maps are ready to be published in this step. In addition to HD maps, Apollo also publishes corresponding localization maps with a top-down view, 3D point cloud maps, path planning maps, and simulation maps.

Conditions of roads are changing everyday, due to constructions, traffic accidents, etc. Thus, the maps need to be updated frequently after publishing. Apollo uses crowd-sourcing and cloud techniques to achieve it. First, Apollo builds a so-called “base map” by survey fleet according the 5 steps above. Then, Apollo releases its data sourcing tools to the public so that the public can participate in the task of HD maps making. Third, the update on roads is sent back to the Apollo map production platform on clouds though smartphones, in-car smart devices in regular cars, intelligent connected cars, and even intelligent autonomous cars.

2.2 Elements in Apollo maps

Road elements: road boundary, lane left/right border, lane speed limit, lane type, lane topology, lane line type, lane direction information, lane steering type, lane length

Intersection elements: intersection boundary, intersection virtual lanes

Traffic signal elements: traffic light, other road signs

Logical relationship elements: map logical relationship

Other elements: crosswalk, no parking area, stop line, pavement arrow, pavement text, fence, street light, gantry, building, deceleration zone

2.3 Apollo OpenDRIVE map format

OpenDRIVE stands for Open Dynamic Road Information for Vehicle Environment. It is a format providing common syntax for describing road networks, with file extensions xodr or xodrz. It standardizes the logical road description to facilitate the data exchange between different driving simulators which develop and validate ADAS and AD features.

Baidu Apollo uses a modified version of OpenDRIVE format. The differences are as follows.

  • Apollo OpenDRIVE uses a simple list of latitude longitude points to define road boundaries, where in standard OpenDRIVE road boundaries are defined with reference lines and bias using functions of five different types.
  • Apollo OpenDRIVE extends elements to include no parking area, crosswalk, and deceleration zone.
  • Apollo OpenDRIVE adds distance from center line of lane to road boundary, and logic relationship between lanes and traffic lights.
  • Lanes: The standard OpenDRIVE allows to only specify the width of a lane. However, Apollo OpenDRIVE requires points for describing lane borders. In addition, Apollo OpenDRIVE requires points for the center of each lane, and boundaries for the road.
  • Junctions: Apollo OpenDRIVE uses a simplified version of junctions, ignoring concepts like junction groups, junction priority, and junction controllers.
  • Objects and signals: Apollo OpenDRIVE uses reduced amount of attributes, and only limited number of object types are supported.

2.4 Coordinate systems

Baidu Apollo uses two coordinate systems: Universal Transverse Mercator (UTM) system, and World Geodetic System (WGS84).

UTM system divides the Earth into 60 zones, each 6° of longitude in width. To refer to a location, you will need both an x and y coordinate and which zone they are located within.

WGS is a standard for use in cartography, geodesy, and satellite navigation including GPS. The coordinate origin of WGS84 is meant to be located at the Earth’s center of mass. It is based on a consistent set of constants and model parameters that describe the Earth’s size, shape, gravity and geomagnetic fields.


[1] Udacity free course: Self-Driving Car Fundamentals: Featuring Apollo

[2] Baidu Apollo Free course


[4] Master thesis: HD-Maps in Autonomous Driving

[5] Commercialize Autonomous Driving


Trending AI/ML Article Identified & Digested via Granola by Ramsey Elbasheer; a Machine-Driven RSS Bot

%d bloggers like this: