You are on page 1of 39

Cinemática de Robots Móviles

Robótica
Configuraciones de robots móviles

Junior: Ackerman
(automóviles) Silla de ruedas:
Diferencial Guiado síncrono
Auriga: Ruedas caterpillar
-Robustos al derrape -Susceptibles al
-Difícil de modelar derrape
Formas de locomoción
• Diferencial: Khepera

• Triciclo básico: ROMEO- 3R

• Ackerman: Automóviles

• Síncrona: Ruedas giran


simultáneamente
Restricciones no holónomas

Se puede ir hacia delante o


hacia atrás, pero no hacia los
laterales, sin que exista
derrape Aparcamiento:
Serie de
maniobras
Matriz de transformación

{M}: Sistema adjunto al vehículo


{B}: Sistema de referencia origen

B
P= M T P
B M

⎡ cθ sθ 0 x⎤
⎢− sθ cθ 0 y ⎥⎥

M
P = MB T −1 B P
MT =
B
⎢ 0 0 1 0⎥
⎢ ⎥
⎣ 0 0 0 1⎦
Arquitectura convencional
de navegación
Tarea a realizar
Razonamiento:
Planificar el próximo
Planificación
punto destino y generación
de caminos

Camino
explícito
TIEMPO Estimación
REAL de posición
Seguimiento
Sensores
de caminos

Ordenes de
velocidad y
orientación

Control de
Actuadores
motores
Hipótesis para modelos de
robots móviles
¾El robot se mueve en superficie plana Camino

¾Ejes de guiado perpendiculares al suelo

¾Movimiento con rodadura pura Velocidad en el


punto de contacto

¾No existen partes flexibles en el vehículo

¾El movimiento se realiza alrededor de un arco de


circunferencia

¾El robot se comporta como un sólido rígido


El arco de circunferencia
Centro de
referencia

R
R ∆s ∆y
Centro de
rotación
∆φ

Centro de v = ∆S Velocidad lineal


∆x
rotación

w = ∆φ Velocidad angular
Guiado diferencial

Contro-
lador Centro de
rotación
θ
Vi
y c = y + R cos(θ )
c
Velocidades del centro y
del vehículo

V R + Vi V R − Vi
v= w=
2 L

x c = x − Rsen(θ ) x
Posibles soluciones
V R + Vi V R − Vi
v= w=
2 L

⎡ x& ⎤ ⎡cθ 0 ⎤ ⎡ v r + vi ⎤
⎢ ⎥ ⎢ ⎥ ⎢ 2 ⎥
⎢ y& ⎥ = ⎢ sθ 0⎥ ⎢ ⎥
v r − vi ⎥
⎢θ& ⎥ ⎢ 0 ⎢
⎣ ⎦ ⎣ 1 ⎥⎦ ⎢
⎣ L ⎥⎦
⎛ v + vi ⎞
&x = cos(θ )⎜ r ⎟ Existencia de múltiples soluciones:
⎝ 2 ⎠
⎛ v r + vi ⎞ •Más rápida
y& = sen(θ )⎜ ⎟ •Energéticamente más eficiente
⎝ 2 ⎠ •Variaciones suaves de velocidad
& v r − vi
θ=
L
Ejemplo
Solución I

Posición
inicial
θ1 Posición
final
y1 θ2
y2

Solución II

x1 x2
Sistemas de ecuaciones
⎛ v + vi ⎞ La velocidad es el espacio recorrido con
&x = cos(θ )⎜ r ⎟
⎝ 2 ⎠ respecto al tiempo, en un intervalo de
⎛ v r + vi ⎞ muestreo lo suficientemente pequeño
y& = sen(θ )⎜ ⎟ se cumple
⎝ 2 ⎠
& v r − vi
θ=
L Vi

v R + vi
v=
2
v R − vi
w=
L
vr = vi == Movimiento vl = -vi == Rotación (R=0)
hacia adelante
Posible solución
{0} ⎛ v + vi ⎞
1.-Rotar &x = cos(θ )⎜ r ⎟
⎝ 2 ⎠
θ1 vi = −vr = V ⎛ v + vi ⎞
y& = sen(θ )⎜ r ⎟
& 2V ⎝ 2 ⎠
θ2 θ = = θ1 + θ 2
L & v r − vi
θ=
L
{1}

θ2 d = ∆y 2 + ∆x 2
∆y 2.-Trasladar

∆x d ( m / ∆T ) = V
{1}
{2}
Posible solución (II)

θ2
∆y θ3 {3}
θ2
∆x

{2}

3.-Rotar
vl = −vr = V
& 2V
θ= = θ 2 + θ3
L
Señales de control

Contro-
Posición
lador
inicial
θ1 Posición
final
y1 θ2
y2
L(θ1 + θ 2 )
1.- vi = −v r = V =
2

2.- vi = vd = d = ∆y 2 + ∆x 2
L(θ1 + θ 2 )
3.- vi = −vr = V =
2
x1 x2
Guiado diferencial con Simulink
φ ⎡ x& ⎤ ⎡ −(csenφ / 2) − (csenφ / 2) ⎤
vi
⎢ ⎥ ⎢ ⎥ ⎡ wi ⎤
⎢ y& ⎥ = ⎢ (c cos φ / 2) (c cos φ / 2) ⎥ ⎢ ⎥
vd
⎢φ& ⎥ ⎢⎣ − c/b − c / b ⎥⎦ ⎣ wd ⎦
⎣ ⎦
c
b

Velocidades lineales
vi=wic
vd=wdc
¿Alterar modelo Simulink
para velocidades lineales
como señal de control?
Modelo discreto / Odometría

Genera errores acumulativos


Vi=-Vr
Vi=Vr
Modelo Inverso del
Guiado Diferencial

Restricción no holónoma: Vector perpendicular al plano de las ruedas


Tipos de control basado en
Inteligencia Artificial (I)

• Control reactivo: “No piense, reaccione”


• Control deliberativo: “Piense, entonces
actúe”
• Control híbrido: “Piense y actúe de forma
independiente, en paralelo”
• Control basado en conducta: “Analice su
comportamiento”
Tipos de control basado en
Inteligencia Artificial (II)
Control deliberativo
• Utiliza sensores y conocimiento del entorno para
decidir la acción (modelo)
• Basado en un modelo, planifica la toma de
decisiones (alcanzar objetivo, seguir trayectoria..)
• Se utiliza fundamentalmente en entornos estáticos,
donde se tiene conocimiento previo del entorno
• Puede seleccionar entre varias alternativas
• Su respuesta puede ser lenta y poco robusta en
entornos dinámicos
Tipos de control basado en
Inteligencia Artificial (III)
Control reactivo
• Rápida respuesta a entornos dinámicos
• Reacción a información sensorial
• No necesita construir un modelo del entorno
• Permite “explorar” el entorno
• Útil en entornos desconocidos e inciertos
• Debe existir un “mundo” que lo rodee, perceptible
por información sensorial
• Percepción-acción muy relacionadas
Tipos de control basado en
Inteligencia Artificial (IV)
Control híbrido
• Combina aspectos del control reactivo y
deliberativo
• Combina la rápida respuesta con la toma de
decisiones basadas en modelos internos
• Posee tres componentes o capas:
– Reactivo
– Intermedio (Más complejo, toma de decisión)
– Deliberativo
Tipos de control basado en
Inteligencia Artificial (V)
Control basado en conducta
• Inspirado en la biología
• Trata de modelar el comportamiento de
los animales ante el entorno
• Se diseña desde capa superior a inferior:
– Conducta Sensores-Acción
• Presenta componentes del sistema
deliberativo, puede almacenar modelos
Control basado en conducta (I)
Ejemplos de conducta
• Seguir una pared
• Bordear una esquina
• Salir por una puerta
• Evitar un obstáculo
• Alcanzar un punto (planificador de trayectoria)
• Navegar hacia atrás
• Rotar en la posición actual
• Seguir la luz
• Seguir una línea
Control basado en conducta (II)
Sensor_1 Sensor_2 Sensor_3 Sensor_N

Sensores virtuales

Conducta_1 Conducta_2 Conducta_3 Conducta_M

Árbitro

Control de actuadores
Control basado en conducta (III)
• Sensores 1..N: Sensores físicos (sónares,
infrarrojos, cámara de imagen..)

• Sensores virtuales: Fusión sensorial, detección


de contornos, punto en movimiento

• Conductas 1..M: Seguir pared, salir por puerta,


evitar obstáculo…

• Árbitro: Seleccionar la conducta a seguir

• Control de actuadores: Velocidades de las ruedas


Conductas(I)
Seguir pared Doblar esquina

vi vd
d1 d1
d2 d2

d3
d3

d4
d4 vi= 5vd vd

[d1, d2, d3, d4, d5; vi, vd]


Conductas (II)

Intervalos de distancia Seguir pared Doblar esquina


a≤d ≤b
⎡d11 , d12 , d13 , d14 , d15 ; v i1 vd 1 ⎤ ⎡d11, d12 , d13 , d14 , d15 ; v i1 vd 1 ⎤
⎢ ⎥ ⎢ ⎥
d , d , d , d ,
⎢ 21 22 23 24 25 i 2 d 2 ⎥ d ; v v d , d , d , d , d ; v v
⎢ 21 22 23 24 25 i 2 d 2 ⎥
⎢. ⎥ ⎢. ⎥
Intervalos de velocidades ⎢ ⎥ ⎢ ⎥
⎢. ⎥ ⎢. ⎥
c≤v≤d ⎢d , d , d , d , d ; v v ⎥
⎣ n1 n 2 n3 n 4 n5 in dn ⎦
⎢d , d , d , d , d ; v v ⎥
⎣ n1 n 2 n3 n 4 n5 in dn ⎦

anfis (Crear modelo)


Controlador
v=evalfis
Cierto modelo interno?: Híbrido?
Conductas (III)
%FIS = GENFIS1(DATA, NUMMFS, INPUTMF,
OUTPUTMF)

FIS_vel_i=genfis1(vel_i, 7, 'gbellmf');
FIS_vel_d=genfis1(vel_d, 7, 'gbellmf');

% Adapta parámetros para obtener el modelo


modelo_vel_i = anfis(vel_i,FIS_vel_i,450);
modelo_vel_d = anfis(vel_d,FIS_vel_d,450);

% Verificar gráficamente
plot(vel_i(:,3),'g');
hold on;
plot(evalfis(vel_i(:,1:2),modelo_vel_i),'r');
Resumen de control basado en
Inteligencia Artificial
Sensores Percepción

Localización / Construcción de mapas

Método Clásico
Conocimiento / Planificación

Control de motores Actuadores

Comunicación de datos

Interpretar nuevos entornos


Sensores
Definir próximo destino Actuadores

Evitar obstáculos

Seguir pared/izquierda,derecha
Coordinación/
Fusión
Triciclo(I)

•Tres ruedas: Dos delanteras y


una frontal

•Dirección y tracción a seleccionar

•Comandos de control:
Centro de Centro de
rotación rotación •Comando de curvatura: α(t)
•Velocidad angular de tracción:
w(t)
Triciclo(II)
Para una curvatura α(t)
medida a partir de la
Ym
línea de dirección (Xm),
el triciclo gira con una
Xm velocidad angular w(t)
alrededor de una
circunferencia
cuyo centro de giro es
la intersección de las
líneas perpendiculares
a las ruedas y el radio R
es la distancia entre el
centro de giro y
la línea de dirección
Triciclo(III)

Centro de
rotación
Modelo cinemático del triciclo

ws(t): Velocidad angular de la rueda(s)


de tracción
vs(t): Velocidad lineal del vehículo
en el sistema global
r: Radio de la rueda de tracción
Modelo directo e inverso
utilizando Simulink
Configuración Ackerman
Centro de
rotación
ICC
x& = u1 cosθ Y x, y
ϕ
y& = u1 sin θ R ϕ

& u1
θ = tan ϕ θ
l l
ϕ& = u2
X
Restricción no holónoma
u1: Velocidad del vehículo
x& sin θ − y& cos θ = 0 (ruedas traseras, motrices)
u2: Velocidad angular de las ruedas
de dirección
Team Cornell: Grand Challenge

v: Velocidad del vehículo


Θ: Orientación del vehículo
Φ: Curvatura de la rueda delantera
a: Longitud entre ruedas delanteras y traseras
bp, bv: Constante de tiempo de retrazo en el control
uv, up: Comandos de control de velocidad y curvatura

You might also like