Обмен технологиями

Базовое обучение ROS - управление операциями ROS

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Управление операциями ROS

1. Краткое описание управления работой ROS.

ROS — это многопроцессная (узловая) распределенная структура, полная реализация системы ROS:

Может включать несколько хостов;
На каждом хосте имеется несколько рабочих областей;
Каждое рабочее пространство содержит несколько пакетов функций;
Каждый пакет функций содержит несколько узлов (Node), и разные узлы имеют свои собственные имена узлов;
Каждый узел также может быть настроен на одну или несколько тем...

Вставьте сюда описание изображения
В многоуровневой системе ROS при ее внедрении и обслуживании могут возникнуть некоторые проблемы, например:
1. Как связать различные пакеты функций ---- (пакет метафункций)
2. Как запустить различные узлы ROS----(файл запуска)
3. Как бороться с повторяющимися именами пакетов функций, узлов, тем и параметров ---- (Решение проблемы повторяющихся имен)
4. Как взаимодействуют узлы на разных хостах ---- (распределенная связь)

Основное содержание этой главы знакомит с решением вышеуказанных проблем в ROS (см. содержание этой главы). Ожидаемые цели обучения также соответствуют вышеуказанным проблемам:

  • Освоить синтаксис использования пакетов метафункций;
  • Освоить синтаксис использования файлов запуска;
  • Понять, что такое покрытие рабочего пространства ROS и какие существуют риски безопасности;
  • Поймите, как бороться с повторяющимися именами узлов;
  • Поймите, как обрабатывать темы с повторяющимися названиями;
  • Поймите, как бороться с повторяющимися именами параметров;
  • Возможность достижения распределенной связи ROS.

2. Пакет метафункций ROS

Сценарий: выполнение систематической функции в ROS может включать в себя несколько функциональных пакетов, например реализацию модуля навигации робота, который имеет различные функциональные пакеты подуровней, такие как карта, позиционирование, планирование пути и т. д. Итак, когда вызывающая сторона устанавливает модуль, нужно ли ей устанавливать каждый пакет функций один за другим?

Очевидно, что установка пакетов функций один за другим неэффективна. В ROS предусмотрена возможность объединить различные пакеты функций в один пакет функций. При установке определенного функционального модуля просто вызовите упакованный пакет функций напрямую. Этот пакет также называется метапакетом. .

2.1 Концепция

MetaPackage — это концепция системы управления файлами в Linux. Это виртуальный пакет в ROS. Он не имеет основного содержимого, но основан на других пакетах программного обеспечения. Таким образом, мы можем рассматривать его как указатель каталога книги, сообщающий нам, что такое Sub. -пакеты находятся в коллекции пакетов и где их скачать.

Например:

  • Команда sudo apt install ros-noetic-desktop-full использует пакет метафункций при установке ros. Этот пакет метафункций зависит от некоторых других пакетов функций в ROS. При установке этого пакета зависимости будут установлены вместе.
    Есть также несколько распространенных метапакетов: Navigation moveit!

2.2 Функция

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

2.3 Реализация

шаг 1: Сначала создайте новый пакет функций.
шаг 2: Затем: измените package.xml, его содержимое будет следующим:

<exec_depend>Интегрированные пакеты функций</exec_depend>

<export>
<metapackage />
</export>
Вставьте сюда описание изображения

Шаг 3: Наконец: измените CMakeLists.txt, его содержимое будет следующим:

cmake_minimum_required(ВЕРСИЯ 3.0.2)
проект(демо)
find_package(catkin ТРЕБУЕТСЯ)
catkin_metapackage()

Просто сохраните четыре вышеуказанные строки и удалите остальные.

Также см.:
http://wiki.ros.org/catkin/package.xml#Метапакеты

3. Файл запуска ROS

Мы больше не знакомы с использованием файлов запуска. В первой главе мы представили:

Программе может потребоваться запустить несколько узлов, например встроенный корпус черепахи ROS. Если вы хотите управлять движением черепахи, вам необходимо запустить несколько окон, запустив roscore, узел интерфейса черепахи и узел управления клавиатурой. соответственно. Если rosrun вызывается каждый раз для запуска по одному, это явно неэффективно. Как оптимизировать?

Принятая стратегия оптимизации заключается в использовании команды roslaunch для сбора файла запуска для запуска узла управления, и в последующих руководствах файл запуска также используется много раз.

3.1. Файл запуска управления узлом ROS.

3.1.1 Концепция

Файл запуска представляет собой файл формата XML, который может запускать несколько локальных и удаленных узлов и устанавливать параметры на сервере параметров.

3.1.2 Функция

Упростите настройку и запуск узлов и повысьте эффективность запуска программ ROS.

3.1.3 Использование

Возьмите черепаху в качестве примера, чтобы продемонстрировать

Шаг 1. Создайте новый файл запуска.
Добавьте каталог запуска в пакет функций, создайте в нем новый файл xxxx.launch и отредактируйте файл запуска.

<launch>
<node pkg=“turtlesim” type=“turtlesim_node” name=“myTurtle” output=“screen” />
<node pkg=“turtlesim” type=“turtle_teleop_key” name=“myTurtleContro” output=“screen” />
</launch>

Шаг 2. Файл запуска вызова.

имя пакета roslaunch xxx.launch

Примечание. Когда команда roslaunch выполняет файл запуска, она сначала определяет, запущен ли roscore. Если он запущен, он не будет запущен снова. В противном случае roscore будет вызван автоматически.

Может относиться к:
http://wiki.ros.org/roslaunch/XML

3.2 тег запуска файла

https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9