Buscar

Planejamento de trajetória para robôs terrestres baseado em campos potenciais artificiais

Prévia do material em texto

UNIVERSIDADE FEDERAL DA BAHIA
ESCOLA POLITÉCNICA
DEPARTAMENTO DE ENGENHARIA QUÍMICA
ENGENHARIA DE CONTROLE E AUTOMAÇÃO
PEDRO AURÉLIO DOS SANTOS CARVALHO E SANTOS
Planejamento de trajetória para robôs terrestres
baseado em campos potenciais artificiais
TRABALHO DE CONCLUSÃO DE CURSO
Salvador
6 de Fevereiro de 2018
PEDRO AURÉLIO DOS SANTOS CARVALHO E SANTOS
Planejamento de trajetória para robôs terrestres
baseado em campos potenciais artificiais
Trabalho de conclusão de curso
apresentado ao curso de Graduação
em Engenharia de Controle e Automação,
da Universidade Federal da Bahia, como
requisito parcial à obtenção do título de
Engenheiro de Controle e Automação.
Orientador: André Gustavo Scolari
Conceição
Salvador
6 de Fevereiro de 2018
Dedico este trabalho a todos que me ajudaram a conseguir completar esta
jornada com sucesso e mais que tudo, me apoiaram nos momentos mais turbulentos
que passei, e sorriram comigo nos momentos mais felizes.
AGRADECIMENTOS
“O tempo não gosta de nada que é feito sem ele.”
Começar meus agradecimentos com essa frase é a coisa mais sensata que me compete
agora. Tal frase eu escutei uma única vez em minha vida, sendo proferida por um senhor
de nome Cauby. A ocasião era festiva, reencontro de amigos de outras gerações com
amigos mais novos. Pois bem, achei marcante essa frase, e venho guiando minha vida,
em partes, a partir dela.
Percebi ao longo da minha jornada que o maior bem que nós temos é o nosso tempo.
Seja ele gasto da forma que acharmos melhor, mas sem ele, não somos capazes de
fazer nada.
E sabendo que o tempo é o bem mais precioso que nós temos, só tenho a
agradecer a todas as pessoas, que durante essa longa jornada que passei até chegar
no dia de concluir esse trabalho, se dispuzeram a me doar uma parte do seu tempo,
seja uma pequena parcela, ou uma grande parte dele.
Durante meu período na universidade, fiz vários amigos, e tenho certeza que os levarei
comigo pra sempre, e lhes prometo que sempre gastarei um pouco do meu tempo lhes
importunando com qualquer assunto que seja, e me mantenho à disposição a todos
vocês que necessitem de um pouco do meu tempo para lhes ajudar em qualquer que
seja a tarefa.
Citar nomes é sempre complicado, pois os destaques são muitos, porém, entre
os destaques, não posso deixar de citar aqui meus amigos Angelo, Uziel, Estácio,
Khayan, Eduardo, Lessa, Paulinha, Elton e Kelvin, que dentre todos os amigos que
tenho orgulho de dizer que adiquiri nesses anos, estiveram comigo sempre me apoiando,
dando conselhos, divindo a conta no bar e as vezes, me deixanddo fora da conta (muito
obrigado mesmo por isso!).
Mais importante que os amigos que fiz, tenho que destacar minha família, que
me deu todo o suporte para que eu pudesse vencer essa batalha, e tenho certeza que
estarão comigo em todas as outras que eu venha a enfrentar durante minha vida. Quero
agradecer, do canto mais fundo do meu coração a Tia Ninha, Tia Cida, Tia Eliana, Tia
Rita (In Memoriam), Tio Bão e Tio Chicão, que durante todo minha vida assumiram os
papéis de Pai e Mãe, e me fizeram virar a pessoa que sou hoje! Portanto, se você está
lendo esse texto, saiba que eu sou o que sou hoje devido a essas pessoas.
Não obstante delas, tenho que agradecer a meus irmãos, Helber, Míria, Felipe e Joanna,
que sempre me apoiaram, dando conselhos, dando sermões também, acho que por eu
ser o irmão mais novo, o instinto protetor sempre pairou neles sobre mim. Mais uma
vez, muito obrigado a todos vocês.
Não posso deixar de agradecer também à minha família soteropolitana. Meu
pai, minha ex-madrasta, e a meu irmão, que durante a maior parte da minha morada
aqui nesta terra, foram eles que me acolheram, me apoiaram, sorriram comigo, enfim,
dedicaram um bom tempo de suas vidas a me ver alcançar uma parte do que a gente
espera que seja o sucesso.
Trespassando a linhagem sanguínea, durante minha jornada conheci a pessoa
que mais esteve ao meu lado, dividindo comigo todas as alegrias que tive durante
os meus anos na universidade, e mais importante que os momentos felizes, sempre
esteve comigo nos momentos mais difíceis que passei durante esses anos. Danielle,
obrigado por me aturar nesses anos, e por querer estar comigo em todos os momentos
das nossas vidas.
Não posso deixar de falar também dos meus amigos de Caetité, que
desempenharam um papel importantíssimo nessa jornada, mesmo não estando
presentes no meu dia-a-dia universitário. Muito obrigado Diogão, Ailton e Sandino.
Pra finalizar esse textão, agradeço mais uma vez, de coração à todos o que me
doaram uma parte do seu tempo, e estiveram comigo durante todo esse tempo que foi
meu período na universidade. Amo vocês!
“Um passo a frente, e você já não está mais no
mesmo lugar!”
Chico Science
RESUMO
O planejamento de trajetória para sistemas robóticos móveis é uma das partes
mais importantes no desenvolvimento de sua navegação. Planejar uma trajetória
envolve não só saber aonde ir, mas como ir. Este trabalho apresenta um método
de planejamento baseado em campos potenciais artificiais. Este método é capaz
de calcular uma trajetória em tempo real ao mesmo tempo que consegue efetuar o
desvio de obstáculos no caminho, desde que essa informação seja passada ao robô.
Para realizar esse trabalho, foi utilizado um robô móvel com acionamento diferencial,
juntamente com um sensor ultrassônico responsável pelo mapeamento do ambiente
no qual o robô se move. Os testes para validação foram feitos utilizando a plataforma
robótica realizando a leitura do ambiente em tempo real através do sensor ultrassônico,
e foi feita uma comparação com uma simulação para avaliar a eficácia.
Palavras-chave: Robô móvel, Planejamento de Trajetória, Campos Potenciais
Artificiais, Robô Diferencial, Sensores, Ultrassom
ABSTRACT
The path planning for mobile robots is one of most important parts in the
development of your navigation. Path planning involves not only know where to go, but
how to go. This work presents a method of planning based in artificial potential fields.
This method is able to calculate the path in real time and at the same time, avoid
obstacles in the way, since this information will be passed to the robot. To achieve this
goal a differential drive robot was used, with one ultrasonic sensor responsible to
mapping the enviroment in wich the robot moves. The validation tests was performed by
the robot using the ultrasonic sensors acquiring data in real time, and was made a
comparison between the real robot and a simulation.
Keywords: Mobile Robot, Path Planning, Artificial Potential Fields, Differential
Robot, Sensors, Ultrasonic
LISTA DE ILUSTRAÇÕES
Figura 1 – Disco de sensor de posição . . . . . . . . . . . . . . . . . . . . . . . 17
Figura 2 – Intensidade típica da distribuição de um sensor ultrassonico . . . . . 18
Figura 3 – Sensor Ultrassonico . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figura 4 – Diferença entre trajetórias holonômicas e não-holonômicas . . . . . 20
Figura 5 – Estrutura do robô diferencial . . . . . . . . . . . . . . . . . . . . . . . 21
Figura 6 – Robô diferencial Lego Mindstorm EV3 . . . . . . . . . . . . . . . . . 21
Figura 7 – Posicionamento do robô com relação ao sistema de coordenadas
global. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figura 8 – Exemplo de trajetória em campo potencial . . . . . . . . . . . . . . . 25
Figura 9 – Tipos de pontos críticos e seus respectivos gráficos de função gradiente 26
Figura 10 – Menor distancia para um obstáculo . . . . . . . . . . . . . . . . . . . 28
Figura 11 – Exemplo de trajetória gerada usando interpolação cúbica . . . . . . 29
Figura 12 – Mínimo local dentro de um ambiente côncavo. . . . . . . . . . . . . 30
Figura 13 – Mínimo local gerado por dois obstáculos distintos. . . . . . . . . . . 30
Figura 14 – Esquema representativo do funcionamento do método APF-Modificado 31
Figura 15 – Ambiente criado para teste. . . . . . . . . . . . . . . . . . . . . . . . 34
Figura 16 – Trajetórias planejada e executadapelo robô em ambiente simulado. 36
Figura 17 – Erro entre a trajetória planejada e a trajetória executada pelo robô. . 36
Figura 18 – Velocidades linear e angular aplicadas ao robô em simulação para
parâmetros de sensor real . . . . . . . . . . . . . . . . . . . . . . . . 37
Figura 19 – Trajetória planejada e executada pelo robô utilizando o sensor para
obtenção de pontos no ambiente em tempo real. . . . . . . . . . . . 38
Figura 20 – Erro entre as trajetórias planejada e executada pelo robô. . . . . . . 38
Figura 21 – Velocidades linear e angular aplicadas ao robô em tempo real . . . 39
Figura 22 – Ambiente projetado para realização do experimento . . . . . . . . . 40
Figura 23 – Trajetória planejada e executada pelo robô ao se deslocar no
ambiente proposto na figura 20 . . . . . . . . . . . . . . . . . . . . 40
Figura 24 – Velocidades linear e ângular do robô durante a navegação . . . . . 41
Figura 25 – Ambiente planejado para uma trajetória maior . . . . . . . . . . . . . 42
Figura 26 – Trajetória realizada para o ambiente proposto na figura 23 . . . . . 42
Figura 27 – Erro entre a trajetória planejada e executada pelo robô. . . . . . . . 43
Figura 28 – Velocidades Linear e Angular aplicadas ao robô . . . . . . . . . . . 44
Figura 29 – Sinal de controle da velocidade linear aplicada ao robô . . . . . . . 44
Figura 30 – Sinal de Controle da velocidade angular aplicada ao robô . . . . . . 45
Figura 31 – Teste em simulação de ambiente com um mínimo local e com os
parâmetros de sensor igual ao sensor real utilizado. . . . . . . . . . 46
Figura 32 – Simulação realizada com parâmetros melhorados do sistema de
sensoriamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
LISTA DE ABREVIATURAS E SIGLAS
APF Artificial Potential Fields
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 ROBÔ MÓVEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 Sensoriamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1 Encoders Ópticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.2 Sensores Ultrassônicos . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Robô Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 Representação Matemática do Robô Diferencial . . . . . . . . . . 21
3 CAMPOS POTENCIAIS ARTIFICIAIS . . . . . . . . . . . . . . . . . 24
3.1 Método dos Campos Potenciais Artificiais (APF) . . . . . . . . . . 24
3.2 Implementação do Método APF . . . . . . . . . . . . . . . . . . . . 27
3.3 Adaptação da trajetória para um caminho mais suave . . . . . . . 28
3.4 O problema dos mínimos locais . . . . . . . . . . . . . . . . . . . . 29
3.5 Método APF-Modificado . . . . . . . . . . . . . . . . . . . . . . . . 30
4 RESULTADOS EXPERIMENTAIS . . . . . . . . . . . . . . . . . . . . 33
4.1 Navegação por Ambiente Desconhecido . . . . . . . . . . . . . . . 33
4.1.1 Algoritmo de Planejamento . . . . . . . . . . . . . . . . . . . . . . 45
4.1.2 Mínimos Locais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5 CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
APÊNDICES 50
13
1 INTRODUÇÃO
1.1 Motivação
Robôs móveis estão cada vez mais presentes no nosso dia-a-dia, seja em
questões relacionadas a tarefas domésticas, transporte de cargas, operações de
resgate, e várias outras atividades que fazem parte do nosso cotidiano.
O que antes era um sonho distante, agora vem se tornando realidade graças
ao desenvolvimento de técnicas mais aprimoradas de navegação e sensoriamento,
juntamente com o barateamento do custo de produção de robôs capazes de executar
as mais diversas tarefas que possibilitam um maior conforto a nós seres humanos. Um
bom exemplo disso é o mercado crescente de robôs aspiradores, que trabalham de
forma autônoma para limpar nossas casas.
Para além do conforto, a robótica tem desempenhado um enorme trabalho no
assistencialismo a pessoas deficientes ou com dificuldades motoras. Neste ramo, o
termo robótica assistiva vem sendo bastante empregado, e se desenvolvendo a níveis
onde as limitações estão ficando para trás. No que tange a questão da locomoção,
hoje encontramos cadeiras de rodas motorizadas que facilitam bastante a vida dessas
pessoas que necessitam utilizá-las para locomoção. A aplicação de técnicas de
navegação nesses sistemas o torna ainda mais adaptável aos debilitados.
A motivação dessa pesquisa é a aplicação de algoritmos de planejamento
de trajetórias para a robótica assistiva, mais especificamente em cadeiras de rodas
motorizadas, para verificar sua eficácia em um ambiente real, fora de laboratório, assim
poder realmente tornar o conhecimento acadêmico e a tecnologia desenvolvida dentro
da academia mais próxima das pessoas que realmente necessitam utilizar da mesma.
Neste trabalho será utilizado um robô com acionamento diferencial para simbolizar uma
cadeira de rodas, visto que o princípio de funcionamento de ambos é bem semelhante.
1.2 Objetivo
O objetivo deste trabalho é realizar a implementação em tempo real de um
planejador de trajetória utilizando o método dos campos potenciais artificias. Como
objetivos específicos tem-se:
• Uso de odometria para controle e estimação de velocidade,
• Uso de um método APF modificado proposto por [1],
• Mapeamento dos obstáculos no ambiente em tempo real através do sensor 
ultrassom,
Capítulo 1. Introdução 14
• Uso de um robô diferencial. Neste trabalho foi utilizada a plataforma robótica
LEGO Mindstorm EV3,
• Comparação da implementação do método aplicado em um sistema real com
sensores com o método simulado,
• Analisar a viabilidade de implementação em um sistema maior, como uma
cadeira de rodas motorizada.
15
2 ROBÔ MÓVEL
Para a execução deste trabalho foi utilizado um kit educacional da LEGO, o 
LEGO Mindstorms EV3 Educational disponibilizado pela universidade. De acordo com 
[2], a unidade de processamento do robô possui as seguintes características:
Processador Principal:
• 32-bit ARM9 processor, Texas Instrument AM1808, 300MHz
• OS: LINUX
Memória:
• 64 MB DDR RAM
• 16 MB FLASH
• 256 KB EEPROM
Interface de Cartão Micro SD:
SDHC standard, 2-32 GB
Comunicação sem fio Bluetooth:
Bluetooth V2.1 EDR, Panasonic PAN1325 module
• Texas Instrument CC2550 chip
• BlueZ Bluetooth stack
• Primary usage, Serial Port Profile (SPP)
USB 2.0, Interface do Client:
High speed port (480 MBit/s)
USB 1.1, Interface do Host:
Full speed port (12 MBit/s)
4 portas de entrada:
6 wire interface supporting booth digital and analog interface
• Analog input 0 - 5 volt
Capítulo 2. Robô Móvel 16
• Suport Auto-ID for external devices
• UART communication
4 portas de saída:
6 wire interface supporting input from motor encoders
Display:
178x178 pixel black & white dot-matrix display
Speaker:
Diameter, 23 mm
Botões de Interface do Usuário:
Surrounding UI light
Fonte de Alimentação:
6 AA batteries
• Alkaline batteries are recommended
• Rechargeable Lithium Ion battery, 2000 mAH
Conector:
6-wire industry-standard connector, RJ-12 Right side adjustment
No kit utilizado encontram-se todos os componentes necessários para se fazer 
a montagem do robô diferencial utilizado no trabalho, além do sensor ultrassônico. Foi 
utilizado também neste trabalho o software MATLAB, da Mathworks [3]. Este é um 
software computacional muito utilizado para aplicações de engenharia além de 
possuir a capacidade de fácil comunicação entre o hardware do robô e a plataforma 
de programação.
2.1 Sensoriamento
Há uma grande gama de sensores que podem ser utilizados em robôs móveis. 
Estes sensores são importantes pois trazem informações tanto do ambiente exterior, 
quanto informações próprias do robô. Baseado nisso, os sensorespodem ser 
classificados em duas categorias: Sensores Proprioceptivos e Sensores Extraceptivos.
Capítulo 2. Robô Móvel 17
Os sensores proprioceptivos são aqueles que medem informações referentes 
ao robô em si, tais como sensores odométricos, giroscópios, sensores de temperatura 
interna, entre outros [4].
Para além dos sensores proprioceptivos, temos os sensores extraceptivos. 
Esses sensores são de fundamental importância em aplicações de robótica móvel, 
pois serão eles que darão informações sobre o ambiente externo ao robô. Existe 
uma enorme quantidade de sensores que se enquadram nesta categoria, tais como 
sensores ultrassônicos, sensores luminosos, sensores a laser (LIDAR), câmeras de 
aquisição de imagem, sensores infravermelho, dentre vários outros [4].
No âmbito deste trabalho, cabe abordar alguns desses sensores representantes 
das duas classes, como os encoders ópticos e os sensores ultrassônicos.
2.1.1 Encoders Ópticos
Encoders incrementais ópticos tem se tornado o dispositivo mais popular para 
medição de velocidade angular e posição dentro de um motor. Na robótica móvel, os 
encoders são usados para o controle de posição ou velocidade das rodas e outras 
articulações motorizadas. Por serem sensores proprioceptivos, sua estimação de 
posição é melhor no frame de referência do robô [4].
O funcionamento do encoder baseia-se em detectar o movimento de uma 
máscara, que é interna ao encoder, por meio de pares fotoacoplados. A medida que
o robô se move, a quantidade de luz que atinge o detector óptico varia baseada no 
alinhamento das grades fixa e móvel [4]. A Figura 1 ilustra um tipo básico de encoder 
utilizado em robôs móveis.
Figura 1 – Disco de sensor de posição, usado para inferir velocidade
Fonte: ARESTEGUI, 2009
Capítulo 2. Robô Móvel 18
Os motores utilizados nesta aplicação possuem um encoder com resolução de 
1°, e uma velocidade máxima de aproximadamente 170 rpm.
2.1.2 Sensores Ultrassônicos
Sensores ultrassônicos são sensores geralmente utilizados em robótica para 
medir distâncias. Seu princípio de funcionamento é de certa forma, bastante simples. O 
sensor emite uma onda ultrassônica em uma direção, essa onda bate em um anteparo, 
e retorna para o sensor [4]. A distância é então calculada seguindo a equação (2.1)
d =
c ∗ t
2
(2.1)
onde c é a velocidade do som no ar, t é o tempo de viagem do som e d é a 
distância percorrida pela onda sonora. A Figura 2 nos dá uma ideia de como essa onda 
se propaga.
Figura 2 – Intensidade típica da distribuição de um sensor ultrassonico
Fonte: Siegwart, 2004
O sensor ultrassônico ultilizado neste trabalho possui as seguintes
características:
• O sensor pososui boa precisão, e pode detectar variações de distância de até 1
mm;
• A distância mínima de medição é de 3 cm e a máxima de 250 cm;
• A leitura em 255 cm indica que não há nenhum anteparo dentro do range de
detecção do sensor;
• O ângulo de visão do sensor é de aproximadamente 22°;
• Não é possível saber a localização exata do anteparo dentro do cone de
detecção;
Capítulo 2. Robô Móvel 19
• O sensor apresenta medidas extremamente precisas dentro do range de até 30
cm.
• A frequência de amostragem é de 0.1 segundos.
A Figura 3 apresenta o sensor utilizado.
Figura 3 – Sensor Ultrassonico do Lego Mindstorm EV3
Fonte: The LEGO Group, 2013
Esses dois sensores apresentados até agora nesta seção são os que 
predominam no escopo deste trabalho, visto que para a realização deste, é necessário 
se conhecer a velocidade e posição do robô, que podem ser obtidas através da sua 
odometria, além da posição dos obstáculos, que é obtida através do sensor 
ultrassônico.
Como o robô se move em um espaço cartesiano, é necessário que se faça uma 
transformação da distância euclidiana lida pelo sensor, em coordenadas cartesianas. 
Assim o robô e o sensor estarão operando no mesmo espaço de coordenadas, sendo 
possível realizar operações entre eles.
Um estudo aprimorado do sensor utilizado neste trabalho foi realizado por [5]. Neste 
estudo ele mostra que, para realizar a transformação da distância medida pelo sensor 
ultrassônico em coordenadas cartesianas XS e Y S, utiliza-se a equação (2.2)
[
XS
Y S
]
=
[
d ∗ cos(θ)
d ∗ sen(θ)
]
(2.2)
onde d é a distância medida pelo sensor, e θ é o ângulo que o robô faz com relação ao
referencial incercial.
Capítulo 2. Robô Móvel 20
2.2 Robô Diferencial
Na robótica móvel existem vários tipos de robôs com diferentes tipos de 
locomoção. Existem robôs que tentam imitar o caminhado humano, outros que tentam 
imitar o movimento de alguns animais, e ainda há os que se locomovem através de 
rodas. Dentro da categoria de robôs móveis com rodas, estes são divididos em duas 
categorias: robôs holonômicos e robôs não-holonômicos, que são caracterizadas pela 
disposição e tipo de suas rodas.
Segundo [6], o termo não-holonômico vem da matemática, e significa que o 
movimento está restrito a uma ou mais restrições. Uma restrição holonômica é uma 
equação que pode ser escrita em termos das variáveis x, y e θ. Uma característica 
chave desses sistemas com restrições é que eles não podem se mover diretamente 
de uma posição para outra, tendo que realizar para isso uma manobra, ou sequência 
de movimentos. A figura 4 mostra bem essa diferença entre trajetórias seguidas por 
veículos holonômicos e não-holonômicos. No caso dos robôs móveis sem restrições, 
eles possuem liberdade absoluta para se moverem em qualquer direção. Como exemplo 
temos os robôs omnidirecionais. Esses robôs utilizam de um sistema de rodas especiais, 
que os tornam capazes de se mover em qualquer direção sem que haja a necessidade 
de mudança de orientação.
Segundo [7], uma restrição não-holonômica impede que o robô execute 
movimentos normais à superfície do corpo de suas rodas, quando não há 
deslizamento. Um exemplo clássico de não-holonômia é um carro. É facilmente 
perceptível que para realizar uma simples manobra de estacionamento, é necessário 
que haja uma trajetória factível que leve em consideração as restrições 
não-holonômicas do veículo.
Figura 4 – Diferença entre trajetórias holonômicas e não-holonômicas
Fonte: Cerqueira,2016
Nota-se que a necessidade de processamento se torna maior para os veículos
não-holonômicos, visto que há uma complexidade maior para conseguir gerar uma
Capítulo 2. Robô Móvel 21
trajetória factível que leve em consideração as restrições do veículo. As figuras 5 e 6
respectivamente, mostram como é a estrutura de um robô diferencial, e o modelo de
robô que foi utilizado neste trabalho.
Figura 5 – Estrutura do robô diferencial
Fonte: Cerqueira, 2016
Figura 6 – Robô diferencial Lego Mindstorm EV3
Fonte: O autor.
2.2.1 Representação Matemática do Robô Diferencial
Neste trabalho foi utilizado o robô Lego Mindstorm EV3 com a montagem
diferencial, contendo assim dois motores com atuação independentes, e uma roda
esférica de apoio.
Capítulo 2. Robô Móvel 22
A partir da Figura 4, percebe-se que a composição do robô é bem básica,
consistindo apenas do raio da roda, r, e da distância entre eixos, L. Com essas duas
medidas é possível estimar a posição do robô ao ser aplicada uma velocidade nos
motores.
Com as velocidade de rotação podendo ser medida em cada roda, é possível
estimar as velocidades linear v e angular ω em cada uma delas, como mostra a
equação (2.3).
v
w
 =
 r2 r2
r
L −
r
L
 .
ωrd
ωre
 (2.3)
Com ωrde ωresendo a velocidade de rotação das rodas direita e esquerda
respectivamente.
Para um dado instante de tempo discreto k pode-se supor que o robô se
encontra em uma posição x(k) ,y(k) , θ(k) com relação ao sistema de coordenadas
global, como pode ser visto na figura 7.
Figura 7 – Posicionamento do robô com relação ao sistema de coordenadas global.
Fonte: Siegwart, 2004
Após receber sinais de controle, o robô passa para um estado seguinte, como
visto na equação (2.4)
Capítulo 2. Robô Móvel 23
x(k + 1)y(k + 1)
θ(k + 1)
 =
x(k)y(k)
θ(k)
+R.[v(k)
ω(k)
]
.ts (2.4)
Sendots o período de amostragem, e R a matriz de rotação dada por
R =
cos(θ(k)) 0sen(θ(k)) 0
0 1
 (2.5)
Com a posição do robô sendo estimada com relação ao sistema de coordenadas
global, é possível então estimar a posição do obstáculo detectado pelo sensor com
relação ao sistema de coordenadas global ao se somar o a coordenada do obstáculo
com a coordenada da posição atual do robô, como visto na equação (2.6).
[
XB
Y B
]
=
[
XS + P (1)
Y S + P (2)
]
(2.6)
Sendo P (1) e P (2) referentes a matriz P , dada por
P =
xryr
θr
 (2.7)
onde xr, yr e θr representam respectivamente as coordenadas cartesianas em x, y do 
robô, e o ângulo que o robô faz com relação a origem. Sendo assim,
P (1) = xr
P (2) = yr
P (3) = θr
24
3 CAMPOS POTENCIAIS ARTIFICIAIS
Um dos problemas mais difíceis quando se trata de robôs móveis é a navegação. 
Para se mover com sucesso em um ambiente, o robô necessita saber onde ele está, 
para onde está indo, e como chegar até lá [4]. Para resolver esses problemas é 
necessário que o robô possua quatro características extremamente importantes para 
que a movimentação seja completada com sucesso, são elas: controle de movimento, 
percepção, localização e planejamento. Essas etapas são bem definidas por [8], como 
serão vistas a seguir.
O controle de movimento é uma habilidade básica que todo e qualquer robô 
móvel deve possuir. Isso se dá pelo controle de seus motores, aplicando velocidades 
corretas para que o caminho desejado seja executado.
A percepção se trata da habilidade do robô perceber o ambiente ao seu redor. 
Isso é feito através de sensores extraceptivos, como ultrassom, LIDAR, entre outros. 
A informação obtida através desses sensores permite que o robô saiba o que está a 
sua volta, e assim seja capaz de evitar colisões e outros problemas relacionados com
o ambiente físico externo.
Saber sua localização é uma condição importantíssima para que o robô possa 
se movimentar em um ambiente. Essa informação pode ser obtida basicamente de duas 
maneiras: através da odometria, ou da informação de sensores externos. A diferença 
entre esses dois métodos é que a odometria passa a informação de uma posição 
relativa, já os sensores externos são capazes de enviar a posição absoluta.
O planejamento é a arte de tomar decisões sobre a navegação. Ao se obter 
informações sobre a localização e percepção, o planejamento é responsável por tomar 
a decisão de qual o melhor caminho a ser tomado pelo robô, tornando-o capaz de 
chegar ao seu objetivo final sem que se esbarre em algum obstáculo no caminho.
Em seu livro, [9] cita vários métodos de planejamento de trajetórias. Entre eles 
estão o método APF (Artificial Potential Fields), ou em português, Campos Potenciais 
Artificiais, os algoritmos Bug, que englobam o Bug-1, Bug-2 e Tangent Bug, métodos 
baseados em amostras, decomposição de células, roadmaps, entre outros. Este 
trabalho tratará especificamente do método APF.
3.1 Método dos Campos Potenciais Artificiais (APF)
O método APF é baseado no princípio das funções potenciais. Segundo [9],
uma função potencial é uma função real diferenciável U : Rm → R. Seu valor pode
ser visto como uma energia, e consequentemente, seu gradiente de potencial é uma
força. Este gradiente é um vetor que aponta na direção que incrementa localmente U
Capítulo 3. Campos Potenciais Artificiais 25
até seu máximo.
Para se ter um entendimento melhor do que é o gradiente, ele pode ser
pensado como as forças agindo em uma partícula positiva que está sendo atraída por
uma partícula negativa.
A função potencial trata o robô como se fosse uma partícula se movendo dentro
de um campo vetorial com gradiente. Neste caso, o robô é tratado como uma partícula
positiva, e seu objetivo é tratado como uma carga negativa. Para evitar colisões na
trajetória planejada pelo APF, a estratégia que se utiliza é classificar obstáculos como
partículas positivas. Assim, o robô sempre será repelido por essas cargas.
A combinação das forças atrativas e repulsivas geradas pela função potencial
faz com que o robô se desloque evitando quaisquer obstáculos, e chegue em seu
objetivo. A Figura 8 nos dá uma ideia melhor de como isso acontece.
Figura 8 – Exemplo de trajetória executada por um robô em um campo potencial
Fonte: Howie Choset et al. (2005)
Segundo [10], umas das características mais importantes deste método é que 
ele é capaz de planejar e executar a trajetória simultaneamente, pois ao invés de montar 
uma configuração espacial do ambiente por completo, ele utiliza-se das informações 
sensoriais obtidas pelo robô para explorar a localização dos obstáculos somente, e 
assim traçar uma trajetória que os evita enquanto aproxima o robô para mais perto de 
seu ponto de referência.
Segundo [9], as funções potenciais podem ser vistas como um panorama aonde
o robô se move de um estado de “valor alto” para um estado de “valor baixo”. Assim, o
robô realiza o “caminho decrescente” seguindo o gradiente negativo da função potencial.
O seguimento deste caminho é chamado de gradiente descendente, e é representado
pela equação (3.1).
ċ(t) = −∇U(c(t)) (3.1)
Capítulo 3. Campos Potenciais Artificiais 26
onde c(t) pode ser visto como uma curva suave no Rn, ou seja, c é um C∞,
sendo um mapa de vetores com valores em c : R → Rn. Se t é o tempo, a
derivada ċ(t) pode ser lida como a velocidade de um ponto se movendo ao longo
de c(t).
O movimento do robô só é encerrado quando o gradiente desaparece, ou seja,
quando ele atinge o ponto onde ∇U(q∗) = 0. Esse ponto q∗ é chamado de ponto
crítico. Este ponto pode assumir três estados: máximo, mínimo e ponto de sela. A
segunda derivada da função é o que vai determinar qual o seu tipo, como visto na
Figura 9. É possível ver também que para funções de valores reais, a segunda derivada
é a matriz Hessiana

∂2U
∂q21
· · · ∂2U
∂q1∂qn
... . . .
...
∂2U
∂q1∂qn
· · · ∂2U
∂q2n
 (3.2)
Figura 9 – Tipos de pontos críticos e seus respectivos gráficos de função gradiente
Fonte: Howie Choset et al. (2005)
No método do gradiente descendente, não é necessário calcular uma matriz
Hessiana, porque naturalmente o robô vai se deslocar até um ponto de mínimo local,
nunca parando em um ponto de sela ou ponto de máximo, a não ser que ele já começe
em um desses pontos, algo que é muito difícil de acontecer. Entretanto, mesmo que o
robô começe em um ponto de máximo, que é um ponto instável, qualquer perturbação
na posição do robô faz ele ficar “livre”, fazendo com que o campo vetorial induza
movimento no robô. Chegar em um ponto de sela também é improvável, por também
ser um ponto instável. Já o mínimo local é um ponto estável porque depois de qualquer
perturbação em um ponto de mínimo, o gradiente descendente faz com que o robô
Capítulo 3. Campos Potenciais Artificiais 27
retorne para a trajetória baseada nos pontos de mínimo. Portanto, o único ponto crítico 
onde o robô pode genericamente terminar é um mínimo local, e é esperado que este 
ponto seja o local no qual o objetivo esteja situado [9].
3.2 Implementação do Método APF
Para a implementação do método APF é necessário que se defina uma função 
potencial, real e diferenciável. Realizando uma aproximação de tempo discreto, o 
gradiente da função potencial pode ser calculado de acordo com a equação (3.3).
(∆xd
ts
,
∆yd
ts
)
= −~∇U(xd, yd) (3.3)
onde ts é o tempo discreto, e xd,yd são as posições relativas a trajetória
préviamente planejada.
Sendo o potencial U(xd, yd) a soma do potencia de atração Uatt(xd, yd), com
relação ao ponto de referência, com o potencial de repulsão Urep(xd, yd) referente aos
obstáculos detectados. Logo:
U(xd, yd) = Uatt(xd, yd) + Urep(xd, yd) (3.4)
Segundo (9), não existe somente uma função potencial capaz de levar o robô
até seu ponto de referência desejado, porém é condição necessária que a
função Uatt(xd, yd) garanta um mínimo global na referência (xref , yref) e
que Urep(xd, yd) seja monotonicamente crescente em relação ao inverso da distância
entre o robô e o obstáculo. Alémdisso, Urep(xd, yd) não possui potencial infinito,
fazendo com que haja uma distância Dmax na qual não fará influência nenhuma sobre
o robô. Assim é possível escolher um valor de Dmax como sendo o valor de
proximidade que se deseja chegar entre o robô e o obstáculo.
Assim, é possível escolher as funções potenciais de atração e repulsão, definidas
nas Equações (3.5), (3.6) e (3.7).
Uatt(xd, yd) =
β
2
.((xref − xd)2 + (yref − yd)2) (3.5)
Capítulo 3. Campos Potenciais Artificiais 28
Urepi(xd, yd) =

η
2
( 1
dbi
− 1
Dmax
)2, dbi < Dmax
0, dbi ≥ Dmax
(3.6)
Urep(xd, yd) =
j∑
i=1
Urep(xd, yd) (3.7)
Sendo β e η as escalas de gradiente atrativo e repulsivo, respectivamente, j a
quantidade total de obstáculos detectados no ambiente e (xbi, ybi) o ponto do obstáculo
com a menor distância dbi para o robô, portanto:
dbi =
√
(xd − xbi)2 + (yd − ybi)2) (3.8)
A Figura 10 mostra a representação gráfica de em um certo instante em que se
detecta o obstáculo.
Figura 10 – Menor distancia para um obstáculo
Fonte: Cerqueira, 2016
3.3 Adaptação da trajetória para um caminho mais suave
Em seu trabalho, [1] faz o uso de uma técnica para suavizar a trajetória gerada 
pelo método APF, e assim exigir menos dos atuadores do robô diferencial. Esta técnica 
é a interpolação cúbica, também denominada como função spline.
“Esta função gera uma trajetória mais suave e compartível com a característica 
de trajetórias não-holonômicas que os robôs com tração diferencial de duas rodas 
podem realizar, além de serem adaptadas para possuir um número de pontos de tal
Capítulo 3. Campos Potenciais Artificiais 29
forma que a velocidade do robô não varie muito da média desejada, o que acaba 
exigindo menos do sistema de motorização” [1].
Para obter esta trajetória é feita uma aproximação de um conjunto qualquer 
definido de pontos para uma função parametrizada não-linear. A Figura 11 nos mostra 
um exemplo de uma trajetória adaptada através da interpolação cúbica com a função 
spline.
Figura 11 – Exemplo de trajetória gerada usando interpolação cúbica
Fonte: Cerqueira, 2016
Após o caminho ter sido planejado, adaptado e suavizado, é possível obter os
pontos que gerarão a trajetória com maior eficácia e menor erro de posição.
3.4 O problema dos mínimos locais
Como visto anteriormente, o método APF sempre leva o robô para um mínimo da
função potencial, porém não é garantido que este ponto seja o ponto desejado. Isto se
dá por conta da existência de mínimos locais. Este é problema existente no método
APF que acaba se tornando uma limitação. Ele ocorre quando, a partir das condições
iniciais do robô, dos parâmetros definidos de atração e repulsão, e da disposição
dos obstáculos, o robô não consegue chegar à seu ponto de referência, mesmo que
haja uma trajetória exequível. Isto é, o robô alcança um ponto q∗ onde ∇U(q∗) =
0 e q∗ não é o ponto objetivo.
Este problema não é limitado a obstáculos côncavos, ocorrendo também em
obstáculos distantes um do outro a uma distância possível de gerar uma trajetória
factível. As figuras 12 e 13 mostram exemplos de mínimos locais, tanto
para um obstáculo côncavo, quanto para obstáculos convexos.
Capítulo 3. Campos Potenciais Artificiais 30
Figura 12 – Mínimo local dentro de um ambiente côncavo.
Fonte: Howie Choset et al., 2005
Figura 13 – Mínimo local gerado por dois obstáculos distintos.
Fonte: Howie Choset et al., 2005
3.5 Método APF-Modificado
Em sua tese de mestrado, [1] propõe uma modificação para o método APF que 
contorna o problema dos mínimos locais, garantindo que sempre haja uma convergência 
para o ponto de referência desejado, desde que haja uma trajetória factível a ser 
executada. Em seu trabalho, [1] validou o método através de simulações 
envolvendo obstáculos criados virtualmente.
O funcionamento do método APF modificado acontece da seguinte forma, como 
descrito em [1]: Ao detectar um obstáculo, todos os n pontos (xc, yc) que pertencem 
a uma circunferência Ck de raio dr = L, cujo centro está na posição atual da 
trajetória, o próximo ponto da trajetória planejada será um dos pontos (xc, yc) que 
apresenta o menor valor da função potencial. Assim, para cada nova iteração é obtido 
um novo ponto para a trajetória planejada, que corresponde a um ponto de 
distância dr da posição anterior e que apresenta o menor valor de potencial 
comparado aos n pontos (xc, yc) pertencentes à circunferência Ck.
Capítulo 3. Campos Potenciais Artificiais 31
A figura 14 mostra como ocorre as iterações para obter os pontos da trajetória
através do método APF modificado.
Figura 14 – Esquema representativo do funcionamento do método APF-Modificado
Fonte: Cerqueira, 2016
A equação (3.9) mostra como é feito o cálculo dos potenciais de atração Patt e
repulsão Prepa cada iteração e em cada ponto (xc, yc).
Patt =
qref
(xref − xd)2 + (yref − yd)2)
Prep =
j∑
i=1
qb
(xc − xbi)2 + (yc − ybi)2)
(3.9)
Sendo qref a carga do ponto de referência e qba carga associadade
obstáculo i na posição (xbi, ybi).
O próximo ponto a seguir deverá ser aquele no qual o potencial resultante ψ,
calculado de acordo com a equação (3.10), que relaciona o potencial de repulsão com
o de atração, seja o menor entre todos os pontos de Ck.
ψ = Prep − Patt (3.10)
Capítulo 3. Campos Potenciais Artificiais 32
Para garantir que a trajetória final sempre convirja para um ponto final
suficientemente próximo do ponto de referência desejado, são feitas variações
incrementais dos parâmetros qb e qref no decorrer do algoritmo de planejamento.
A medida que o ponto planejado da trajetória se aproxima do ponto de referência,
o valor qb da carga de cada objeto i é decrementado para que os efeitos de repulsão
sejam diminuídos quando o robô estiver próximo do ponto de referência, facilitando a
convergência para a posição final desejada.
Caso não seja possível alcançar o ponto de referência desejado através da
trajetória planejada, ou seja, caso ocorra um mínimo local, o valor de qref é
incrementado, reinicia-se o valor de qb, retorna-se ao ponto inicial e realiza uma nova
tentativa de convergência para levar a trajetória até o ponto de referência, já que na
tentativa anterior não houve potencial de atração suficiente. Assim, o valor de qref é
incrementado até se atingir o objetivo final, contornando o problema dos mínimos
locais observados no método APF convencional.
Deste modo, este método APF-Modificado consiste somente em realizar
incrementos e alterações através de aproximações sucessivas nos parâmetros das
funções potênciais ao longo do planejamento, afim de sempre obter a convergência da
trajetória para o ponto final desejado, sem cair em um mínimo local indesejado.
33
4 RESULTADOS EXPERIMENTAIS
Nesta seção serão apresentados os resultados obtidos através de experimentos
realizados na plataforma robótica. Foram feitos testes com o robô em condições
que pudessem evidenciar a eficácia do método de trabalho proposto. Para validar os
resultados, eles serão comparados com os resultados obtidos através de ambiente
simulado.
4.1 Navegação por Ambiente Desconhecido
Esta parte dos resultados mostra o desempenho do método APF-Modificado
sendo utilizado com o sensor ultrassônico obtendo informação em tempo real. É
importate definir alguns pontos sobre a realização do experimento em tempo real:
• O tempo de discretização ts foi definido em 0,1s;
• A comunicação entre a plataforma robótica e o computador utilizado para
obtenção de dados foi feita através de comunicação wifi;
• O Matlab possui em seu repositório de drivers para hardware de terceiros,
os drivers necessários para fazer a comunicação entre a plataforma robótica
utilizada e o próprio Matlab;
• Os algoritmos necessários para execução são préviamente embarcados no
robô, assim, o robô fica responsável por todo o processamento, ficando o Matlab
responsável pela aquisição de dados.
O método APF combinado com o sistema de sensoriamento se mostrou muito
eficaz. Foram feitos testes com ambientes diferentes para poder observar a
capacidade deadaptação do método empregado. Nos testes realizados para validação
experimental, os resultados obtidos foram satisfatórios, com o robô sempre
conseguindo chegar ao seu objetivo. A figura 15 mostra o ambiente de teste no qual o
robô foi submetido.
Capítulo 4. Resultados Experimentais 34
Figura 15 – Ambiente criado para teste.
Fonte: O autor.
Na imagem o marcador atrás do obstáculo amarelo é o ponto no qual o robô
deve chegar. Nota-se que é um ambiente bastante carregado, com obstáculos próximos.
Este ambiente foi pensado para que o robô conseguisse perceber pelo menos três
obstáculos, e desviasse com sucesso dos mesmos.
Antes de realizar os testes, alguns parâmetros tiveram que ser definidos, para
que o robô não adiquirisse informação desnecessária, fazendo assim com que
preenchesse rápidamente sua memória, e causando uma possível falha na execução,
visto que a plataforma utilizada tem um baixo poder de processamento e pouca
memória para armazenar dados e processá-los.
Os parâmetros que mais influênciam de forma direta no desvio e replanejamento
da trajetória são:
• seguranca
• dr
• atracao
• repulsao
• raio_sensor
• angulacao
Capítulo 4. Resultados Experimentais 35
A variável 'seguranca' faz com que o robô evite o obstáculo de uma forma mais 
ou menos intensa. Seu valor padrão nas simulações é de 0. Com esse valor, o robô vai 
planejar um caminho mais rápido de desvio do obstáculo, porém pode passar a uma 
distância muito próxima do mesmo. Ao aumentar o valor dessa variável, o robô tende a 
evitar mais o obstáculo, realizando arcos de desvio maiores. Uma observação a ser 
feita a respeito dessa variável é que, para valores grandes (próximos a 1), o algoritmo 
pode entender que não existe uma trajetória factível, mesmo essa existindo, pois ao se 
planejar um desvio, pode se esbarrar na área de segurança de outro obstáculo. Para 
este trabalho, foi definido o valor da variável como 'seguranca = 0.1'.
'dr' é o raio de varredura para encontrar o melhor próximo ponto. No ambiente 
simulado o valor de dr foi definido como L/2, e para o sistema real, foi definido igual a L.
As variáveis 'atracao' e 'repulsao' representam respectivamente a força de 
atração do ponto objetivo e a força de repulsão dos obstáculos para com o robô. Esses 
valores são definidos de forma empírica, e os valores que deixaram o experimento com 
resultados mais satisfatórios foram 'atracao = 10' e 'repulsao = 1.5'
'raio_sensor' é uma variável específica do ambiente simulado. Como para a 
simulação acontecer é preciso que se simule um sensor, é necessário definir qual o 
range do mesmo. Por padrão o valor desta variável é igual a 1.5, representando a 
distância em metros que o sensor consegue ler a sua frente. No experimento com o 
sensor real essa variável se torna desnecessária, já que ela representa justamente o 
sensor real.
'angulacao' é outra variável específica do ambiente simulado. Ela representa o 
ângulo de abertura do cone ultrassônico gerado pelo sensor. Por padrão, na simulação 
este valor é definido como 45° . Este é um valor que pode ser considerado alto, 
visto que os sensores mais comuns utilizados em aplicações robóticas tem um 
cone de detecção entre 20° e 30°.
É importante notar também o efeito que o a posição inicial do robô causa ao 
movimento. Antes do robô começar a se movimentar, é necessário que seja definido 
um ângulo inicial para o mesmo. Esse ângulo foi definido como 0° , assim o robô 
sempre começa paralelo ao eixo Y em todos os experimentos realizados. O ponto 
final de referência é o que vai definir a trajetória a ser executada. Nos experimentos 
realizados com o ponto final foi definido como (xref , yref ) = (1.75, 1.75). Estando o 
ponto final numa coordenada diagonal a posição inicial, o robô sempre faz uma leve 
curva para se adequar a trajetória ao iniciar o movimento .
O ambiente de teste foi primeiramente simulado, para poder ter um parâmetro de 
comparação entre o método aplicado com sensor real, e sensoriamento simulado. Para 
esta simulação os parâmetros 'dr', 'seguranca', 'atracao' e 'repulsao' foram definidos
Capítulo 4. Resultados Experimentais 36
com os mesmos valores da simulação com os obstáculos reais. O parâmetro 'angulacao' 
foi definido de acordo com o estudo de [5] sobre o sensor, sendo definido o valor de 
22° . O resultado obtido foi o esperado, e bem próximo do resultado real. A figura 16 
mostra a trajetória planejada para ambiente simulado. Os pontos em azul na imagem 
são os pontos onde foram definidos obstáculos a serem encontrados pelo robô durante 
a simulação.
Figura 16 – Trajetórias planejada e executada pelo robô em ambiente simulado.
Fonte: O autor.
A partir da figura 16 é possível perceber que o deslocamento foi realizado de
forma satisfatória, com o robô conseguindo atingir seu objetivo ao final do movimento.
A figura 17 mostra o erro de deslocamento que houve durante todo o movimento.
Figura 17 – Erro entre a trajetória planejada e a trajetória executada pelo robô.
Fonte: O autor.
Capítulo 4. Resultados Experimentais 37
A partir da figura 17, é possível notar que o erro se mantém em uma faixa
aceitável, tendo seu valor máximo no início do movimento, que é o momento que o
robô tem que se rotacionar para se adequar a trajetória planejada.
A figura 18 mostra as velocidades linear e angular do robô durante a execução
do percurso.
Figura 18 – Velocidades linear e angular aplicadas ao robô em simulação para parâmetros de
sensor real
Fonte: O autor.
É perceptível que a velocidade linear não sofre grandes variações, se mantendo
praticamente constante durante toda a execução do trajeto, apresentando pequenas
variações nos momentos de realização de curvas. A velocidade angular sofre uma
variação maior sempre que encontra com algum obstáculo, gerando assim picos que
representam os momentos em que o robô realiza rotações em torno do seu eixo para
executar o desvio.
O experimento foi realizado utilizando as informações do sensor obtidas em
tempo real, com um tempo de discretização de 0.1 segundos, e obteve resultados
satisfatórios. É importante ressaltar que, apesar do range de detecção do sensor
ser de 250 cm, foi imposta uma limitação de apenas 30 cm. Ou seja, mesmo que o
sensor captasse algo à sua frente, o robô só entenderia isso como obstáculo e utilizaria
esta informação caso a distância lida fosse menor ou igual a 30 cm. Essa limitação
foi necessária de se fazer, pois ao permitir que o robô observasse em distâncias
maiores, informações indesejadas foram captadas. Essas informações causam um
grande impacto no experimento, pois o robô tem que processá-las e tomar ações sobre
Capítulo 4. Resultados Experimentais 38
elas, isso sobrecarregava o processamento do robô, tornando-o incapaz de realizar
o planejamento. Nas situaçoes em que ocorreu essa sobrecarga de informações, a
comunicação do robô com o Matlab se encerrava automaticamente, e o robô começava
a se movimentar de forma descontrolada e aleatória.
A figura 19 mostra a trajetória que foi calculada pelo método APF (linha preta)
e a trajetória que foi realmente executada pelo robô (linha tracejada verde). As figuras
em azul na imagem são objetos que foram detectados pelo sensor em tempo real.
Figura 19 – Trajetória planejada e executada pelo robô utilizando o sensor para obtenção de
pontos no ambiente em tempo real.
Fonte: O autor.
A figura 20 mostra o erro entre a trajetória planejada e a trajetória executada
pelo robô durante a simulação.
Figura 20 – Erro entre as trajetórias planejada e executada pelo robô.
Fonte: O autor.
Capítulo 4. Resultados Experimentais 39
Observando a figura, percebe-se que o erro é maior no início do movimento.
Isso se dá por conta do ajuste que o robô precisa fazer para se adequar a direção
da trajetória definida. Percebe-se também que o erro é relativamente baixo entre a
trajetória planejada e a executada.
A figura 21 nos mostra um gráfico com as velocidades aplicadas ao robô.
Figura 21 – Velocidades linear e angular aplicadasao robô em tempo real
Fonte: O autor.
É possível notar a eficácia do método ao se observar o ambiente no qual foi
realizado o teste mostrado na figura 15. Percebe-se também que não há variações
bruscas nas velocidades angular e linear do motor. Isso evita que o as rodas deslizem
sobre a superfície, e faz o movimento seja executado de forma mais suave.
Para validar o método, mais experimento foram realizados. A figura 22 mostra
um ambiente planejado de forma diferente para a realização de testes.
Capítulo 4. Resultados Experimentais 40
Figura 22 – Ambiente projetado para realização do experimento
Fonte: O autor.
O teste executado com essa configuração de ostáculos também apresentou
resultados satisfatórios, como pode ser visto nas figuras 23 e 24. As formas em
azul figura 23 representam obstáculos que foram encontrados pelo robô durante o
deslocamento.
Figura 23 – Trajetória planejada e executada pelo robô ao se deslocar no ambiente proposto na
figura 20
Fonte: O autor.
Capítulo 4. Resultados Experimentais 41
Nota-se que a trajetória realizada pelo robô está bem próxima da planejada, e
que o robô consegue se locomover de forma satisfatória, realizando a leitura em tempo
real dos obstáculos e atualizando os dados no algoritmo de planejamento de trajetória.
A figura 24 nos mostra as velocidades implicadas nas rodas do robô durante a
execução do trajeto.
Figura 24 – Velocidades linear e ângular do robô durante a navegação
Fonte: O autor.
Nota-se a partir da figura 24 que sempre que o robô identifica um obstáculo, e
começa a desviar, há um pico na velocidade angular, que é justamente referente ao
movimento de rotação realizado pelo robô. A velocidade linear apresenta pequenas
variações dentro de uma faixa, com a ocorrência de alguns picos. Isso ocorre por
conta da aceleração imposta ao robô ao realizar as curvas. Percebe-se que os picos
estão presentes na mesma faixa onde ocorrem os picos de velocidade angular. Para
resolver esse problema, foi imposta uma limitação na velocidade ângular, para que ela
alcançasse no máximo 5 rad/s.
Outro experimento foi realizado com um ambiente de navegação maior, com o
robô partindo da posição (xi, yi) = (0, 0) e tendo que alcançar o ponto (xref , yref) =
(3.5, 3.5) e com uma quantidade maior de obstáculos para se realizar o desvio. A
figura 25 mostra a disposição do ambiente planejado para esta situação.
Capítulo 4. Resultados Experimentais 42
Figura 25 – Ambiente planejado para uma trajetória maior
Fonte: O autor.
Com o ambiente preparado, foi posto em teste o robô no ambiente, e o mesmo
apresentou um resultado bastante satisfatório, como pode ser visto na figura 26.
Figura 26 – Trajetória realizada para o ambiente proposto na figura 23
Fonte: O autor.
Analisando a trajetória realizada pelo robô, nota-se que o seguimento da
trajetória planejada teve um desempenho levemente superior aos outros experimentos.
Capítulo 4. Resultados Experimentais 43
Isso se deve ao fato de que para esse experimento foi imposta uma saturação no sinal
de velocidade angular enviada pelo controlador, para que a realização de curvas fosse
suavizada, evitando assim altas acelerações que pudessem causar algum tipo de
escorregamento durante a realização de curvas. A figura 27 mostra o gráfico de erro
entre a trajetória planejada e executada pelo robô.
Figura 27 – Erro entre a trajetória planejada e executada pelo robô.
Fonte: O autor.
A partir da figura 27, percebe-se que o erro se manteve pequeno, dentro de uma
faixa aceitável.
As figuras 28, 29, e 30 mostram os gráficos de velocidade linear e angular, sinal
de controle da velocidade linear e sinal de controle da velocidade angular,
respectivamente.
Capítulo 4. Resultados Experimentais 44
Figura 28 – Velocidades Linear e Angular aplicadas ao robô
Fonte: O autor.
Figura 29 – Sinal de controle da velocidade linear aplicada ao robô
Fonte: O autor.
Capítulo 4. Resultados Experimentais 45
Figura 30 – Sinal de Controle da velocidade angular aplicada ao robô
Fonte: O autor.
Outros testes foram realizados para diferentes situações, inclusive em situações
na qual obstáculos foram inseridos enquanto o robô já estava em movimento, e mesmo
assim o desvio foi realizado com sucesso. Na parte de anexos, há links para vídeos
que demonstram alguns dos experimentos realizados.
4.1.1 Algoritmo de Planejamento
Para entender melhor o que acontece nas figuras 16 e 18, é importante saber
como funciona o algoritmo de planejamento.
Ao se iniciar o movimento, com o robô parado na posição (x, y, θ) = (0, 0, 0),
a informação da posição (xref , yref) é passada ao robô, e este faz então um cálculo
de trajetória diretamente para este ponto. A trajetória gerada inicialmente é sempre
uma linha reta, pois essa é a menor distância entre dois pontos no espaço. Então, com
o robô posicionando com ângulo inicial de 0°, ele busca o melhor ângulo para começar
o movimento, definindo assim sua orientação. O robô vai então se movimentando
no espaço se movendo sempre em linha reta em direção ao seu ponto objetivo. Ao
perceber um obstáculo, a coordenada na qual ele foi identificado é adicionada ao mapa
como um ponto de repulsão. A partir daí, se esse ponto estiver no caminho da trajetória
do robô, o algoritmo vai buscar outro caminho que desvie deste obstáculo e o leve
para o ponto (xref , yref). O funcionamento do algoritmo é de forma recursiva, fazendo
com que toda vez que se encontre um obstáculo no caminho, uma nova trajetória é
planejada afim de concluir a navegação com um resultado satisfatório.
Capítulo 4. Resultados Experimentais 46
Nas figuras 16 e 18 é possível notar que o movimento tende sempre a ir para a
reta que liga o ponto inicial ao ponto de referência, e os obstáculos encontrados fazem
com que essa rota seja alterada para uma rota que aproxime o robô ainda mais de seu
objetivo evitando colisões.
4.1.2 Mínimos Locais
Foram realizados experimentos simulando mínimos locais, e os resultados não
foram satisfatórios, mesmo com o método de planejamento sendo capaz de conduzir o
robô para fora desses ambientes. Isso acontece por conta das limitações do sensor
utilizado, e da capacidade de processamento do robô, e o torna incapaz de realizar
processamentos com uma carga de dados maior.
Uma tentativa de solucionar o problema foi feita definindo um raio de detecção
maior para o sensor, para que assim o mesmo fosse capaz de detectar o obstáculo a
uma distância maior, porém ao se fazer isso, muitos pontos eram captados, gerando
uma carga de processamento muito grande no robô, fazendo o mesmo, na maioria das
vezes, travar, e começar a se movimentar de forma aleatória, sem qualquer tipo de
controle. A situação foi simulada com os parâmetros utilizados no experimento real, e
obteve-se uma situação bem semelhante entre simulação e experimento real, como
pode ser visto na figura 31. Na figura, os símbolos em azul representam obstáculos.
Figura 31 – Teste em simulação de ambiente com um mínimo local e com os parâmetros de
sensor igual ao sensor real utilizado.
Fonte: O autor.
Capítulo 4. Resultados Experimentais 47
Outro teste foi realizado para o mesmo ambiente, porém, simulando um sensor
com um raio de detecção e ângulo de incidência maiores. Nesse teste, percebe-se que
os dois fatores principais para que o teste com mínimos locais não obtivesse sucesso
foram a falta de poder de processamento do robô, que traz junto consigo a incapacidade
de detecção e tratamento de dados a uma distância muito grande, quando comparada
a distância de detecção que foi utilizada neste trabalho, de apenas 30 cm. A figura 32
mostra o resultado da simulação quando definiu-se os parâmetros de raio de detecção
para 1.5m e ângulo de detecção do sensor para 45°.
Figura 32 – Simulação realizada com parâmetros melhorados do sistema de sensoriamento.
Fonte: O autor.
O sensor ultrassônico não consegue mapear o ambiente em uma área, sendo
capaz apenas de fornecer informações pontuais em uma única direção. Essa
informação passada não é suficiente parao algoritmo de planejamento saber se o
obstáculo é côncavo ou convexo, impossibilitando-o de planejar uma trajetória
adequada.
Para contornar este problema, o adequado é utilizar um sensor LIDAR (Light
Detection and Ranging). Estes são sensores que emitem um feixe pulsante de luz,
e como no ultrassom, conseguem medir a distância relativa ao anteparo através do
tempo medido entre a emissão e reflexão do sinal luminoso. Sensores LIDAR são bons
para realizar mapeamento de ambiente, pois possuem um range de detecção grande
(entre 4m e 80m).
48
5 CONCLUSÕES
A aplicação de sensores reais para o planejamento de trajetória baseado no
método APF se mostrou satisfatória para os casos com obstáculos pontuais e convexos.
Devido a limitações de hardware, como o baixo poder de processamento de informações
do robô, e a utilização de um sensor ultrassônico, não foi possível obter resultados
satisfatórios em testes com situações de mínimos locais, porém, foi observado que
o método empregado neste trabalho se mostrou bastante eficaz. Foi possível, com
somente um sensor ultrassônico conseguir navegar de forma satisfatória o robô em um
ambiente carregado de obstáculos.
O método apresentado aqui ainda pode ser bastante explorado, como realizar a
implementação de um sensor LIDAR para a leitura do ambiente, explorar a aplicação
em outras plataformas robóticas e buscar meios de contornar o problema dos mínimos
locais utilizando harware de baixo custo. Uma opção a isso é ampliar a quantidade
de sensores ultrassônicos ao redor do robô, para que estes atuem como um sensor
LIDAR, mapeando o ambiente em várias direções ao mesmo tempo.
A viabilidade de implementação deste método se torna real em sistemas de
cadeiras de rodas motorizadas, visto que é possível realizar a implantação de sensores
LIDAR nestes veículos, ou até mesmo uma quantidade maior de sensores ultrassônicos,
e assim tornar a navegação mais intuitiva.
49
REFERÊNCIAS
1 CERQUEIRA, T. A. Navegação De Veículos Diferenciais Baseada Em Campos
Potenciais Artificiais. 2016. 89 p. Dissertação (Engenharia Elétrica) — Universidade
Federal da Bahia. Citado 4 vezes nas páginas 13, 28, 29 e 30.
2 THE LEGO GROUP. LEGO Mindstorms EV3 Hardware Developer Kit. [S.l.], 2013.
Citado na página 15.
3 MATLAB. Disponível em: <https://la.mathworks.com/products/matlab.html>. Acesso
em: 03/02/2018. Citado na página 16.
4 SIEGWART, R.; NOURBAKHSH, I. R. Introduction to Autonomous Mobile Robots.
[S.l.]: The MIT Press, 2004. Citado 3 vezes nas páginas 17, 18 e 24.
5 LIU, C. An Experimental Study on EV3 and NXT Ultrasonic Sensors. [S.l.], 2014.
Citado 2 vezes nas páginas 19 e 36.
6 CORKE, P. Robotics, Vision and Control. [S.l.]: Springer, 2011. Citado na página
20.
7 VIEIRA, F. C. Controle Dinâmico de Robôs Móveis com Acionamento Diferencial.
2005. 106 p. Dissertação (Engenharia Elétrica) — Universidade Federal do Rio Grande
do Norte. Citado na página 20.
8 PONTOPPIDAN, L. O.; OLSSON, A. Laser Based Navigation for Mobile Robots.
2007. 184 p. Dissertação (Automation) — Technical University of Denmark. Citado na
página 24.
9 CHOSET, H. et al. Principles of Robot Motion-Theory, Algorithms, and
Implementation. [S.l.]: The MIT Press, 2005. Citado 3 vezes nas páginas 24, 25
e 27.
10 RIBEIRO, R. C. ESTRATÉGIA DE DESVIO DE OBSTÁCULOS E PLANEJAMENTO
DE TRAJETÓRIA PARA UMA CADEIRA DE RODAS AUTÔNOMA. 2015. 116 p.
Monografia (Engenharia de Controle e Automação) — Universidade Federal do Rio de
Janeiro. Citado na página 25.
https://la.mathworks.com/products/matlab.html
Apêndices
Referências 51
Apêndice: Código em Matlab para controle do robô EV3
Código 1 – Código para inicializar a comunicação dos motores do robô e do sensor ultrassônico
utilizado
mylego = legoev3(’usb’);
% MUDE AS LETRAS A DEPENDER DAS PORTAS QUE FOREM USADAS !!!
mymotor1 = motor(mylego , ’A’); % Set up motor
mymotor2 = motor(mylego , ’D’);
mymotor1.Speed = 0;
mymotor2.Speed = 0;
resetRotation(mymotor1); % Reset motor
rotation counter
resetRotation(mymotor2);
start(mymotor1); % Start motor
start(mymotor2);
%%Inicialização dos Sensores do Lego
sensor_2 = sonicSensor(mylego ,2);
sensor2 = readDistance(sensor_2);
Apêndice: Código em Matlab para leitura dos dados do ambiente através dos
Sensores
Código 2 – Function em Matlab para realizar a leitura do sensor ultrassônico e retornar a posição
do objeto em coordenadas cartesianas.
%% Leitura do Sensor
count =1;
espaco=pi/2;
aux = 0;
%definir a orientação
sensor2y = sensor2*sin(angulo_robo);
sensor2x = sensor2*cos(angulo_robo);
Xn(i2) = sensor2x+P(1);
Yn(i2) = sensor2y+P(2);
%% verificação se o ponto novo é igual ou muito pró
ximo do ponto
if (sensor2 <= 0.3 && abs(XB(end)-Xn(end)) > 0.1) %
define o raio de leitura do sensor
if (((XB(end) <= Xn(i2)+0.1) ||(XB(end) >= Xn(i2) -0.1)
||(YB(end) <= Yn(i2)+0.1) ||(YB(end) >= Yn(i2) -0.1)
))
j2 = j2+1;
Referências 52
XB(j2) = Xn(i2);
YB(j2) = Yn(i2);
end
for k = 1:(j2 -1)
if ((abs(XB(j2)-XB(k)) <=0.1)||( abs(YB(j2)-YB(k))
<=0.1))
j2=j2 -1;
count = count + 1;
break;
end
end
end
end
Apêndice: Código em Matlab para geração da trajetória através do método
APF-modificado
Código 3 – Function em Matlab para calcular a trajetória a ser seguida pelo robô através do
método APF
%% Ambiente
[XB ,YB,i2 ,j2]=visao_ambiente_sensores(angulo_robo ,sensor2 ,P,
XB ,YB,i2,j2);
igualdade =1;
%% Teste se a trajetória anterior ainda é factível , mesmo com
o novo obstáculo encontrado:
nao_factivel =0;
for i=1: size(xd_antigo ,2)
for j=1:1
dist_obstaculo=sqrt((xd_antigo(i)-XB(end))^2+(yd_
antigo(i)-YB(end))^2);
if (dist_obstaculo <0.6*l) %Trajetória não factível (ve
ículo colidiu com o obstáculo).
nao_factivel =1;
end
end
end
if (nao_factivel ==0)
igualdade =1;
end
if (nao_factivel ==1)
igualdade =0;
end
if (size(xd_antigo ,2) ==0)
igualdade =0;
end
Referências 53
xd=[];
yd=[];
if (igualdade ==0)
K=1;
erro=sqrt((xref -xi)^2+(yref -yi)^2);
dist=erro; % distância total entre o veículo e a posição
de referência
q1=1; %Carga referência do Veículo
atracao =10;
repulsao =1.5;
q2=atracao; % carga do ponto de referência
%% Looping
convergencia=l/2;
novos_obstaculos =0;
%enquanto o veículo ainda não chegou no ponto de referê
ncia
while (erro >convergencia)&&( novos_obstaculos <100)
Qb=repulsao*ones(size(XB ,2)); %Cargas dos objetos
xii=xi;
yii=yi;
xd=xi;
yd=yi;
erro=sqrt((xref -xii)^2+(yref -yii)^2);
%% Gerando pontos da trajetória
contagem =0;
%Encerra o Loop se chegar no ponto ou se percorrer
mais que uma 1.1
%vezes a distância , acrescida a cada tentativa:
while (erro >convergencia)&&( contagem <=2* dist/dr)
% Obtém o próximo ponto da trajetória:
[postx ,posty] = APF_MODIFICADO(K, q1, q2, Qb, xii
, yii , xref , yref , XB, YB, dr , seguranca);
xii=postx;
yii=posty;
xd=[xd postx ];
Referências 54
yd=[yd posty ];
contagem=contagem +1;
erro=sqrt((xref -xii)^2+(yref -yii)^2);
end
end
if (size(xd)~=0)
% Ajuste do caminho para facilitar a etapa do
controle cinemático:
[xd ,yd]= adaptador_caminho(xd,yd,vmax ,ts);
%% Teste se a trajetória passou por algum obstáculo (
se é ou não factível):
nao_factivel =0;
for i=1: size(xd ,2)
for j=1: size(XB ,2)
dist_obstaculo=sqrt((xd(i)-XB(j))^2+(yd(i)-YB(
j))^2);
if (dist_obstaculo <l/2)
nao_factivel =1; %Trajetória não factível (
veículo colidiu com o obstáculo)
end
end
end
% não é planejada nenhuma trajetória , para não haver
a colisão esperada
if (nao_factivel ==1)
xd=xi;
yd=yi;
end
end
end
end
Apêndice: Links para vídeos no Youtube de simulações realizadas com o robô.
Link 1: https://www.youtube.com/edit?o=U&video_id=exKbMOkhIIg
Link 2: https://www.youtube.com/watch?v=1SVEbPkftOE&feature=youtu.be
Link 3: https://www.youtube.com/watch?v=OsJat7PWrXk
Link 4: https://www.youtube.com/watch?v=nLYLDQta7f8
	Folha de rosto
	Folha de aprovação
	Dedicatória
	Agradecimentos
	Epígrafe
	Resumo
	Abstract
	Lista de ilustrações
	Lista de abreviaturas e siglas
	Sumário
	Introdução
	Motivação
	Objetivo
	Robô Móvel
	Sensoriamento
	EncodersÓpticos
	Sensores Ultrassônicos
	Robô Diferencial
	Representação Matemática do Robô Diferencial
	Campos Potenciais Artificiais
	Método dos Campos Potenciais Artificiais (APF)
	Implementação do Método APF
	Adaptação da trajetória para um caminho mais suave
	O problema dos mínimos locais
	Método APF-Modificado
	Resultados Experimentais
	Navegação por Ambiente Desconhecido
	Algoritmo de Planejamento
	Mínimos Locais
	Conclusões
	Referências
	Apêndices

Continue navegando