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

Conhecimento Extra sobre GPS

Revendo o conceito de trilateração, referido no post anterior, se o recetor tiver sincronizado a quatro satélites ele pode determinar a distancia a que estes se encontram dele. Com isto o problema da localização é reduzido a um simples problema de geometria. Segue uma ilustração a explicar o processo de trilateração.

 

  1. O recetor GPS sincroniza com um satélite e determina que este se encontra num ponto interior de uma esfera, centrada no satélite e de raio 18,000 Km. Esta informação ajuda a limitar a localização do recetor. De mencionar que pontos nessa esfera podem localizam-se na terra ou no espaço.

    figure1.PNG

  2. Após o ponto anterior, o recetor sincroniza com um segundo satélite e determina que este se encontra a uma distancia de 19,000 Km. Da mesma forma que foi concluído com o primeiro satélite, o segundo localiza o recetor num ponto interior de uma esfera com raio de 19,000 Km e centrada no satélite numero dois. Logo, com esta nova informação, pode ser concluído que o recetor encontra-se num ponto comum à esfera do primeiro e do segundo satélite.

    figure2.PNG

  3. Por fim se o recetor determinar uma possível terceira localização, uma terceira esfera centrada noutro satélite. Com a informação já recolhida, as possíveis localizações para o recetor são reduzidas para dois pontos. De notar que, o aparelho normalmente consegue descartar um dois dois pontos pois este não se encontra na Terra.

    figure3.PNG

  4. O quarto satélite, normalmente, é para correções no clock.

    .

Com a localização determinada é necessário ver até que ponto essa conclusão é precisa em que, existem varias fontes de erro determinação. Devido à complexidade da correção das fontes de erros externos, estes só serão mencionados e não poderão ser corrigidos no decorrer do trabalho. Relativamente ás fontes erros internos de cada recetor GPS, com o uso de mais que um recetor, estes erros poderão ser controlados. Algo que já foi investigado, e que, se encontra documentado no paper do seguinte link: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6166295

 

 Erros externos podem ser provenientes de :

  • Ephemeris data - Os satélites são colocados em órbitas precisas e , por consequencia, elas são previsíveis. Devido a forças externas, desde forças gravitacionais, pressão e radiação solar, e entre outras, os satélites podem sofrer alterações nas órbitas em que se encontram. Devido ao que foi dito, a localização transmitida pelo satélite poderá estar errada.

 

  • Clock do Satélite - Mesmo os satélites possuindo relógios de precisão elevada (relógios atómicos, de césio e de rubídio), estes não são perfeitos. Um exemplo dado é de que, um atraso de 1 nanossegundo resulta num erro de 30 cm para o recetor.

 

  • Ionosfera - No vácuo do espaço a velocidade do sinal é a da luz, mas quando este atinge as varias camadas atmosféricas ele varia. Especialmente nesta primeira camada da atmosfera, o sinal do satélite é afectado devido a conter partículas carregadas que o atrasam.

 

  • Troposfera - Esta camada afecta bastante o sinal vindo do satélite devido ás componentes secas e húmidas. Sendo que, a componente húmida afecta em maior efeito devido ao vapor de água que nela existe.

    figure4.PNG

  • Multicaminho - Reflexão da onda portadora do sinal, isto devido a obstáculos naturais ou artificiais.

     

    figure5.PNG

Erros internos podem ser provenientes de:

  • Antena - Variações do centro de fase da antena podem causar erros na ordem de centímetros. Estes erros existem devido ás características da antena e do angulo do sinal observado.

 

  • Recetor - Um recetor não é perfeito e devido a ruído nas medições, isto é, interferência elétrica, interferência térmica ou erros do clock podem induzir erro na medida.

 

É também de mencionar sobre o Acesso Seletivo (SA - Selective Availability) que foi desactivado em Maio de 2000. Ele foi introduzido pela US DoD (United States Department of Defence) para limitar a precisão do sistema para os utilizadores de SPS (Standard Positioning Service). Com a ideia de melhorar as defesas do país, foi introduzido artificialmente valores de clock e localizações erradas dos satélites em que, provocava erros até 100 metros.

 

Serão mencionadas duas formas de diminuir os erros externos:

  1. Correções diferenciais em tempo real - O recetor base, com os sinais vindos dos satélites em vista, determina a sua posição com a maior precisão que lhe é permitida. Sabendo também a sua exacta posição, ele consegue determinar os erros associados a fontes externas. Com isto se o recetor que se encontra num robô a realizar reconhecimento, e este encontra-se num raio de alguns quilómetros, ele estará a sofrer os mesmo efeitos externos. A correção das distancias são transmitidas por radio frequência para o recetor em reconhecimento.

    figure6.PNG

  2. Correcções diferenciais de pós-processamento - Neste caso ambos os recetores são usados sem considerar correções. Após o reconhecimento, os dados de ambos os recetores são processados para reduzir os efeitos inerentes aos erros. Este processo tem a vantagem de não ser necessário a comunicação entre o recetor base e o em reconhecimento, mas tem a desvantagem do recetor em reconhecimento não saber, de maneira precisa, a sua posição. Por consequencia este método é invalido para a navegação com uma precisão de nível elevado. É de mencionar que os recetores GPS que conseguem armazenar dados, são usualmente caros.

Localização

Para ser determinado e representado a nível global os obstáculos, irá ser usado um sistema com dois recetores GPS (Global Positioning System).

 

Falando um bocado do conceito de GPS, este sistema encontra-se no dia de hoje disponível nas mais variadas plataformas, desde do nível industrial até a um nível recreacional. O sistema de posicionamento global oferece, com precisão e em qualquer parte do globo, uma posição a três dimensões e a velocidade a um utilizador que tenha um receptor apropriado. Este posicionamento é realizado com o auxilio de uma constelação de 24 satélites organizados em 6 órbitas com 4 satélites por órbita (figura 1), utilizando um tempo universal sincronizado entre eles (UTC).

Fig1F.PNGA posição é determinada através da distancia que o recetor se encontra aos satélites conectados e através de trigonometria é determinado a posição no referencial global. O método de cálculo de posição e tempo que é usado é o de trilateração, exemplo na figura 2.

Fig2F.PNGO cálculo é realizado comparando o tempo que o sinal foi enviado com o momento que é recebido. Comparando esta informação de quatro satélites em "vista", é possível obter a posição do recetor, isto é a latitude, longitude e a altura em relação ao nível do mar. De notar que é possível obter uma posição só com três satélites mas para uma localização mais correta são usados quatro.

 

Para o trabalho estão disponíveis dois recetores GPS, nomeadamente um de módulo EM-406A com uma placa de alimentação e comunicação criada na Universidade de Aveiro (figura 3) e um Globalsat BU-353-W (figura 4).

Fig3F.PNG

Fig4F.PNGAntes de serem mencionadas algumas especificações serão explicadas algumas terminologias:

  • Baud Rate - Recetores GPS enviam informação pelo pino TX com um bit rate especifico. O mais comum é de 9600bps para recetores de 1Hz.

 

  • Canais - O número de canais que o módulo de GPS usa irá diretamente afetar o tempo da primeira sincronização (TTFF - Time to first fix). Devido ao módulo não saber que satélites se encontram em "vista", quantos mais canais ele poder verificar ao mesmo tempo, mais rápido a primeira sincronização pode ser obtida.

 

  • Chipset - O chipset de um GPS é responsável desde realizar cálculos, proporcionar a comunicação analógica com a antena entre outras. O mesmo é independente do tipo de antena. É de mencionar que os modelos mais típicos são ublox, SiRF e o SkyTraq. A diferença entre chipsets recai sobre o consumo elétrico, tempos de aquisição e acessibilidade de hardware.

 

  • Start-up Times (Hot, Warm e Cold) - Alguns módulos de GPS contêm um super-condensador ou uma segunda bateria para guardar temporariamente a informação de um satélite, anteriormente sincronizado. Isto ajuda a reduzir o TTFF em inicializações seguintes.
    • Cold Start - Se o modulo for desligado e a informação de backup for perdida, na inicialização seguinte, o GPS terá de realizar um download novo da informação respetiva aos satélites.
    • Warm Start - Dependendo do tempo que o GPS esteve desligado, se a informação não for completamente perdida, poderá ser possível realizar um warm start, mas a nova sincronização com os satélites poderá demorar um bocado mas menos que um cold start.
    • Hot Start - A localização dos satélites estão muito perto da posição que estavam antes do GPS ter sido desligado. Neste caso o GPS sincroniza de imediato.

 

  • WAAS - Wide area augmentation system, é uma rede de "estações" base que transmitem a correção do erro para os satélites. WAAS é um sistema usado na América do Norte, para a Europa é usado o sistema EGNOS, no Japão o MSAS e na Índia o GAGAN. A grande maioria dos recetores já têm estes sistemas activos de fabrica.

 

Nomeando agora algumas especificações, o Globalsat tem um GPS chipset SiRF star III em que as caraterísticas podem ser visualizadas na tabela 1. Este GPS usa o protocolo NMEA 0183, em que as especificações de comunicação são mostradas da tabela 2. O mesmo necessita de uma tensão entre os 4.5V e os 6.5V, com uma intensidade de 50 mA.

Tab1F.PNG

Tab2F.PNGPara mais especificações segue o link para o datasheet:

http://usglobalsat.com/store/download/62/bu353_ds_ug.pdf

 

Relativamente ao outro GPS, o chipset é igual ao anterior recetor. Considerando que o recetor necessita de 5V, foi criada uma placa de circuito impresso responsável pela alimentação e comunicação do mesmo. Relativamente á placa, de modo a obter os 5V necessários usou-se um regulador de tensão LM317, que possui a capacidade de regular uma tensão de entrada entre os 0V e 40V para uma tensão de saída num intervalo de 1.2V a 37.7V. Para ser permitida a comunicação com um computador usando o protocolo RS232, foi usado um Max232 para elevar os sinais de um nível TTL.

 

Especificações extra do módulo podem ser encontradas no seguinte link:

https://www.sparkfun.com/datasheets/GPS/EM-406A_User_Manual.PDF

 

 

Renascimento do Atlas 2000 (Parte 2)

Para controlo do servo da direção foi criada uma placa de controlo demonstrada na figura 1.

Fig1Post2.PNGEsta placa é alimentada com 24 V e transmite uma onda quadrada para o servo (figura 2), em que a amplitude da mesma varia consoante o ângulo das rodas.

Fig2Post2.PNGA comunicação com esta placa é realizada com o protocolo RS232. Após iniciada a comunicação é necessário enviar o pwm para a direcção desejada. De mencionar que para o estado de repouso, em que a direcção se encontra em frente, o pwm é igual a 45. Respetivamente para virar completamente para direita e para a esquerda são necessários os valores de 90 e 0. Quando inicialmente é fornecida energia á placa ou clicando no botão de reset da mesma, por hardware ela fornece ao servo um pwm igual a 45.

 

Explicando um bocado mais detalhadamente este processo, quando a direção é alterada no gamepad, através do joystick, é gerado um valor (o intervalo deste valor é dado nas configurações iniciais da classe do robô).  Depois de publicado o valor num tópico previamente subscrito, a " thread " do servo com uma frequência máxima de 30 Hz (figura 3), obtém o valor da direção e transmite esse valor á função que realiza a transformação do valor obtido do gamepad para o pwm respetivo (figura 4). Por fim é enviado para o servo.

Fig3Post2.PNG

Fig4Post2.PNG

 

Renascimento do Atlas 2000 (Parte 1)

O Atlas 2000, robô usado para a dissertação, que competiu em provas de condução autónoma (como já foi referido anteriormente), já se encontrava parado à algum tempo então teve de ser verificado o estado do mesmo (figura 1).

Fig1.PNGFoi então realizada uma revisão à comunicação feita no servo-amplificador, desde a confirmação do bom estado da cablagem mas também da placa do servo-amplificador (figura 2 e figura 3).

Fig2e3.bmpO servo-amplificador usado é um Maxon Motor Digital 4-Q-EC DES 70/10, a comunicação usada com o mesmo é RS232. Quando é iniciado o programa de controlo é necessário fornecer parâmetros de configuração ao Maxon, como é mostrado na figura 4 (nem todos os parâmetros mostrados na figura dizem respeito ao servo-amplificador).

Fig4.PNGDe notar que o parâmetro des_sys_config é um valor binário em que, cada bit corresponde a algo, desde a parametrizar ganhos, limitações nas velocidades, intensidade de corrente e entre outras. No caso deste sistema é usado o valor decimal 49024.

 

Todo o protocolo de comunicação com a carta é dado pelo fornecedor e pode ser adquirido com o link:

http://www.maxonmotor.com/medias/sys_master/root/8803611082782/228597-CommunicationGuide-En.pdf

 

Este servo-amplificador necessita de ser alimentado com uma tensão entre os 24 V e os 70 V. De notar que, perto dos 24 V a carta dará erros por falta de tensão mas também não pode ser alimentada com tensões acima dos 75 V. Ele tem cerca de 400 g e uma dimensão de 180x103x29 mm. Também possui um Led Bicolor para mostrar os estados do servo-amplificador, como estado operacional e com erro em que, respetivamente, mostra a cor verde e vermelha.

 

Para mais especificações relativamente ao serv-amplificador pode ser obtida com o link seguinte:

http://www.maxonmotorusa.com/medias/sys_master/root/8803610918942/228597-DES-70-10-OperatingInstructions-En.pdf

 

 

 

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