watonomous.github.io

  1. Software Division
  2. Software Division Home
  3. Path Planning Group

[ Software Division : Trajectory Planning ]

Created by [ Rowan Dempster] on Dec 27, 2019

High Level Objects

  1. Run the Trajectory Rollout algorithm on an input Costmap and Goal Pose.
  2. Generate a Path from the current Vehicle State to the Goal Pose.
  3. Generate a Path that can be followed in accordance to the competition's acceleration and jerk limits.

Implementation

What we have now

We currently have a implemented the Trajectory Rollout algorithm that can generate a minimum cost Path from the start state to somewhere on a Goal Line.

What we need to change

  1. For some Year 2 applications (eg precise movements like parking), a Goal Pose is required rather than a Goal Line. We need to adapt the Trajectory Rollout algorithm to find a Path to that Goal Pose.
  2. The current algorithm only takes longitudinal (forward) acceleration limits into account. We also need to start taking longitudinal jerk and lateral acceleration/jerk into account.
  3. We need to do a lot more on-track testing of the interaction between the Paths produces, and how the Feedback Controllers follow them. In Year 1 it was common for the vehicle to move off the planned Path, though it was not clear if it was the fault of poorly executed Controllers, or slow Path planning, or a combination.

Algorithm Description

Rollout Planner

Similar to Trajectory Rollout but currenty does not use velocity or acceleration. Uses a
priority queue to perform A* for selecting the next state. New states are added by computing a max turning radius based on the current state
information and then interpolating the maximum turn from +max_turn to -max_turn generating a new state for each angular interpolation.
The heuristic function is the distance from the current position to the goal using the units of the envrionemnt and the current cost is the cost
of each interpolated point along the current path. If we go with this we should be using a much more
advanced heuristic but this is good enough for now.

State tracking

The StateCache object tracks the moves which have already been performed so that we can deduplicate states. It is possible
that various states will end up approximately in the same place and angle with similar costs. Instead of exploring all these states which
are almost identical we cache the used state information and then do not add a new state if it's too similar to already explored states.

Team members

Carter Pearson (Lead)
An Qi Wu (Lead)
Steven Feng
Bilaal Hussain

Fall 2018 Project Plan

This is a Google Doc outline of the Trajectory Planning project plan written by [\@321329096]{.phui-tag-core .phui-tag-color-person style=”color: inherit;”}https://docs.google.com/document/d/1jhWL7hiFcrsnT0i_YNfcWCGU4AM8pgXKuGh9OBRvGqk/edit

Document generated by Confluence on Dec 10, 2021 04:01

Atlassian