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

В этом примере вы проходите процедуру для создания ROS пользовательские сообщения в MATLAB®. У вас должен быть пакет ROS, который содержит необходимый msg, srv, и action файлы. Правильное содержимое файла и структура папок описаны в Пользовательском Содержимом сообщения. Эта структура папок следует стандартным соглашениям пакета ROS. Поэтому, если у вас есть какие-либо существующие пакеты, они должны совпадать с этой структурой.

Чтобы убедиться вы имеете соответствующее стороннее программное обеспечение, видите Системные требования ROS.

После обеспечения, что ваш пользовательский пакет сообщения правилен, отметьте местоположение пути к папке. Затем вызовите rosgenmsg с заданным путем и выполняют шаги выход в командном окне. Следующий пример имеет три сообщения, AB, и C, это имеет зависимости друг от друга. Этот пример также иллюстрирует, что можно использовать папку, содержащую несколько сообщений, и сгенерировать их всех одновременно.

Настраивать пользовательские сообщения в MATLAB:

  • Откройте MATLAB на новом сеансе

  • Поместите свои пользовательские сообщения в местоположение и отметьте путь к папке. Мы рекомендуем, чтобы вы поместили все свои пользовательские определения сообщения в одну папку пакетов.

    folderpath = 'c:\MATLAB\custom_msgs\packages';
  • (Необязательно), Если у вас есть существующая рабочая область сережки (catkin_ws), можно задать путь к его src папка вместо этого. Однако эта рабочая область может содержать большое количество пакетов и обмениваться сообщениями, генерация будет запущена для всех них.

    folderpath = fullfile('catkin_ws','src');
    
  • Задайте путь к папке, который содержит пользовательские пакеты сообщения, и вызовите rosgenmsg функция, чтобы создать пользовательские сообщения для MATLAB.

    rosgenmsg('c:\MATLAB\custom_msgs')
  • Затем выполните шаги от выхода 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');

Пользовательские сообщения могут также использоваться с блоками Simulink ROS.

Смотрите также

|

Похожие темы