exponenta event banner

Создание пользовательских сообщений из пакета ROS

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

  1. Добавьте указанные файлы в путь MATLAB, выполнив команду addpath и savepath в окне команд.

    addpath('C:\MATLAB\custom_msgs\packages\matlab_msg_gen_ros1\msggen')
    savepath
  2. Обновить все определения классов сообщений, что требует очистки рабочей области:

    clear classes
    rehash toolboxcache

  3. Затем можно использовать пользовательские сообщения, как и любые другие сообщения 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.

См. также

|

Связанные темы