Real-Time Motion Planning and Autonomous Driving
Jeffrey Ichnowski
Real-Time Motion Planning and Autonomous Driving Jeffrey - - PowerPoint PPT Presentation
Real-Time Motion Planning and Autonomous Driving Jeffrey Ichnowski What is Real-Time Motion Planning? 1 st floor vs. 2 nd floor Motion planning with a hard real-time constraint. temporally correct T i = ( i , p i , e i , D i )
Jeffrey Ichnowski
1st floor vs. 2nd floor Motion planning with a hard real-time constraint. temporally correct Ti = (φi, pi, ei, Di)
Sense (e.g., vision) Plan Move (controller)
Tv Tp Tc
motion planning P-SPACE hard exponential in dimensions uncountably infinite state spaces
EXPSPACE EXPTIME NP P PSPACE
= ? = ? = ? = ?
NL
= ?
[Image source: wikipedia]
In the general case: impossible.
Extremely popular option.
Is this real-time? yes and no.
Time-bounded computation Responsive a dynamic environment (moving obstacles, goals, new data)
planning into collision avoidance.
local minima
[Khatib 1986]
[Image source: Ichnowski 2013]
(connectivity of freespace)
[Image source: LaValle 2006]
Often done with A* or variant. Weighted A*: reduced plan optimality & compute time D* is reverse A* + keep data for next compute cycle
δ κ δ
[Image source: Pivtoraiko 2006]
(e.g., dynamic environment)
(polynomial if search space is tree*)
horizon search
best frontier node
α = min
x∈S f(x)
f(x) ≥ α f(x) = g(x) + h(x)
[Korf 1988]
[Korf 1988]
RTA*: At , what is ?
xi xi+1 xi+1 = argmin
x02neighbors of xi
g(x0) + h(x0) g(x0) + h(x0) xi
(depth-limited search)
static components
[Cannon et. al. 2014]
f(x) = gs(x) + gd(x) + hs(x) + hd(x)
R* ≈ RRT + A* RTR*
(path and min g(x) + h(x))
difficult nodes
[Cannon et. al. 2014]
procedure HRT_PLANNER t_next = current_time() loop yield until t_next t_next = t_next + T_p B = updated map q_init = current vehicle state q_goal = current goal states T = BUILD_RRT(q_init, q_goal, n) path = EXTRACT_PATH(T) publish path
xinit xnear xtarget[Walker, 2011]
Execution period number of samples (WCET analysis) solution
“safe” path
Source Code
Flow Facts Object Code Compilation Execution Trace Execution Control Flow Graph Basic Block Exec. Times Integer Linear Program WCET
[Walker, 2011]
[Walker, 2011]
500 1000 1500 2000
Tree Size (#nodes)
100 200 300 400 500 600 700 800 900
Execution Time (ms) Predicted WCET Observed Exection Time
[Walker, 2011]
500 1000 1500 2000
Tree Size (#nodes)
100 200 300 400 500 600 700 800 900
Execution Time (ms) Predicted WCET Observed Exection Time
[Walker, 2011]
500 1000 1500 2000
Tree Size (#nodes)
100 200 300 400 500 600 700 800 900
Execution Time (ms) Predicted WCET Observed Exection Time
200 400 600 800 1000 1200 1400 1600 1800 2000 Search Tree size (vertices) 0.0 0.2 0.4 0.6 0.8 1.0 Probability
Probability of finding a solution (Empty Workspace) Planner - RRT Planner - RRT-LPM
200 400 600 800 1000 1200 1400 1600 1800 2000 Search Tree size (vertices) 0.0 0.2 0.4 0.6 0.8 1.0 Probability
Probability of finding a solution (Obstructed Workspace) Planner - RRT Planner - RRT-LPM
[Walker, 2011]
Reduce dimensionality of planning problem. Typically around 4: e.g., (x, y, 𝜄, v) Discretization and sampling-based approaches
DARPA Urban Challenge 1st place:
local planner at 10 Hz fixed lattice planner at 10 Hz (nominally)
(motivation for their pre-planning)
first solution in 100 ms, optimal at 650 ms.
“few seconds” for drastically different trajectories
[Likhachev 2008] & [Ferguson 2008]
DARPA Urban Challenge 1st place:
Anytime planner behavior
solution found <100 ms
< 650 ms solution improved
[Likhachev, et. al. 2008]
DARPA Urban Challenge 1st place:
States Expanded Time (seconds)
h h2D hfsh 2,019 26,108 124,794 0.06 1.30 3.49
Effect of heuristic on A* search
[Likhachev, et. al. 2008]
Implies much higher WCET
– Ferguson, Howard, and Likhachev
“One of the important lessons learned during the development of this system was that it is
processing to provide efficient online planning performance.”
DARPA Urban Challenge 1st place:
[Montemerlo et. al. 2009] [Dolgov et. al. 2010]
¹ route network definitions file
DARPA Urban Challenge 2nd place:
Grid: 160 m ⨉ 160 m ⨉ 360° Resolution of 1 m ⨉ 1 m ⨉ 5°
[Dolgov et. al. 2010]
DARPA Urban Challenge 2nd place:
Hybrid A* CG Smoothed
[Dolgov et. al. 2010]
DARPA Urban Challenge 2nd place:
[Kuwata, et. al. 2009]
DARPA Urban Challenge 4th place:
DARPA Urban Challenge 4th place:
procedure RRT_execution_loop repeat update vehicle states and env while EXPAND_RRT_TREE() repeat { = EXTRACT_BEST_SAFE_PATH() if NO safe path E-STOP! & restart } until send to controller
(t < t0 + ∆t)
τ
τ (clear(x) ∀x ∈ τ)
hard real-time constraint “take appropriate action”
[Kuwata, et. al. 2009]
DARPA Urban Challenge 4th place:
Lane following on a curve at 22.4 mph. The green dots are safe stopping nodes.
[Kuwata, et. al. 2009]
(who doesn’t their first time?) Software exception during mode switch Caught by error handler, and left hanging Not observable by watchdog module.
Time Computer Systems, Technical University of Munich
[Kammel, et. al. 2008]
DARPA Urban Challenge finalist:
space using A*.
[Kammel, et. al. 2008]
DARPA Urban Challenge finalist:
Car and Kernel w/ 1m safety buffer Environment w/ car convolution
RT*