Você está na página 1de 19

UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 1

Planejamento de trajetória para um veı́culo com


quatro rodas
Jose Luis Huayanay Villar
Rômulo Thaygor Hatakeyama Alves
Prof:Teo Revoredo

Resumo—

Neste trabalho, pretendemos consolidar os conhecimentos adquiridos na disciplina de Sistemas Digitais Aplicados, ao modelar,
simular e testar um robô móvel de tração traseira. Será adotada uma trajetória em que o robô deverá seguir. Compõe este
trabalho o uso de ferramentas computacionais como MATLAB e de plataformas de desenvolvimento, como o Arduino.
Palavras-chave—Robótica, Modelagem Matemática

1 Introdução mado Stanford Arm. Desde então, este braço é


Em 1921, na peça teatral denominada “Ros- utilizado como padrão, influenciando no design de
sum’s Universal Robots”, Karel Čapek escreveu a braços e robôs [6].
história de um cientista que tinha desenvolvido Basicamente, os sistemas robóticos autônomos
uma sustância quı́mica que tornaria possı́vel a se dividem em duas áreas: a robótica de manipu-
construção de humanoides obedientes e capazes lação e a robótica móvel. A primeira área trata de
de realizar todo o trabalho fı́sico, a serviço de robôs que usam base fixa para poder trabalhar.
industriais e donos do capital. Por conta deste Em contrapartida, a segunda, trabalha com robôs
fato, foi atribuı́do à Karel Čapek a criação da que podem se deslocar livremente em determinada
palavra “robota” [3]. área.
No final dos anos sessenta, George Devol, A utilização de robôs, sobretudo em ambientes
baseando-se em sua experiência com máquinas de industriais é uma solução cada vez mais difundida
comando numérico e em telemanipuladores cons- e aceita, visto que, em atividades perigosas ou que
truiu o primeiro robô automático. Este fato, além exigem muita precisão e/ou repetitividade, a uti-
de ter permitido a criação do primeiro robô comer- lização da robótica é uma solução que atende sa-
cial de uso industrial, o Unimate, abriu uma via de tisfatoriamente e torna-se quase que obrigatória.
possibilidades para a robótica e o desenvolvimento Ainda, segundo a Norma ISO 10218, o robô indus-
da automação industrial. O Unimate começou a trial é uma “máquina manipuladora, controlada
ser utilizado em 1961, pela General Motors em automaticamente, reprogramável, multifuncional,
sua linha de produção de veı́culos. Pesando 1800 que pode ter base fixa ou móvel para a utilização
kg e obedecendo a comandos gravados em fitas em aplicações de automação industrial”.
magnéticas, este robô era responsável por pegar Na área de Inspeção, por exemplo, quase sem-
pedaços pequenos de metal e colar peças nos pre é necessário inspecionar equipamentos que
chassis dos carros [4]. possam estar em espaços confinados, em áreas
Em 1969, Victor Scheinman, estudante de en- com materiais radioativos, ou em locais de muito
genharia mecânica do Stanford Artificial Intelli- difı́cil acesso. Para tanto, a utilização de robôs
gence Lab (SAIL), criou o braço mecânico cha- devidamente projetados permite a visualização de
tais equipamentos, em diferentes ângulos de visão
Artigo submetido a banca examinadora em 10/12/2019 e permite fazer algumas análises. O próprio robô
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 2

pode comparar as imagens captadas, com uma uma representação na polar, (r, θ). Comummente,
imagem padrão, ou seja, uma que apresente deter- adota-se o modelo do uniciclo, ou seja, um modelo
minada parte em perfeito estado de conservação, de uma roda só, que possui uma velocidade linear
e apontar alguma não conformidade. v e uma velocidade angular ω . Com base neste
As empresas cada vez mais estão buscando modelo, o comportamento pode ser descrito como:
adotar as novas tecnologias a fim de reduzir custos
e aumentar a produção. Gastos com manutenções
   
preventivas e preditivas são cada vez mais jus- ẋ cos(θ) 0  
tificáveis, visto que muitas das vezes, a quebra ẏ  = sen(θ) 0 v (1)
de determinado tipo de equipamento pode gerar ω
θ̇ 0 1
prejuı́zos de bilhões de dólares. Por isso, não raro
vê-se o uso da robótica na área de inspeção, por onde x e y definem a posição do robô no espaço
exemplo. Na figura 1, tem-se o robô utilizado pela cartesiano e θ, o ângulo do robô em relação ao
General Electric na inspeção do estator e rotor eixo das coordenadas. Neste trabalho, para a mo-
de seus Geradores Elétricos. O robô, denominado delagem do robô, está-se assumindo que:
MAGIC, possui duas câmeras de alta resolução
responsáveis pela inspeção nomeada pela GE de 1) O robô possui corpo rı́gido e rodas não
“Magic Inspection”. deformáveis;
2) O solo é ideal e o coeficiente de atrito é
uniforme;
3) O ponto de contato entre as rodas e o solo
satisfazem à condição de rolamento puro,
sem haver derrapagem;
4) A tração do veı́culo deve ser direcionado
pela roda dianteira, tendo restrições não
holonômicas., sendo estas também res-
ponsáveis pela mudança de direção do
veı́culo;
5) Não há deformações nas rodas.

2.2 Modelo cinemático


Para realizar a modelagem do robô deve ser
Figura 1: Robô MAGIC utilizado em inspeções em levado em consideração conta certas hipóteses
geradores elétricos GE. [5] que generalizam a comportamento do robô, por
exemplo, pressupõe-se que o robô viaja em uma
O objetivo deste trabalho é estudar a cinemá- superfı́cie plana idealmente sem atrito, os eixos do
tica direta e inversa de um robô móvel, analisar rodas perpendiculares ao solo onde desloca. Final-
os dados modelados através do MATLAB, pro- mente, o robô deve se mover somente pelas forças
gramar e testar em um protótipo uma trajetória exercidas pelo movimento roda rotacional,O robô
definida. é considerado um mecanismo sólido, rı́gida e sem
peças flexı́veis, mas deve ter em conta as restrições
não-holonômico de sistema.Ou seja, o robô pode
2 Metodologia avançar em direção a para trás ou para frente, mas
2.1 Modelagem não pode se mover para os lados sem que exista
Para a modelagem de robôs móveis, podemos uma força externa que force o movimento (figura
supor uma simplificação, onde mesmo tenha a ca- 2 ) ,Para fazer um move mento puramente lateral
pacidade de mover-se em um plano x e y , ou usar deve ser feito um movimento por partes.
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 3

figura 4. O objetivo de modelar o robô é procurar


um relacionamento direcionar como as entradas
”Vr e Vl”afetam a sistema indica ”X, Y, φ”

Figura 2: restrições não-holonômico no sis-


tema(propia)

Para executar a modelagem de robôs correto,


Figura 4: Variáveis do movimento do robô (pro-
nos precisamos conhecer as condições fı́sicas do
pia).
sistema, especialmente as dimensões do robô ,As
As medidas que interessam no processo de mo-
delagem são: a distância entre as rodas e seu raio O robô pode se mover com uma velocidade
,Conforme indicado na Figura 3. A distância entre linear ”v”e gire com uma velocidade angular ”φ”,
o as rodas serão chamadas de ”L”e o raio das rodas como pode ser visto na figura 4.
Será ”R”. Para que o robô se mova em linha reta, a ve-
locidade da roda deve ser a mesma por isso se
pode definir a velocidade linear do robô, como
velocidades médias das rodas e proporcional ao
raio destes.
vr + vl
v=R (2)
2
Para que o robô tenha um movimento de rotação
sobre o mesmo centro de massa, as velocidades
de suas rodas devem ter a mesma magnitude,
mas segno diferente, por tanto, se pode definir a
velocidade angular como a diferença na velocidade
de suas rodas no comprimento entre eles.
vr − vl
w=R (3)
2
Figura 3: Variáveis fı́sicas do robô diferen- Adicionalmente das condições de velocidade, se
cial(propia). planteá uma matriz de rotação, já que o robô não
está sempre Está alinhado com o eixo global.:

Para alcançar um movimento controlado, eles


   
ẋ senθ 0  
devem ter domı́nio sobre ”Vr”a velocidade da roda  ẏ  =  cosθ 0 v (4)
direita e ”Vl”a velocidade da roda esquerda, veja a w
φ̇ 0 1
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 4

   
ẋ senθ 0  vr +vl 
 ẏ  =  cosθ 0 R vr −v
2 (5)
R L l
φ̇ 0 1

Resultando no modelo cinemática direta do robô


com o qual desenvolve o sistema de controle, para Figura 6: movemento en x em Simulink (propia)
seguir as trajetória.

   cosθ
R 2 R cosθ

ẋ 2
 
 ẏ  = R sinθ sinθ wr
2
R 2  (6)
R wl
φ̇ L
−RL

Um modelo é desenvolvido em Simulink matlab,


para execute uma simulação que permita verificar
o comportamento do modelo (figura 5).Se fizeram
testa onde a velocidade de cada roda é a mesmo,
esperando obter como resultado movimento ao
longo do eixo “x”.As respostas obtido pode ser Figura 7: m0vemento en y em Simulink (propia)
visto na figura 6.

Figura 8: angulo phi em Simulink (propia)

Finalmente, é realizado um teste com velo-


Figura 5: Modelo Cinemático do Robot em Simu- cidade maior que o outro, isso nos permite ter
link (propia) uma movimento rotacional com deslocamento cir-
cular.como mostra a figura 9.
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 5

ẋd = vd · cos(θd ), (9)


ẏd = vd · sen(θd ), (10)
tanφd
θ̇d = vd · (11)
l
Onde vd e φd são os comandos de entradas de-
sejáveis. A partir das equações 43 e 44, calculamos
vd , onde o sinal indica se o movimento é em avanço
ou de ré. Já a equação 13 apresenta a velocidade
Figura 9: movemento en x em Simulink (propia) angular ωd .

q
vd (t) = ± ẋ2d (t) + ẏd2 (t) (12)

ÿd (t)ẋd (t) − ẍd (t)ẏd (t)


ωd (t) = (13)
ẋ2d + ẏd2
A orientação desejada do carrinho é calculada
a partir da equação 14. Convém ressaltar que o
sinal de vd é levado em conta:
 
ẏd ẋd
θd (t) = Arctg , (14)
vd vd
Figura 10: m0vemento en y em Simulink (propia)
Para se obter o ângulo de direção desejado,
deve-se diferenciar as equações 43 e 44, além de
isolar vd :

  
1 d ẏd
θ̇d (t) =  2 · (15)
ẏd dt ẋd
1+ ẋd

x2d
 
d ẏd
θ̇d (t) = 2 2
· (16)
xd + yd dt ẋd

x2 d
 
ẏd
Figura 11: angulo phi em Simulink (propia) θ̇d (t) = 2d · (17)
vd dt ẋd

Resposta modelo do robot ante velocidades


x2
 
Desiguais em mesmo sentido. ÿd ẋ − ẍd ẏ
θ̇d (t) = 2d (18)
vd x2d
xd = xd (t), (7)
yd = yd (t), (8)  
t ≤ t0 . ÿd ẋ − ẍd ẏ
θ̇d (t) = (19)
vd2
As trajetórias de referência de entrada podem
ser obtidas derivando-se xd , yd e θd : O ângulo de direção desejado é:
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 6

  
ÿd ẋd − ẍd ẏd
φd (t) = Arctg l
vd3
(20)
φd (t) ∈ h− π2 , π2 i

Já a trajetória cartesiana é dado por:


xd (t) = Rcos(ωt) + xdc
(21)
yd (t) = Rsin(ωt) + ydc

Figura 13: Sensor de velocidade enconder [8].


3 A Busca pela Trajetória

Neste trabalho vamos implementar uma odo- Para determinar a velocidade angular em cada
metria usando um encoder, que será ligado no Ar- uma das rodas, deve-se começar medindo a quan-
duino. Assim, conseguiremos calcular a velocidade tidade de furos do disco que foram necessárias em
angular de cada uma das rodas. um determinado momento. Portanto:
Na Figura 36 segue uma das partes do dis-
positivo que nos permite calcular a velocidade
(e determinar a posição). Trata-se de um disco, δ(T K) = T Kf − T Ki (22)
com furos (gaps) nas extremidades que fica preso
em uma das extremidades do eixo do motor. Na Onde:
outra extremidade, está a roda. Ainda, disposi-
• TK: furo ou gap,
tivo composto de duas partes, onde em uma das
• T Kf : furo atual;
pontas emite um sinal (luz) e na outra recebe. Na
• T ki : furo anterior;
transição de um furo para o outro, temos uma va-
riação no sinal do sensor e assim, por consequência Determinando a velocidade:
consegue-se determinar o movimento.
2π/NT k
ω= (23)
δT K
Onde NT k corresponde ao número de ranhuras
do encoder. Assim, a velocidade linear, vl será:

vl = ωr (24)

Em se tratando de um caso genérico, a distân-


cia percorrida será:

Figura 12: Disco encoder [7].


δ(T K)
D = 2rπ (25)
NT k
Na próxima Figura, tem-se o sensor enconder
preparado para ser usado com o Arduino.
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 7

3.1 Função Odometria

A odometria é um método relativamente sim-


ples e barato e comumente utilizado para se esti-
mar a posição. O princı́pcio básico da odometria
baseia-se na integração de informação de maneira
incremental ao longo do tempo. O que acaba, por
consequência, incrementando o erro também.
A distância recorrida pela roda direita será:

δ(T K1 )
D1 = 2πr (26)
NT K

Figura 14: Ângulos presentes no cálculo da veloci-


A distância recorrida pela roda esquerda será: dade angular no método não-holonômico (propio)
[7].
δ(T K2 )
D2 = 2πr (27)
NT K   
yd −y
φd = Arctg xd −x
(30)

Portanto, para a distância percorrida de um com error = φd − φ


ponto central até um determinado ponto será: Onde (xd , yd ) representa as coordenadas do mar-
cador da frente do veı́culo e (x, y) representa as
coordenadas da retaguarda.
D1 + D2
Dc = (28)
2

A atualização da posição desejada, conside-


rando uma trajetória circular, de raio R é:


xd (t) = Dc cos(ωt) + xdc
(29)
yd (t) = Dc sin(ωt) + ydc

3.2 Orientação do veı́culo

Para que o robô se mova entre essas posições, Figura 15: Distância entre pontos método não
ele deve ser desenvolvido dois movimentos, pri- holonômico. (propio) [7].
meiro de orientação e depois um de traslação. Para
executar o controle da orientação, o velocidade
angular do robô como a diferença do orientação 3.3 PLANEJAMENTO TRAJETÓRIA
do robô e o ângulo entre o ponto próximo com o A trajetoria do caminho projetado para que
eixo de coordenadas. Como se mostra na figura 14. o veı́culo possa se mover dentro do plano Coor-
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 8

denada de trabalho consiste em uma série de n por pares de dados, conforme descrito na equação
pontos descritos sequencialmente . ()
Considera-se, em primeiro lugar, que a trajetória

está livre de obstáculos, de de tal maneira que (x0 , y0 ), (x1 , y1 )...(xn , yn ) (31)
um caminho composto pela união do conjunto de
linhas definidas, pelas quais se deseja que o veı́culo Cada segmento do caminho é definido como uma
passe em um instante determinado. De os méto- função, conforme observado (figura 17 ), de modo
dos de planejamento de trajetórias existentes, o que cada função seja descrita como um polinômio
método mais se encaixa no projeto é a geração de ordem 3.
de trajetória ponto a ponto, ou seja, estabelecer
uma série de waypoints dentro do espaço de co-
ordenadas para que o veı́culo planeja e descreve
a trajetória formada pela união de todos pontos.
Para fazer isso, como mostrado na (figura 16),
os pontos são selecionado com o qual o veı́culo
se destina a descrever uma mudança de direção
de rotação esquerda e direita, que visualmente
no plano é observado Como uma mudança de
faixa.(KEVIN SARMIENTO,2015)

Figura 17: Segmentos do caminho definido por


funções (propio) [7].

Cada função é representada como mostrado na


equação ( 32)

θk (x) = a0,k + a1,k x + a2,k x2 + a3,k x3 (32)

onde k=1,2,3...n
Figura 16: Planejamento de trajectoria punto a Dado que n representa o número de pares de
punto (propio) [7]. dados. O primeiro é que eles existem condições
de interpolação definidas na equação (33)

spline cúbico é um polinômio descrito por θk (xk − 1) = yk − 1 (33)
partes, é usado para executar interpolação entre
segmentos descritos por pontos definidos, cujo
Da mesma forma, uma função de continuidade e
objetivo é alterações retilı́neas suaves entre pon-
estabelecida representado na equação (34)
tos, resultando em curvas macio, que aproxima o
comportamento da trajetória descrita pelo veı́culo 
ao fazer curvas irregulares. θk (xk ) = yk (34)
O cenário proposto consiste em um trajetória defi-
nida pela obtenção de retas unidas por pontos, de Também é necessário levar em consideração que
modo que compone que a trajetória seja composta as condições de suavidade, ou seja, as derivadas de
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 9

cada função são avaliadas, conforme estabelecido derivando para a relacione a velocidade angular e
nas equações (35) e (36). lineal
  ẋr (t) = φ̇acos(φt) + ḣx
θ̇k (xk ) = θ̇k+1 (xk ) (35) ẏr (t) = φ̇asin(φt) + ḣy (40)
 ω = φ̇
θ̈k (xk ) = θ̈k+1 (xk ) (36) como

Dessa forma, procedemos à execução da solução


Spline de acordo com a trajetória implementada, xr = hx , yr = hy (41)
para que este software Matlab e Arduino seja
usado. Programa: Spline cubica y
Variables: puntos coordenados en x puntos
coordenados en y ẋr = ḣx , ẏr = ḣy (42)
Algoritmo:
Leer pontos coordenados en x y en y de a equação (9,10,11) com angulo de direção
Definição de variável final e inicial
Declaração de tempo de mestreou ẋr (t) = uċos(φt), (43)
Declaração de la funciona interp1 ẏr (t) = uṡen(φt), (44)
Asignación de método ‘cubic’
ω = φ̇ (45)
Graficación de tempo de mestreou vs interp1
Asignación de puntos coordenados em la imagem
por tanto .
    
ẋr (t) cosφ −asen(φt) u
= (46)
4 Algoritmo de seguimiento de trayec- ẏr (t) senφ acos(φt) w
torias
A implementação do algoritmo e orientar o onde
veı́culo em direção a posição desejada,dados os
pontos que definem a trajetória e as condições ḣ = Jv (47)
iniciais do sistema.Na primeira instância, é
considerada uma velocidade constante para o
veı́culo durante a execução do seu movimento. v = J −1 (ḣd + Ke) (48)

onde J:jacoviano ,e:error e K:ganancia


4.1 Ajustar o polinômio à função trigonomé-  
trica em matlab cosφ −asen(φt)
J= (49)
senφ acos(φt)
de a equação (29),para a=DC ,(a) ponto de
control
Geremos em matlab pontos igualmente espaça-
dos ao longo de uma curva senoidal no intervalo
xd = xr , yd = yr (37)
[t=0,ts=50] em trajetória desejada.
r:referencia de control
hxd = 3sin(0.1t); (50)
xdc = hx , ydc = hy (38)

con φ angulo de direção hyd = −0.2t; (51)



xr (t) = acos(φt) + hx
(39) trajetória tipo sinoide:
yr (t) = asin(φt) + hy
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 10

Figura 18: trajetoria [7].

Figura 20

Figura 19 Figura 21
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 11

em forma matricial
    
1 x0 x20 ...xn0 a0 y0
1 x1 x21 ...xn1  a1   y1 
    
1 x1 x21 ...xn2  a2  =  y2  (55)
    
 ...   .   . 
...xnn . yn

Figura 22: Disco encoder [7].

4.2 Interpolação em Arduı́no


temos (n +1) pontos de dados
(x0 , y0 ), (x1 , y1 )...(xn , yn ) pares que representam
(n + 1) pontos do gráfico da função y =f(x),
cuja forma explı́cita não é conhecida, assumimos
valores diferentes em que a função é contı́nua.
e polinômio que se vai encontrar satisfaze as
seguentes reostricções.

Pn (xi ) = yi , i = 0, ...n (52)

si a polinômio

Pn (xi ) = a0 + a1 x + a2 x2 + ... + an xn (53)

para atender às restrições são geradas, (n + 1)


equações e (n + 1) incógnitas

a0 + a1 x0 + a2 x20 + ... + an xnn = y0


a0 + a1 x1 + a2 x21 + ... + an xnn = y1
a0 + a1 x2 + a2 x22 + ... + an xnn = y0
a0 + a1 x+ a2 x23 + ... + an xnn = y1
(54)
.
.
.
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 12

5 experimento
5.0.1 programação

Figura 23

Figura 24
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 13

Figura 25

Figura 26
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 14

Figura 27

Figura 28
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 15

Figura 29

Figura 30
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 16

Figura 31

Figura 32
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 17

5.1 Estructura carro

Figura 33: Disco encoder [7].

Figura 34: simulinck


UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 18

5.2 Resultados
el mo vil re alisa el planejamento ,com um margens de erro

Figura 35

Figura 36
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 19

5.3 planejamento do trayectoria


Referências
[1] FAUZA, M. J. R.U.R. (Rossum’s Universal Robots) e a
gênese do robô na literatura moderna. In:Dissertacão de
Mestrado. Campinas, SP: [s.n.], 2008. p. 84 f.
[2] Trajectory Planning for a Four-Wheel-Steering Vehicle
Danwei Wang ,Feng Qi,2001
[3] KEVIN STEVEN SARMIENTO GAM-
BOA,DESARROLLO DE PLANEACIÓN Y
SEGUIMIENTO DE TRAYECTORIAS PARA UN
VEHÍCULO AUTÓNOMO,2015
[4] PEARCE, J. George C. Devol, Inventor of Robot
Arm, Dies at 99. In: The New York Times.
https://www.nytimes.com/2011/08/16/business/george-
devol-developer-of-robot-arm-dies-at-99.html: [s.n.].
[5] GE Power Water Power Generation Services. Disponı́-
vel em: https://docplayer.net/23529877-Ge-power-water-
power-generation-services.html. Acesso em: 02/11/2019.
[6] AYRES, M. Conheça a história dos robôs.
Disponı́vel em: UOL Notı́cias. Tecnologia.
https://tecnologia.uol.com.br/ultnot/2007/10/01/
ult4213u150.jhtm:. Acesso em: 02/11/2019.
[7] Baú da Eletrônica. Disponı́vem em:
https://www.baudaeletronica.com.br/disco-
encoder.html. Acesso em: 07/12/2019.
[8] FILIPEFLOP. Disponı́vem em:
https://www.filipeflop.com/produto/sensor-de-
velocidade-encoder/. Acesso em: 07/12/2019.
[9] NIKU, Saeed B. Introdução à Robótica: Análise, Controle
e Aplicações. 2. ed. Rio de Janeiro: LTC, 2013. 382 p. ISBN
978-85-216-2237-6.

Você também pode gostar