Skip to content

Mapping and Data Processing Strategies

Will Heitman edited this page Oct 30, 2021 · 3 revisions

Tasks

From a high level, the mapping team will need to

  1. Create high-definition maps of the driving area
  2. Combine the HD maps we create into one large map of the demo-2 "track"
  3. Align it with a predefined map of current roads, lanes, street features, and speed limits.
  4. Process the map further to eliminate anomalies or irregularities in the data
  5. "Feed" the map to the vehicle, but only the immediate area, to save processing power and memory

Creating High Def Maps

Autoware has a built-in mapper that will create these lidar scans for us

Combining the maps

libpointmatcher is a great library that does a lot of this work. It implements the Iterative Closest Point algorithm (ICP) to align point clouds together. In our case, because readings will have natural misalignments or errors in them from collection to collection, this library eliminates irregularities caused by collecting data in multiple attempts (and using the best one).

Alignment

Currently, alignment is a bit tricky. The origins/orientations of the maps that we have are different than the orientations of the Lanelet maps, which are the predefined maps containing basic road data. You can't locate yourself within a Lanelet map, but you can align it with a Point Cloud Map, which the vehicle can locate itself in, then locating itself within the Lanelet map with that information. This requires exactly aligned maps to correctly perform. To do this, there are several libraries.

  • Paraview allows us to visualize point clounds and do basic manipulation
  • The Point Cloud Library (PCL) contains almost every point cloud manipulation, filter, or transform that we would need.

Processing

TBD - Need more research

Problems

Loop Closure Problem

Assuming we have a perfect map and a perfect alignment, the physical world is another source irregularities. When we create our HD map, the tires move in a specific area of the road, the weather is unique to the collection environment, other vehicles behave in a unique way, etc. In our tests, if hit a small bump in a road, or run over a rock that wasn't there last time, the point cloud that is being read by the vehicle will differ slightly from the point cloud that was originally read and aligned. While this will correct itself as the vehicle continues driving, it runs into an issue if it goes in a loop, and this time, the irregularities don't occur. Now, the vehicle is reading in point cloud data it hasn't "seen" before, and is prone to problems with localization, because it doesn't recognize the environment it's driving in.

Clone this wiki locally