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/BR2021ad_1655202_175417/mlx_to_docbook1/tp5a9c614c/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/BR2021ad_1655202_175417/mlx_to_docbook1/tp5a9c614c/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 функция для генерации зависимостей для встроенного сообщения gazebo в указанной папке.

    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/BR2021ad_1655202_175417/mlx_to_docbook1/tp5a9c614c/robotics-ex40128733/customMessage/install')
    savepath
    

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

    addpath(fullfile(folderPath,'install'))

    savepath

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

    packageGazeboPlugin

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

    свернуть все

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

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

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

    Аргументы в виде пар имя-значение

    Задайте необязательные разделенные разделенными запятой парами 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

    Ограничения

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

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

    Совет

    Supported Compilers

    Windows: Microsoft Visual C++ 14.0 и более поздние версии

    Linux: g++ 6.0.0 и более поздние версии

    Mac: Xcode Clang++ 10.0.0 и более поздние версии

    Алгоритмы

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

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

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

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

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

    Ссылки

    [1] Разработчики Google. «Буферы протокола Руководства | языка». Доступ к 17 июля 2020 года. https://developers.google.com/protocol-buffers/docs/proto.

    Расширенные возможности

    Генерация кода C/C + +
    Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

    .
    Введенный в R2020b
    Для просмотра документации необходимо авторизоваться на сайте