DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

LanePlanner.h File Reference

Detailed Description

NVIDIA DriveWorks API: Lane Planner

Description: This file defines the API of the driveworks lane planner module.

Definition in file LanePlanner.h.

Go to the source code of this file.

Data Structures

struct  dwLanePlan
 A lane plan consist of a list of segments that describe how to get from a source lane to a target lane, following a squence of connected lanes, including information about lane changes, lane splits and lane merges. More...
 
struct  dwLanePlanActions
 Structure that packages lane change, lane split, and lane merge info together. More...
 
struct  dwLanePlanIndex
 Index defining a point in the lane plan. More...
 
struct  dwLanePlanLane
 A lane plan lane is a sequence of dwMapsLane's, with additional information per dwMapsLane about moving direction and estimated time of arrival. More...
 
struct  dwLanePlanLaneChange
 Lane change state on the lane plan. More...
 
struct  dwLanePlanSegment
 A lane plan segment is a segment along the lane plan with a consistent lane change situation. More...
 

Typedefs

typedef struct dwLanePlanObject const * dwConstLanePlanHandle_t
 
typedef struct dwLanePlannerObject const * dwConstLanePlannerHandle_t
 
typedef struct dwLanePlanObject * dwLanePlanHandle_t
 
typedef float32_t(* dwLanePlannerCostFunction_t) (const dwMapsLane *lane, bool forward, float32_t length, uint32_t laneChangeCount, dwMapsSide laneChangeSide, const dwMapsGeoPoint *gpsPathPoint, uint32_t gpsPathPointCount, bool ignoreHeight, const dwMapsLane *neighborLane, void *context)
 Cost function that allows to implement a custom cost calculation in the dijkstra algorithm that calculates the optimal lane plan. More...
 
typedef struct dwLanePlannerObject * dwLanePlannerHandle_t
 

Functions

DW_API_PUBLIC dwStatus dwLanePlan_computeDistance (float32_t *distance, const dwLanePlanIndex *index1, const dwLanePlanIndex *index2, dwConstLanePlanHandle_t lanePlan)
 
DW_API_PUBLIC dwStatus dwLanePlan_containsLane (bool *isOnLanePlan, const dwMapsLane *lane, dwConstLanePlanHandle_t lanePlan)
 Check whether a given dwMapsLane is part of the lane plan. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_decreaseIndex (dwLanePlanIndex *lanePlanIndex, uint32_t decreaseCount, dwConstLanePlanHandle_t lanePlan)
 Helper function to compute the previous lane plan point on a lane plan. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_findClosestPoint (dwMapsGeoPoint *closestPoint, dwLanePlanIndex *lanePlanIndex, const dwMapsGeoPoint *gps, bool ignoreHeight, dwLanePlanHandle_t lanePlan)
 Helper function to find the closest line segment on the lane plan to a given gps location, together with the corresponding closest lane plan point (the closer of the two lane plan points on the line segment that contains the closest geometric point). More...
 
DW_API_PUBLIC dwStatus dwLanePlan_get (dwLanePlan *lanePlan, dwConstLanePlanHandle_t lanePlanHandle)
 Retrieve the result of a previous 'dwLanePlanner_run' call. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getComplexity (uint32_t *totalLaneChangeCount, uint32_t *totalLaneSplitCount, uint32_t *totalLaneMergeCount, dwLanePlanHandle_t lanePlan)
 Returns some numbers that indicate how complex it is to autonomously drive a given lane plan. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getCurrentGeoPoint (dwMapsGeoPoint *pointOnLanePlan, dwConstLanePlanHandle_t lanePlan)
 Get current point on the lane plan in gps coordinates. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getCurrentIndex (dwLanePlanIndex *lanePlanIndex, dwConstLanePlanHandle_t lanePlan)
 Get the index to the current point on the lane plan. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getCurrentPoint (const dwMapsRoadSegment **referenceRoadSegment, dwVector3f *pointOnLanePlan, dwConstLanePlanHandle_t lanePlan)
 Get current point on the lane plan in coordinates relative to a reference road segment. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getEstimatedArrivalInfo (float32_t *distToDestination, float32_t *timeToDestination, dwConstLanePlanHandle_t lanePlanHandle)
 Get estimated time and distance to reach the end of the lane plan from current position. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getLanePlanActions (dwLanePlanIndex *laneChangePointIndex, dwLanePlanIndex *laneSplitPointIndex, dwLanePlanActions *lanePlanActionInfo, dwLanePlanHandle_t lanePlan)
 Get information about the next lane change and lane split. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getLanePlanActionsNew (dwLanePlanIndex *laneChangePointIndex, dwLanePlanIndex *laneSplitPointIndex, dwLanePlanIndex *laneMergePointIndex, dwLanePlanActions *lanePlanActionInfo, dwLanePlanHandle_t lanePlan)
 Get information about the next lane change, lane split, and lane merge. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getLanePlanSplitMergeDetails (dwMapsLaneSplitDetails *laneSplit, dwMapsLaneMergeDetails *laneMerge, dwLanePlanHandle_t lanePlan)
 Get information about the next lane change, lane split, and lane merge. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getNextLaneChange (dwLanePlanIndex *laneChangePointIndex, dwLanePlanLaneChange *laneChange, float32_t *distance, dwLanePlanHandle_t lanePlan)
 Get next lane change. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getNextLaneChangeAt (dwLanePlanIndex *laneChangePointIndex, dwLanePlanLaneChange *laneChange, const dwLanePlanIndex *queryPointIndex, dwConstLanePlanHandle_t lanePlan)
 Get the next lane change happening on the lane plan at or after given lane plan index. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getNextLaneMerge (dwLanePlanIndex *laneMergePointIndex, dwMapsLaneMergeDetails *laneMerge, float32_t *distance, dwLanePlanHandle_t lanePlan)
 Get next lane merge. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getNextLaneMergeAt (dwLanePlanIndex *laneMergePointIndex, dwMapsLaneMergeDetails *laneMerge, const dwLanePlanIndex *queryPointIndex, dwLanePlanHandle_t lanePlan)
 Get the next lane merge happening on the lane plan at or after given lane plan index. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getNextLaneSplit (dwLanePlanIndex *laneSplitPointIndex, dwMapsLaneSplitDetails *laneSplit, float32_t *distance, dwLanePlanHandle_t lanePlan)
 Get next lane split. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getNextLaneSplitAt (dwLanePlanIndex *laneSplitPointIndex, dwMapsLaneSplitDetails *laneSplit, const dwLanePlanIndex *queryPointIndex, dwLanePlanHandle_t lanePlan)
 Get the next lane split happening on the lane plan at or after given lane plan index. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getPoint (dwMapsGeoPoint *pointWGS84, dwVector3f *pointLocal, const dwMapsLane **lane, dwTime_t *time, const dwLanePlanIndex *index, dwConstLanePlanHandle_t lanePlan)
 Get point data from lane plan at given index. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_getTargetLanes (dwMapsLanePtrBuffer *lanes, uint32_t *laneChangeIndex, float32_t distance, dwLanePlanHandle_t lanePlan)
 Get target lane ptrs e.g. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_increaseIndex (dwLanePlanIndex *lanePlanIndex, uint32_t increaseCount, dwConstLanePlanHandle_t lanePlan)
 Helper function to compute the next lane plan point along a lane plan. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_initialize (dwLanePlanHandle_t *lanePlan, dwConstLanePlannerHandle_t lanePlanner)
 Creates a lane plan object and returns a handle to it. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_initializeLanePlanActions (dwLanePlanActions *lpActions)
 Default initialize a dwLanePlanActions object. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_release (dwLanePlanHandle_t lanePlan)
 Release a lane plan object. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_updateCurrentPointWithCurrentRoadSegment (const dwMapsRoadSegment *currentRoadSegment, const dwVector3f *position, const dwMatrix3d *localToENURotation33, dwTime_t timestamp, dwLanePlanHandle_t lanePlan)
 Update the current point on the lane plan based on a pose defined in relative coordinates. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_updateCurrentPointWithGlobalPose (const dwMapsGeoPoint *gps, const dwMatrix3d *localToENURotation33, dwTime_t timestamp, bool ignoreHeight, dwLanePlanHandle_t lanePlan)
 Update the current point on the lane plan based on a pose defined in absolute coordinates. More...
 
DW_API_PUBLIC dwStatus dwLanePlan_updateCurrentPointWithLocalPose (const dwMapsRoadSegment *referenceRoadSegment, const dwVector3f *position, const dwMatrix3d *localToENURotation33, dwTime_t timestamp, dwLanePlanHandle_t lanePlan)
 Update the current point on the lane plan based on a pose defined in relative coordinates. More...
 
DW_API_PUBLIC dwStatus dwLanePlanner_initialize (dwLanePlannerHandle_t *lanePlanner, float32_t maxPlanLengthMeters, dwConstMapHandle_t map)
 Creates a lane planner object and returns a handle to it. More...
 
DW_API_PUBLIC dwStatus dwLanePlanner_release (dwLanePlannerHandle_t lanePlanner)
 Release a lane planner object. More...
 
DW_API_PUBLIC dwStatus dwLanePlanner_run (const dwMapsLane *startLane, const dwMapsLane *const *targetLanes, uint32_t targetLaneCount, const dwMapsGeoPoint *gpsPathPoints, uint32_t gpsPathPointCount, bool ignoreHeight, dwLanePlannerCostFunction_t costFn, void *costFnContext, dwLanePlanHandle_t lanePlan, dwLanePlannerHandle_t lanePlanner)
 Create a lane plan along the provided gps path points, based on the map that is given at initialization. More...