DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

Lane Planning
Note
SW Release Applicability: This tutorial is applicable to modules in NVIDIA DRIVE Software releases.

The input to the Lane Planner is a list of points that define a route for which a Lane Plan is to be created. The first point of the list defines the start lane, the last point defines the target lanes by using the nearest lane group as the target set. So at least two points are needed to define the graph search. All other intermediate points only affect the cost function to guide the search along a desired direction. If the start lane and/or target lane set is known, they can be specified explicitly. It is possible that the resulting optimal Lane Plan does not pass through all intermediate points. Enforcing that is avoided because the input points are expected to be inexact, and therefore might be assigned to wrong lanes that are not part of the optimal path.

To compute a Lane Plan, call the following function:

const dwMapsLane* startLane,
const dwMapsLane** targetLanes,
uint32_t targetLaneCount,
const dwMapsGeoPoint* gpsPathPoints,
uint32_t gpsPathPointCount,
bool ignoreHeight,
void* costFnContext,
dwLanePlannerHandle_t lanePlanner);

The result is stored in the provided Lane Plan. A custom cost function can be implemented to define different search priorities. If it is omitted, a default cost function is used that:

  • Combines the minimization of driving time and lane changes and
  • Tries to follow the provided input points.