• Nenhum resultado encontrado

Sumariamente, ´e poss´ıvel concluir-se com esta simula¸c˜ao que o melhor trajeto a imple- mentar ´e o que efetua o menor n´umero de manobras (executa trajetos com retas maiores), pois assim torna-se mais r´apido e apresenta um menor gasto de energia, logo ´e tamb´em o mais eficiente.

O ROS ´e uma solu¸c˜ao vi´avel na implementa¸c˜ao do sistema de controlo para um robˆo m´ovel, pois integra de forma relativamente simples o hardware do robˆo com o seu software, n˜ao sendo necess´aria a cria¸c˜ao de drivers para o hardware, se este for compat´ıvel com ROS.

No mesmo sentido, os algoritmos testados, nomeadamente o GMapping no processo de mapeamento, o AMCL na localiza¸c˜ao e o A* na navega¸c˜ao, s˜ao solu¸c˜oes vi´aveis para o software de controlo do robˆo, tendo sido verificados resultados positivos no planeamento de trajet´orias e desvio de obst´aculos. No cap´ıtulo seguinte ´e feita a valida¸c˜ao experimental tanto do hardware como do software utilizados na simula¸c˜ao, numa ´area pr´e-definida nos corredores da nave industrial da Renault CACIA.

O c´odigo de ambos os scripts encontra-se em anexo, devidamente comentado, para uma compreens˜ao mais detalhada do programa.

Cap´ıtulo 4

Demonstra¸c˜ao Turtlebot 2

De forma a testar experimentalmente os recursos simulados, foi realizada uma demons- tra¸c˜ao pr´atica do Turtlebot 2 numa zona de corredores da nave fabril da Renault CACIA.

Esta demonstra¸c˜ao consistiu em duas fases, a de mapeamento da ´area de teste e a na- vega¸c˜ao na mesma.

4.1

Setup

O hardware e software utilizados nesta demonstra¸c˜ao foram, salvo algumas exce¸c˜oes, os mesmos da simula¸c˜ao. Isto permitiu assim avaliar a viabilidade dos resultados da simula¸c˜ao e o comportamento real do controlo de um robˆo m´ovel utilizando o ROS.

4.1.1 Hardware

O robˆo utilizado na demonstra¸c˜ao foi o Turtlebot 2 (Figura 4.1), equipado com um LiDAR 2D, o SICK LMS100.

Turtlebot 2

O Turtlebot 2 ´e a segunda vers˜ao do robˆo m´ovel did´atico Turtlebot, de baixo custo e com software open-source. Possui uma base m´ovel (Kobuki) que permite a liga¸c˜ao a um computador com ROS e ´e compat´ıvel com v´arios sensores, como sensores laser, sensores de contacto mecˆanico e encoders.

A utiliza¸c˜ao de um LiDAR deve-se principalmente ao elevados alcance e precis˜ao de um sensor laser, ideal para a situa¸c˜ao da demonstra¸c˜ao.

De seguida s˜ao apresentadas as caracter´ısticas mais relevantes deste robˆo [36]: • Velocidade m´axima (transla¸c˜ao): 70cm/s;

• Velocidade m´axima (rota¸c˜ao): 180°/s; • Payload: 5kg;

• Odometria (encoders): 52 pulsos/volta (enc), 2578.33 pulsos/volta (roda), 11.7 pul- sos/mm;

Figura 4.1: Robˆo M´ovel Turtlebot 2 [18]

SICK LMS100

O LMS100 ´e um LiDAR 2D. Num robˆo m´ovel, ´e utilizado para obter dados da distˆancia a obst´aculos para mapeamento e localiza¸c˜ao.

A lista que se segue mostra alguns dados relevantes deste sensor [12]. • ˆAngulo de abertura 270°;

• Frequˆencia de scan 25Hz/50Hz; • Resolu¸c˜ao angular: 0.25°/0.5°; • Alcance: 0.5m...20m.

A Figura 4.2 demonstra o aspeto visual dos LiDAR 2D da s´erie LMS1XX da SICK.

4.1.2 Software

O software utilizado na demonstra¸c˜ao foi, tal como na simula¸c˜ao, o ROS, para a utiliza¸c˜ao dos n´os/pacotes de gmapping, amcl, map server e turtlebot teleop, RViz para visualiza¸c˜ao do processo de mapeamento e localiza¸c˜ao do robˆo.

Para poder utilizar o ROS no computador que controla o Turtlebot, ´e necess´ario que os dois computadores (Turtlebot e controlo) estejam ligados `a mesma rede local e que ambos estejam a executar o ROS. ´E necess´ario tamb´em adicionar as seguintes linhas de c´odigo ao ficheiro /.bashrc do computador de controlo:

# IP l o c a l do T u r t l e b o t ( exemplo )

e x p o r t ROS MASTER URI=h t t p : / / 1 9 2 . 1 6 8 . 8 . 1 7 0 : 1 1 3 1 1

# IP l o c a l do computador de c o n t r o l o ( exemplo )

e x p o r t ROS IP = 1 9 2 . 1 6 8 . 8 . 1 6 1

4.2

Mapeamento

O processo de mapeamento consistiu na utiliza¸c˜ao dos n´os de ROS respons´aveis pela aquisi¸c˜ao de dados sensoriais para a constru¸c˜ao do grid map 2D que resulta depois na re- ferˆencia do robˆo para a localiza¸c˜ao e navega¸c˜ao no ambiente em que se encontra.

Para iniciar o mapeamento da zona definida, foram executados os seguintes comandos no computador do Turtlebot [33]:

# Execu ¸c ˜a o d o s n´o s de f u n c i o n a m e n t o b a s e do T u r t l e b o t

r o s l a u n c h t u r t l e b o t b r i n g u p minimal . l a u n c h

# I n i c i a o n´o gmapping do ROS

r o s l a u n c h t u r t l e b o t n a v i g a t i o n gmapping demo . l a u n c h

No computador de controlo, foram executados os comandos seguintes:

# Abre o RViz p a r a v i s u a l i z a ¸c ˜a o do p r o c e s s o em tempo r e a l

r o s l a u n c h t u r t l e b o t r v i z l a u n c h e r s v i e w n a v i g a t i o n . l a u n c h

# I n i c i a o n´o de c o n t r o l o , p e r m i t e c o n t r o l o p e l o t e c l a d o

r o s l a u n c h t u r t l e b o t t e l e o p k e y b o a r d t e l e o p . l a u n c h

A Figura 4.3 representa o mapa constru´ıdo pelos scans laser do Turtlebot 2 utilizando o pacote de gmapping do ROS.

Figura 4.3: Grid map constru´ıdo com GMapping na demonstra¸c˜ao pr´atica

A Figura 4.4 representa, delimitada a vermelho no excerto da planta do edif´ıcio, a ´area da zona de testes correspondente `a Figura 4.3 que foi mapeada pelo Turtlebot 2.

No final de mapear a zona pretendida, foram gravados os ficheiros yaml e pgm correspon- dentes ao mapa criado. Para a grava¸c˜ao, pode ser escrito no terminal do Turtlebot ou do computador de controlo o c´odigo abaixo:

# Execu ¸c ˜a o do n´o m a p s e r v e r p a r a g r a v a ¸c ˜a o do mapa c r i a d o .

r o s r u n m a p s e r v e r m a p s a v e r − f < d i r e t o r i a >/<nome do mapa>

Neste momento o mapa constru´ıdo ´e j´a utiliz´avel para navega¸c˜ao nas zonas a branco, apesar de n˜ao ter sido feito nenhum tratamento da imagem (no ficheiro pgm). Neste ficheiro, edit´avel em editores de imagem compat´ıveis com o formato, podem ser removidas zonas irre- levantes ou adicionadas ”paredes”virtuais para evitar que o robˆo entre em zonas indesejadas.

4.3

Navega¸c˜ao

Na fase da demonstra¸c˜ao da navega¸c˜ao do robˆo na ´area mapeada, foram utilizadas as fun¸c˜oes de 2D Pose Estimate e 2D Nav Goal para atribuir pontos de destino ao robˆo, de forma a verificar experimentalmente o comportamento dos algoritmos amcl (localiza¸c˜ao) e A*/Dijkstra (navega¸c˜ao) num ambiente fabril. Ao fornecer um dado ponto no mapa, o robˆo calcula o melhor trajeto para o ponto, desloca-se para ele e desvia-se de qualquer obst´aculo, mesmo aqueles que n˜ao foram mapeados (e.g. pessoas e ve´ıculos), como demonstrado na Figura 4.5.

Figura 4.5: Demonstra¸c˜ao pr´atica em RViz da navega¸c˜ao com Turtlebot 2 utilizando A* e AMCL

Na Figura 4.5, pode ser visualizado o robˆo (mancha verde) no centro do local map (qua- drado colorido) produzido pelas leituras sensoriais do robˆo. Dentro do local map s˜ao assi- nalados os obst´aculos na vizinhan¸ca do robˆo. a linha verde representa a melhor trajet´oria calculada pelo algoritmo A*.

Para iniciar a navega¸c˜ao, ´e necess´ario primeiro iniciar o ROS em ambos os dispositivos (Turtlebot e computador de controlo). De seguida, do lado do computador do Turtlebot, ´e necess´ario executar os seguintes comandos:

# Executa o s n´o s n e c e s s ´a r i o s ao f u n c i o n a m e n t o b a s e do T u r t l e b o t

r o s l a u n c h t u r t l e b o t b r i n g u p minimal . l a u n c h

# F o r n e c i m e n t o do mapa g r a v a d o ao amcl

r o s l a u n c h t u r t l e b o t n a v i g a t i o n amcl demo . l a u n c h \ m a p f i l e :=/tmp/my map . yaml

Ap´os a prepara¸c˜ao dos sistemas, do lado do computador de controlo, ´e necess´ario introdu- zir a posi¸c˜ao inicial estimada do robˆo no RViz, com a fun¸c˜ao 2D Pose Estimate, para reduzir a incerteza do amcl. A partir deste momento, com a fun¸c˜ao 2D Nav Goal no RViz, podem ser enviados pontos para o robˆo.

Documentos relacionados