Импорт 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 включают Тело, Инерцию, Твердое Преобразование и Ссылочные блоки Кадра. Твердые блоки обеспечивают конфигурации и цвета тела; эти блоки соответствуют тегам <visual> модели URDF и названы Visual. Блок Inertia обеспечивает массу, центр массы, моменты инерции и продукты инерции тела; этот блок соответствует элементу <inertial> модели URDF, и это называют Inertia.

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

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

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

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

Пределы †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, также названные joint A и joint B.

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

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

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

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

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

Блок Reference Frame идентифицирует кадр локальной ссылки элемента URDF <link>. Этот кадр совпадает с объединенным кадром связи к родительской ссылке или, как в этом случае корневой ссылки, к блоку World Frame. Твердые блоки Преобразования задают переводные и вращательные преобразования к ссылочным кадрам <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. Обновите блок-схему и запустите симуляцию. Можно обновить блок-схему путем выбора Simulation> Update Diagram. Можно моделировать модель путем выбора Simulation> 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 со ссылками на внешние файлы геометрии, но файлы должны быть в формате, совместимом с программным обеспечением Simscape Multibody. Форматы правильного файла включают STL (Стандартный Формат Мозаики) и ШАГ (Стандарт для Exchange данных о продукте), иногда называемый STP.

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

В то время как не исходно поддерживаемый в URDF, любые ссылки на файл ШАГА, которые вы включаете в свой импорт модели URDF без проблемы. При необходимости можно преобразовать любые файлы ДАУ, на которые ссылаются в модели URDF, чтобы ПРОДВИНУТЬСЯ или формат STL и обновить ссылки на файл — найденный в элементах <mesh>, вложенных в ссылке элементы <geometry> — чтобы импортировать модель с полной визуализацией.

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

Параметры блоков импортированной модели автоматически установлены в модули по умолчанию 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 испытывает недостаток в этой функции и не делает обновления модели поддержки.

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

Похожие темы