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/BR2020bd_1462360_136931/mlx_to_docbook3/tp26ae4906/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/BR2020bd_1462360_136931/mlx_to_docbook3/tp26ae4906/robotics-ex62907275/customMessage/install')
    savepath
    

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

    %addpath(fullfile(folderPath,'install'))
    %savepath

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

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

    В этом примере показано, как сгенерировать зависимости для встроенного сообщения Gazebo.

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

    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/BR2020bd_1462360_136931/mlx_to_docbook3/tp26ae4906/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

    Ограничения

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

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

    Советы

    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.

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

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

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