Одним из компонентов локализации робота на открытом простанстве, являются системы глобального позиционирования. Данная инструкция посвящена одному из способов получение данных о текущих координатах WGS-84 робототехнического средства для использования совместно с ROS.
Версия ROS:
rosversion -d
kinetic
Linux Daemon GPSD:
sudo apt-get install gpsd
Вспомогательные удобные утилиты для отображения и передачи данных от GPS модуля:
sudo apt-get install gpsd-clients
Если подключение осуществляется с использованием USB-RS232 преобразователя, то проверяем его наличие:
lsusb
ls /dev | grep ttyUSB
При непосредственном присоединение к вычислителю по последовательному порту, ищем устройство среди:
ls /dev | grep ttyS
Обычно, одним из стандартов передачи данных от устройств GPS является символьная строка, согласно стандарту NMEA.
Просмотреть прямой вывод с устройства (9600 — скорость обмена):
gpscat -s 9600 /dev/ttyUSB0
Форматный вывод с распарсиванием строки:
gpsmon /dev/ttyUSB0
Запускаем GPSD daemon транслировать данные на localhost:2727:
gpsd -S 2727 /dev/ttyUSB0 9600
Проверяем приход данных на локальный порт:
gpsmon localhost:2727
Для работы с ROS устанавливаем package gps-umd:
sudo apt-get install ros-kinetic-gps-umd
Запускаем roscore:
roscore
Запускаем gpsd-client:
rosrun gpsd_client gpsd_client _host:=localhost _port:=2727
Смотрим результат:
rostopic echo /fix
RAW материал статьи:
Оставьте комментарий