Как я могу интерпретировать пакеты данных LiDar, поступающие по UDP? - PullRequest
0 голосов
/ 10 апреля 2019

Я использую шайбу Velodyne vlp-16 Lidar, и мне нужно интерпретировать необработанные значения, передаваемые по UDP.

Я установил сокет и получаю показания, но не могу понять, как разбить и интерпретировать данные, которые я получаю, как расстояния и углы.


import socket

IP_ADDRESS = "192.168.1.77"
PORT_NO = 2368

IP_ADDRESS_2 = "127.0.0.1"
PORT_NO_2 = 6789

serverSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
serverSocket.bind((IP_ADDRESS, PORT_NO))

sendingSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
array = [None]*64

while True:
    array = serverSocket.recv(1248)[0:1248]
    for x in range(42, 48, 1):
        print(x, end ="\n")
    print()

Я вижу байтовые данные, поступающие через UDP, но я не понимаю, как перевести это на расстояние. Я получаю числа от 0 до 600.

Структура пакета

Велодинские координаты

1 Ответ

0 голосов
/ 10 апреля 2019

В руководстве есть полезная информация о настройке

https://velodynelidar.com/lidar/products/manual/63-9113%20HDL-32E%20manual_Rev%20G.pdf

Общая настройка на стр. 5

  1. Установление связи с HDL-32E
  2. Создание таблицы калибровки из включенного файла данных db.xml
  3. Анализ пакетов для данных вращения, расстояния и интенсивности (рекомендуется использовать Wireshark)
  4. Применение коэффициентов калибровки вертикального угла кданные
  5. Создание или сохранение данных по мере необходимости

Также в руководстве упоминается файл db.xml для анализа udp для полезных показателей

Этот анализатор использует этот файл базы данных

https://github.com/ritzalam/velodyne-lidar-parser

...