Импорт URDF

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

Вы импортируете модель URDF в Simscape™ Multibody™ окружения используя smimport функция с именем файла URDF в качестве основного аргумента. Функция определяет тип модели - URDF или XML - через расширение файла. Если вы опускаете расширение, функция принимает, что файл находится в формате XML, чаще используемом для импорта CAD. Для примера используйте команду

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 Multibody

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

Эти Блоки Subsystem состоят из твердых, Inertia, Rigid Transform и Reference Frame блоков. Твердые блоки обеспечивают геометрию и цвета тела; эти блоки соответствуют <visual> теги модели URDF и имеют имена Visual. Блок Inertia обеспечивает массу, центр масс, моменты инерции и продуктов инерции тела; этот блок соответствует <inertial> элемент модели URDF и его имя Inertia.

Блоки Rigid Transform обеспечивают поступательные и вращательные смещения от локальной системы координат тела к элементам Inertial и Visual. Эти преобразования получают из <origin> элементы <inertial> и <visual> элементы ссылок, а также от <origin> и <axis> элементы соединений. Блок Reference Frame идентифицирует локальную систему координат тела.

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

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

URDF < тип соединения > АтрибутМультибody- Блок соединений SimscapeСтепени свободы
revoluteRevolute JointОдин вращательный с пределами соединения
continuousRevolute JointОдин вращательный (без пределов соединений)
prismaticPrismatic JointОдин поступательный с пределами соединений
fixedWeld JointНуль (жесткое соединение)
floating6-DOF JointТри вращательных и три поступательных
planarPlanar JointДва вращательных и один поступательный

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

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

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

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

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

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

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

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

Блоки Subsystem, представляющий URDF <link> каждый из элементов содержит небольшую блок-схему с одним блоком системы координат, одним блоком Brick Solid, одним блоком Inertia и несколькими блоками Rigid Transform. Блоки Subsystem не маскированы и могут открываться непосредственно двойным нажатием кнопки. Рисунок показывает блок link A Subsystem блок.

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

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

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

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

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

  1. В диалоговом окне блока joint_A выберите опцию <reservedrangesplaceholder3>> <reservedrangesplaceholder2> и установите Value параметр на 30 deg. Этот параметр устанавливает начальный угол верхнего соединения.

  2. На панели Solver окна Параметров конфигурации нажмите Additional options и установите параметр Max step size на 0.01. Это значение сохраняет размер шага решателя достаточно маленьким, чтобы создать плавную анимацию во время симуляции. Увеличьте значение, если симуляция протекает медленно.

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

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

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

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

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

Сетчатые геометрии

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

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

Физические единицы измерения

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

Различия от импорта CAD

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

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

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

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

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

См. также

Похожие темы