Обновление (02 / 09 / 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 выглядит примерно так:
  • Штамповочный пресс 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. Штамповочный пресс 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
Закрыто

Получите доступ к своему аккаунту и заказам.

Or

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

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

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