Skip to content

Autoware Extensions: Hardening the Map for Autonomy

Standard Lanelet2 is flexible enough to represent the same traffic light three different ways. Autoware cannot handle three different ways. Hardening the map means removing that flexibility and replacing it with a contract the stack can rely on.

5 min read

Standard Lanelet2 gives you choices. A traffic light can be a polygon. Or a LineString. Or a point. All three are valid. All three will load. A human looking at the map will understand that all three mean “there is a traffic light here.”

Autoware’s traffic light recognizer will not. It expects exactly one representation: a LineString drawn from the bottom-left edge to the bottom-right edge, with a height attribute defining the vertical size of the fixture. Give it a polygon and it finds nothing. Give it a LineString drawn the wrong way and it searches the wrong region of 3D space. The flexibility that makes standard Lanelet2 easy to author is the same flexibility that makes it unsafe to deploy.

This is what hardening means: closing the gap between what the format allows and what the stack expects.

The mandatory extensions

Autoware adds five categories of requirements on top of standard Lanelet2.1 Each exists because a specific Autoware module will fail without it.

Traffic light geometry. Every traffic light must be a LineString, not a polygon and not a point. The line must start at the bottom-left edge of the light and end at the bottom-right edge. A height attribute defines the vertical size of the fixture, the physical height of the light housing itself; where the light sits above the road is ele’s job, the distinction Chapter 20 drew. The traffic light recognizer uses these values to construct a search window in 3D space. If the window is the wrong shape, the recognizer misses the light.

Turn directions. Every lanelet inside an intersection must carry a turn_direction attribute set to left, right, or straight. This attribute is the trigger Autoware uses to activate the vehicle’s turn indicators. Without it, the vehicle navigates the turn correctly but never signals, a safety violation in any environment shared with human drivers or other vehicles.

Node elevation. Chapter 20 covered why Autoware mandates the ele attribute on every node, and how it differs from height. On the checklist the requirement is one line, and the failure mode is the quiet one: a missing ele attribute does not produce a warning. It produces a module that silently fails to find the object it is looking for.

Roadside subtypes. Autoware introduces two lanelet subtypes that standard Lanelet2 does not define:

Subtype Use when Constraint
road_shoulder There is passable area outside the lane (a sidewalk, a bike lane) The vehicle may use this area for emergency maneuvering or temporary parking
pedestrian_lane There is no passable area outside the lane If the vehicle parks here, it must leave at least 75 cm of clear width for pedestrians and bicycles

The 75 cm rule is not a guideline. It encodes a spatial policy (a legal requirement) directly into the map geometry. The subtype tells the planner how much of the lane it can actually use.

Detection areas. A detection area is a polygon that defines a region of interest the vehicle must monitor, paired with a stop line: if an obstacle is detected inside the polygon, the vehicle stops at the line and waits until the area clears. It is the one polygon in the map that changes driving behavior. Chapter 22 covers how the pairing works, with the Harbor Yard blind corner as the example.

The hardening checklist

Before a map is ready for Autoware, verify every item:

  • Every node has an ele attribute
  • Every traffic light is a LineString, drawn bottom-left to bottom-right, with a height attribute
  • Every intersection lanelet has a turn_direction attribute
  • Every roadside lane is classified as road_shoulder or pedestrian_lane
  • Every blind zone or gated entry has a detection area with an associated stop line

Try this

[5 min] Tag the Harbor Yard loop exit for Autoware.

  1. Find the lanelet where the Harbor Yard loop road meets the main access road. This is an intersection lanelet: the vehicle must turn right to exit the yard.
  2. Add a tag with key turn_direction and value right.
  3. Save and export the map.

Skip this step and the vehicle still calculates the path and navigates the turn correctly. It has no value to trigger the turn signal, because the tag that fires it is absent. In a yard shared with human drivers, forklifts, and other vehicles, that silence is the hazard: everyone around the vehicle expects a signal before it turns, and a maneuver with no warning breaks that expectation. One tag. One value. That is what hardening looks like.

Footnotes

  1. These extensions live in the autowarefoundation/autoware_lanelet2_extension package, which defines the tags and constraints Autoware enforces on top of standard Lanelet2. https://github.com/autowarefoundation/autoware_lanelet2_extension

Found an error or have a suggestion?

Report an erratum or send feedback →

In this Part

Keep reading

Beyond the book

Build your own HD map.

Veer Studio is the spatial compiler this handbook teaches you to use. Download it and map a site, or tell us about your site and we will show you a validated map.

← Back to HD Map HandbookContinue to Behavioral Contracts: Regulatory Elements and Site Policy →