smimport

Импорт модели CAD, URDF или Robotics System Toolbox

Описание

[H,dataFileName] = smimport(modelSource) создает модель Simscape Multibody из модели CAD, URDF или Robotics System Toolbox.

modelSource - имя файла или объекта, содержащего модель, или, для импорта CAD, промежуточное представление его. Модели CAD должны быть в XML-файлах, модели URDF в файлах URDF и модели Robotics System Toolbox в RigidBodyTree объекты. XML- файлы должны соответствовать XML-схеме Simscape Multibody, а URDF- файлов - спецификации URDF. Для создания RigidBodyTree требуется лицензия Robotics System Toolbox объекты.

H является указателем на модель и dataFileName - имя вспомогательного файла, который в импортированных моделях CAD хранит числовые значения параметров блоков - в массиве структур, заполненном переменным MATLAB, на которые ссылаются блоки. Файл данных предоставляет механизм для обновления импортированной модели, если модель CAD изменяется. Модели, импортированные из файлов URDF или RigidBodyTree объекты не полагаются на файлы данных для параметров блоков.

XML- файлы могут поступать из разных источников. smexportonshape функция преобразует модели Onshape CAD в XML- файлы для импорта. Плагин Simscape Multibody Link делает то же самое для Autodesk Inventor®, PTC®, и SolidWorks® Моделей. Плагин можно скачать бесплатно. Для других приложений CAD и для инструментов моделирования сборок других типов схема Simscape Multibody XML позволяет создать пользовательское приложение экспорта модели.

CAD, URDF и RigidBodyTree все модели имеют одинаковые компоненты. Это (i) твердые тела, также известные как детали в моделях CAD и ссылки в моделях URDF, и (ii) кинематические ограничения, упакованные, в некоторых случаях, как соединения. Твердые тела импортируются как подсистемы Simulink с твердым и Rigid Transform блоками - элементарные компоненты, из которых получают атрибуты формы, инерции, цвета и размещения. Ограничения отображаются в шарниры, передачи и другие блоки ограничений.

Модели URDF содержат <link> элементы, которые в свою очередь содержат <joint> элементы. Точно так же RigidBodyTree объекты содержат RigidBody объекты, которые в свою очередь содержат Joint объекты. Эта иерархия изменяется с импортом в Simscape Multibody. Соединения становятся одноуровневыми к твёрдым телам и функционируют не внутри подсистем твёрдого тела, но вместе с ними. Пределы соединений и исходные положения сохраняются как состояния положения в соответствующих блоках соединений.

Примечание

Пределы соединений импортируются из URDF и RigidBodyTree модели, но не из моделей CAD. Воспроизводите пределы соединений моделей CAD вручную, если необходимо - путем включения пределов соединений в блоках соединений и установки предельных положений на соответствующие значения.

пример

[H,dataFileName] = smimport(modelSource,Name,Value) создает модель Simscape Multibody из модели CAD, URDF или Robotics System Toolbox с пользовательским именем или регенерирует файл данных ранее импортированной модели CAD. Большинство аргументов пары "имя-значение" применяются только к моделям. Использование ImportMode для регенерации файлов данных параметров и PriorDataFile чтобы поймать непреднамеренные изменения модели, такие как удаление детали или изменение ее имени.

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

свернуть все

Имя импортируемой модели. Используйте имя файла модели для моделей CAD и URDF и имя rigidBodyTree объект для моделей Robotics System Toolbox. Включите расширение и путь для файлов модели. Файлы модели CAD должны быть в формате XML и файлы модели URDF в формате URDF. XML- файлы должны соответствовать XML-схеме Simscape Multibody. Если расширение файла отсутствует, модель принимается в формате XML. Если путь к файлу отсутствует, файл принимается в MATLAB® путь.

Пример: 'robotto.xml'

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

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

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

Пример: smimport ('sm _ робот', 'ModelName', 'robotto', 'DataFileName', 'robottos _ данные _ файл');

Моделируйте режим упрощения топологии для использования во время импорта CAD. Задайте ModelSimplification кому:

  • bringJointsToTop группировать жестко соединенные детали в подсистемы и продвигать соединения на верхний уровень в иерархии модели.

  • groupRigidBodies чтобы сгруппировать жестко соединенные части в подсистемы, но оставить соединения в их исходных местах в иерархии модели.

  • None импортировать модель как есть, без упрощения.

Соединения, выведенные на верхний уровень модели, переименовываются с помощью родовых имен, основанных на типе соединений - например, Revolute_Joint1. Подсистемам жестко соединенных компонентов, которые были сгруппированы вместе, присваиваются родовые имена на основе строки RigidSubsystem- например, RigidSubsystem1. Этот аргумент применяется только к импорту CAD.

Пример: 'bringJointsToTop'

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

Опция для генерации новой модели или обновления существующих данных моделей. Задайте ImportMode на modelAndDataFile чтобы сгенерировать новую модель и файл данных. Задайте ImportMode на dataFile чтобы сгенерировать новый файл данных для ранее импортированной модели. Функция не обновляет сам блок. Если вы не задаете ImportModeфункция запускается в modelAndDataFile режим. Этот аргумент применяется только к импорту CAD.

Пример: 'dataFile'

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

Имя Simscape™ Multibody™ модели, которую нужно сгенерировать. Модель сохранена в формате SLX. Этот аргумент недопустим, когда ImportMode установлено в dataFile. Если вы не задаете ModelNameфайл модели назван в честь файла описания мультитела. Если имя файла описания мультитела не соответствует правилам именования MATLAB, то вместо этого используется слегка измененная версия.

Пример: 'robotto'

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

Имя файла данных вспомогательного параметра. Файл данных является файлом M с параметрами блоков значениями, на которые ссылаются в импортированной модели Simscape Multibody. Если вы не задаете DataFileNameфайл данных назван в честь файла описания мультитела. Если имя файла описания мультитела не соответствует правилам именования MATLAB, вместо этого используется измененная версия. Этот аргумент применяется только к импорту CAD.

Пример: 'robottos_new_data'

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

Имя последнего файла данных параметра, сопоставленного с ранее импортированной моделью. Предыдущий файл данных помогает идентифицировать изменения, требующие особого внимания, такие как новые физические единицы измерения, добавленные и удаленные компоненты и изменения топологии модели. Этот аргумент действителен только при ImportMode установлено в dataFile. Этот аргумент применяется только к импорту CAD.

Пример: 'robottos_original_data'

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

Имя структуры данных MATLAB, представленное в файле данных параметра. Эта структура содержит числовые значения всех параметров блоков в модели Simscape Multibody. Если вы не задаете ни одного PriorDataFileни VariableName, именуется структура данных smiData. Если вы задаете PriorDataFile но не VariableNameимя структуры данных получают из предыдущего файла данных. Этот аргумент применяется только к импорту CAD.

Пример: 'robottosData'

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

Выходные аргументы

свернуть все

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

Типы данных: double

Имя файла данных параметра. Файл данных является файлом M с параметрами блоков значениями, на которые ссылаются в импортированной модели Simscape Multibody. Этот выход применяется только к импорту CAD.

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

Примеры

свернуть все

Импортируйте модель роботизированного рычага. Модель экспортирована в формате XML с помощью Simscape Multibody Link. Имя XML- файл sm_robot.xml и это часть вашей установки Simscape Multibody.

Импортируйте модель и сохраните ее в памяти как Untitled. Вы можете позже изменить имя. Поскольку модель находится в формате XML, можно опустить расширение в его имени.

smimport('sm_robot');

Обновите схему, чтобы собрать модель и визуализировать ее в Mechanics Explorer. На вкладке Modeling нажмите Update Model.

Модели CAD часто предполагают, что ось Y является вертикальной осью, в то время как модели Simscape Multibody предполагают ось Z. В результате импортированная модель появляется на экране боком. Используйте выпадающий список View convention в Mechanics Explorer, чтобы исправить различие в соглашении.

В панели инструментов Mechanics Explorer установите параметр View Convention равным Y up (XY Front) и выберите стандартную точку обзора, такую как Isometric, показанную ниже.

Выбор стандартного представления активирует новый вид представления. Модель вращается, чтобы принять ее ориентацию в исходной модели CAD.

Симулируйте модель. В руке робота отсутствует система управления, и он постоянно качается под действием силы тяжести. Основывайтесь на модели, добавляя системы управления, чтобы симулировать полезные задачи. Добавьте внутреннюю механику к шарнирам, чтобы демпфировать их движения и задать цели соединений, чтобы изменить начальное положение рычага.

Импортируйте модель руки робота и сохраните ее в активной папке с именем robotto. Назовите файл данных параметра robottos_data_file.

smimport('sm_robot','ModelName','robotto',...
'DataFileName','robottos_data_file');

Перегенерируйте файл данных для импортированной модели CAD роботизированного рычага. Чтобы избежать перезаписи исходного файла данных, назовите новый файл robottos_new_data_file.

smimport('sm_robot','ImportMode','dataFile','DataFileName',...
'robottos_new_data_file','PriorDataFile','robottos_data_file');

Наведите импортированную модель на новый файл данных и повторно инициализируйте рабочее пространство модели.

hws = get_param(bdroot,'modelworkspace');
hws.DataSource = 'MATLAB File';
hws.FileName = 'robottos_new_data_file';
hws.reload

Чтобы сделать то же самое с помощью Model Explorer, сначала выберите MODELING > DESIGN > Model Workspace, чтобы открыть Model Explorer. Далее в иерархии модели Model Explorer нажмите кнопку Model Workspace. На панели Model Workspace введите robottos_new_data_file.m в параметре File Name и нажмите Reinitialize from Source кнопку, чтобы применить изменение.

Импорт модели URDF человекоподобного робота. Модель называется sm_humanoid.urdf и это часть вашей установки Simscape Multibody.

Импортируйте модель и сохраните ее в памяти как Untitled. Вы можете позже изменить имя. Поскольку модель находится в формате URDF, требуется расширение файла.

smimport('sm_humanoid.urdf');

Обновите схему, чтобы визуализировать модель в ее начальном строении с помощью Mechanics Explorer. На вкладке Modeling нажмите Update Model.

Симулируйте модель. Как и в случае с рукой робота, человекоподобному роботу не хватает системы управления и он нерегулярно качается под натяжением силы тяжести. Линия плеча служит корневым телом в модели URDF, и поэтому она фиксируется в мировой системе координат после импорта.

Попробуйте изменить модель - например, удалив жесткое соединение между линией плеча и лабораторной системой координат и добавив подсистемы управления в различных соединениях. См. рекомендуемый пример робота Humanoid для версии модели с базовыми органами управления движением. Можно открыть пример, введя sm_import_humanoid_urdf в командной строке MATLAB.

Импорт RigidBodyTree объект для последовательного манипулятора LBR iiwa (производства KUKA Robotics). Функции модели в установке Robotics System Toolbox как модели URDF с именем iiwa14.urdf.

Преобразуйте модель URDF в RibidBodyTree объект.

iiwaRBT = importrobot('iiwa14.urdf');

Примечание

Для выполнения требуется лицензия Robotics System Toolbox importrobot (Robotics System Toolbox).

Импортируйте iiwaRBT объект в Simscape Multibody.

iiwaSM = smimport(iiwaRBT);

Обновите схему, чтобы визуализировать модель в ее начальном строении с помощью Mechanics Explorer. На вкладке Modeling нажмите Update Model.

Добавьте ускорение свободного падения вдоль отрицательной оси Z модели путем выбора Uniform Gravity > Gravity и ввода [0 0 -9.80665].

Симулируйте модель. Как и с рукой робота, iiwa14 модели не хватает системы управления и качания беспорядочно под тягой силы тяжести. Основывайтесь на модели, добавляя системы управления, чтобы симулировать полезные задачи. Добавьте внутреннюю механику к шарнирам, чтобы демпфировать их движения и задать цели соединений, чтобы изменить начальное положение рычага.

Введенный в R2012b