Introducción a la navegación reactiva y a la planificación de misiones

MT3005 - Robótica 1

Ejecutando la planificación en un mundo dinámico

planificación de movimiento

+ control de trayectorias

NO fue parte de la planificación original

NO fue parte de la planificación original

¿Qué debe hacer el robot?

¿Qué debe hacer el robot?

Para no colisionar con el peatón, el robot debe cambiar su comportamiento de ir hacia la meta por uno de evadir obstáculos.

¿Qué debe hacer el robot?

Para no colisionar con el peatón, el robot debe cambiar su comportamiento de ir hacia la meta por uno de evadir obstáculos.

Esto, sin embargo, va en contra de la perspectiva que hemos empleado por el momento para sistemas de control.

¿Qué debe hacer el robot?

Para no colisionar con el peatón, el robot debe cambiar su comportamiento de ir hacia la meta por uno de evadir obstáculos.

Esto, sin embargo, va en contra de la perspectiva que hemos empleado por el momento para sistemas de control.

¿Por qué?

{^I}\dot{\boldsymbol{\xi}}={^I}\mathbf{\mathrm{Rot}}_B(\theta)\mathbf{A}^\dagger\mathbf{B}\mathbf{v}=\mathbf{f}\left({^I}\boldsymbol{\xi},\mathbf{v}\right)
{^I}\dot{\boldsymbol{\xi}}={^I}\mathbf{\mathrm{Rot}}_B(\theta)\mathbf{A}^\dagger\mathbf{B}\mathbf{v}=\mathbf{f}\left({^I}\boldsymbol{\xi},\mathbf{v}\right)
\mathbf{v}(\boldsymbol{\xi})
\lim_{t\to\infty} \boldsymbol{\xi}(t)=\boldsymbol{\xi}_\mathrm{ss}
{^I}\dot{\boldsymbol{\xi}}={^I}\mathbf{\mathrm{Rot}}_B(\theta)\mathbf{A}^\dagger\mathbf{B}\mathbf{v}=\mathbf{f}\left({^I}\boldsymbol{\xi},\mathbf{v}\right)
\mathbf{v}(\boldsymbol{\xi})
\lim_{t\to\infty} \boldsymbol{\xi}(t)=\boldsymbol{\xi}_\mathrm{ss}

Esto implica que el comportamiento se termina de ejecutar "eventualmente" (i.e. asintóticamente*), y asume que el agente siempre estará ejecutando el mismo comportamiento.

{^I}\dot{\boldsymbol{\xi}}={^I}\mathbf{\mathrm{Rot}}_B(\theta)\mathbf{A}^\dagger\mathbf{B}\mathbf{v}=\mathbf{f}\left({^I}\boldsymbol{\xi},\mathbf{v}\right)
\mathbf{v}(\boldsymbol{\xi})
\lim_{t\to\infty} \boldsymbol{\xi}(t)=\boldsymbol{\xi}_\mathrm{ss}

Esto implica que el comportamiento se termina de ejecutar "eventualmente" (i.e. asintóticamente*), y asume que el agente siempre estará ejecutando el mismo comportamiento.

*aunque en algunos casos llega a ejecutarse lo suficientemente cerca en tiempo finito

¿Qué necesitamos?

seguir el camino

esquivar obstáculos

obstáculo detectado

sin obstáculos

¿Qué necesitamos?

seguir el camino

esquivar obstáculos

obstáculo detectado

sin obstáculos

¿Qué necesitamos?

seguir el camino

esquivar obstáculos

obstáculo detectado

sin obstáculos

¿Qué necesitamos?

seguir el camino

esquivar obstáculos

obstáculo detectado

sin obstáculos

Es decir, no fue suficiente con la planificación, sino que tuvo que complementarse con un comportamiento reactivo para esquivar obstáculos y una lógica que permita el cambio entre comportamientos.

Esto es distinto a la perspectiva "tradicional" de sistemas dinámicos que hemos empleado por el momento.

\(\Rightarrow\) Necesitamos un nuevo modelo.

Preámbulo histórico: behavior-based robotics

El nuevo modelo

\dot{\mathbf{x}}=\mathbf{f}_\mathbf{q}(\mathbf{x},\mathbf{u})

El nuevo modelo

\dot{\mathbf{x}}=\mathbf{f}_\mathbf{q}(\mathbf{x},\mathbf{u})

estado continuo

El nuevo modelo

\dot{\mathbf{x}}=\mathbf{f}_\mathbf{q}(\mathbf{x},\mathbf{u})

estado continuo

estado discreto

dinámica continua que  cambia acorde al estado discreto del sistema

El nuevo modelo

\dot{\mathbf{x}}=\mathbf{f}_\mathbf{q}(\mathbf{x},\mathbf{u})

estado continuo

estado discreto

Recibe el nombre de sistema dinámico híbrido.

dinámica continua que  cambia acorde al estado discreto del sistema

El nuevo modelo

\dot{\mathbf{x}}=\mathbf{f}_\mathbf{q}(\mathbf{x},\mathbf{u})

estado continuo

estado discreto

dinámica continua que  cambia acorde al estado discreto del sistema

En otras disciplinas también se conocen como Variable Structure Systems (VSS) o Switched-Mode Systems.

La perspectiva completa

\dot{\mathbf{x}}=\mathbf{f}_1(\mathbf{x},\mathbf{u})
\dot{\mathbf{x}}=\mathbf{f}_2(\mathbf{x},\mathbf{u})
\dot{\mathbf{x}}=\mathbf{f}_3(\mathbf{x},\mathbf{u})
q=1
q=2
q=3
\mathbf{x}\coloneqq \mathbf{x}_0
\mathbf{x} \in G_{1,2}
\mathbf{x} \in G_{2,1}
\mathbf{x} \in G_{2,3}
\mathbf{x} \in G_{3,1}
\mathbf{x} \coloneqq R_{1,2}(\mathbf{x})
\mathbf{x} \coloneqq R_{2,1}(\mathbf{x})
\mathbf{x} \coloneqq R_{2,3}(\mathbf{x})
\mathbf{x} \coloneqq R_{3,1}(\mathbf{x})

La perspectiva completa

\dot{\mathbf{x}}=\mathbf{f}_1(\mathbf{x},\mathbf{u})
\dot{\mathbf{x}}=\mathbf{f}_2(\mathbf{x},\mathbf{u})
\dot{\mathbf{x}}=\mathbf{f}_3(\mathbf{x},\mathbf{u})
q=1
q=2
q=3
\mathbf{x}\coloneqq \mathbf{x}_0
\mathbf{x} \in G_{1,2}
\mathbf{x} \in G_{2,1}
\mathbf{x} \in G_{2,3}
\mathbf{x} \in G_{3,1}
\mathbf{x} \coloneqq R_{1,2}(\mathbf{x})
\mathbf{x} \coloneqq R_{2,1}(\mathbf{x})
\mathbf{x} \coloneqq R_{2,3}(\mathbf{x})
\mathbf{x} \coloneqq R_{3,1}(\mathbf{x})

modos de operación

La perspectiva completa

\dot{\mathbf{x}}=\mathbf{f}_1(\mathbf{x},\mathbf{u})
\dot{\mathbf{x}}=\mathbf{f}_2(\mathbf{x},\mathbf{u})
\dot{\mathbf{x}}=\mathbf{f}_3(\mathbf{x},\mathbf{u})
q=1
q=2
q=3
\mathbf{x}\coloneqq \mathbf{x}_0
\mathbf{x} \in G_{1,2}
\mathbf{x} \in G_{2,1}
\mathbf{x} \in G_{2,3}
\mathbf{x} \in G_{3,1}
\mathbf{x} \coloneqq R_{1,2}(\mathbf{x})
\mathbf{x} \coloneqq R_{2,1}(\mathbf{x})
\mathbf{x} \coloneqq R_{2,3}(\mathbf{x})
\mathbf{x} \coloneqq R_{3,1}(\mathbf{x})

condiciones de transición o guardas

La perspectiva completa

\dot{\mathbf{x}}=\mathbf{f}_1(\mathbf{x},\mathbf{u})
\dot{\mathbf{x}}=\mathbf{f}_2(\mathbf{x},\mathbf{u})
\dot{\mathbf{x}}=\mathbf{f}_3(\mathbf{x},\mathbf{u})
q=1
q=2
q=3
\mathbf{x}\coloneqq \mathbf{x}_0
\mathbf{x} \in G_{1,2}
\mathbf{x} \in G_{2,1}
\mathbf{x} \in G_{2,3}
\mathbf{x} \in G_{3,1}
\mathbf{x} \coloneqq R_{1,2}(\mathbf{x})
\mathbf{x} \coloneqq R_{2,1}(\mathbf{x})
\mathbf{x} \coloneqq R_{2,3}(\mathbf{x})
\mathbf{x} \coloneqq R_{3,1}(\mathbf{x})

saltos en el estado o resets

La perspectiva completa

Transición entre distintos modos de operación [estados] mediante condiciones discretas [eventos] 

\(\Rightarrow\) máquina de estados finitos

La perspectiva completa

Transición entre distintos modos de operación [estados] mediante condiciones discretas [eventos] 

\(\Rightarrow\) máquina de estados finitos

+ distinto sistema dinámico para cada modo de operación

La perspectiva completa

Transición entre distintos modos de operación [estados] mediante condiciones discretas [eventos] 

\(\Rightarrow\) máquina de estados finitos

+ distinto sistema dinámico para cada modo de operación

= Autómata Híbrido 

Ejemplo

Objetivo:

Llegar a la meta esquivando obstáculos, sin planificación.

sensores de distancia

Modos de operación

{^I}\dot{\boldsymbol{\xi}}=\mathbf{f}_\mathrm{uniciclo} \left( {^I}\boldsymbol{\xi}, \mathbf{v} \right) \\ \mathbf{v} \coloneqq \mathbf{v}_\mathrm{PIDexp} \left( {^I}\boldsymbol{\xi}, x_g, y_g \right)

GO_TO_GOAL

{^I}\dot{\boldsymbol{\xi}}=\mathbf{f}_\mathrm{uniciclo} \left( {^I}\boldsymbol{\xi}, \mathbf{v} \right) \\ \mathbf{v} \coloneqq \mathbf{v}_\mathrm{BUG} \left( {^I}\boldsymbol{\xi}, x_{\mathrm{obs}_i}, y_{\mathrm{obs}_i} \right)

AVOID_OBSTACLES

Propuesta v1

GO_TO_GOAL

AVOID_OBSTACLES

Conclusión

Es más sencilla la intuición que la implementación 

i.e. NO es tan simple como parece

¿Más problemas? Estabilidad

¿Más problemas? Zeno

Otro modelo: Behavior Trees