SVG-моделирование управляемых систем тел
Автор: Тимофеев Дмитрий Николаевич, Телегин Вадим Александрович, Телегин Александр Иванович, Пудовкина Светлана Геннадьевна
Рубрика: Краткие сообщения
Статья в выпуске: 4 т.19, 2019 года.
Бесплатный доступ
Описаны новые функциональные возможности программной системы (ПС) «СистемаТел», основанной на XML-технологиях, в которой для 3D-моделирования управляемых систем тел (СТ) используется расширяемый язык разметки трехмерной векторной графики (X3D). А для 2D-моделирования СТ используется скалярная векторная графика (SVG). Выполнен краткий обзор ПС моделирования роботов, использующих XML-ориентированные языки (URDF, SRDF, PLM) разметки параметров роботов. Указано на основное отличие ПС «СистемаТел» от ее аналогов. Оно связано с тем, что в ПС «СистемаТел» коллизии описываются как условия перехода от одной структуры СТ к другой, а не перехватываются в процессе графического моделирования, например, как события столкновения двух тел. Предложен язык XsysTel разметки СТ, состоящий из корневого узла и узлов , . Структура вложенности узла декларирует структуру СТ. Поля узла расширяют его использование до описания кинематических, статических и динамических свойств СТ. В узле описываются неудерживающие и динамические связи, зависящие от состояния и структуры СТ. Предложена структурная классификация СТ. В ПС «СистемаТел» различают СТ с одной Открытой Ветвью (СТОВ), СТ с одной замкнутой Ветвью (СТВ), Древовидную СТ с Открытыми Ветвями (ДСТОВ), Древовидную СТ с открытыми и замкнутыми Ветвями (с циклами) (ДСТВ). К ДСТ относится СТ, в которой структура меняется в процессе движения тел. Приведен пример СТ с изменяющейся структурой. Условия перехода между структурами могут быть геометрическими, кинематическими и динамическими, например, в виде неравенств, содержащих динамические реакции в сочленениях тел. Приведены примеры XsysTel-описания СТ на плоскости (ПСТ). Рассмотрена плоская СТОВ (ПСТОВ) и плоская ДСТ (ПДСТ) в виде моделей двуногого шагающего аппарата в одноопорной и двухопорной фазах ходьбы, а также в фазе полета. Разработан алгоритм XSLT-преобразования XsysTel-описания ПСТ в SVG-модель ПСТ.
Web-приложение, декларативное программирование, манипулятор, шагающий аппарат
Короткий адрес: https://sciup.org/147232282
IDR: 147232282 | DOI: 10.14529/ctcr190417
Текст краткого сообщения SVG-моделирование управляемых систем тел
На кафедре «Автоматика» филиала ЮУрГУ в г. Миассе разрабатывается ПС «СистемаТел». Она состоит из нескольких Web-приложений, которые описаны в статьях [1–4]. Отдельные модули ПС «СистемаТел» зарегистрированы в качестве интеллектуальной собственности [5–7]. Для трехмерного графического моделирования СТ в ПС «СистемаТел» используется XML-ориентированный расширяемый язык разметки (X3D). Примеры X3D-моделей СТ приведены, например, в монографии [8].
Здесь рассматриваются аналоги ПС «СистемаТел» и ее принципиальные отличия от этих ПС. Одно из таких отличий связано с задачей реализации в ПС «СистемаТел» 2D-моделирования ПСТ с анимацией движения тел и автоматической генерацией кода программ управления приводами с известной системой команд, в частности, автоматической генерации управляющих программных последовательностей для приводов фирмы FAULHABER. Некоторые результаты решения этой задачи изложены в настоящем сообщении.
С необходимостью иметь средство 2D-моделирования ПСТ мы столкнулись, например, в процессе разработки торговых автоматов. В статье [9] приведены десятки, а в справочнике [10] сотни ПСТ, которые можно моделировать в ПС «СистемаТел».
1. Отличия ПС «СистемаТел» от аналогов
В ПС «СистемаТел» используются XML-технологии, т. е. XML-ориентированные декларативные языки программирования (XSLT, SVG, X3D, xhtml, xforms, MahtML), а также технология CSS и AJAX. Поэтому рассмотрим некоторые известные нам ПС, использующие эти технологии для моделирования роботов, и отметим их принципиальные отличия от ПС «СистемаТел».
Для преодоления проблем моделирования СТ расширяются возможности универсального языка моделирования (UML) и используются XML-технологии [11]. Для графического моделирования СТ используются технологии html5, SVG и X3D [12]. Обзор Web3D-технологий, анализ и сравнение инструментов WebGL, X3D и Stage3D в моделировании СТ проведены в статье [13]. В статьях [14–20] описано использование операционной системы для роботов (Robot Operating System – ROS) и XML-языков разметки роботов (Unified Robot Description Format – URDF), SRDF, PLM как средство моделирования, визуализации и анимации СТ с вращательными (ВКП) и поступательными (ПКП) кинематическими парами (КП). В [14] используется AJAX3D, обеспечивающий асинхронную связь браузера с сервером (AJAX3D объединяет технологии X3D и AJAX). ROS вместе с URDF – это платформа для моделирования, управления и визуализации роботов [15]. URDF содержит семь XML-элементов. SRDF похож на URDF и расширяет его возможности, имея девять XML-элементов. PLM – формализм XML-описания физической модели СТ. Перечисленные языки являются инструментом быстрого прототипирования программного обеспечения для роботов. Они обеспечивают возможности интеграции, тестирования и повторного использования алгоритмов и программ с открытым исходным кодом, создаваемых в области автоматики и робототехники научным сообществом по всему миру. Например, в [16] рассматривается система моделирования и управления для многофункционального автономного сельскохозяйственного робота с помощью ROS и URDF. В [17–19] URDF и ROS используются для визуального представления виртуальных роботов, а также для получения информации о его кинематике и динамике. В Web-приложениях используются физические симуляторы, написанные на JavaScript и позволяющие осуществлять 3D-моделирование на основе X3DOM [20].
В большинстве симуляторов СТ моделирование начинается с обнаружения столкновений (коллизий). При обработке контакта используются расчетные контактные точки для получения соответствующих контактных сил, которые вызывают отталкивание тел в результате столкновения. Этот эффект приводит к изменению параметров движения тел. Положения, скорости и ускорения движения взаимодействующих тел рассчитываются во время обработки коллизий. Физика моделирования основана на законах Ньютона и других законах классической механики.
В ПС «СистемаТел» возможные коллизии описываются на XML-языке как условия возможных изменений связей между телами и как следствие изменения структуры исследуемой СТ. В процессе симуляции СТ на основе их уравнений динамики (УД) решаются задачи механики и управления. Если при этом выполняются условия изменения структуры СТ, то она меняется и вычисления продолжаются для СТ с новой структурой. Таким образом, в рассматриваемых аналогах сначала обнаруживаются коллизии, а потом решаются задачи механики и управления. В ПС «СистемаТел» наоборот. В процессе решения задач механики проверяются условия перестройки структуры СТ и, если они выполняются, то задача продолжает решаться для СТ с новой структурой. Если учесть, что используемые в ПС «СистемаТел» УД являются оптимальными в смысле минимума математических операций и в большинстве процессов структура СТ не меняется, то время моделирования резко сокращается, что мы наблюдаем на практике.
2. Структурная классификация СТ
В процессе описания СТ необходимо указать ее структурные, геометрические, кинематические и инерционные параметры. Они определяют вид кинематической схемы (КС) СТ, громоздкость и вид УД, а также влияют на процессы моделирования СТ.
Для структурной классификации СТ будем использовать следующие понятия. Неподвижное относительно земли тело, образующее КП с одним из тел СТ, будем называть Неподвижным Телом Отсчета (НТО). Цифрой ноль будем нумеровать НТО. Цифрой 1 будем нумеровать одно из тел СТ, образующее КП с НТО. Рассмотрим произвольное тело. Если оно образует КП с одним телом СТ, то это тело является концевым. Если тело образует КП с двумя или более телами, то одно из этих тел называют базовым телом (базой) для рассматриваемого тела, а остальные тела называют смежными. В качестве базы рассматриваемого тела выбирают следующее за ним тело на пути к НТО.
Если все тела СТ кроме концевого имеют по одному смежному телу, то такую СТ по структурному классификационному признаку будем относить к СТОВ (СТ с одной Открытой Ветвью) или к СТВ (СТ с одной замкнутой Ветвью). Если хотя бы одно тело СТ имеет больше одного смежного тела, то по структурному признаку эту СТ будем относить к ДСТОВ (Древовидная СТ с Открытыми Ветвями) или к ДСТВ, т. е. к Древовидной СТ с открытыми и замкнутыми Ветвями (с циклами). Через ДСТ будем обозначать СТ, в которой структура меняется в процессе движения тел.
Самой простой по структуре является СТОВ. В СТОВ только одно (концевое) тело образует КП с одним (предшествующим) телом. Все остальные тела СТОВ образуют КП с двумя соседними телами. У единственного концевого тела СТОВ нет смежного тела. К СТОВ относится, например, рука манипулятора с объектом манипулирования в захвате (переносимым грузом, горелкой сварочного аппарата, краскораспылителем, гаечным ключом и т. д.). Если манипулятор гаечным ключом закручивает гайку на винт, который жестко связан с землей, то манипулятор в этом процессе относится к СТВ. Ярким примером ДСТ является двуногий Шагающий Аппарат (ША), так как в двухопорной фазе ходьбы у него есть цикл, образованный связями концов ног с опорной поверхностью, т. е. с землей. Если руки ША свободны, то в фазе полета его структура относится к ДСТОВ. Таким образом по структурному признаку произвольную СТ в зависимости от ее конструкции или состояния тел можно отнести к одному из четырех классов – СТОВ, СТВ, ДСТОВ, ДСТВ или ДСТ. Общим для всех СТ является то, что любое тело СТ имеет единственное базовое тело, и если оно не концевое, то одно или несколько смежных тел. От каждого тела ДСТОВ существует единственная цепочка тел до НТО.
Самым простым способом идентификации тел СТ является их нумерация. На практике в основном используется подсистемная нумерация тел, которую можно осуществить следующим образом. Сначала от СТ необходимо перейти к ДСТОВ. Для этого в каждом цикле ДСТВ необходимо мысленно разорвать сочленение двух тел или разделить тело на части так, чтобы для каждого тела существовал единственный путь до НТО. Затем от НТО, мысленно двигаясь вдоль связей до любого концевого тела, необходимо встреченные на этом пути тела нумеровать числами 1, 2 и так далее. Потом вернуться назад (вдоль занумерованных тел) до первого занумерованного тела, у которого есть смежные незанумерованные тела, и снова двигаться вдоль незанумерован-ных тел до любого концевого тела, присваивая очередные порядковые номера этим телам. Необходимо повторять эту процедуру (возврат с продолжением нумерации) до тех пор, пока остаются незанумерованные тела. Простейшим параметром, описывающим структуру СТ, является Список Номеров Базовых Тел (СНБТ). В i-й по порядку позиции СНБТ записывается номер базы i-го тела. Последний по порядку элемент СНБТ равен номеру базы последнего тела СТ. Первый по порядку элемент СНБТ равен нулю, т. е. равен номеру НТО.
3. Описание кинематических параметров ПСТ
Объектами математического и 2D-моделирования в ПС «СистемаТел» являются управляемые СТ, тела которых движутся в параллельных друг другу плоскостях. Такие СТ мы называем плоскими и обозначаем аббревиатурой ПСТ. В ПС «СистемаТел» рассматриваются ПСТ со структурой дерева (ПДСТ). В ПДСТ тела образуют друг с другом связи, моделируемые ВКП, ПКП с одной (ПКП1) или двумя (ПКП2) степенями подвижности, а также свободными КП (СКП). В СКП тела не имеют механического контакта друг с другом, но взаимодействуют, например, посредством электромагнитных полей, или имеют друг с другом информационную связь, или меняют тип КП в процессе движения ПСТ. Чаще всего СКП образует первое тело с землей в моделях, например, ША, транспортных средств и летательных аппаратов. К ПКП или ВКП относится сочленение двух тел, допускающее относительное поступательное движение вдоль или вращение вокруг оси, жестко связанной с телами сочленения. Эту ось называют осью КП. В ПДСТ оси всех ВКП перпендикулярны плоскости движения тел. В СКП смежное тело может перемещаться относительно своей базы поступательно и вращаться вокруг оси, перпендикулярной плоскости движения тел ПСТ.
Формальное описание ПСТ рекомендуется начинать с построения ее КС. В КС ПСТ тела всех ВКП должны быть изображены в исходном относительном положении, т. е. в положении, когда их углы поворота относительно своих баз равны нулю. Все тела ПСТ должны быть пронумерованы. С каждым телом ПДСТОВ мысленно связывается СК, в которой ось абсцисс направлена горизонтально вправо, ось ординат – вертикально вниз. Начало связанной СК (ССК) тела располагается в полюсе этого тела. Если тело вращается относительно своей базы, то полюс тела выбирается на оси вращения. В ПКП полюс выбирается в любом месте смежного тела, т. е. тела с большим порядковым номером. Базовым телом КП является тело с меньшим порядковым номером. Полюс i-го тела обозначается через O i . В ПКП и СКП исходное (до начала относительного движения смежного тела) положение полюса i-го тела в его базе обозначается через Ooi. Для ВКП O i = O oi .
4. XML-описание ПСТ
Для формального описания СТ создан расширяемый язык разметки XsysTel. Это наша XML-реализация. Язык XsysTel предназначен для формального описания СТ. В XsysTel корневым является узел <системаТел>. Его поле класс содержит аббревиатуру класса, к которому относится исследуемая СТ. Для разметки структуры и кинематики СТ используется узел <тело> с полями номер , КП , КПТ , min , max . Для ДСТ используется узел <связи>, описывающий мысленно разорванные связи, структуры, которые может иметь СТ в процессе движений тел, и условия перехода к этим структурам.
Кинематика ПСТ описывается в следующих полях узла <тело>: КП – тип КП, т. е. аббревиатуры ПКП1, ВКП, ПКП2, СКП или соответственно числа 0, 1, 2, 3; КПТ – координаты (в миллиметрах) полюса тела в ССК его базы (ССКБ) (два целых числа); min, max – минимальное и максимальное значения угла поворота (в градусах) для ВКП или величин КПТ для ПКП (в миллиметрах); или величин КПТ и углов поворота для СКП. В качестве примеров на рис. 1 приведены КС маятника на подвижном основании (а) и ША в одноопорной фазе ходьбы (б), в фазе полета (в) и в двухопорной фазе ходьбы (г). В листингах 1, 2 представлены XsysTel-разметки ПСТ на рис. 1. Очевидно соответствие между КС и XsysTel-кодом ПСТ. Каждому телу ПСТ соответствует узел <тело>. Порядковый номер тела является значением поля номер узла <тело>. Значение поля КПТ содержит координаты точки O oi в ССКБ(i), где i – номер тела. Структуре ПДСТОВ соответствует структура вложенности узлов <тело>. Например, в листинге 1 в узел <тело номер="1"> вложен узел <тело номер="2">, так как первое тело является базовым для второго. В листинге 2 в узел <тело номер="1"> одновременно вложены два узла <тело номер="2"> и <тело номер="5">, так как корпус ША является базой для бедер ног.

а) б) в) г)
Рис. 1. Кинематические схемы систем тел в вертикальной плоскости
Листинг 1. XsysTel-разметка маятника на подвижном основании
<СистемаТел класс="ПСТОВ">
<Тело номер="1" КП="0" КПТ="0,0" min="-100" max="100">
<Тело номер="2" КП="1" КПТ="0,0" min="-160" max="160"/>
Тело>
СистемаТел>
Листинг 2. XsysTel-разметка шагающего аппарата в фазе полета
<СистемаТел класс="ПДСТ">
<Тело номер="1" КП="3" КПТ="0, 1000" min="0, 0, -90" max="5000, 3000, 90">
<Тело номер="2" КП="1" КПТ="0, 0" min="-90" max="160">
<Тело номер="3" КП="1” КПТ="0, 500" min="-160" max="0">
<Тело номер="4" КП="1” КПТ="0, 500" min="-90" max="30"/>
Тело>Тело>
<Тело номер="5" КП="1" КПТ="0, 0" min="-90" max="160">
<Тело номер="6" КП="1” КПТ="0, 500" min="-160" max="0">
<Тело номер="7" КП="1” КПТ="0, 500" min="-90" max="30"/>
Тело>Тело>
СистемаТел>
5. SVG-моделирование ПСТ
Между XsysTel-кодом и SVG-разметкой ПСТ установим взаимно однозначное соответствие. Каждому узлу <тело> поставим в соответствие элемент
Для уменьшения объема SVG-кода мы используем маркеры. Многие детали тел ПСТ имеют стандартные изображения в КС. Например, базовое тело первой КП всегда заземляется. Одно из тел ПКП является кареткой или направляющей для смежного с ним тела. В конце последнего тела манипулятора изображается схват и т. д. Перечисленные графические элементы (заземление, каретка, направляющая, схват) размечаются маркерами у моделей соответствующих тел. Сами тела в этом случае являются маркируемыми элементами. В начале svg-кода листинга 3 описываются все маркеры, которые в нем используются. Потом эти маркеры вставляются в те места кода, в которых повторяются соответствующие графические элементы. Этот подход позволяет значительно сократить код SVG-моделей ПСТ.
Листинг 3. SVG-разметка маятника на подвижном основании
Листинг 4. SVG-разметка ША в фазе полета
Заключение
Входными документами в ПС «СистемаТел» являются разметки СТ на языке XsysTel, разметки программных движений тел в html-таблицах и постановок задач на авторских XML-языках. На основе этих документов генерируются SVG-разметки или X3D-разметки графических моделей СТ с анимацией, MathML-разметки математических моделей СТ, XForms-разметки форм ввода начальных условий и параметров задач кинематики, статики, динамики и управления, а также XSL-FO-разметки представления результатов решения задач. Такой подход позволил в рамках одной информационной технологии решать все задачи моделирования управляемых систем тел. Изложенную здесь информацию можно использовать для графического моделирования ПСТ на языке SVG. Разметка двухмерной графической модели ПСТ с анимацией движений ее тел осуществляется просто и быстро. Для разработки SVG-модели ПСТ достаточно использовать всего два узла
Список литературы SVG-моделирование управляемых систем тел
- Телегин, А.И., Генератор X3D-моделей механических систем / А.И. Телегин, Д.Н. Тимофеев // Наука ЮУрГУ: материалы 67-й научной конференции. Секции технических наук. - Челябинск, 2015. - С. 1709-1715.
- Телегин, А.И., Web-приложение для моделирования механических систем со структурой открытого дерева / А.И. Телегин, Д.Н. Тимофеев // Наука ЮУрГУ: материалы 68-й научной конференции. Секции технических наук. - Челябинск, 2016. - С. 1123-1130.
- Телегин, А.И. Web-приложение для моделирования РТК / А.И. Телегин, Д.Н. Тимофеев, Д.И. Читалов // Наука ЮУрГУ: материалы 69-й научной конференции. Секции технических наук. - Челябинск, 2017. - С. 500-508.
- Пудовкина, C.Г. Моделирование и анимация роботизированных технологических комплексов / C.Г. Пудовкина, Д.Н. Тимофеев, Д.И. Читалов // Наука ЮУрГУ: материалы 70-й научной конференции. Секции технических наук. - Челябинск, 2018. - С. 776-784.
- Свидетельство № 2015618268 Российская Федерация. Прикладная программа для ЭВМ "Генератор X3D-модели механической системы" / А.И. Телегин, Д.Н. Тимофеев; заявитель и правообладатель ФГБОУ ВПО ЮУрГУ (НИУ). - Зарегистр. 04.08.2015. - 1 с.
- Свидетельство № 2017663301 Российская Федерация. Прикладная программа для ЭВМ "Программа для автоматического синтеза X3D-моделей, программных движений и анимации механических систем" / А.И. Телегин, Д.Н. Тимофеев; заявитель и правообладатель ФГАОУ ВО ЮУрГУ (НИУ). - Зарегистр. 28.11.2017. - 1 с.
- Свидетельство № 2017663707 Российская Федерация. Прикладная программа для ЭВМ "Maxima-код для выписывания формул вычисления динамических реакций и обобщенных движущих сил манипуляционных систем роботов"/ А.И. Телегин, Д.Н. Тимофеев; заявитель и правообладатель ФГАОУ ВО ЮУрГУ (НИУ). - Зарегистр. 11.12.2017. - 1 с.
- Телегин, А.И. X3D-моделирование механических систем: Опыт использования X3D в моделировании механических систем: моногр. / А.И. Телегин, Д.Н. Тимофеев, Д.И. Читалов; Юж.-Урал. гос. ун-т, ЭТФ. - Миасс: ЭТФ, 2014. - 66 с. - http://elibrary.ru/item.asp?=22585700.
- Телегин, А.И. Программно-методический комплекс для автоматического выписывания математических моделей плоских шарнирных механизмов / А.И. Телегин, М.И. Кайгородцев // Ракетодинамика. Энергетика. Информатика: сб. науч. тр. - Челябинск: Издат. центр ЮУрГУ, 2012. - 233 с.
- Крайнев, А.Ф. Словарь-справочник по механизмам / А.Ф. Крайнев. - 2-е изд., перераб. и доп. - М.: Машиностроение, 1987. - 560 с.
- An Extension of the Systems Modeling Language for Physical Interaction and Signal Flow Simulation / C. Bock, R. Barbau, I. Matei, M. Dadfarnia // Systems Engineering. - 2017. - Vol. 20, no. 5. - P. 395-431.
- DOI: 10.1002/sys.21380
- Бойков, А.А. Геометрические тренажеры для курса инженерной графики / А.А. Бойков // Информационная среда вуза. - 2015. - № 1 (22). - С. 49-52.
- Текутьева, Н.В. Обзор и анализ Web3D и его инструментов / Н.В. Текутьева, И.Р. Хасянов // Международная научно-техническая конференция студентов, аспирантов и молодых специалистов им. Е.В. Арменского. - 2017. - С. 155-157.
- Web-Based TeleRobotics Revisited / E. Duff, K. Usher, K. Taylor, C. Caris // Proceedings of Australian Conference on Robotics and Automation. - 2007. - 6 p.
- Zubrycki, I. Introducing modern robotics with ROS and Arduino, including case studies / I. Zubrycki, G. Granosik // Journal of Automation Mobile Robotics and Intelligent Systems. - 2014. - Vol. 8, no. 1. - P. 69-75.
- DOI: 10.14313/JAMRIS_1-2014/9
- Rapid Developing the Simulation and Control Systems for a Multifunctional Autonomous Agricultural Robot with ROS / Z. Wang, L. Gong, Q. Chen et al. // Intelligent Robotics and Applications: 9th International Conference. - 2016. - P. 26-39.
- DOI: 10.1007/978-3-319-43506-0_3
- Mortimer, M. Building a Relationship between Robot Characteristics and Teleoperation User Interfaces / M. Mortimer, B. Horan, M. Seyedmahmoudian // Sensors. - 2017, no. 17 (3). - P. 587.
- DOI: 10.3390/s17030587
- YARC - A universal kinematic controller for serial robots based on PMAC and Movelt! / Y. Su, Y. Gao, Y. Wu et al. // 2014 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference. - 2014.
- DOI: 10.1109/APSIPA.2014.7041708
- Searching Baxter's URDF robot joint and link tree for active serial chains / M. Mortimer, B. Horan, M. Joordens, A. Stojcevski // 2015 10th System of Systems Engineering Conference (SoSE). - 2015. - P. 428-433.
- DOI: 10.1109/SYSOSE.2015.7151971
- Huber, L. Initial Steps for the Coupling of JavaScript Physics Engines with X3DOM / L. Huber // Workshop on Virtual Reality Interaction and Physical Simulation (VRIPHYS). - 2013. - P. 81-90.
- DOI: 10.2312/PE.vriphys.vriphys13.081-090