Импорт 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

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

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

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

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

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

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

Пределы †Joint проигнорированы

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

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

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

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

<link> элементы под названием link A, link B, и link C в URDF модель сопоставляют в блоки Подсистемы Simulink, также названные 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

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

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

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

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

Соберите и симулируйте импортированную модель

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

  1. В диалоговом окне блока joint_A установите флажок State Targets> Specify Position Target и установите параметр Value на 30 градус. Это наборы параметров стартовый угол верхнего соединения.

  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 в среде Gazebo и реже используемый <model_state> и <sensor> элементы.

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

Поймайте в сети конфигурации

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

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

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

Параметры блоков импортированной модели автоматически установлены в модули по умолчанию URDF, SI. Можно изменить модули после импорта, но необходимо сделать так на черном блоком базисе. Множество других модулей поддерживается, включая тех в ядре MKS (Второй Килограмм Метра), USC (Обычные США), и другие модульные системы.

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

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

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

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

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

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

Смотрите также

Похожие темы