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... | |