В этом примере вы переходите к процедуре создания пользовательских сообщений ROS в MATLAB®. У вас должен быть пакет ROS, содержащий необходимую msg и srv файлы. Правильное содержимое файла и структура папки описаны в разделе «Пользовательское содержимое сообщения». Эта структура папки соответствует стандартным соглашениям о пакетах ROS. Поэтому, если у вас есть какие-либо существующие пакеты, они должны совпадать с этой структурой.
Чтобы убедиться, что у вас есть соответствующее программное обеспечение сторонних производителей, смотрите Системные требования ROS.
После проверки правильности пользовательского пакета сообщений обратите внимание на путь к папке. Затем позвоните rosgenmsg указанным путем и следуйте шагам, выводимым в командном окне. В следующем примере есть три сообщения, A, B, и C, которые имеют зависимости друг от друга. Этот пример также иллюстрирует, что можно использовать папку, содержащую несколько сообщений, и генерировать их все одновременно.
Чтобы настроить пользовательские сообщения в MATLAB:
Откройте MATLAB в новом сеансе
Поместите пользовательские сообщения в место и отметьте путь к папке. Мы рекомендуем поместить все пользовательские определения сообщений в одну папку пакетов.
folderpath = 'c:\MATLAB\custom_msgs\packages';(Необязательно) Если у вас есть существующая рабочая область catkin (catkin_ws), можно задать путь к его src вместо этого папка. Однако эта рабочая область может содержать большое количество пакетов, и для всех из них будет запущена генерация сообщений.
folderpath = fullfile('catkin_ws','src');
Укажите путь к папке для пользовательских файлов сообщений и вызовите rosgenmsg функция для создания пользовательских сообщений для MATLAB.
rosgenmsg(folderpath)
Затем выполните шаги из выхода rosgenmsg.
Добавьте указанные файлы к пути MATLAB, запустив addpath и savepath в командном окне.
addpath('C:\MATLAB\custom_msgs\packages\matlab_msg_gen_ros1\msggen')
savepathОбновите все определения классов сообщений, что требует очистки рабочей области:
clear classes
rehash toolboxcache
Затем можно использовать пользовательские сообщения, как и любые другие сообщения ROS, поддерживаемые в ROS Toolbox. Проверьте эти изменения путем вызова rosmsg list и поиск типов сообщений или использование rosmessage чтобы создать новое сообщение.
custommsg = rosmessage('B/Standalone') custommsg =
ROS Standalone message with properties:
MessageType: 'B/Standalone'
IntProperty: 0
StringPropert: ''
Use showdetails to show the contents of the message
Эта заключительная верификация показывает, что пользовательский процесс генерации сообщений выполнен правильно. Теперь вы можете отправлять и получать эти сообщения по сети ROS с помощью MATLAB и Simulink®. Новые пользовательские сообщения могут использоваться как обычные типы сообщений. Они должны создавать объекты, соответствующие типу сообщений, и отображаться в рабочей рабочей области.
custommsg = rosmessage('B/Standalone');
custommsg2 = rosmessage('A/DependsOnB');
Пользовательские сообщения могут также использоваться с блоками ROS Simulink.
