Операционная система робота 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 сущности, которые обрабатывают данные. Они обмениваются данными с помощью сообщений.
Издатель отправляет сообщения в определенную тему (такие как "одометрия"), и подписчики на ту тему получают те сообщения. Может быть несколько издателей и подписчиков, сопоставленных с одной темой.
Область является физической сегментацией сети. Это идентифицировано уникальным целочисленным значением, известным как Доменный ID. По умолчанию Доменным ID является 0
.
Каждый узел в сети ROS 2 на создании рекламирует свое присутствие к другим узлам в том же Доменном ID только.
Сеть ROS 2 основана на Стандарте распределения данных (DDS), который позволяет соединить несколько узлов через распределенную сеть.
RTPS (Оперативный издатель-подписчик) протокол предоставляет сети ROS 2 возможности отправить сообщения в ненадежных сетевых условиях.
ROS 2 предлагает множество политик Качества сервиса (QoS), которые позволяют вам настраивать свою связь между узлами. Для получения дополнительной информации смотрите, Управляют Качеством Обслуживаний в ROS 2.
Для получения дополнительной информации смотрите, что Робот Управляет System2 (ROS 2) и раздел Concepts по веб-сайту 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
/clock /parameter_events /pose /scan
Каждая тема сопоставлена с типом сообщения. Используйте ros2 topic list -t
видеть тип сообщения тем.
ros2 topic list -t
Topic MessageType _____________________ _________________________________ {'/clock' } {'rosgraph_msgs/Clock' } {'/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.
Используйте exampleHelperROS2ShutDownSampleNetwork
удалить демонстрационные узлы, издателей и подписчиков от сети ROS 2. Чтобы удалить ваши собственные узлы, используйте clear
с узлом, издателем или объектом подписчика.
exampleHelperROS2ShutDownSampleNetwork