Обновление (14 / 06 / 2026): У нас есть большой запас всех наших продуктов, найти нас также в и    Как получить расценки

Как это работает? ArduSimple Приемники RTK и получение данных GPS в ROS

В этом уроке мы объясним, как использовать ArduSimple Приемники RTK для получения точных данных о местоположении в ROS. Мы проведем вас через этапы интеграции ArduSimple RTK-приемник в свой проект ROS, что позволит вам использовать всю мощь точных данных GPS.

Являетесь ли вы энтузиастом робототехники, исследователем или разработчиком, это руководство предоставит вам шаги для доступа к данным позиционирования в ваших приложениях ROS.

Если вы новичок в ROS, мы подготовили краткий tучебник, который поможет начать работу с ROS узнать больше об основных терминах ROS, какую платформу и среду разработки лучше выбрать и т.д.

Если вы ищете руководство по ROS2, пожалуйста, ознакомьтесь с ним. Как интегрировать u-blox ZED-F9P в ROS 2.

Требуемое оборудование:

Требуемое программное обеспечение:

  • Ubuntu 18 или 20 (в этом уроке мы используем Ubuntu 20) изначально установлен на ПК 
  • ROS (мы используем ROS Noetic).

Как это работает? ArduSimple Приемники RTK и получать данные GPS в ROS?

Во-первых, подключите и настройте приемник RTK в Ubuntu.

  1. Подключи РТК антенна . получатель. Место антенна в месте с хорошим видом на небо или рядом с окном для проверки работоспособности.
  2. Подключите ваш получатель к ПК через порт USB с надписью «POWER+GPS".
  3. Ваш ресивер должен быть настроен автоматически. Чтобы убедиться в этом, откройте Терминал и введите команду:
				
					ls /dev/tty*
				
			
  • Вы увидите «/dev/ttyACM0» был создан автоматически.
  1. Чтобы проверить поток с вашего RTK-приемник, используйте команду:
				
					sudo cat /dev/ttyACM0
				
			
  • Входной поток GPS выглядит примерно так:
  • Press Ctrl + C чтобы отменить просмотр потока.
  1. Чтобы предотвратить RTK-приемник начиная с другого "ttyACM*» каждый раз, когда он включен, создайте правило udev (динамическая ссылка), которое создает запись с определенным именем, добавляя следующий файл перед подключением RTK-приемник.
				
					sudo nano /etc/udev/rules.d/50-ardusimple.rules
				
			
  1. Введите в правило следующий текст:
				
					KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
				
			
  1. Press Ctrl + X чтобы выйти из файла и нажмите Y сохранить измененный буфер.
  2. Теперь всякий раз, когда RTK-приемник подключен, он будет доступен из «/dev/tty_Ardusimple связь. Чтобы проверить это, отключите RTK-приемник (выключить и снова включить) и введите команды:
				
					sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
				
			
  1. Теперь ты видишь это «tty_ArduSimple был создан.
  1. Чтобы использовать программу U-center в Ubuntu, установите Wine. Это набор библиотек Linux, которые позволяют запускать многие приложения Windows в дистрибутивах Linux (в частности, в Ubuntu).
    Это не делает программное обеспечение U-center полностью совместимым, но его можно использовать в случае, если вы хотите проверить состояние или конфигурацию вашего RTK-приемник.
    Для установки Wine (установка может длиться 2-3 минуты) используйте команду:
				
					sudo apt install wine64  //if Ubuntu is installed natively
sudo apt install wine32  //if you run Ubuntu on a virtual machine

				
			
  1. После установки Wine можно установить U-Center в Ubuntu, как если бы это была Windows. Откройте веб-браузер Firefox и загрузите программу U-Center с официального сайта: https://www.u-blox.com/en/product/u-center.
  1. Как только u-center загружен, перейдите в папку «Загрузки» и распакуйте u-center на рабочем столе.
  1. Чтобы начать установку u-center программное обеспечение, введите команду:
				
					cd ~/Desktop/
wine ./u-center_v22.07.exe

				
			
  1. Установите u-center как будто вы находитесь в Windows, выполнив шаги установки.
  2.  Чтобы создать COM1 порт, открытый Терминал и введите следующую команду, чтобы создать ссылку на RTK-приемник в папке «~/.wine/dosdevice».
				
					ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
				
			
  1. Закрыто u-center если он у тебя открыт. Открыть u-center.
  2. Подключитесь к вашему RTK-приемник in u-center путем нажатия Ctrl + 1 .
  1. Вы увидите зеленый свет в левом углу и данные с вашего приемника RTK, как показано ниже.

Во-вторых, запустите RTK Receiver в ROS.

  1. Создайте папку с рабочими пространствами. Если у вас его нет, вы можете сделать это с помощью команд:
				
					mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  1. Загрузите и установите пакеты ROS внутри src. В этом уроке мы будем загружать пакеты из https://github.com/KumarRobotics/ublox который будет публиковать информацию ROS. Это работает с этой версией 1.1.4. Вы можете использовать последние выпуски, но некоторые шаги могут потребоваться изменить. Введите команды:
				
					cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
				
			
  • Вы увидите в Терминале:
    #Все необходимые rosdeps успешно установлены
  1. Скомпилируйте программу, чтобы иметь возможность ее выполнить.  
				
					catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  • При выполнении setup.bash выбираем рабочую область работы и обновляем доступные программы в ROS.
  1. Чтобы иметь контроль над сообщениями, которые будут опубликованы в ArduSimple вы можете изменить yaml (файл конфигурации), который узел будет использовать для связи с ros.
    Этот узел имеет несколько тестовых файлов конфигурации, вы можете изменить значения этого, изменив файлы, расположенные в следующем каталоге:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/config
				
			
  1. Учитывая, что u-blox модель внутри Ardusimple это Зед_f9p, мы модифицируем файл с тем же именем. Чтобы открыть редактор, мы можем использовать следующую команду:
				
					nano zed_f9p.yaml
				
			
  1. Измените адрес устройства на «/dev/tty_Ardusimple чтобы убедиться, что он всегда идет к RTK-приемник:

				
					device: /dev/tty_Ardusimple
frame_id: gps
uart1:
  baudrate: 9600  //Change the baudrate value to the value set in U-Center.
config_on_startup: false

				
			
  1. Закрыто u-center потому что РОС и u-center не бегайте вместе.

  1. Чтобы запустить узел ROS, используйте программу запуска, расположенную в следующей папке:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/launch
				
			
  • Чтобы убедиться, что он есть в списке, введите команду:
				
					ls
				
			
  1. Файлы запуска ROS упростить процесс запуска нескольких узлов и настройки их параметров. Файл запуска — это XML-файл, описывающий выполняемые узлы, их параметры и связи между ними. Используя файлы запуска, вы можете запускать несколько узлов с помощью одной команды, что упрощает управление сложными роботизированными системами. Эти файлы имеют расширение «.launch», есть и другие файлы, которые являются файлами конфигурации с расширением «.yaml».
    Чтобы запустить файл:
				
					roslaunch <name_of_package> <launch_file>
				
			
  • Файл, который запустит нашу программу, называется «ublox_device.launch».
    Этот файл можно изменить по мере необходимости.
    Для запуска программы используйте следующую команду:
				
					roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
				
			
  1. Откройте новый Терминал и введите команду:
				
					source ~/catkin_ws/devel/setup.bash
				
			
  1. Узлы ROS при запуске имеют уникальные имена. Чтобы увидеть список имен ROS Node, используйте команду в Терминале:
				
					rosnode list
				
			
  1. Чтобы получить информацию об узлах ROS, например, на какие темы они подписаны или публикуются, вы можете использовать следующую команду:
				
					rosnode info <name_of_node>
				
			
  • Например, для получения информации о «информация /ублокс”, используйте команду:

				
					rosnode info /ublox
				
			
  1. Для отображения списка активных Темы РОС которые в настоящее время доступны и публикуются или подписываются на вашу систему ROS, используйте команду.
				
					rostopic list
				
			
  • Вывод списка тем ROS обычно показывает имена тем вместе с их типами сообщений. Эта команда удобна для проверки доступных тем и проверки того, публикуются ли нужные темы или на них подписаны в вашей среде ROS.

  1. Для просмотра информации о том, кто публикует и подписан на данное сообщение, тип сообщения используйте команду в формате:
				
					rostopic info <name_of_topic>
				
			
  • Например, чтобы получить информацию о типе сообщения, издателях и подписчиках темы «/ розаут», выполните команду:
				
					rostopic info /rosout
				
			
  1. Чтобы получить информацию о типе сообщения, издателях и подписчиках темы /ublox/исправить, евыполнить команду:
				
					rostopic info /ublox/fix
				
			
  1. Чтобы увидеть информацию, которая публикуется, используйте команду в формате:
				
					rostopic echo <name_of_topic>
				
			
  • Чтобы проверить, работает ли это, мы можем подписаться на различные темы, которые создает узел.

    Наиболее важные из них «/gps/исправить» (данные в WGS64) и «/ диагностика» (дает нам информацию о статусе GPS). Другие данные могут быть опубликованы в соответствии с конфигурацией, установленной в RTK-приемник.

    Например, для наблюдения и мониторинга данных GPS, публикуемых на «/ублокс/исправить» Тема (данные в WGS64), такие как широта, долгота, высота и другая соответствующая информация, для просмотра данных используйте следующую команду:

				
					rostopic echo /ublox/fix
				
			
  • Чтобы прекратить просмотр темы, нажмите Ctrl+С.

  1. Для просмотра данных, публикуемых на «/ диагностика» который предоставляет информацию о статусе GPS, например о точности среди прочего, используйте команду:
				
					rostopic echo /diagnostics
				
			
  • Чтобы остановить просмотр данных, нажмите Ctrl+С.

  1. Если вы хотите записать опубликованную по теме информацию в файл, используйте команду:
  • для записи данных о местоположении GPS, публикуемых на «/ублокс/исправить» Тема, такая как широта, долгота, высота над уровнем моря среди других:
				
					rostopic echo /ublox/fix > gps_fix_data.txt
				
			
  • для записи данных о статусе GPS «/ диагностика»:
				
					rostopic echo /diagnostics > gps_diagnostics.txt
				
			
  • Эти команды создают файлы gps_fix_data.txt и gps_diagnostics.txt, где тема будет сохранена. Чтобы остановить запись, нажмите Ctrl + C.

  1. Чтобы просмотреть информацию, записанную в файлах, выполните:
				
					nano gps_fix_data.txt
				
			
				
					nano gps_diagnostics.txt
				
			
  1. Сообщения РОС представляют собой структуры данных, используемые для связи между узлами ROS. Они определяют обмен информацией по теме. Сообщения определяются с использованием формата файла .msg.
    Чтобы просмотреть список типов сообщений ROS, используйте команду:
				
					rosmsg list
				
			
  1. Для просмотра структуры сообщения используйте команду в формате:

				
					rosmsg show <name_of_message>
				
			
  • Так, например, «sensor_msgs/NavSatFix» — это тип сообщения в ROS, который используется для представления фиксированных данных GPS (глобальной системы позиционирования), таких как широта, долгота, высота над уровнем моря и другие параметры, связанные с положением GPS.
    Чтобы увидеть структуру «Sensor_msgs/NavSatFix” сообщение, используйте команду:
				
					rosmsg show sensor_msgs/NavSatFix
				
			
  1. Для просмотра списка активных Услуги РОС которые предоставляют узлам возможность отправлять запросы и получать ответы, используйте команду:
				
					rosservice list
				
			
  1. Для вызова сервиса используйте команду в формате:
				
					rosservice call <name_of_service> <type_srv> <request>
				
			
  • Эта служба ответит с результатом.

    Например, чтобы получить текущую конфигурацию регистратора u-blox Node, который может быть полезен для отладки и мониторинга, используйте команду:

				
					rosservice info /ublox/get_loggers
				
			

Если вы хотите пройти это руководство, у нас есть все продукты на складе и готовы к отправке:

Если вам понравился этот контент, вы можете подписаться на нас в Twitter, YouTube, Facebook or LinkedIn чтобы оставаться в курсе подобного контента.

Есть вопросы или пожелания?
Связаться с нами! Мы ответим <24 часов!

Значок
Контакты ArduSimple
Закрыто
ArduSimple – Высокоточное RTK-оборудование и решения для геодезических работ, упрощенные в использовании

Хотите узнать больше о GPS и RTK?

Если вы сейчас заняты, наши инженеры могут отправить вам 3 коротких электронных письма, в которых подробно объяснят все, что вам нужно знать для начала вашего проекта.