Autoware.Auto
Lane planner

This is the design document for the lane_planner package.

Purpose / Use cases

Lane Planner is used to calculate trajectory within lanes. It will use centerline of lanes obtained from HADMap and convert it into trajectory.

Design

Assumptions / Known limits

Assumptions:

  • Route message does not include primitive that is irrelevant.
    e.g. if lane are connected as 1->2->3, and if start_point is within lane 2 and goal_point is lane 3, given route should not include lane 1.

Limitations:

  • Since the lane planner is using centerline of lane, it may not be kinematically feasible path, for example, when the lanes have sharp turns.
  • Optimization of trajectories with vehicle's limitations will be future work.

Inputs / Outputs / API

Inputs

  • HADMap
  • Route via ActionGoalRequest

Outputs

  • Trajectory via ActionResult

Inner-workings / Algorithms

Trajectory is generated by following steps:

  1. Generation of trajectory points from centerline in Lanelet Map
  2. Calculation of steering angle from curvature of the path
  3. Calcuation of time of arrival for each points from velocity
  4. Resizing trajectory to fit within trajectory capacity
  5. Smoothing of velocity

Error detection and handling

If any invalid route is given, the planner will return empty trajectory.

Security considerations

References / External links

Future extensions / Unimplemented parts

  • Optimization of the shape of the path using drivable area from lane geometry
  • Velocity optimization with vehicle's jerk/acceleration/velocity limits

Related issues