Saltar para: Posts [1], Pesquisa [2]

Mapas de navegabilidade para condução autónoma no Campus UA

Mapas de navegabilidade para condução autónoma no Campus UA

Representação de Limites e Obstáculos num mapa

Após terem sido obtidos os pontos de interesse (obstáculos positivos e negativos), terá de ser criada uma representação dos limites num mapa.

Uma das possibilidades de representação será a utilização da livraria de KML (libkml).


KML é um formato de arquivo usado para exibir dados geográficos num navegador da Terra, como o Google Earth ou Google Maps.

Este formato usa uma estrutura de tags e tem por base um padrão XML. O KML no Google Maps suporta vários elementos, como por exemplo:

  1. Marcadores;
  2. Ícones;
  3. Pastas;
  4. Descrições HTML;
  5. KMZ;
  6. Linhas e Polígonos;
  7. Estilos das geometrias (enchimentos, cor, largura das linhas, opacidade,...);

 

Foi criado um programa exemplo que mostra, de uma forma simplicada, a criação de um polígono(obstáculo) e de uma linha(limite) em C++. Este programa devolve um ficheiro de formato KML que poderá ser importado para o Google Maps.

Abaixo serão mostrados excertos do código do programa anteriormente falado e o resultado.

 

Na figura 1 e 2 respetivamente, é demonstrada a função usada para a criação de um polígono e edição do mesmo.

Conjunto_1.pngNa figura 3 e 4 respetivamente, é demonstrada a função usada para a criação de um linha e edição da mesma .

Conjunto_2.pngPor fim, na figura 5 e 6 respetivamente, mostra como o ficheiro kml é criado e o resultado no mapa (após ter sido feito o upload no google maps).

Fig5_f.PNG

Fig6_f.PNG

 

Introdução ao Hector Slam

Para realmente existir autonomia, antes de ser realizado o planeamento de caminhos é necessário criar um modelo da zona de interesse, isto para que, o robô possa avaliar se é possível navegar, mas também se localizar.

 

Como já foi dito num post anterior, irá ser usado um pacote de software em ambiente ROS, denominado de Hector Slam. Este pacote foi desenvolvido pela equipa HECTOR (Heterogereous Cooperating Team of Robots), da Universidade de Darmstadt Alemanha. Esta equipa foi criada em 2008 em que começou a usar ROS nos finais de 2010. É de mencionar que, a nível mundial, eles ganharam vários prémios como o segundo lugar na RoboCup 2010 em Singapura.

O pacote em questão tem baixo consumo computacional, e por consequência, é excelente para o uso em processadores pequenos, de baixo poder de processamento e potencia.

 

Para realizar o SLAM 2D num ambiente exterior é usado um sistema LIDAR (Light Detection And Ranging) com base num laser. Para representação do ambiente, e no final também usado para localização, são usadas grelhas de ocupação (occupancy grid map), em que usam algoritmos computacionais. Estimando a posição e orientação da plataforma onde o laser se encontra é possível converter dados adquiridos para uma nuvem 2D de pontos.

A segunda fase da construção do mapa é, entre cada scan adquirido, verificar a correspondência para cada frame e alinha-los. Nesta área o Hector
Slam tenta, optimizar e comparar o alinhamento dos pontos dos feixes laser que vão sendo obtidos, com o mapa construído até aquele momento.


Este tipo de correspondência é baseada em métodos de Gauss-Newton, em que, à medida que existem novos scans, estes são alinhados com o mapa já existente. Esta tarefa é realizada de forma implícita com todos os scans anteriormente feitos.


Com base nisto, e usando o Hector Slam, foi realizado um teste inicial no ultimo piso do Departamento de Engenharia Mecânica. O resultado deste teste pode ser verificado na figura abaixo. É de notar que para usar este pacote, é aconselhável usar um laser com uma frequência mais elevado do que o que foi usado (a rondar os 30 scans por segundo).

1stTest.png

 

Planeamento de Caminhos

Após a obtenção da informação do espaço do campus da Universidade de Aveiro (obstáculos positivos e negativos), a mesma tem de ser analisada e avaliada para ser determinado o melhor caminho para o robô percorrer.

Entre os variados métodos e técnicas existendes, só alguns resolvem situações genéricas. Sendo necessário que o espaço de trabalho seja de duas dimensões e que os objetos sejam considerados polígonos.

Irão ser abordados principalmente 3 métodos:

  1. Decomposição em células
  2. Mapa de estradas
  3. Campos de potencial

 

Método de Decomposição em Células

Consiste na divisão do espaço livre à volta do robô em regiões simples, chamadas de células, de forma que um caminho entre quaisquer dois pontos na mesma célula possa ser facilmente obtido.

Como já foi referido os obstáculos são sempre considerados corpos 2D. Será necessario construir um grafo representante das células, para mostrar os caminhos possiveis.

Este método ainda pode ser dividido em dois sub-grupos:

  1. Métodos exatos de decomposição em células, que decompôem o espaço livre num conjunto de células cuja união cobre exatamente todo os espaço livre.

MetodoExactoDC.PNG

  1. Métodos aproximados de decomposição em células, que dividem o espaço livre num conjunto de células de forma predefinida cuja união pode não cobrir inteiramente o espaço livre.

MetodoAproxDC.PNG

Método de mapa de estradas (Roadmap)

Consiste em capturar a conetividade do espaço livre, numa rede unidimensional de curvas, denominado de “roadmap”. A rede de curvas obtida representa a conetividade entre espaços livres do meio em análise.

Após a sua construção esta é definida como um conjunto de percursos estandardizados, reduzindo o planeamento de trajetórias à ligação entre pontos de interesse. Se construida, a trajetória é definida em três subcaminhos:

  • O subcaminho a ligar o ponto inicial ao mapa de estradas
  • O subcaminho do próprio mapa de estradas
  • O subcaminho que liga o mapa de estradas ao ponto final

 

As técnicas usadas para o processamento de busca para este método são:

  1. Grafo de visibilidade, que é composto por todos os segmentos de reta que unem os vertices de obstáculos e os pontos de partida e chegada, sem atravessar nenhum deles.

     

    A escolha do caminho é feita pelo percurso mais curto, ou seja, com menor segmentos e depois é realizado processamento extra para afastar as trajetórias dos obstáculos. Usualmente é realizada uma ampliação dos obstáculos antes da obtenção final do grafo, que poupa no processamento extra no final,em que resulta no afastamento das trajetórias das esquinas dos mesmos.

GrafoVisibilidadeRM.PNG

  1. Diagrama de Voronoi, representa a interseção dos meios-espaços de todos os pontos que delimitam os obstáculos e o meio, originando uma divisão em células, denominadas de células de voronoi. Os segmentos de reta do diagrama representam todos os pontos, num plano, que estejam equidistantes a dois pontos delimitadores dos obstáculos ou do meio.

     

    Este método apresenta desvantagens sendo as mais relevantes a dificuldade de processar a informação para problemas de dimensões de maior escala ou quando os obstáculos não são considerados polígonos. Ainda se pode tornar num sistema instável, dado que uma pequena mudança na configuração dos obstáculos pode levar a uma grande mudança no diagrama final.

DiagramaVoronoiRM.PNG

Método dos Campos de Potencial

O método dos campos de pontencial consiste numa função definida sobre a região livre do espaço, onde o robô é repelido pelos obstáculos e atraído pelo objetivo.

Primeiro é necessario discretizar o espaço numa grelha de valores e depois pesquisar um caminho sobre a mesma usando um campo potencial.

CamposPotencial.PNG

Este método tem a vantagem de ser de fácil visualização e implementação mas também bastante eficiente.

A desvantagem deste método é que como é baseado em um algoritmo de pesquisa heurístico (método rápido de otimização), pode levar o robô a um ponto que seja um mínimo local da função potencial e não o mínimo global (objetivo final). Neste caso o robô é repelido pelos obstáculos com uma força resultante igual à força atrativa do destino.

MinimoLocalCP.PNG

 

 

 

Bem vindo,

O meu nome é Miguel Rodrigues, estou a finalizar os meus estudos no curso de Engenharia Mecânica da Universidade de Aveiro. Nos próximos meses irei desenvolver a minha dissertação que tem como tema “Mapas de navegabilidade para condução autónoma no Campus UA”.

 

Breve Introdução

 

A minha dissertação será desenvolvida no laboratório de automação e robótica (LAR) do Departamento de Engenharia Mecânica, mais especificamente na área de condução autónoma do projeto ATLAS.

O projeto ATLAS surgiu em 2002 para competir em provas de condução autónoma, tendo sido desde então, premiado várias vezes no Festival Nacional de Robótica com o primeiro e segundo prémio, obtidos com os robôs ATLAS 2000 e ATLAS MV (respetivamente figura 1 e 2).

AtlasInit.PNGNesta tese será usado o ATLAS 2000, em que este sofreu (em teses passadas) algumas alterações para que fosse possível a navegação do mesmo em ambiente exterior, como é mostrado na figura 3.

Serão usados, também, dois lasers Hokuyo (modelo URG-04LX-UG01 mostrado na figura 4).

ATLAS&Laser.PNGCom os dois lasers e o robô ATLAS,e ainda será usado um dispositivo GPS, será possivel realizar o levantamento do mapa de navegabilidade do campus.

 

As propriedades do mapa obtido serão referenciadas a um sistema de coordenadas, sendo as coordenadas GPS o mais usual mas também, técnicas para a localização e mapeamento simultâneo (SLAM) para ambientes exteriores (já existe um pacote de software em ambiente ROS, denominado de Hector Slam).

Como é mostrado no vídeo acima, um laser com o feixe na horizontal apenas consegue verificar que existe obstáculos na vertical (obstáculos positivos tipo paredes ou postes). Para determinar se existem buracos ou ravinas (obstáculos negativos), pois o robô terá de circular em ambientes exteriores, terá de ser colocado um laser inclinado para que a recolha desta informação seja possível.

 

Após o levantamento do mapa, será usado um algoritmo de planeamento de trajetórias para determinar o caminho, desde um ponto de partida no mapa até a um ponto de chegada. Esta parte do tema será abordado no post seguinte.

 

 

 

 

 

 

 

 

Mais sobre mim

Subscrever por e-mail

A subscrição é anónima e gera, no máximo, um e-mail por dia.

Arquivo

  1. 2015
  2. J
  3. F
  4. M
  5. A
  6. M
  7. J
  8. J
  9. A
  10. S
  11. O
  12. N
  13. D