exponenta event banner

Импорт URDF

Импорт модели URDF

Импорт модели URDF в среду Simscape™ Multibody™ осуществляется с помощью команды smimport с именем файла URDF в качестве основного аргумента. Функция определяет тип модели - URDF или XML - через расширение файла. Если расширение опущено, функция предполагает, что файл имеет формат XML, который чаще используется для импорта САПР. Например, команда

smimport('sm_humanoid.urdf')
указывает функцию для импорта модели URDF с именем sm_humanoid. Команда

smimport('sm_humanoid')

сообщает функции импортировать модель с несколькими телами из промежуточного XML-файла с именем sm_humanoid. Если функция не находит XML-файл с указанным именем, она возвращает ошибку, даже если в той же папке находится URDF-файл с таким именем. Как правило, при попытке импорта моделей URDF необходимо явно включать расширение файла URDF.

Объекты URDF, которые можно импортировать

Программа Simscape Multibody поддерживает только подмножество всех доступных элементов и атрибутов URDF. Можно импортировать модель URDF с неподдерживаемыми элементами или атрибутами, но все такие объекты игнорируются. Следующий код показывает элементы и атрибуты, которые можно и нельзя импортировать. Элементы выделены полужирным шрифтом, а атрибуты - обычным шрифтом. Неподдерживаемые элементы и атрибуты отображаются красным цветом.

<robot name>
	<link name>
		<inertial>
			<origin xyz rpy />
			<mass value />
			<inertia ixx iyy izz ixy ixz iyz />
		</inertial>
		<visual name>
			<origin xyz rpy />
			<geometry>
				<box size />
				<cylinder radius length />
				<sphere radius />
				<mesh filename scale />
			</geometry>
			<material name>
				<color rgba />
				<texture filename />
			</material>
		</visual>
		<collision name>
			<origin xyz rpy />
			<geometry>
				<box size />
				<cylinder radius length />
				<sphere radius />
				<mesh filename scale />
			</geometry>
		</collision>
	</link>
	<joint name type>
		<origin xyz rpy />
		<parent link />
		<child link />
		<axis xyz />
		<calibration rising />
		<calibration falling />
		<dynamics damping friction />
		<limit lower upper effort velocity />
		<mimic joint multiplier offset />
		<safety_controller soft_lower_limit ...
		... soft_upper_limit k_position k_velocity />
	</joint>
</robot>

Сопоставление с многоканальными блоками Simscape

URDF <robot> элемент сопоставляется с моделью Simscape Multibody. <link> элементы, вложенные в <robot> отображение элементов в блоки Simulink ® Subsystem, представляющие ссылки или, в номенклатуре Simscape Multibody, тела. <joint> элементы отображаются в эквивалентные блоки соединения Simscape Multibody. name атрибуты этих элементов сопоставляются с именем модели, именами блоков подсистемы и именами блоков соединения соответственно.

Блоки «Подсистема» включают блоки «Твердое тело», «Инерция», «Жесткое преобразование» и «Опорная рамка». Сплошные блоки обеспечивают геометрию и цвета тела; эти блоки соответствуют <visual> теги модели URDF и именуются Visual. Блок Инерции обеспечивает массу, центр масс, моменты инерции и произведения инерции тела; этот блок соответствует <inertial> элемент модели URDF с именем Inertia.

Блоки жесткого преобразования обеспечивают поступательные и вращательные смещения от локальной системы координат тела к инерциальным и визуальным элементам. Эти преобразования получены из <origin> элементы <inertial> и <visual> элементы звеньев, а также от <origin> и <axis> элементы соединений. Блок «Опорная рамка» идентифицирует локальную опорную рамку тела.

Тип используемого соединительного блока зависит от <type> атрибут <joint> элемент. Совместное отображение между URDF и Simscape Multibody программного обеспечения в значительной степени интуитивно понятны. A <joint> элемент type призматические карты в блок призматического соединения. A <joint> элемент type фиксированные карты в блоке сварного соединения. В таблице показаны сопоставления для оставшихся URDF <joint> элементы.

Соответствие между соединениями URDF и Simscape Multibody

URDF < тип соединения > АтрибутБлок многофюзеляжного соединения SimscapeСтепени свободы
revoluteПоворотное соединение Один поворот с пределами соединения
continuousШарнир вращенияОдин поворот (без ограничений соединения)
prismaticПризматический суставОдин поступательный с пределами соединения
fixedСварное соединениеНоль (жесткое соединение)
floating6-DOF СочленениеТри вращательных и три поступательных
planarПлоское соединениеДва вращательных и один поступательный

Пределы соединения игнорируются

Импорт простой модели URDF

В качестве примера импортируйте модель URDF с двойным маятником, описанную в разделе Создание простой модели URDF. Создайте модель URDF, если это еще не сделано перед продолжением. Чтобы импортировать модель, перейдите в папку, в которой была сохранена модель URDF с двойным маятником. Затем в командной строке MATLAB ® введите команду

smimport('double_pendulum.urdf')
Если модель URDF сохранена под другим именем, используйте это имя. Функция импортирует модель URDF и создает эквивалентную модель Simscape Multibody. На рисунке показана полученная модель с блоками и их линиями соединения, которые немного переставлены.

Сведения об импортированной модели

<link> элементы с именами link A, link B, и link C в карте модели URDF в блоки Simulink Subsystem также с именем link A, link B, и link C. <joint> элементы с именами joint A и joint B- каждый сtype установить в значение continuous- отображение в блоки Simscape Multibody Revolute Joint также с именемjoint A и joint B.

Блок-схема отражает топологию модели URDF - неразветвленного кинематического дерева.link C подключается к link B как дочерний элемент этого элемента. link B в свою очередь подключается к link A как дочерний элемент этого элемента. link A является корневым звеном и поэтому заземлен - условие, отраженное в жестком соединении между link A и блоки World Frame.

Топология модели URDF

Блоки подсистемы, представляющие URDF <link> каждый из элементов содержит небольшую блок-схему с одним блоком «Опорный каркас», одним блоком «Твердое тело кирпича», одним блоком «Инерция» и несколькими блоками «Жесткое преобразование». Блоки подсистемы не маскируются и могут быть открыты непосредственно двойным щелчком мыши. На рисунке показана блок-схема link A Блок подсистемы.

Блок «Brick Solid» является переводным эквивалентом <visual> Элемент URDF с именем Visual. Этот блок содержит соответствующие параметры <visual> элемент, включая геометрию связи и цвет. Блок инерции является преобразованным эквивалентом <inertial> Элемент URDF с соответствующим именем «Инерционный». Этот блок содержит соответствующие параметры <inertial> элемент, включающий массу звена, моменты инерции и произведения инерции.

link A Подсистема

Блок «Опорная рамка» идентифицирует локальную опорную рамку <link> Элемент URDF. Этот кадр совпадает с соединительным кадром соединения с родительским звеном или, как в данном случае с корневым звеном, с блоком World Frame. Блоки жесткого преобразования определяют поступательные и вращательные преобразования для опорных рамок <inertial>, <visual>, и <joint> Элементы URDF. Дополнительный блок «Жесткое преобразование» определяет преобразование поворота, необходимое для выравнивания оси соединения Simscape Multibody с осью соединения URDF.

Сборка и моделирование импортированной модели

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

  1. В диалоговом окне блока joint_A установите флажок «Цели состояния» > «Указать цель положения» и установите для параметра «Значение» значение 30 deg. Этот параметр задает начальный угол верхнего соединения.

  2. На панели Решатель (Solver) окна Параметры конфигурации (Configuration Parameters) щелкните Дополнительные опции (Additional options) и задайте для параметра Максимальный размер шага (Max step size) значение 0.01. Это значение сохраняет размер шага решателя достаточно малым для создания гладкой анимации во время моделирования. Увеличьте значение, если моделирование продолжается медленно.

  3. Обновите блок-схему и запустите моделирование. На вкладке Моделирование (Modeling) щелкните Обновить модель (Update Model). Модель можно смоделировать, выбрав команду Выполнить (Run). Mechanics Explorer показывает анимацию падения двойного маятника под действием силы тяжести.

Ограничения импорта URDF

Модели URDF допускают только древовидные топологии. Некоторые варианты URDF, такие как SDF (формат описания моделирования) и DrakeURDF, добавляют поддержку кинематических контуров. Нельзя импортировать модели в этих альтернативных форматах. Однако можно добавить кинематические контуры в импортированную модель один раз в среде Simscape Multibody.

Некоторые элементы и атрибуты URDF, полученные из расширений URDF, не поддерживаются. Расширения включают <transmission> элементы, используемые для моделирования зубчатых передач и параллельных связей, <gazebo> элементы, используемые для моделирования моделей URDF в среде беседки, и менее часто используемые <model_state> и <sensor> элементы.

Некоторые элементы и атрибуты URDF ядра также не поддерживаются. Неподдерживаемые элементы включают <collision>, используется для обнаружения коллизий каналов, и <limit>, используется для ограничения движения соединения. Неподдерживаемые атрибуты включают scale для масштабирования файла сетки, friction для совместной внутренней механики и многое другое. Неподдерживаемые элементы и атрибуты URDF игнорируются при импорте.

Геометрия сетки

Можно импортировать модели URDF со ссылками на внешние файлы геометрии, но файлы должны иметь формат STL (стандартный язык тесселяции).

Файлы геометрии Collada или DAE, распространенные в моделях URDF, не поддерживаются программным обеспечением Simscape Multibody. При импорте модели со ссылками на файлы дисковых полок геометрия, полученная из этих файлов, не визуализируется. Отсутствие визуализации может ограничить вашу способность анализировать модель, но не влияет на динамику модели.

Физические единицы

Параметры блока импортированной модели автоматически устанавливаются в единицы измерения URDF по умолчанию, SI. Единицы измерения можно изменять после импорта, но это необходимо делать на основе «черных блоков». Поддерживаются различные другие единицы, в том числе в ядре MKS (Meter-Kilogram-Second), USC (US Usicipal) и других систем единиц.

Отличия от импорта САПР

Несмотря на их сходство, включая их взаимную зависимость от smimport функция, импорт CAD и URDF различаются в некоторых важных аспектах:

  • CAD-модели импортируются в промежуточном формате XML. Модели URDF импортируются непосредственно в формате URDF.

    Промежуточные XML-файлы предоставляют информацию, необходимую для воссоздания CAD-моделей в среде Simscape Multibody. Такая же информация предоставляется непосредственно в файлах URDF при импорте моделей URDF. XML-файлы описания мультибелов должны соответствовать XML-схеме Simscape Multibody. Способы создания действительного XML-файла см. в разделе Экспорт CAD-модели.

  • Импортированные CAD-модели имеют числовые параметры, определенные в файлах MATLAB. Импортированные модели URDF имеют числовые параметры, жестко закодированные в диалоговые окна блоков.

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

См. также

Связанные темы