Prof. Douglas G. Macharet
douglas.macharet@dcc.ufmg.br
Controle – Cinemático
Robótica Móvel
Introdução
▪ Modelo cinemático
▪ Cinemática direta → Geometria
▪ Cinemática inversa → Controle
▪ Controle cinemático
▪ Considerando um certo robô e seu modelo cinemático, o objetivo é determinar um conjunto de entradas (velocidades) apropriadas para levar ele de uma posição/configuração inicial até uma final
Malha aberta
Controle cinemático
▪ Como resolver esse problema em malha aberta?
▪ Especificar um caminho e dividir em segmentos
▪ Formas/trechos bem definidos
▪ Segmentos de reta e arcos de circunferência
▪ Problema de controle
▪ Retas: aplicar uma velocidade de 0,25 m/s durante 4s
▪ E as velocidades nos arcos?
▪ Direção, comprimento
Malha aberta
Controle cinemático
Malha aberta
Controle cinemático
▪ Problemas
▪ Não é fácil pré-calcular uma trajetória viável
▪ Limitações e restrições dos robôs
▪ Considerar as velocidades/acelerações que podem ser usadas
▪ Trajetória não é suave (troca entre estados)
▪ Ocorre uma descontinuidade no perfil de aceleração (curvatura)
▪ A trajetória calculada é estática
▪ Não considera possível mudanças e incertezas
Malha fechada – Holonômico
Controle cinemático
▪ Controle bem simples no caso holonômico
ሶq 𝑡 = G q 𝑢(𝑡)
▪ Se G for quadrada e invertível, é possível obter-se uma relação direta entre a entrada de controle 𝑢 e o erro 𝑒
▪ Lembrando
▪ ሶq 𝑡 : Derivada da configuração do robô
▪ G q : Matriz de transformação
▪ 𝑢(𝑡) : Vetor de controle
Malha fechada – Holonômico
Controle cinemático
▪ Por exemplo, considerando-se uma matriz G identidade e o uso de um controle proporcional, temos:
ሶq = 𝑢, onde 𝑢 = 𝐾𝑃 ⋅ 𝑒
▪ Logo
ሶ𝑥 ሶ𝑦 ሶ𝜃
=
𝐾𝑃𝑥 0 0 0 𝐾𝑃𝑦 0 0 0 𝐾𝑃𝜃
(𝑥𝑔 − 𝑥) (𝑦𝑔 − 𝑦) (𝜃𝑔 − 𝜃)
Com esses valores podemos determinar as velocidades das rodas.
Malha fechada – Holonômico
Controle cinemático
𝜔1 𝜔2 𝜔3 𝜔4
= 1
𝑟
1 −1 −(𝑙 + 𝑤) 1 1 (𝑙 + 𝑤) 1
1
−1 1
(𝑙 + 𝑤)
−(𝑙 + 𝑤)
ሶ𝑥 ሶ𝑦 ሶ𝜃
(1)
(2) (3)
(4)
𝜔1 𝜔2 𝜔3
= 1 𝑟
− 3/2 1/2 𝐿
0 −1 𝐿
3/2 1/2 𝐿
ሶ𝑥𝑅 ሶ𝑦𝑅 ሶ𝜃𝑅
Controle cinemático
▪ Maioria dos robôs são não-holonômicos
▪ Não é possível atuar em todos os DoF
▪ O controle não é tão simples e direto
▪ A matriz G não é quadrada
▪ Diversos controladores na literatura
▪ Vamos ver alguns, mas o projeto não é nosso foco
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
▪ Encontrar uma matriz 𝐾
𝐾 = 𝑘11 𝑘12 𝑘13
𝑘21 𝑘22 𝑘23 , onde 𝑘𝑖𝑗 = 𝑘(𝑡, 𝑒)
▪ tal que o controle de v(𝑡) e 𝜔(𝑡)
v(𝑡)
𝜔(𝑡) = 𝐾 ⋅ 𝑒 = 𝐾 ⋅ 𝑅 𝑥 𝑦 𝜃 𝑇
▪ leve o erro 𝑒 para zero:
𝑡→∞lim 𝑒(𝑡) = 0
Erro no referencial do robô, que representa a coordenada alvo
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
▪ Assumindo que o objetivo (goal) está na origem do referencial inercial, a cinemática do robô descrita em {𝑋𝐼, 𝑌𝐼, 𝜃} é dada por
▪ onde ሶ𝑥 e ሶ𝑦 são as velocidades lineares nas direções 𝑋𝐼 e 𝑌𝐼
𝐼 ሶ𝑥 ሶ𝑦 ሶ𝜃
=
cos 𝜃 0 sin 𝜃 0
0 1
v 𝜔
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
▪ Transformação: Coordenadas Cartesianas → Polares
▪ Descrição mais fácil para esse problema específico
▪ Quais informações do alvo o controlador precisa?
▪ Posição (dist.) → para decidir a velocidade do veículo
▪ Direção → para alinhar o veículo com a posição alvo
▪ Orientação → para ajustar ao ângulo final desejado
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
𝜃𝐺
Atenção, os ângulos 𝛼 e 𝛽 devem ser expressos
no domínio −𝜋, 𝜋 !
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
▪ Seja 𝛼 o ângulo entre o eixo 𝑋𝑅 e o vetor 𝑥ො que liga a origem do referencial do robô (centro do eixo) até a posição alvo
▪ Se 𝛼 ∈ − 𝜋
2 , 𝜋
2 , o erro em coordenadas polares é
▪ 𝜌 = Δ𝑥2 + Δ𝑦2
▪ 𝛼 = −𝜃 + atan2 Δ𝑦, Δ𝑥
▪ 𝛽 = −𝜃 − 𝛼 𝜃𝐺 − atan2 Δ𝑦, Δ𝑥
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
ሶ𝜌
ሶ
𝛼 ሶ𝛽
=
− cos 𝛼 0 sin 𝛼
𝜌 −1
− sin 𝛼
𝜌 0
v 𝜔 ሶ𝑥
ሶ𝑦 ሶ𝜃
=
cos 𝜃 0 sin 𝜃 0
0 1
v 𝜔
Coordenadas Cartesianas Coordenadas Polares
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
▪ Se o alvo está atrás do robô, “redefinimos a frente” → 𝑣 = −𝑣
ሶ𝜌
ሶ
𝛼 ሶ𝛽
=
− cos 𝛼 0 sin 𝛼
𝜌 −1
−sin 𝛼
𝜌 0
v 𝜔
ሶ𝜌
ሶ
𝛼 ሶ𝛽
=
cos 𝛼 0
− sin 𝛼
𝜌 1
sin 𝛼
𝜌 0
v 𝜔
𝛼 ∈ 𝐼1, onde 𝐼1 = −𝜋
2 ,𝜋
2 𝛼 ∈ 𝐼2, onde 𝐼2 = −𝜋, −𝜋
2 ⋃ 𝜋
2, 𝜋 Robô de frente para o goal. Robô de costas para o goal.
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
𝛼 ∈ 𝐼1 𝛼 ∈ 𝐼2
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
▪ Considerando a lei de controle linear
𝑣 = 𝑘𝜌𝜌 e 𝜔 = 𝑘𝛼𝛼 + 𝑘𝛽𝛽
▪ o seguinte controlador
▪ leva o robô até 𝜌, 𝛼, 𝛽 = (0,0,0)
ሶ𝜌
ሶ
𝛼 ሶ𝛽
=
−𝑘𝜌𝜌 cos 𝛼
𝑘𝜌 sin 𝛼 − 𝑘𝛼𝛼 − 𝑘𝛽𝛽 𝑘𝜌 sin 𝛼
𝜔𝑅 = 𝑣
𝑟 + 𝜔𝐿 2𝑟 𝜔𝐿 = 𝑣
𝑟 − 𝜔𝐿 2𝑟
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
𝑘 = 𝑘𝜌, 𝑘𝛼, 𝑘𝛽 = (3, 8, −1.5)
Malha fechada – Não-holonômico (Configuração)
Controle cinemático
▪ O sinal de controle 𝑣 possui valor constante
▪ A direção se mantém positiva ou negativa
▪ Movimento é feito de maneira suave
▪ Estabilidade
▪ Garante que o robô não irá mudar de direção
▪ 𝑘𝜌 > 0; 𝑘𝛽 < 0; 𝑘𝛼 − 𝑘𝛽 > 0
Malha fechada – Não-holonômico (Posição)
Controle cinemático
▪ [De Luca e Oriolo, 1994]
ሶ𝑥 ሶ𝑦 ሶ𝜃
=
cos 𝜃 0 sin 𝜃 0
0 1
𝑢1 𝑢2
𝑢1 = 𝑘𝜌 ሶ𝑥𝑑 cos 𝜃 + ሶ𝑦𝑑 sin 𝜃 𝑢2 = 𝑘𝜃(atan2 ሶ𝑦𝑑, ሶ𝑥𝑑 − 𝜃)
Malha fechada – Não-holonômico (Posição)
Controle cinemático
▪ [Desai et al., 1998]
𝑣
𝜔 =
cos 𝜃 sin 𝜃
− sin 𝜃 𝑑
cos 𝜃 𝑑
ሶ𝑥 ሶ𝑦
Considerações finais
▪ Esse controle não é suficiente para tarefas mais complexas
▪ Planejamento de alto nível → Navegação