Начало работы с ROS 2

Операционная система робота 2 (ROS 2) является второй версией ROS, который является коммуникационным интерфейсом, который позволяет различным частям системы робота обнаружить, отправить и получить данные. Поддержка MATLAB® ROS 2 является библиотекой функций, которая позволяет, вы, чтобы обмениваться данными с ROS 2 включили физических роботов или средства моделирования робота, такие как Gazebo®. ROS 2 основан на Стандарте распределения данных (DDS), который является сквозным промежуточным программным обеспечением, которое обеспечивает функции, такие как открытие, сериализация и транспортировка. Эти функции выравнивают с принципами разработки ROS 2, такими как распределенное открытие и управление различным "Качеством Сервиса" опции для транспортировки. Реальное время использования DDS Публикует - Подписывают протокол (RTPS), который обеспечивает коммуникацию по ненадежным сетевым протоколам, таким как UDP. Для получения дополнительной информации см. RTPS.

В этом примере показано, как к:

  • Настройте ROS 2 в MATLAB

  • Получите информацию о возможностях в сети ROS 2

  • Получите информацию о сообщениях ROS 2

Чтобы узнать о ROS, смотрите Начало работы с ROS.

Терминология ROS 2

  • Сеть ROS 2 включает различные части системы робота (такие как планировщик или интерфейс камеры), которые связываются по сети ROS 2. Сеть может быть распределена по нескольким машинам.

  • Узел ROS 2 является сущностью, которая содержит набор связанного ROS 2 возможности (такие как издатели и подписчики). Сеть ROS 2 может иметь многих ROS 2 узла.

  • Издатели и подписчики являются различными видами ROS 2 сущности, которые обрабатывают данные. Они обмениваются данными с помощью сообщений.

  • Издатель отправляет сообщения в определенную тему (такие как "одометрия"), и подписчики на ту тему получают те сообщения. Может быть несколько издателей и подписчиков, сопоставленных с одной темой.

  • Область является физической сегментацией сети. Это идентифицировано уникальным целочисленным значением, известным как Доменный ID. По умолчанию Доменным ID является 0.

  • Каждый узел в сети ROS 2 на создании рекламирует свое присутствие к другим узлам в том же Доменном ID только.

  • Сеть ROS 2 основана на Стандарте распределения данных (DDS), который позволяет соединить несколько узлов через распределенную сеть.

  • RTPS (Оперативный издатель-подписчик) протокол предоставляет сети ROS 2 возможности отправить сообщения в ненадежных сетевых условиях.

  • ROS 2 предлагает множество политик Качества сервиса (QoS), которые позволяют вам настраивать свою связь между узлами. Для получения дополнительной информации смотрите, Управляют Качеством Обслуживаний в ROS 2.

Для получения дополнительной информации смотрите, что Робот Управляет System2 (ROS 2) и раздел Concepts по веб-сайту ROS 2.

Инициализируйте сеть ROS 2

В отличие от ROS, ROS 2 не требует инициализации в MATLAB. Сеть ROS 2 автоматически запускается с создания узлов.

Используйте ros2node создать узел.

test1 = ros2node("/test1")
test1 = 
  ros2node with properties:

    Name: '/test1'
      ID: 0

Используйте ros2 node list видеть все узлы в сети ROS 2.

ros2 node list
/test1

Используйте clear завершать работу узла в сети ROS 2.

clear test1

Используйте exampleHelperROS2CreateSampleNetwork заполнить сеть ROS с тремя дополнительными узлами с демонстрационными издателями и подписчиками.

exampleHelperROS2CreateSampleNetwork

Используйте ros2 node list снова, и заметьте, что существует три новых узла, node_1, node_2, и node_3).

ros2 node list
/node_1
/node_2
/node_3

Визуальное представление текущего состояния сети ROS 2 показывают ниже. Используйте его в качестве ссылки, когда вы исследуете эту демонстрационную сеть в остатке от примера.

Темы

Используйте ros2 topic list видеть доступные темы в сети ROS 2. Заметьте, что существует четыре активных темы: /poseчасы, /parameter_events и /scanТемы.The/clock и /parameter_events глобальные темы который всегда существующий в сети ROS 2. Тема /clock используется для синхронизации тогда как тема/parameter_events используется узлами, чтобы контролировать или изменить параметры в сети. Другие две темы/scan и/pose были созданы как часть демонстрационной сети.

ros2 topic list
/parameter_events
/pose
/scan

Каждая тема сопоставлена с типом сообщения. Используйте ros2 topic list -t видеть тип сообщения тем.

ros2 topic list -t
            Topic                       MessageType           
    _____________________    _________________________________

    {'/parameter_events'}    {'rcl_interfaces/ParameterEvent'}
    {'/pose'            }    {'geometry_msgs/Twist'          }
    {'/scan'            }    {'sensor_msgs/LaserScan'        }

Сообщения

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

Используйте ros2 msg show просмотреть свойства типа сообщения. geometry_msgs/Twist тип сообщения имеет два свойства, Linear и Angular. Каждое свойство является сообщением типа geometry_msgs/Vector3, который в свою очередь имеет три свойства типа double.

ros2 msg show geometry_msgs/Twist
# This expresses velocity in free space broken into its linear and angular parts.

Vector3  linear
Vector3  angular
ros2 msg show geometry_msgs/Vector3
# This represents a vector in free space.

float64 x
float64 y
float64 z

Use ros2 msg list видеть полный список типов сообщений, доступных в MATLAB.

Отключитесь от сети ROS 2

Используйте exampleHelperROS2ShutDownSampleNetwork удалить демонстрационные узлы, издателей и подписчиков от сети ROS 2. Чтобы удалить ваши собственные узлы, используйте clear с узлом, издателем или объектом подписчика.

exampleHelperROS2ShutDownSampleNetwork

Следующие шаги