exponenta event banner

gazebogenmsg

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

    Описание

    пример

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

    пример

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

    Например, 'GazeboVersion','Gazebo 10' устанавливает версию сообщения «Беседка» на «Беседка 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 для создания зависимостей для сообщения встроенной беседки в указанной папке.

    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.

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

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

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

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

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

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

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

    Ограничения

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

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

    Совет

    Поддерживаемые компиляторы

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

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

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

    Алгоритмы

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

    2. Используйте packageGazeboPlugin для упаковки плагина.

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

    4. Для отправки пользовательских сообщений на машину «Беседка» используйте блок «Публикация Simulink».

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

    Ссылки

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

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

    Создание кода C/C + +
    Создайте код C и C++ с помощью MATLAB ® Coder™

    .
    Представлен в R2020b