$ \DeclareMathOperator{\DOT}{.} \DeclareMathOperator{\nondet}{|} \newcommand\conc{\parallel} \newcommand\concNarrow{\!\parallel\!} \newcommand\D{\mathcal{D}} \newcommand\C{\mathcal{C}} \newcommand\R{\mathcal{R}} \newcommand\bigO{\mathcal{O}} \newcommand\rew{{r}} \newcommand\subwedge{\,\wedge\,} \newcommand\submid{\,\mid\,} \newcommand\Tau{\mathrm{T}} \newcommand\defeq{\stackrel{\text{\tiny\sf def}}{=}} \newcommand\ang[1]{\ensuremath{#1^\circ}} \newcommand\act[1]{\mathsf{#1}} \newcommand\N[1]{\mathit{#1}} $

Plan Recognition by Program Execution in Continuous Temporal Domains

Knowledge-Based Systems Group KBSG
RWTH Aachen University RWTH

Cognitive Robotics Workshop 2012

Motivation

Passing Maneuvers

Real: cont., noisy
Observed: discrete, noisy
Model: cont., instantaneous
Reality:
continuous movement, continuous actions, noise
Observations:
discrete sequence of snapshots, noisy
Model:
continuous movement, instantaneous actions, no noise
  • Actions are not observable directly
  • Multiple agents act in parallel

Foundations

Car Model

Car Model

Time:
  • Actions are instantaneous, but change is continuous (X, Y position)
  • Time is encoded as (last) parameter in actions
  • A left-lane-change that starts after 3 and ends after 6.1 seconds:
    do(setYaw(P, 0.0°, 6.1), do(setYaw(P, -8.9°, 3.0), S0))

Sample Programs

proc leftLaneChange($car_1$)
$\pi \theta$ . ($0° < \theta \leq 90°$)?;
$\pi \tau_1$ . setYaw($car_1$, $\theta$, $\tau_1$);
$\pi \tau_2$ . waitFor(onLeftLane($car_1$), $\tau_2$)
setYaw($car_1$, $0°$, $\tau_2$);
proc overtake($car_1$, $car_2$)
$\pi \tau_1$ . $\pi v$ . setVeloc($car_1$, $v$, $\tau_1$)
$\parallel$
leftLaneChange($car_1$);
$\pi \tau_2$ . waitFor(behind($car_2$, $car_1$), $\tau_2$);
rightLaneChange($car_1$)

Semantics of our Golog

Plan Recognition

Plan Recognition

Test hypothesis $\delta_1 \parallel \ldots \parallel \delta_n$ for agents $1, \ldots, n$

$s := S_0$, $\delta := \delta_1 \parallel \ldots \parallel \delta_n$

Loop

  • If $\delta$ has $< \ell$ (look-ahead) $match$ actions then
    wait for $\phi, \tau$ and set $\delta := \delta \parallel match(\phi, \tau)$
  • Else if $transPr(\delta, s, \delta', s') > 0$ (next action executable) then
    set $\delta := \delta'$, $s := s'$
  • Else
    fail and reject hypothesis

EndLoop

Plan Recognition

$\pi \tau_1$ . $\pi v_1$ . setVeloc(R, $v_1$, $\tau_1$)
||
$\pi \tau_2$ . $\pi v_2$ . setVeloc(P, $v_2$, $\tau_2$);
$\pi \tau_3$ . $\pi \theta_1$ . setYaw(P, $\theta_1$, $\tau_3$);
$\pi \tau_4$ . waitFor(onLeftLane(P), $\tau_4$);
setYaw(P, 0, $\tau_4$);
$\pi \tau_5$ . waitFor(behind(R, P), $\tau_5$);
$\pi \tau_6$ . $\pi \theta_2$ . setYaw(P, $\theta_2$, $\tau_6$);
$\pi \tau_7$ . waitFor(onRightLane(P), $\tau_7$);
setYaw(P, 0, $\tau_7$)
||
...

Robustness

Demo

Aggressive
Cautious
  • Three cars in the road
    • A on the right lane,
    • B on the left lane,
    • C wants to pass A
  • Two options for C:

Limitations in experiment:

Demo

Screenshot of demo video

Evaluation

Conclusion

Future Work: