Skip to content

Instantly share code, notes, and snippets.

@Gastd
Last active April 28, 2020 02:18
Show Gist options
  • Save Gastd/19c8678f2cfc242eea65d7a749b40afe to your computer and use it in GitHub Desktop.
Save Gastd/19c8678f2cfc242eea65d7a749b40afe to your computer and use it in GitHub Desktop.
Descrição em PT-BR sobre LIDARs

LIDAR

Lidar (Light Detection And Ranging), também conhecido como Laser Rangefinders ou simplesmente Laser, é um sensor bem comum no mundo da robótica. Esse sensor tem como objetivo estimar distâncias entre objetos no ambiente e o próprio Lidar. O princípio de funcionamento é semelhante a qualquer outro sensor baseado em ondas, sonar, radar, infravermelho. Um par de emissor-receptor é fixado em uma estrutura, o emissor emite feixes de luz de tipo laser. Se houver algum objeto no caminho do feixe, o objeto refletirá parte do feixe de luz. O reflexo desse feixe é, então, sentido pelo receptor. Essa estrutura então move-se com o intuito de capturar amostras do ambiente. E dessa forma pode se "ver" o ambiente.

Existem duas tecnologias principais para o medir a distância percorrida pelo feixe de luz:

  • TOF (time-of-flight): A distância é calculada por meio da diferença de tempo entre a emissão do laser e a recepção é medida.
  • Phase-based: A distância é calculada usando a diferença de fase entre o feixe emitido e o refletido.

A estrutura que move o laser pode escanear o ambiente de forma 3d. Como pode ser visto gif abaixo:

Graças as características do laser, os Lidars são sensores bastante precisos e flexíveis, pois o sensor mede diretamente a distância para os objetos e isso precisa de pouco pós-processamento. Contudo, há desvantagens, devido à alta tecnologia são sensores caros e não funcionam bem em ambiente externos por causa da luz do Sol.

Hokuyo UTM-30LX

O Lidar usado no robô Pioneer é um UTM-30LX da Hokuyo. É um Lidar com escaneamento 2d, ângulo de visão de 270° e capaz de detectar objetos em até 30 metros de distância.

A mensagem padrão do ROS para sensores Laser contem essas e outras informações úteis para o processamento dos dados. A documentação da mensagem está aqui. Toda vez que o Lidar faz um escaneamento, o nó do ROS responsável pelo laser irá enviar uma mensagem do tipo LaserScan.

Os elementos angle_min e angle_max definem o ângulo de início e final do escaneamento enquanto que o angle_increment fala quanto é a diferença angular entre os feixes. Já o elemento ranges é um vetor com todas as leituras feitas em um escaneamento. Cada elemento desse vetor é uma leitura e está associado a um ângulo específico de leitura. Dessa forma é possível saber onde que um objeto detectado está em relação ao sensor. Logo, se o sensor está montado em um robô, também é possível saber onde esse mesmo objeto está em relação ao robô.

Referências

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment