gazebogenmsg

Сгенерируйте зависимости для Gazebo пользовательская поддержка сообщения

    Описание

    пример

    gazebogenmsg(folderpath) генерирует зависимости для Gazebo пользовательская поддержка сообщения с помощью буфера протокола (protobuf) файлы (.proto) в заданной папке folderpath. Это затем выводит сгенерированные файлы зависимости к той же папке. Функция ожидает один или несколько .proto файлы в той же папке. См. Алгоритмы для получения дополнительной информации об использовании Simulink® связываться с Gazebo, а также отправкой и получением пользовательских сообщений.

    пример

    gazebogenmsg(folderpath,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение".

    Например, 'GazeboVersion','Gazebo 10' устанавливает версию сообщения Gazebo на Gazebo 10.

    Примеры

    свернуть все

    Создайте папку в локальной директории.

    folderPath = fullfile(pwd,'customMessage')
    folderPath = 
    '/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tp6a090857/robotics-ex62907275/customMessage'
    
    mkdir(folderPath)

    Создайте .proto файл в папке и задает protobuf пользовательские поля сообщения.

    messageDefinition = {'message MyPose'
                         '{'
                         '   required double x = 1;'
                         '   required double y = 2;'
                         '   required double z = 3;'
                         '}'};
    fileID = fopen(fullfile(folderPath,'MyPose.proto'),'w');
    fprintf(fileID,'%s\n',messageDefinition{:});
    fclose(fileID);

    Используйте gazebogenmsg функция, чтобы сгенерировать зависимости в созданной папке.

    gazebogenmsg(folderPath)
    Validating ...
    Selected compiler details: "g++ 8.3.0"
    [libprotobuf WARNING] No syntax specified for the proto file: MyPose.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
    Building shared library ...
    Building MEX for "MyPose.proto" file ...
    Building with 'g++'.
    MEX completed successfully.
    Building with 'g++'.
    MEX completed successfully.
    Building custom message utilities  ...
    DONE.
     
    To use the gazebo custom messages, execute following commands:
     
    addpath('/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tp6a090857/robotics-ex62907275/customMessage/install')
    savepath
    

    Используйте следующие команды, чтобы добавить и сохранить путь к установке.

    addpath(fullfile(folderPath,'install'))

    savepath

    Создайте сменный блок Gazebo 'MyPlugin' в пользовательской папке сообщения с помощью packageGazeboPlugin функция.

    packageGazeboPlugin(fullfile(folderPath,'MyPlugin'),folderPath)

    Создайте папку в локальной директории.

    folderPath = fullfile(pwd,'customMessage');
    mkdir(folderPath)
    cd(folderPath)

    Используйте gazebogenmsg функция, чтобы сгенерировать зависимости для встроенной беседки обменивается сообщениями в заданной папке.

    gazebogenmsg(folderPath,"GazeboMessageList","gazebo.msgs.Image");
    Validating ...
    Selected compiler details: "g++ 8.3.0"
    Building shared library ...
    Building MEX for "image.proto" file ...
    Building with 'g++'.
    MEX completed successfully.
    Building with 'g++'.
    MEX completed successfully.
    Building custom message utilities  ...
    DONE.
     
    To use the gazebo custom messages, execute following commands:
     
    addpath('/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tp6a090857/robotics-ex40128733/customMessage/install')
    savepath
    

    Используйте следующие команды, чтобы добавить и сохранить путь к установке.

    addpath(fullfile(folderPath,'install'))

    savepath

    Создайте сменный блок Gazebo с помощью packageGazeboPlugin функция.

    packageGazeboPlugin

    Входные параметры

    свернуть все

    Путь пользовательской папки сообщения в виде строкового скаляра или вектора символов. Папка должна содержать один или несколько .proto файлы. Путь также задает местоположение, в котором можно вывести сгенерированные файлы зависимости.

    Пример: gazebogenmsg('C:\GazeboCustomMsg')

    Типы данных: char | string

    Аргументы name-value

    Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

    Пример: 'GazeboMessageList','gazebo.msgs.IMU' генерирует зависимости для встроенного сообщения Gazebo gazebo.msgs.IMU.

    Версия сообщения Gazebo в виде разделенной запятой пары, состоящей из 'GazeboVersion' и любой 'Gazebo 9' или 'Gazebo 10'.

    Пример: 'GazeboVersion','Gazebo 10'

    Типы данных: char | string

    Gazebo встроенные сообщения в виде разделенной запятой пары, состоящей из 'GazeboMessageList' и одно или несколько встроенных сообщений из списка допустимых сообщений Gazebo.

    Чтобы получить список допустимых сообщений Gazebo, нажмите Tab после ввода 'GazeboMessageList' имя аргумента. Можно выбрать допустимое значение сообщения Gazebo из списка.

    Пример: 'GazeboMessageList','gazebo.msgs.Altimeter'

    Типы данных: char | string

    Ограничения

    • gazebogenmsg функционируйте поддерживает версию proto2 protobuf языка. Функция не поддерживает proto2 поля map, group, extend, extensions, и reserved.

    • Можно запустить модель Simulink многократно, но необходимо перезапустить MATLAB® запускать gazebogenmsg функционируйте снова. ​

    • gazebogenmsg функция, не поддерживаемая с MATLAB Compiler™.

    Советы

    Supported Compilers

    Windows: Microsoft Visual C++ 14.0 и позже

    Linux: g ++ 6.0.0 и позже ​

    Mac: Лязг XCode ++ 10.0.0 и позже

    Алгоритмы

    1. Добавьте и сохраните путь к установке путем выполнения команды, представленной в конце gazebogenmsg функциональный выход.

    2. Используйте packageGazeboPlugin функционируйте, чтобы группировать плагин.

    3. Скопируйте, установите и запустите плагин на машине Gazebo.

    4. Используйте блок Simulink Gazebo Publish, чтобы отправить пользовательские сообщения в машину Gazebo.

    5. Используйте блок Simulink Gazebo Subscribe, чтобы получить пользовательские сообщения от машины Gazebo.

    Ссылки

    [1] Google Developers. “Руководство языка | Буферы Протокола”. Полученный доступ 17 июля 2020. https://developers.google.com/protocol-buffers/docs/proto.

    Введенный в R2020b