• Nenhum resultado encontrado

De uma forma geral, os robˆos m´oveis utilizados em espa¸cos interiores utilizam rodas para se movimentar. Um m´etodo b´asico para medir o movimento do robˆo ´e portanto atrav´es de sensores ´oticos ou magn´eticos, como encoders, e atrav´es de um conjunto de parˆametros conhecidos do robˆo, como o raio das rodas e a distˆancia entre as mesmas. Este m´etodo ´e chamado de odometria.

Com apenas a odometria de um robˆo m´ovel e conhecendo a sua posi¸c˜ao inicial ´e poss´ıvel localiz´a-lo dentro de um dado espa¸co. Isto ´e, com o c´alculo consecutivo da sua posi¸c˜ao atual, ´e poss´ıvel determinar a distˆancia do robˆo ao ponto inicial e assim saber a sua localiza¸c˜ao; este ´e o processo conhecido como ”dead reckoning ”.

Por´em, este m´etodo ´e sujeito a erros sistem´aticos que resultam, por exemplo, de imper- fei¸c˜oes na estrutura do robˆo, e a erros n˜ao sistem´aticos, como o escorregamento do robˆo quando este se move numa superf´ıcie irregular ou sofre alguma a¸c˜ao externa. Estes efeitos podem ser atenuados com a utiliza¸c˜ao de sensores internos mais avan¸cados, como girosc´opios e aceler´ometros ou at´e praticamente eliminados com a utiliza¸c˜ao de sensores externos como sensores laser, sonares e vis˜ao computacional com algoritmos pr´oprios.

2.2.1 Laser

Os scanners laser funcionam pela medi¸c˜ao do tempo entre a emiss˜ao e o regresso de um pulso laser, permitindo determinar a distˆancia a obst´aculos. Este tipo de sensores est´a em constante evolu¸c˜ao e ´e amplamente utilizado na rob´otica.

Tendo como base o tipo de sensor laser [12] utilizado na demonstra¸c˜ao pr´atica exposta no Cap´ıtulo 4, este tipo de sensores oferece vantagens como:

• Elevada resolu¸c˜ao angular (0.25° - 0.5°); • Elevada precis˜ao (cerca de 10mm); • Elevada velocidade de medi¸c˜ao;

• Os dados medidos podem ser interpretados diretamente como a distˆancia a um obst´aculo numa dada dire¸c˜ao (idˆentico aos sonares e de leitura muito mais simples quando com- parado a cˆamaras de imagem).

Algumas desvantagens dos sensores laser s˜ao: • Pre¸co elevado;

• N˜ao deteta corretamente obst´aculos de alguns materiais, como o vidro;

As Figuras 2.12a e 2.12b mostram, respetivamente, dados obtidos por sensores laser (Li- DAR - Light Detection And Ranging) a trˆes e a duas dimens˜oes.

(a) Mapa batim´etrico obtido com sensores LiDAR [13]

(b) Mapa 2D obtido com sensor LiDAR, visualizado no RViz

Figura 2.12: Representa¸c˜ao gr´afica de dados obtidos por sensores laser (LiDAR)

2.2.2 Sonar

Estes sensores baseiam-se no mesmo princ´ıpio de medi¸c˜ao da distˆancia a obst´aculos dos sensores laser, medindo o tempo da emiss˜ao de um sinal sonoro `a sua rece¸c˜ao para determinar a distˆancia a obst´aculos.

As vantagens principais da utiliza¸c˜ao deste tipo de sensores s˜ao: • Baixo pre¸co;

Por outro lado, estes sensores apresentam um elevado n´umero de desvantagens:

• Efeito de crosstalk: atua¸c˜ao de v´arios sonares idˆenticos no mesmo espa¸co pode provocar a rece¸c˜ao de sinais de sensores diferentes;

• Medi¸c˜oes muito mais lentas do que com laser (consequˆencia da grande diferen¸ca entre as velocidades do som e da luz);

• Baixa resolu¸c˜ao angular.

As Figuras 2.13a e 2.13b mostram, respetivamente, exemplos de dados obtidos por sensores ultrass´onicos (SONAR - Sound Navigation And Ranging) a trˆes e a duas dimens˜oes.

(a) Exemplo de medi¸c˜ao de profundidade utilizando sensores ultrass´onicos [14]

(b) Mapa 2D obtido com sensor ultrass´onico [15]

2.2.3 Vis˜ao

Em rela¸c˜ao aos tipos de sensores mencionados anteriormente, uma capacidade ´unica que os sensores de vis˜ao possuem ´e a possibilidade da utiliza¸c˜ao das propriedades da superf´ıcie dos obst´aculos, como a cor e a textura, para dete¸c˜ao e identifica¸c˜ao de objetos.

Algumas vantagens destes sensores s˜ao:

• Aquisi¸c˜ao de informa¸c˜ao 3D do ambiente (com vis˜ao est´ereo);

• Aquisi¸c˜ao de uma grande quantidade de informa¸c˜ao, como a identifica¸c˜ao de obst´aculos e o c´alculo da distˆancia aos mesmos, segmenta¸c˜ao de diferentes objetos, por exemplo, pelas suas formas e cores.

As principais desvantagens s˜ao:

• Capta¸c˜ao de imagem severamente influenciada pela ilumina¸c˜ao; • Requer grandes recursos computacionais para extra¸c˜ao de informa¸c˜ao.

A Figura 2.14 mostra um exemplo da aplica¸c˜ao de vis˜ao est´ereo na dete¸c˜ao de obst´aculos.

Figura 2.14: Exemplo de dete¸c˜ao de obst´aculos a distˆancias vari´aveis utilizando vis˜ao est´ereo [16]

Em conclus˜ao relativamente `a tecnologia sensorial existente, tendo em conta o tipo de ambiente que se encontra na nave industrial da Renault CACIA, a utiliza¸c˜ao de scanners laser num robˆo m´ovel seria perfeitamente vi´avel. Este tipo de sensor poderia ser utilizado em conjunto com cˆamaras de imagem digital, permitindo uma aquisi¸c˜ao de informa¸c˜ao mais completa que poderia inclusivamente ser utilizada para a an´alise da sujidade do espa¸co a limpar, para al´em de complementar as desvantagens referidas dos sensores laser.

Cap´ıtulo 3

Simula¸c˜ao

Atualmente existe j´a um n´umero consider´avel de algoritmos de mapeamento, localiza¸c˜ao e navega¸c˜ao para robˆos m´oveis, e considerou-se relevante explorar alguns destes para aplica¸c˜ao num robˆo m´ovel simulado que cont´em semelhan¸cas ao n´ıvel de sensores e atuadores em rela¸c˜ao aos robˆos de limpeza analisados. Para tal, foi criada uma simula¸c˜ao em ROS e Gazebo.

Com a simula¸c˜ao criada pretende-se estudar a aplica¸c˜ao dos algoritmos de mapeamento, localiza¸c˜ao e navega¸c˜ao dispon´ıveis, num robˆo m´ovel cujo tipo de movimento ´e semelhante ao dos sistemas de limpeza analisados, de forma a estudar a sua compatibilidade com a tarefa da limpeza dos corredores da Renault CACIA. Esta implementa¸c˜ao tem ainda como um dos principais objetivo o estudo da eficiˆencia de algumas trajet´orias quanto ao tempo de execu¸c˜ao e ´area navegada.

Para a implementa¸c˜ao desta tarefa, foi necess´aria a cria¸c˜ao do ambiente 3D que replica os corredores da zona de testes (superf´ıcie dos corredores, com zonas da maquinaria interditas ao robˆo), a cria¸c˜ao do mapa 2D para a navega¸c˜ao do robˆo e a cria¸c˜ao de um programa que utiliza os n´os de ROS respons´aveis pelo planeamento de trajet´orias e navega¸c˜ao do robˆo para definir as trajet´orias a percorrer. As sec¸c˜oes seguintes destinam-se `a exposi¸c˜ao deste conte´udo.

3.1

Plataforma de Desenvolvimento

Esta sec¸c˜ao procura apresentar e justificar as escolhas em rela¸c˜ao ao hardware e software utilizados no projeto.

3.1.1 Software

Os seguintes t´opicos explicam de forma breve o software envolvido no desenvolvimento pr´atico desta disserta¸c˜ao.

Neste ˆambito, foi utilizado um conjunto de softwares para o desenvolvimento da simula¸c˜ao de navega¸c˜ao do robˆo m´ovel (ROS, Gazebo e RViz) que implica a escrita de c´odigo em Python. Este software ´e executado numa distribui¸c˜ao espec´ıfica de Linux, o Ubuntu.

ROS

O ROS (Robotic Operating System) ´e um framework para desenvolvimento de software de robˆos. Cont´em um conjunto de ferramentas, bibliotecas e regras cujo objetivo ´e simplificar

a tarefa da cria¸c˜ao de comportamentos robustos e complexos de robˆos numa variedade de plataformas rob´oticas.

A utiliza¸c˜ao do ROS neste projeto deve-se `a sua modularidade, existˆencia de software que integra o hardware do robˆo com as tarefas que este ir´a implementar, documenta¸c˜ao extensa, disponibilidade de tutoriais e possibilidade do desenvolvimento em comunidade, uma vez que opera sob uma licen¸ca que permite a sua utiliza¸c˜ao em produtos comerciais e/ou closed source. O ROS possui pacotes de software otimizados e prontos a utilizar com um m´ınimo de parametriza¸c˜ao necess´ario. No caso em estudo, estes s˜ao utilizados para a estimativa de pose, localiza¸c˜ao, mapeamento e navega¸c˜ao de um robˆo, bem como para a pr´opria visualiza¸c˜ao e grava¸c˜ao dos dados da simula¸c˜ao.

Explicado de forma breve, o ROS opera sob o seguinte formato conceptual, a n´ıvel com- putacional [17]:

• N´os: processos computacionais, o sistema de controlo de um robˆo consiste na opera¸c˜ao conjunta de v´arios n´os (e.g. um para aquisi¸c˜ao de dados de um scanner laser, um para o controlo dos atuadores, outro para localiza¸c˜ao, entre outros);

• Master: O ROS Master controla todos os n´os, faz a atribui¸c˜ao e procura de nomes para que os n´os possam comunicar entre eles;

• Mensagens: estrutura de dados de tipos padr˜ao (inteiro, flutuantes, booleanos, etc.) para comunica¸c˜ao entre diferentes n´os do ROS;

• T´opicos: o ROS gere a comunica¸c˜ao entre diferentes n´os atrav´es de um sistema de publica¸c˜ao/subscri¸c˜ao. Um n´o envia uma mensagem publicando-a para um dado t´opico. Um t´opico ´e um nome usado para identificar o conte´udo de uma mensagem. Um n´o ”subscreve-se”(conecta-se) a um t´opico quando necessita especificamente da informa¸c˜ao que este cont´em;

• Servi¸cos: definidos por dois tipos de estrutura de mensagem, um para pedidos e outro para respostas. Um dado n´o oferece um servi¸co com um nome e um dado cliente (outro n´o) usa este servi¸co enviando-lhe uma ”mensagem pedido”e esperando pela respetiva resposta;

• Bags: formato de grava¸c˜ao e playback de dados do ROS.

Esclarecendo a diferen¸ca entre um servi¸co e um t´opico do ROS, um servi¸co ´e uma via de comunica¸c˜ao de um-para-um n´o, enquanto um t´opico pode ser publicado e subscrito por v´arios n´os simultaneamente.

A Figura 3.1 ilustra os conceitos mencionados anteriormente, mostrando como pode ser realizada a comunica¸c˜ao entre dois n´os distintos.

Figura 3.1: Diagrama de Conceitos B´asicos de ROS [17]

A vers˜ao deste software utilizada no desenvolvimento da simula¸c˜ao ´e o ROS Kinetic Kame. Python

O Python ´e uma linguagem de programa¸c˜ao de alto-n´ıvel para uso geral, orientada a objetos, dinˆamica e de f´acil leitura de c´odigo.

´

E uma linguagem de programa¸c˜ao suportada pelo ROS, juntamente com C++. Foi dada preferˆencia ao Python pela sua facilidade de escrita e legibilidade.

A vers˜ao de Python utilizada no desenvolvimento da simula¸c˜ao ´e a s´erie 2.7.x. Gazebo

O Gazebo ´e um conjunto de bibliotecas e software de simula¸c˜ao de rob´otica com motor de f´ısica e gr´aficos 3D. Este software permite a cria¸c˜ao de ambientes 3D e visualiza¸c˜ao da intera¸c˜ao de modelos rob´oticos com estes ambientes.

A vers˜ao de Gazebo utilizada no desenvolvimento da simula¸c˜ao ´e a s´erie 7.x, compat´ıvel com a vers˜ao de ROS definida.

RViz

O RViz ´e uma ferramenta de visualiza¸c˜ao de dados para ROS. Possui uma interface para visualiza¸c˜ao de dados sensoriais, modelos de robˆos e mapas de ambientes simulados para desenvolvimento e debug de projetos de controlo de robˆos.

Ubuntu

O Ubuntu ´e um sistema operativo “open-source” e uma distribui¸c˜ao de Linux baseada em Debian.

A utiliza¸c˜ao do ROS Kinetic Kame implica a utiliza¸c˜ao de um sistema operativo com- pat´ıvel. Nesta disserta¸c˜ao foi escolhido o Ubuntu Xenial (16.04 LTS).

3.1.2 Hardware

O hardware simulado neste projeto foi o robˆo m´ovel did´atico Turtlebot 2 (sec¸c˜ao 4.1.1), ilustrado na Figura 3.2.

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

Documentos relacionados