Caracterização dos dados do sensor LIDAR e encoders

24/07/2016 14:08

Introdução

Através da percepção dos diferentes obstáculos de um ambiente real um robô é capaz de tomar diversas decisões sobre os dados adquiridos. Logo o elemento fundamental para o perfeito funcionamento do sistema como um todo está na compreensão e aquisição correta dos dados sensoriais. Assim o presente trabalho visa implementar um algoritmo de leitura dos dados do sensor LIDAR Hokuyo UBG-04LX juntamente com os dados obtidos da odometria capaz de detectar objetos próximos ao robô, localizar-se e realizar o mapeamento 3D do ambiente.

Hokuyo UBG-04LX

O sensor Hokuyo UBG-04LX trata-se de um sensor LIDAR capaz de detectar objetos a uma distância máxima de 4000 mm com uma abertura angular de 240º. Não só mede distâncias, mas também a intensidade luminosa referente ao ponto amostrado. O tempo de scan é cerca 28 ms. A potência máxima de seu feixe é inferior a 0.67 mW, podendo ser lesivo a distâncias de 1 m.

Odometria

A Odometria baseia-se na leitura de encoders com o intuito da percepção de distâncias percorridas. Foi analisado dois encoders, um anexo a roda esquerda e outro a roda direita do robô. Com os dados obtidos da odometria é possível localizar a posição global do robô desde o início da aquisição dos dados. É possível também calcular a orientação do robô em todos os instantes. O algoritmo que calcula a trajetória e a orientação do robô segue a seguinte lógica: realiza um incremento num dado eixo cartesiano, realiza uma média entre os incrementos do encoders esquerdo e direito para o incremento linear ou realiza a razão entre a diferença dos encoders e o comprimento das rodas. Após essas etapas é realizado uma multiplicação por senos e cossenos sobre esses incrementos. Porém é feito o somatório de todos os incrementos no eixo x e y e incrementos angulares resultando nos gráficos da trajetória e orientação do robô, figuras 1 e 2 respetivamente, desde o início das leituras.

Figura 1: Trajetória carteziana do robô.

Figura 2: Orientação do robô.

Mapeamento em 3D

O mapeamento em três dimensões do ambiente nada mais é do que processo de scan do LIDAR direcionado para o teto de forma que a cada scan do sensor é realizado um movimento horizontal. Esse processo trata-se de um mapeamento 2D com a variação de um eixo ortogonal ao plano de varredura. O resultado é uma nuvem de pontos com coordenadas nos eixos x, y e z. O mapeamento foi realizado através do corredor e sala do LSA-ISEP e armazenado em um arquivo log. O processo de localização do robô em relação ao mundo, baseia-se na seguinte equação:

Onde:

  • Rbw e a matriz de rotação do robô em relaçâo ao mundo, onde somente altera sua orientação. Rbé expresso por:

  • RLb é a matriz que determina a orientação do LIDAR em relação ao robô. RLé expresso pela matriz seguinte, onde seus valores são referentes ao posicionamento do LIDAR na vertical:

  • tL são as coordenadas nos eixos x, y e z do LIDAR em relação ao centro do robô, que  nesse caso é o centro do eixo das rodas do robô. Sua localização é: 0.282 m em x, 0 m em y e 0.18 m em z. Em notação matricial é expresso por:

  • tb são as coordenadas x, y e z do centro do robô em relação ao mundo. Os eixos x e y são definidos pelos dados da odometria, xR e yR, já o eixo z possui um valor constante de 0.05 m, pois o centro do robô foi definido como sendo na altura do eixo das rodas. Assim tb é expresso por:

  • PLIDAR é a matriz que representa os pontos do LIDAR em x e y. O LIDAR fornece pontos apenas em 2D, logo sua coordenada z é zero. PLIDAR é expresso por:

Assim é executado a leitura completada do arquivo log relacionado a posição global do robô com o mapeamento 2D do LIDAR. O resultado é um mapeamento em 3D do ambiente em análise, como _e mostrado na figura 3. A figura 3 representa os dados RAW do mapeamento, onde as cores são proporcionais a variação da altura em z.

Figura 3: Mapeamento em 3D do ambiente.

 

Análise

 

Após ser capaz de gerar a nuvem 3D dos pontos obtidos pelo LIDAR, foi realizado uma filtragem do mapeamento com o intuito de eliminar espúrios detectados pelo sensor, relacionar a cor do gráfico com a intensidade dos dados obtidos bem como localizar objetos no ambiente. A primeira etapa trata-se da exclusão dos dados considerados desnecessários. Supostamente quando o Hokuyo não consegue detectar os objetos ele possui valor zero de Range, desse modo é gerada uma linha que acompanha a trajetória do robô. Para filtrar este evento, basta restringir o comando "scatter" do MATLAB a valores superiores a 3 cm, sendo este valor pois o ambiente mapeado não possui nada localizado a essa distância a não ser essa linha, figura 4.

 

Foi rejeitado também pontos cujo a altura no eixo z ultrapassavam os 3 m, como é visto na figura 5. Observe que após a eliminação dos pontos houve uma variação na cor do gráfico, isto porque a cor varia de 0 até o valor máximo da altura em z e como esta foi reduzida a cor foi alterada.

(a) Com a linha central                                                (b) Sem a linha central

Figura 4: Eliminação da linha da trajetoria

 

Para evitar este fenômeno e extrair maiores informações do ambiente, cada ponto além de possuir as coordenadas em x, y e z possui também a cor proporcional a intensidade luminosa observada pelo LIDAR. O resultado é visto na figura 6. Após analisar a imagem gerada, percebe-se que a intensidade varia com a distância, pois a cor varia de um vermelho intenso à um laranja. Objetos que retém pouco a luz são identificados pela cor azul, já objetos que são bom receptores são identificados pela cor vermelha. É possível também selecionar uma região ou objeto específico do cenário mapeado bastando realizar uma restrição nos eixos x, y e z correspondentes a zona observada. A figura 7 exibe as regiões observadas individualmente, são elas: teto, paredes e chão, respetivamente. Porém foi selecionado apenas três objetos do ambiente. Os objetos extintor, quadro xadrez e cone foram selecionados e exibidos nos mesmos locais de origem, figura 8.

 

 

(a) Com os pontos                                                (b) Sem os pontos

Figura 5:  Eliminação dos pontos acima de 3 m.

 

 

 

Figura 6: Relação entre intensidade e cor.

 

(a) Teto

(b) Paredes

(c) Chão

Figura 7: Regiões selecionadas do mapeamento 3D.

Figura 8: Seleção de diferentes objetos.

 

Analisando apenas o quadro xadrez, percebe-se que os quadrados pretos não foram detectados pelo sensor por absorver totalmente a radiação incidente, porém para os quadrados brancos foi observado uma variação da intensidade luminosa, figura 9.

 

 

Figura 9: Deteção dos pontos do quadro xadrez.

 

Conclusão

 

Portanto através da correta aquisição dos dados da odometria associados ao mapeamento 2D do LIDAR é possível realizar o mapeamento 3D do ambiente e assim detectar não só a distância entre os diversos componentes da nuvem de pontos, mas também a intensidade luminosa de cada ponto, expandindo as possibilidades de navegação do robô.

 

altera sua orientac~ao. Rw
b e expresso por: