Пользовательские сообщения являются пользовательскими сообщениями, которые можно использовать для расширения набора типов сообщений, поддерживаемых в настоящее время в ROS 2. При отправке и получении поддерживаемых типов сообщений использовать пользовательские сообщения не требуется. Чтобы просмотреть список поддерживаемых типов сообщений, вызовите ros2 msg list
в Командном окне MATLAB ®. Дополнительные сведения о поддерживаемых сообщениях ROS 2 см. в разделе Работа с базовыми сообщениями ROS 2 .
Если вы впервые работаете с пользовательскими сообщениями ROS 2, проверьте системные требования ROS.
Пользовательские сообщения Содержимое
Пользовательские сообщения ROS 2 заданы в папках пакета ROS 2, которые содержат msg
директория. The msg
папка содержит все пользовательские определения типов сообщений. Для примера, пакет example_b_msgs
, в пределах custom
папка, имеет нижеследующие папку и структуру файла.
Пакет содержит один пользовательский тип сообщения, Standalone.msg
. MATLAB использует эти файлы, чтобы сгенерировать необходимые файлы для использования пользовательских сообщений, содержащихся в пакете. Для получения дополнительной информации о соглашениях об именовании сообщений смотрите Определение интерфейса ROS 2.
В этом примере выполняется процедура создания пользовательских сообщений ROS 2 в MATLAB ®. У вас должен быть пакет ROS 2, содержащий необходимую msg
файл.
Убедившись, что ваш пользовательский пакет сообщений верен, обратите внимание на расположение пути к папке, а затем позвоните ros2genmsg
с заданным путем. В следующем примере представлены три сообщения example_package_a,
example_package_b
, и example_package_c
которые имеют зависимости. Этот пример также иллюстрирует, что можно использовать папку, содержащую несколько сообщений, и генерировать их все одновременно.
Чтобы настроить пользовательские сообщения в MATLAB, откройте MATLAB в новом сеансе. Поместите пользовательскую папку сообщений в место и отметьте путь к папке. В этом примере пользовательская папка интерфейса сообщений присутствует в текущей директории. Если вы создаете пользовательские пакеты сообщений в отдельном месте, укажите подходящий путь к папке, содержащей пользовательские пакеты сообщений.
Укажите путь к папке для пользовательских файлов сообщений и вызовите ros2genmsg
для создания пользовательских сообщений для MATLAB.
Identifying message files in folder 'U:/Documents/MATLAB/Examples/ros-ex44405863/custom'.Done.
Validating message files in folder 'U:/Documents/MATLAB/Examples/ros-ex44405863/custom'.Done.
[3/3] Generating MATLAB interfaces for custom message packages... Done.
Running colcon build in folder 'U:/Documents/MATLAB/Examples/ros-ex44405863/custom/matlab_msg_gen/win64'.
Build in progress. This may take several minutes...
Build succeeded.build log
Функции ros2 msg list
для проверки создания новых пользовательских сообщений.
Теперь в качестве стандартных сообщений можно использовать созданное выше пользовательское сообщение. Для получения дополнительной информации об отправке и получении сообщений см. раздел Обмен данными с издателями и подписчиками ROS 2.
Создайте издателя, который будет использовать example_package_b/Standalone
сообщение.
Создайте абонента на ту же тему.
Создайте сообщение и отправьте сообщение.
Использование LatestMessage
поле, чтобы знать недавнее сообщение, полученное абонентом.
ans = struct with fields:
int_property: 12
string_property: 'This is ROS 2 custom message example'
Удалите созданные объекты ROS.