В этом примере вы переходите к процедуре создания пользовательских сообщений 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.