You are on page 1of 7

1o SiPGEM – 1º Simpósio do Programa de Pós-Graduação em Engenharia Mecânica

Escola de Engenharia de São Carlos – Universidade de São Paulo


12 e 13 de setembro de 2016, São Carlos - SP

RASTREAMENTO DE TRAJETÓRIA APLICADO A UM ROBÔ


DIFERENCIAL PARA ESTUDO DE APLICAÇÕES EM AMBIENTE
EXTERNO

Renan Moreira Pinto, Manufatura, renanmoreira@usp.br


Arthur José Vieira Porto, Manufatura, ajvporto@sc.usp.br

Resumo. Aqui apresentamos a proposta de um sistema de controle de trajetórias de um robô com direção diferencial, para
uso em ambientes de trabalho não estruturados. Para isso, utiliza-se o conceito de trajetórias baseadas em segmentos curvos
conectados a segmentos retos predefinidos, em um sistema bidimensional (X,Y). O sistema recebe um número de pontos, baseados
num percurso já definido, e calcula a orientação e posição do veículo para determinado tempo (t). Então, é medido através de uma
IMU, um GPS e um Encoder, mantendo a orientação desejada e reavaliando a trajetória a cada ponto de transição. Nos testes, o
Encoder foi mais preciso, e responsável por parar o veículo, já que o GPS não conseguiu uma precisão maior que 0.5m.

Palavras-chave: Robô com direção diferencial, Controle de trajetória, Sistemas autônomo, controle de orientação

1. INTRODUÇÃO

Um considerável conjunto de experiências na robótica móvel pode ser feito utilizando protótipos, pois
permitem realizar testes e aperfeiçoar o controle antes da sua implementação em plataformas reais, como veículos e
caminhões. Desta forma, tem-se observado que é possível desenvolver conhecimento de controles de robôs móveis com
a vantagem de usar uma plataforma simples, baseando-se em sua disponibilidade de experimentação, colher os
resultados e avançar no estado da arte sobre o assunto.
Este trabalho expõe os resultados alcançados a partir de experimentos realizados em um protótipo de robô
móvel nomeado unidade diferencial “Siegwart e Nourbaksh (2004)”. Durante a preparação do protótipo foi instalado
um conjunto de dispositivos eletrônicos para permitir a condução de dois motores de corrente contínua, bem como a
comunicação do protótipo com dispositivos remotos. Uma placa Arduino mega “Galadima (2014)” foi instalado na
estrutura do robô móvel onde um rastreamento de trajetória e um controlador de lógica Fuzzy é exposto com detalhes.
Uma Unidade de Medição Inercial (IMU), que mede a orientação do veículo, é lida pelo Arduino, que também é
responsável por controlar dois motores de corrente contínua, montados nas rodas do protótipo.
Outro sistema analisa os pontos de início e fim das trajetórias, tal como sua orientação inicial, a fim de criar
a melhor rota para então iniciar o movimento. Após iniciado o movimento, este mesmo sistema analisa a rota, em
função do tempo e diferença da posição teórica, e tenta corrigí-la - acelerando ou reduzindo o movimento - para retornar
aos padrões estabelecidos.
A entrada é composta dos pontos iniciais e finais da trajetória, e orientação desejada ao final do percurso. Os
comandos e valores iniciais do teste são enviados através de um transceptor Xbee “Faludi (2011)”, que também envia os
valores obtidos pelos sensores para um computador remoto, onde realizamos as análises.

2. DESCRIÇÃO GERAL DO PROTÓTIPO

O robô utilizado corresponde a uma plataforma de direção diferencial, de acordo com a Fig.1. O robô possui três
plataformas circulares com 12,2 cm de diâmetro cada uma. Como mostrado na Figura 1 (a) a roda de rodízio “Siegwart
and Nourbaksh (2004)” suporta a plataforma, enquanto as rodas traseiras têm o eixo separado por 10,2 cm. Cada roda é
conectada a um motor Dc “Pololu (2015)”, que além de proporcionar locomoção, é utilizado para balancear a parte
traseira do veículo. As rodas têm 4,9 cm de diâmetro e 1,9 cm de comprimento. A Figura 1 (b) mostra as rodas estão
localizadas a 3,5 cm do solo. A plataforma mais alta está localizada 9 cm acima do chão. E a Figura (c) explicita os
itens anexados à plataforma.
1o SiPGEM-EESC/USP
1º Simpósio do Programa de Pós-Graduação em Engenharia Mecânica

(a)

(b)

(c)

Figura 1 - Robô diferencial (a) Apresentação das dimensões (b) visão lateral (c) 1. Arduino board model 2560
Galadima, A.A (2014); 2.Roda de rodízio; 3 .Unidade de medição universal; 4. GPS – Neo Geo; 5. Ponte para os dois
motores Dc; 7. Rodas.

2.1. Trajetória

A trajetória é um conjunto de pontos, calculada off-line e, em seguida, uma lei de controle é projetada a fim de fazer
com que o robô siga a trajetória calculada anteriormente. Usualmente, se considera um robô referencial, e se assume
que para as entradas de referência:

𝑥𝑟𝑒𝑓 (𝑘)
𝑋 (𝑘) − 𝑋𝑟𝑒𝑓 (𝑘) = 0 𝑋𝑟𝑒𝑓 (𝑘) = {𝑦𝑟𝑒𝑓 (𝑘)} (1)
𝜃𝑟𝑒𝑓 (𝑘)

Onde as entradas de controle de referência são:


𝑇
𝑢𝑟𝑒𝑓 (𝑘) = [𝑣𝑟𝑒𝑓 (𝑘), 𝜔𝑟𝑒𝑓 (𝑘)] (2)
1o SiPGEM-EESC/USP
1º Simpósio do Programa de Pós-Graduação em Engenharia Mecânica

Na Figura 2 abaixo, demonstra-se os cálculos de trajetória baseados entre dois pontos:

Figura 2. Trajeto entre os pontos A e B

Na figura os dados são:

𝜃1 , 𝜃2 → ângulo de orientação do veículo no ponto em relação ao sistema global para os pontos A e B respectivamente.

𝑅1, 𝑅2 → Raio de Curvatura

𝐶1 → Centro de Curvatura {𝑋𝑐1 , 𝑌𝑐1 }

𝑥 + 𝑐𝑜𝑠(𝜃1 + 90°) 𝑥 + 𝑐𝑜𝑠(𝜃2 + 90°)


𝐶1 = ( 1 ) 𝑒 𝐶2 = ( 2 ) (3)
𝑦1 + 𝑠𝑒𝑛(𝜃1 + 90°) 𝑦2 + 𝑠𝑒𝑛(𝜃2 + 90°)

𝑅𝑐 → 𝐷𝑖𝑠𝑡â𝑛𝑐𝑖𝑎 𝑒𝑛𝑡𝑟𝑒 𝑜𝑠 𝑑𝑜𝑖𝑠 𝑐𝑒𝑛𝑡𝑟𝑜𝑠 𝑑𝑒 𝑐𝑢𝑟𝑣𝑎.

𝛼 → Ângulo respeito ao sistema global dos centros de curvatura

𝑇 → 𝑇𝑟𝑎𝑗𝑒𝑡ó𝑟𝑖𝑎 𝑑𝑜 𝑣𝑒í𝑐𝑢𝑙𝑜.

Sendo:

𝑇 = 𝑇1 + 𝑇2 + 𝑇3

𝑃1 , 𝑃2 → 𝑖𝑛𝑡𝑒𝑟𝑐𝑒𝑠𝑠ã𝑜 𝑑𝑎𝑠 𝑡𝑟𝑎𝑗𝑒𝑡ó𝑟𝑖𝑎𝑠 𝑐𝑢𝑟𝑣𝑎𝑠 𝑐𝑜𝑚 𝑎 𝑡𝑟𝑎𝑗𝑒𝑡ó𝑟𝑖𝑎 𝑟𝑒𝑡𝑎.

2.1.1. Cálculo da trajetória e pontos de intercessão

Com regras de triângulos podemos obter que:

𝑅𝑐 = √(𝑥𝑐1 + 𝑥𝑐2 )2 + (𝑦𝑐1 + 𝑦𝑐2 )2 . (4)

𝑇2 = √𝑅𝑐 2 − (𝑅1 + 𝑅2). (5)

𝑅1+𝑅2 𝜋
𝑇1 = 2𝑅 ∗ (( 𝜃1 − 𝛼 + tan−1 ( )) ∗ 180). (6)
𝑇2

𝑅1+𝑅2
𝑥𝑐1 + 𝑅1cos { 𝛼 + [90° − tan−1 ( )]}
𝑇2
𝑃1 = ( 𝑅1+𝑅2
). (7)
𝑦𝑐1 + 𝑅1cos {𝛼 + [90° −tan−1 ( )]}
𝑇2
1o SiPGEM-EESC/USP
1º Simpósio do Programa de Pós-Graduação em Engenharia Mecânica

Com essas fórmulas, pôde-se estabelecer um valor inicial de localização e orientação, onde o sistema vai se orientar em
relação aos dados obtidos e segmentá-los em um conjunto de tempo t, criando uma malha de pontos, e também vai
determinar o ponto referencial para mudança de estados, onde o controlador vai interagir com o sistema Fuzzy de
controle linear ou com o sistema de controle de curvatura. O controle de curvatura ainda não foi implementado, e
apenas será analisado em relação ao tempo por seção da trajetória, sendo interrompido pelo sistema caso ocorra uma
variação negativa em relação ao movimento, avisando que o sistema ultrapassou o limite de curvatura.

3. DETALHES DO EXPERIMENTO

O experimento almeja que o robô cumpra a trajetória estebelecida passando o mais próximo possível de dois pontos
previamente estabelecidos. O robô deve manter uma trajetória fixa estabelecida por um controle de orientação, até que
seja acionado o checkpoint onde deve mudar sua orientação até o próximo objetivo.

3.1. Controlador Fuzzy

A orientação do veículo é estabelecida usando um controlador de malha fechada do tipo Fuzzy, representado na Figura
3. Este sistema foi exposto em “Baquero et al (2014)”, com a diferença de que neste, o controlador está direto no
Arduino.

Figura 3. Diagrama de bloco do Sistema de controle

A entrada (ψd) corresponde ao ângulo de orientação (Yaw angle). ψr é a orientação real obtida pela IMU. O ψd e ψr
são comparados a fim de determinar o sinal de erro (e) mostrado na Eq. (8). O sinal de erro é colocado no controlador
Fuzzy, que calcula a ação de controle necessária (u), que por sua vez é aplicado aos atuadores do robô representados
pelo bloco G.
e   d  r (8)

O controle projetado incorpora um controlador Fuzzy com uma entrada e uma saida “Sivanandam et al.( 2007)”;
“Hakima et al.( 2010)”
Como o desenvolvimento do controlador Fuzzy requer as definições das entradas e saídas como as regras
relacionadas com ambos os sets, sets triangulares são adotados, semelhantes aos explicados em detalhes em “Yu e
Zhang (2008)”. Os sets de entrada são vN (very negative), N (negative), Z (zero), P (positive) e vP (very positive) e são
representados na Figura 4 (a). A saídas sãos: R (right), C (Center) and L (left) e são representadas na Figura 4 (b).

(a) (b)
Figura. 4 Sets de lógica Fuzzy

De acordo com a teoria de lógica Fuzzy, é necessário relacionar os conjuntos Fuzzy de entrada com os
conjuntos Fuzzy de saída pelo uso das regras. Essas regras foram definidas de acordo com a Eq. (8), na qual pode ser
observado que o erro de orientação (e), representado pelos conjuntos Fuzzy de entrada, estão relacionados com os
conjuntos Fuzzy de saída através da utilização das regras. Esta relação correspondente implica no desenvolvimento de
um processo adequado, explicado detalhadamente em “Baquero et al (2014)”. O processo referenciado também foi
utilizado para determinar uma saída defuzzificada, que é aplicada para corrigir a orientação do veículo.
1o SiPGEM-EESC/USP
1º Simpósio do Programa de Pós-Graduação em Engenharia Mecânica

if e  vN , então y  R
if e  N , então y  R
if e  z, então .. y  C (9)

(
c
)
if e  P, então.. y  L
(
c
)

if e  vP, então y  L

A saída defuzzificada (Z*) é utilizada para decidir os comandos necessários para serem aplicados. Eq. (9) mostra como
os comandos do robô de direção móveis são definidos de acordo com o valor Z*. Os comandos de manobra mostrados
na Eq. (10) são enviados para a placa Arduino, que os traduzem para uma unidade diferencial, agindo sobre os servo-
motores.

if Z *  2, então u  vire _ para _ esquerda;


if  2  Z *  2, então u  vá _ em _ frente; (10)
if Z *  2, então u  vire _ para _ direita

4. RESULTADOS E EXPERIMENTOS

Quatro testes foram realizados em um caminho pavimentado para observar o comportamento do controlador. O
teste consiste em introduzir dois pontos no sistema, e que o controlador fosse capaz de gerar a trajetória a partir
destes pontos e manter a orientação do veículo respeitando a referência calculada pelo sistema preditivo.

Os testes começam no ponto de partida A (0,0), e o robô deve ir até o ponto B (7,7), onde o percurso total é em
média de 10,2 m devido às curvaturas estabelecidas pelo sistema.

Dados iniciais
𝑣𝑟𝑒𝑓 (𝑘) ≈ 0,5 𝑚⁄𝑠

𝜔𝑟𝑒𝑓 (𝑘) = 𝑣𝑟𝑒𝑓 (𝑘)⁄𝑅

𝑅1 = 𝑅2 =Raio de curvatura = 0,2 m

𝜃1 = 90º Paralelo ao eixo Y 𝜃2 = 55º

Tabela 1 – Parâmetros iniciais dos testes

Figura. 5 – Resultados dos testes com base na orientação em relação ao tempo


1o SiPGEM-EESC/USP
1º Simpósio do Programa de Pós-Graduação em Engenharia Mecânica

Variação média a cada tempo Ponto de parada em relação à


Sensores
t=2s origem (melhor resultado)
Gps – (10 satélites) 2m (7,891 , 8.125)
Encoder 0.02 m 10, 361 m
Tabela 2. Dados do teste dos sensores

A Figura 5 mostra o comportamento do veículo e o erro de orientação. Primeiramente, o veículo precisa perder 2s
para calibrar e permitir que o controlador estabeleça a trajetória. Depois, ele entra em processo de locomoção, ao
chegar ao ponto de intercessão entre a trajetória curva e a trajetória linear, o tempo de resposta do sensor aumenta,
perdendo a orientação, porém este consegue rapidamente corrigir e manter seu caminho pré-estabelecido. Para isso,
o sistema deve acelerar para corrigir a posição em relação ao tempo.

A Tabela 2 mostra os dados resumidos do GPS e Encoder, sendo que nos 4 testes o Encoder foi mais preciso, e
responsável por parar o veículo após completar o percurso, já que o GPS não conseguiu uma precisão maior que
0.5m.

5. CONCLUSÕES

A proposta é avaliar os sensores e suas possíveis correções, a fim de utilizar o sistema com uma trajetória em tempo
real, em um sistema de grande porte. Primeiramente, é necessário realizar os testes com um GPS mais preciso,
considerando que o Encoder foi mais preciso nos experimentos realizados. Entretanto, com base nos experimentos, o
sistema foi capaz de manter a orientação e encontrar os pontos com eficiência, podendo ser utilizado para testes em
veículos maiores e sistemas de locomoção diferentes. Para veículos maiores, é necessário um sistema de segurança para
evitar movimentos bruscos, no caso de falhas na transição de trajetórias. Contudo, como o movimento em relação ao
protótipo é muito menor, não se prevê que isso possa ser um problema considerável.

6. REFERÊNCIAS

Baquero A.E, Guerrero, H.B.,Barrero J.F., Tiberti, A.J., Pérez A.J, Becker, M., Magalhães D.V.,Risard J.C., 2014.
“MOBILE ROBOT PROTOTYPE USED TO THE STUDY OF TRAJECTORY CONTROL STRATEGIES AND
AUTO-LOCALIZATION”, CONEM, Uberlândia – MG, Brasil.

Faludi, R., 2011, “Building Wireless Sensor Networks”, Ed. O’Reilly Media, United States of America.

Groves, P., 2008, “Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems”, Artech House,
London, United Kingdom.

Hakima, A., Ameli, S., 2010, “Designing a Fuzzy Logic Controller to Adjust the Angle of Tires in Four Wheel Steering
Vehicles”, 11th Int. Conf. Control, Automation, Robotics and Vision, Singapure.

Margolis, M., 2011, “Arduino Cookbook”, Ed. O’Reilly Media, United State of America.

Oliva L.C, Da Silva M.L., 2009. “Android Para Desenvolvedores Brasport Livros e Multimídia Ltda. Rio de Janeiro.

Pololu. 100:1 Micro Metal Gearmotor HP < https://www.pololu.com/product/1101/specs> Acesso: 17 de Maio de 2015.

Siegwart R, Nourbakhsh I. R. 2004, “Introduction to Autonomous Mobile Robots”, a Bradford Book,The MIT Press
London, England.

Sivanandam, S., Sumathi., Deepa, S., 2007. “Introduction to Fuzzy Logic using MATLAB”, Springer-Verlag, Berlin,
Germany.

SparkFun. 9 Degrees of Freedom Breakout - MPU-9150 <https://www.sparkfun.com/products/11486> Acesso: 18 de


Maio de 2015
1o SiPGEM-EESC/USP
1º Simpósio do Programa de Pós-Graduação em Engenharia Mecânica

Turbak F., David W. Walton P.M., “The Design of Naming Features in App Inventor 2”. In: IEEE Symposium on
Visual Languages and Human-Centric Computing (VL/HCC), 28 de Julho, pp. 129–132. Disponível em
<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6883034> Acesso: 18 de Junho de 2015.

Turbak F., David W. Walton P.M., “The Design of Naming Features in App Inventor 2,” in IEEE Symposium on Visual
Languages and Human-Centric Computing (VL/HCC’), July 28, pp. 129–132.
<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6883034> Acesso: 18 de Junho de 2015.

Yu, F., Zhang, M., 2008. "Generalized Triangular Norms Based Product and Similarity of Fuzzy Sets", Fuzzy Systems
and Knowledge Discovery, FSKD '08, Fifth International Conference on, Vol. 1, Jinan, Shandong, China, pp. 286-
290.

7. AGRADECIMENTOS

Os autores gostariam de agradecer a CAPES, EMBRAPA Instrumentação e EESC-USP, pelo suporte a este trabalho.

8. RESPONSABILIDADE PELAS INFORMAÇÕES

Os autores são os únicos responsáveis pelas informações incluídas neste trabalho.

You might also like