Você está na página 1de 15

UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 1

Estudo e Modelagem de um Robô Móvel


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 utilizado como padrão, influenciando no design de


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

e apontar alguma não conformidade. de uma roda só, que possui uma velocidade linear
As empresas cada vez mais estão buscando v e uma velocidade angular ω . Com base neste
adotar as novas tecnologias a fim de reduzir custos modelo, o comportamento pode ser descrito como:
e aumentar a produção. Gastos com manutenções
preventivas e preditivas são cada vez mais jus-
tificáveis, visto que muitas das vezes, a quebra    
ẋ cos(θ) 0  
de determinado tipo de equipamento pode gerar ẏ  = sen(θ) 0 v (1)
prejuı́zos de bilhões de dólares. Por isso, não raro ω
θ̇ 0 1
vê-se o uso da robótica na área de inspeção, por
exemplo. Na figura 1, tem-se o robô utilizado pela
General Electric na inspeção do estator e rotor onde x e y definem a posição do robô no espaço
de seus Geradores Elétricos. O robô, denominado cartesiano e θ, o ângulo do robô em relação ao
MAGIC, possui duas câmeras de alta resolução eixo das coordenadas. Neste trabalho, para a mo-
responsáveis pela inspeção nomeada pela GE de delagem do robô, está-se assumindo que:
“Magic Inspection”.
1) O robô possui corpo rı́gido e rodas não
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.

Figura 1: Robô MAGIC utilizado em inspeções em 2.2 Modelo cinemático


geradores elétricos GE. [3]
Para realizar a modelagem do robô deve ser
levado em consideração conta certas hipóteses
O objetivo deste trabalho é estudar a cinemá- que generalizam a comportamento do robô, por
tica direta e inversa de um robô móvel, analisar exemplo, pressupõe-se que o robô viaja em uma
os dados modelados através do MATLAB, pro- superfı́cie plana idealmente sem atrito, os eixos do
gramar e testar em um protótipo uma trajetória rodas perpendiculares ao solo onde desloca. Final-
definida. mente, o robô deve se mover somente pelas forças
exercidas pelo movimento roda rotacional,O robô
2 Metodologia é considerado um mecanismo sólido, rı́gida e sem
peças flexı́veis, mas deve ter em conta as restrições
2.1 Modelagem não-holonômico de sistema.Ou seja, o robô pode
Para a modelagem de robôs móveis, podemos avançar em direção a para trás ou para frente, mas
supor uma simplificação, onde mesmo tenha a ca- não pode se mover para os lados sem que exista
pacidade de mover-se em um plano x e y , ou usar uma força externa que force o movimento (figura
uma representação na polar, (r, θ). Comummente, 2 ) ,Para fazer um move mento puramente lateral
adota-se o modelo do uniciclo, ou seja, um modelo 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 9 e 10, 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 9 e 10, 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) = Rsin(ωt) + xdc
(21)
yd (t) = Rcos(ωt) + ydc

Figura 13: Sensor de velocidade enconder [6].


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 27 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 [5].


δ(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)
[5].
δ(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 sin(ωt) + xdc
(29)
yd (t) = Dc cos(ω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) [5].
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 () 


pontos descritos sequencialmente . (x0 , y0 ), (x1 , y1 )...(xn , yn ) (31)
Considera-se, em primeiro lugar, que a trajetória
está livre de obstáculos, de de tal maneira que Cada segmento do caminho é definido como uma
um caminho composto pela união do conjunto de função, conforme observado (figura 17 ), de modo
linhas definidas, pelas quais se deseja que o veı́culo que cada função seja descrita como um polinômio
passe em um instante determinado. De os méto- de ordem 3.
dos de planejamento de trajetórias existentes, o
método mais se encaixa no projeto é a geração
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.

Figura 17: Segmentos do caminho definido por


funções (propio) [5].

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
Dado que n representa o número de pares de
dados. O primeiro é que eles existem condições
Figura 16: Planejamento de trajectoria punto a de interpolação definidas na equação (33)
punto (propio) [5]. 
fk (xk − 1) = yk − 1 (33)

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

por pares de dados, conforme descrito na equação f˙k (xk ) = f˙k+1 (xk ) (35)
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 9

f¨k (xk ) = f¨k+1 (xk ) (36)

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


Spline de acordo com a trajetória implementada,
para que este software Matlab e Arduino seja
usado. Programa: Spline cubica
Variables: puntos coordenados en x puntos
coordenados en y
Algoritmo:
Leer pontos coordenados en x y en y
Definição de variável final e inicial
Declaração de tempo de mestreou
Declaração de la funciona interp1
Asignación de método ‘cubic’
Graficación de tempo de mestreou vs interp1
Asignación de puntos coordenados em la imagem
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 10

4 experimento
4.0.1 programação

Figura 18: Disco encoder [5].

Figura 19: Disco encoder [5].


UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 11

Figura 20: Disco encoder [5].

Figura 21: Disco encoder [5].


UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 12

Figura 22: Disco encoder [5].

4.1 Estructura carro

Figura 23: Disco encoder [5].


UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 13

Figura 24: Disco encoder [5].

Figura 25: Disco encoder [5].


UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 14

4.2 matlab e simulação com experimento

Figura 26: Disco encoder [5].

Figura 27: Disco encoder [5].


UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – UERJ 15

4.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] 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.].
[3] 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.
[4] 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.
[5] Baú da Eletrônica. Disponı́vem em:
https://www.baudaeletronica.com.br/disco-
encoder.html. Acesso em: 07/12/2019.
[6] FILIPEFLOP. Disponı́vem em:
https://www.filipeflop.com/produto/sensor-de-
velocidade-encoder/. Acesso em: 07/12/2019.
[7] 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.