Создание пользовательских сообщений из пакета 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.

См. также

|

Похожие темы