УДК 551.46.077:004.94
DOI: 10.18698/0236-3933-2017-3-47-64
МОДЕЛИРОВАНИЕ ДВИЖЕНИЯ КАБЕЛЬНОЙ ЛИНИИ ПОДВОДНОГО АППАРАТА В ПАКЕТЕ BLENDER GAME ENGINE
Н.И. Гамазов В.И. Новиков
[email protected] [email protected]
МГТУ им. Н.Э. Баумана, Москва, Российская Федерация
Аннотация
Построение реалистичной компьютерной модели системы, состоящей из телеуправляемого необитаемого подводного аппарата и кабеля, соединяющего аппарат с судном-носителем, необходимо для разработки тренажерного комплекса для обучения операторов подводных аппаратов. Такая модель должна воспроизводить ситуации, связанные с воздействием течения и маневрированием телеуправляемого необитаемого подводного аппарата (запутывание, разматывание и наматывание кабеля). Представлена модель кабеля с малым порождающим элементом, реализованная в пакете Blender Game Engine, включающая в себя алгоритмы поэлементного разматывания и наматывания, а также мгновенного создания кабеля, устойчивая к явлению его внезапного разрушения. Адекватность модели проверена с помощью сравнения конфигураций кабеля, полученных в этой модели при расчете установившегося режима, с конфигурациями кабеля в статической конечномерной модели. Рассмотрена проблема моделирования в пакете Blender Game Engine кабелей большой длины и предложен метод ее решения
Ключевые слова
Телеуправляемый необитаемый подводный аппарат, тренажерный комплекс, кабель, моделирование, разматывание, наматывание, запутывание, программное обеспечение, пакет Blender Game Engine, язык программирования Python
Поступила в редакцию 07.07.2016 © МГТУ им. Н.Э. Баумана, 2017
Постановка задачи. Разработка тренажеров для обучения и тренировки операторов телеуправляемых необитаемых подводных аппаратов (ТНПА) является актуальной проблемой в силу специфики их функционирования, а также высокой стоимости или отсутствия возможности «натурного» обучения операторов. Как правило, такой тренажер представляет собой программно-аппаратный комплекс, основное предназначение которого — максимально близкое к реальным условиям воспроизведение поста оператора с органами управления ТНПА, моделирование и визуализация поведения ТНПА при управляющих воздействиях со стороны оператора, а также окружающей обстановки — течения и прозрачности воды, наличия планктона, препятствий для маневрирования ТНПА в виде перепада глубин, подводных скал, послойного изменения плотности воды и т. д. [1, 2].
Важнейшая задача, которую необходимо решить при разработке тренажера, — компьютерное моделирование поведения системы ТНПА-кабель, соединяющей ТНПА с судном-носителем (далее — носитель). Наличие адекватной пространственной динамической модели такой системы необходимо для того, чтобы учесть взаимное влияние ТНПА и кабеля, смоделировать ситуации, связанные с воздействием течения, запутыванием, разматыванием и наматыванием кабеля при маневрировании ТНПА. Реалистическая компьютерная модель системы ТНПА-кабель позволит воспроизвести и отработать при обучении на тренажере критические ситуации, с которыми может столкнуться оператор при непосредственном управлении ТНПА.
Для компьютерного моделирования системы ТНПА-кабель необходима ее математическая модель. Такая модель должна включать в себя уравнения движения ТНПА как твердого тела с шестью степенями свободы в виде системы обыкновенных дифференциальных уравнений (ОДУ) и математическое описание движения кабеля, в зависимости от постановки, в виде системы с распределенными параметрами [3], или в виде дискретной конечномерной системы [4]. Задачи описания движения ТНПА в различных постановках, в частности, представлены в работах [5, 6]. Для описания движения кабеля как системы с распределенными параметрами используют его представление в виде гибкой (не обладающей жесткостью на изгиб и кручение) нерастяжимой нити [6], гибкой круглой (в среднем можно пренебречь гидродинамическими эффектами, связанными с поворотом поперечного сечения относительно осевой линии) растяжимой связи [7], гибкой, малорастяжимой нити [8].
Уравнения динамики нити в работе [6] получены из условия баланса сил, действующих на элемент нити малой длины с учетом силы инерции присоединенных масс воды, силы гидродинамического сопротивления и силы натяжения нити. В уравнениях движения элемента гибкой связи в работе [7] учтены силы, отнесенные к единице длины нерастянутой гибкой связи (натяжения связи, гидродинамического воздействия потока, веса), а также силы водоизмещения единицы длины растянутой гибкой связи. В работе [8] в предположении, что коэффициент жесткости нити в выражении закона Гука велик, растяжимость учитывается в уравнениях только для натяжения нити и производной натяжения по длине нити. Для такой квазинерастяжимой нити текущие ускорения элементов нити могут быть найдены непосредственно из ее состояния (положения и скорости элементов), минуя вычисление натяжений. Для численного решения уравнений в работе [8] нить аппроксимирована конечным числом прямолинейных растяжимых стержней, соединенных шарнирами без пружин и трения. В работе [4] кабель рассмотрен как плоская конечномерная система абсолютно жестких нерастяжимых стержней, соединенных между собой вращательными шарнирами. Такое представление позволяет получить уравнения динамики кабеля в виде нелинейных одномерных дифференциальных уравнений.
Для приближенного анализа динамических характеристик кабеля изменяемой длины задача плоского движения кабельной линии рассмотрена в работе [9],
при этом кабель представлен тремя стержнями, связанными идеальными шарнирами. Ближний к носителю стержень является телескопическим стержнем с переменной длиной, два остальных имеют неизменную длину. Два крайних шарнира, связывающих стержни с носителем и ТНПА, полагаются неподвижными в рассматриваемой системе координат, что соответствует совместному синхронному движению ТНПА и носителя или динамическому позиционированию ТНПА у объекта работ.
Любая из постановок задачи описания движения кабеля как системы с распределенными параметрами в результате приводит к системе нестационарных дифференциальных уравнений в частных производных. Граничными условиями должны являться уравнения движения ТНПА в виде системы ОДУ на ходовом конце кабеля и условия связи с носителем на коренном конце. Аналитическое решение таких систем удается найти только для немногих частных случаев. Схемы численного решения сложны и затратны по времени расчета. Кроме того, ни одна из рассмотренных постановок задачи не предполагает соударений элементов кабеля, необходимых для моделирования его запутывания. По мнению авторов настоящей статьи, при разработке тренажера для моделирования системы ТНПА-кабель целесообразно использовать конечномерное представление кабеля, аналогичное представлению, приведенному в работе [4], но в трехмерной постановке, и применять однин из известных программных пакетов, так называемых «движков», используемых при разработке компьютерных игр. Например, таким пакетом является пакет Blender Game Engine (BGE), примененный при разработке программного обеспечения (ПО) модели системы ТНПА-кабель.
Перечислим основные причины, по которым был выбран пакет BGE. Во-первых, этот пакет является некоммерческим проектом с открытым кодом [10], что позволит в дальнейшем сертифицировать созданное на его основе прикладное ПО. Во-вторых, для расчета физических процессов в пакете BGE используется встроенный мощный физический процессор реального времени Bullet [11], позволяющий рассчитывать столкновения твердых тел — сферы, параллелепипеда, цилиндра, конуса, выпуклого конуса — на основе реализации алгоритма расчета столкновений Гильберта — Джонсона — Керти. В-третьих, имеется развитое интернет-сообщество пользователей пакета BGE [12], активно поддерживаемое Blender Foundation, что существенно облегчает разработку ПО.
Возможности моделирования в пакете BGE. Моделируемая сущность представляется в виде сцены, на которую помещены различные объекты, каждый из которых может быть наделен определенными физическими характеристиками, в частности, геометрической формой, размерами и массой. Имеется единая для всех объектов сцены глобальная декартова система координат, и собственная для каждого объекта локальная координатная система. Для моделирования динамики задаются векторы внешних сил и моментов, действующие на каждый объект, которые по умолчанию полагаются приложенными в его центре масс. Связи между объектами задаются в виде шарниров различных типов, линейных или угловых пружин. Для каждого объекта задают битовую мас-
ку, определяющую, с какими из других объектов сцены он будет участвовать в соударениях. Расчет физических процессов в пакете BGE происходит в автоматическом режиме, т. е. для каждого объекта и для каждого такта времени интегрируются уравнения движения Ньютона, в результате чего определяются векторы скорости и перемещения объекта.
Объекты могут быть помещены на сцену заранее, в виде отдельных стандартных элементов (куб, сфера, цилиндр, тор, объемный многогранник и др.) и их комбинаций, или заданы готовыми геометрическими формами. Такие формы должны быть предварительно созданы в одном из пакетов 3D-моделирования, позволяющих экспортировать модель в формате, поддерживаемом графической оболочкой Blender. Таким пакетом является, например, САПР SolidWorks, использованный авторами настоящей работы для создания 3D-модели ТНПА. Кроме априорного формирования объектов в графической оболочке Blender возможно их динамическое создание и изменение некоторых свойств, в частности, масштаба и маски соударений в процессе выполнения программы (в runtime).
В состав стандартных элементов входят специальные объекты — камеры, позволяющие воспроизвести виды сцены, которые может наблюдать оператор, используя телевизионные камеры реального ТНПА, а также различные виды «от третьего лица», т. е. такие виды сцены, которые в общем случае недоступны оператору ТНПА. Характеристики камер — фокусное расстояние, глубина резкости, положение и углы поворота, активность — могут быть изменены в runtime. Также могут быть изменены такие параметры сцены, как освещенность, прозрачность воды, наличие и концентрация взвешенных частиц (планктон, «морской снег»). Наличие взвешенных частиц может быть имитировано либо средствами Blender, либо импортом соответствующего видеоизображения или giZ-анимации. Для придания цвета, окраски и иллюзии рельефа дна на модель сцены с помощью операции текстурирования могут быть наложены растровые изображения. В качестве текстур оболочка Blender позволяет использовать как статические изображения, так и gif-анимацию. Перечисленные свойства оболочки Blender и пакета BGE дают возможность достаточно реалистично смоделировать на тренажере подводную обстановку.
Следует отметить, что все действия с объектами и шарнирами, связанные с их созданием и уничтожением, изменением характеристик, движением, взаимодействием, заданием действующих на объекты внешних сил и моментов, программируются с помощью языка высокого уровня Python (версия 3.x), предоставляющего широкие возможности разработчику ПО [13].
Можно утверждать, что пакет BGE, позволяющий автоматически рассчитывать и визуализировать движение системы различных объектов при заданных силах и моментах и их поведение при взаимодействии друг с другом, а также реалистично воспроизводить подводную среду, может быть использован для разработки ПО тренажерного комплекса системы ТНПА-кабель.
Моделирование кабеля. В Интернете имеются примеры моделирования протяженных гибких объектов (цепей, веревок и пр.), выполненные в пакете BGE. Как правило, в таких примерах для разработки ПО используют библиотеку BPY (речь о которой пойдет далее), их исходный код недоступен, что делает невозможным практическое применение этих примеров.
Рассмотрим модель кабеля ТНПА, выполненную авторами в среде разработки пакета BGE (версия 2.76).
Кабель моделируется в виде последовательности одинаковых объектов (далее — элементов кабеля), представляющих собой жесткие нерастяжимые цилиндрические стержни конечной длины и диаметра, связанные между собой шаровыми шарнирами, которые обеспечивают поворот в точке связи вокруг трех перпендикулярных осей (3D-шарниры). Априори предполагается, что линейные перемещения в 3D-шарнирах отсутствуют. Для моделирования эффектов запутывания кабеля разрешены соударения элементов кабеля с другими объектами, в том числе соударения друг с другом. Также имеется специальный объект (Root), играющий роль порождающего элемента при создании (разматывании) кабеля и поглощающего элемента при его наматывании. Для объекта Root задана запрещающая маска соударений, т. е. этот объект не участвует в соударениях с остальными элементами кабеля и другими объектами сцены. Связь кабеля с ТНПА моделируется 3D-шарниром, соединяющим первый в последовательности элемент кабеля с объектом сцены, выполняющим роль ТНПА, а связь кабеля с носителем — аналогичным 3D-шарниром, соединяющим последний элемент кабеля с объектом Root.
Особенность рассматриваемой модели — в качестве объекта Root был использован элемент малой длины — по сравнению с номинальной длиной обычного элемента кабеля. Это позволило существенно снизить нагрузки, возникающие в 3D-шарнирах при создании или уничтожении очередного элемента и устранить явление разрушения кабеля в результате разрыва связей между элементами в процессе разматывания или наматывания кабеля.
Рассмотрим алгоритмы, моделирующие поэлементное разматывание и наматывание кабеля. Назовем «концевым» 3D-шарнир, связывающий объект Root с кабелем, элементом Old — последний элемент кабеля. Таким образом, «концевой» шарнир в текущий момент времени связывает объект Root с элементом Old. Разматывание очередного элемента кабеля реализуется в несколько этапов. На первом этапе объект Root поворачивается вокруг «концевого» шарнира в положение, при котором продольные оси объекта Root и элемента Old коллинеарны. С помощью операции мгновенного копирования объекта Root создается новый объект (New), полностью тождественный объекту Root по размерам, позиции и ориентации. Создается 3D-шарнир, связывающий объект New с элементом Old, и удаляется «концевой» шарнир. Объект New перемещается на расстояние всей длины вдоль продольной оси объекта Root, при этом происходит соответствующее перемещение и всего кабеля, рассчитываемое в пакете BGE в автоматическом режиме; вновь создается «концевой» шарнир между объектами Root и New; первый этап завершен (рис. 1).
Рис. 1. Схема первого этапа разматывания элемента кабеля: 1 — объект Root; 2 — «концевой» шарнир; 3 — объект New; 4 — ЗЭ-шарнир между объектом New
и элементом Old; 5 — элемент Old
На втором этапе происходит циклическое увеличение длины объекта New и его перемещение вплоть до достижения им номинальной длины элемента кабеля. На каждом такте цикла выполняются следующие операции. Вначале путем мгновенного масштабирования длина объекта New увеличивается на заданный шаг. При этом положение шарниров, связывающих объекты New и Root с элементом Old, остается неизменным — свойство операции масштабирования объектов в пакете BGE (рис. 2, а). Поэтому «концевой» шарнир удаляется; объект New и весь кабель перемещаются в положение, при котором начало объекта New совпадет с концом объекта Root; вновь создается «концевой» шарнир между объектами Root и New. Далее удаляется шарнир между объектом New и элементом Old; элемент Old и весь кабель перемещаются в положение, при котором начало элемента Old совпадет с концом объекта New; вновь создается шарнир между объектом New и элементом Old, что завершает последовательность операций одного такта цикла (рис. 2, б).
Рис. 2. Такт цикла второго этапа разматывания элемента кабеля: а — положение элементов и шарниров после увеличения длины объекта New; б — положение элементов и шарниров после окончания такта; 1 — объект Root; 2, 6 — начало и конец объекта New; 3 — «концевой» шарнир; 4 — объект New; 5 — ЗЭ-шарнир между объектом New и элементом Old;
7 — элемент Old
Цикл полагается завершенным, когда длина объекта New достигнет номинальной длины элемента кабеля. Затем, на третьем этапе, объект New фактически становится последним элементом кабеля, т. е. элементом Old; его идентификатор вносится в конец списка идентификаторов элементов кабеля, а идентификаторы 3D-шарниров, связывающих его с объектом Root и соседним элементом, —
в список идентификаторов связей кабеля. Если разматывание кабеля продолжается, то описанная процедура повторяется при создании следующего элемента и т. д.
Наматывание элемента кабеля также выполняется в несколько этапов. Аналогично разматыванию, на первом этапе объект Root поворачивается вокруг «концевого» шарнира в положение, при котором продольные оси объекта Root и элемента Old окажутся коллинеарными. На втором этапе выполняется циклическое уменьшение длины элемента Old и его перемещение вплоть до достижения им длины объекта Root. На каждом такте цикла наматывания выполняются следующие действия. С помощью операции мгновенного масштабирования на шаг уменьшается длина элемента Old (рис. 3, а). Удаляется шарнир между элементом Old и предпоследним элементом кабеля — назовем этот объект New. Объект New и весь кабель перемещаются в положение, в котором начало объекта New совпадает с концом элемента Old; вновь создается шарнир между элементом Old и объектом New. Удаляется «концевой» шарнир; элемент Old и весь кабель перемещаются в положение, в котором начало элемента Old совпадает с концом объекта Root; вновь создается «концевой» шарнир, что завершает такт цикла наматывания (рис. 3, б).
1 2 3 4 5
Рис. 3. Такт цикла второго этапа наматывания элемента кабеля: а — положение элементов и шарниров после уменьшения длины элемента Old; б — положение элементов и шарниров после окончания такта; 1 — объект Root; 2 — «концевой» шарнир; 3 — элемент Old; 4 — 3D-шарнир между элементами Old и New; 5 — элемент New
Цикл наматывания полагается завершенным, когда длина элемента Old станет равной длине объекта Root. На третьем этапе удаляются шарниры — «концевой» и между элементом Old и объектом New; удаляется элемент Old. Объект New и весь кабель перемещаются в положение, в котором начало объекта New совпадает с концом объекта Root; вновь создается «концевой» шарнир. Объект New фактически становится последним элементом кабеля, т. е. элементом Old. Из списка идентификаторов элементов кабеля удаляется идентификатор удаленного элемента, корректируется список идентификаторов связей — удаляются идентификаторы удаленных связей, добавляется идентификатор созданной связи. При продолжении наматывания кабеля процедура повторяется для следующего удаляемого элемента.
Для расчета координат новых положений объектов Root, New и элемента Old, работы с векторами и матрицами использовались библиотеки math и mathutils языка Python, а также функции получения свойств объектов библиотеки пакета BGE. Преобразования систем координат выполнялись в соответствии с классическими формулами, приведенными в работе [14].
Отметим, что для моделирования разматывания и наматывания кабеля авторами настоящей работы были разработаны, испытаны и другие алгоритмы, не использующие масштабирования. В этих алгоритмах длина порождающего, созданного и удаляемого элементов принималась постоянной и равной номинальной длине элемента кабеля. Главным недостатком таких алгоритмов оказался эффект внезапного разрушения кабеля, которое может произойти в процессе перемещения созданного (удаляемого) элемента вдоль продольной оси объекта Root при моделировании разматывания или наматывания. При этом вдоль оси объекта Root перемещается только ЗЭ-шарнир, связывающий перемещаемый элемент с объектом Root. Сам элемент в результате действующих на него сил и моментов и кабель начинают совершать колебания с нарастающей амплитудой, сравнимой с длиной элемента. Частота этих колебаний определяется заданной скоростью перемещения элемента, т. е. скоростью изменения длины кабеля. К разрушению кабеля приводит, по-видимому, возникающее в результате колебаний увеличение сверх допустимого предела усилия разрыва в ЗЭ-шарнирах, связывающих перемещаемый элемент с остальным кабелем и с объектом Root.
В алгоритмах с масштабированием, описанных выше, эффект разрушения кабеля удалось полностью устранить. Вследствие малой длины объекта Root и его начального поворота в положение, коллинеарное с соседним элементом, а также малой длины вновь созданного элемента кабеля New при разматывании и удаляемого элемента Old при наматывании, и малости изменения длины элемента на каждом шаге масштабирования, не возникает нарастающих колебаний кабеля. Соответственно, не происходит и его разрушения. Кроме того, реализация описанных алгоритмов при визуализации обеспечивает весьма реалистичную модель постепенного разматывания и наматывания кабеля. Скорость изменения длины кабеля может регулироваться в runtime в зависимости от условий маневрирования ТНПА.
Разработан алгоритм мгновенного создания кабеля минимальной длины, соединяющего носитель и ТНПА при заданных позиции и ориентации этих объектов сцены, а также положении точек крепления кабеля на них. Этот алгоритм применяется, если необходимо начать миссию тренировки оператора с момента, когда носитель и ТНПА уже находятся в позициях, отличающихся от исходных. Например, если условия начала миссии соответствуют какой-либо незаконченной миссии, предварительно сохраненной в файле.
Для моделирования динамики системы ТНПА-кабель необходимо для каждого объекта системы задать векторы действующих на него внешних сил и моментов, которые считаются приложенными к центру масс объекта. Такими силами и моментами являются, во-первых, внешние силы, действующие на
ТНПА: упор, создаваемый винтомоторными агрегатами, и результирующий момент; гидродинамическая сила сопротивления, обусловленная взаимодействием движущегося аппарата с жидкостью, также подвижной ввиду наличия течения; сила остаточной плавучести как результирующая силы веса и выталкивающей силы, момент этих сил. Во-вторых, внешние силы, действующие на каждый элемент кабеля — гидродинамическая сила сопротивления и сила остаточной плавучести. Для элемента кабеля гидродинамическую силу в виде касательной и нормальной составляющих к поверхности элемента рассчитывают по формулам, приведенным в работе [3]:
Рт = 0,5С^трп БЬУХ2; (1)
Бп = 0,5Скп рБЬУ2, (2)
где , Бп — касательная и нормальная составляющие гидродинамической силы; СкТ, Скп — касательный и нормальный гидродинамические коэффициенты; р — плотность воды; Д Ь — диаметр и длина элемента кабеля; У%, Уп — касательная и нормальная составляющие скорости элемента кабеля относительно воды. В качестве характерной площади при расчете касательной силы используют площадь смоченной поверхности элемента кабеля, а при расчете нормальной силы — площадь его продольного сечения.
Расчет гидродинамических сил по формулам (1), (2) проводится для всех объектов, идентификаторы которых включены в список идентификаторов элементов кабеля. Таким образом, вновь созданный элемент при разматывании кабеля начинает участвовать в динамике системы, как только его идентификатор оказывается включенным в список.
Интегрирование уравнений движения Ньютона в пакете БОБ для каждого объекта и такта времени позволяет визуализировать положение и ориентацию ТНПА и каждого элемента кабеля как функции времени. Общий вид сцены «от третьего лица», которую может наблюдать оператор тренажерного комплекса системы ТНПА-кабель, представлен на рис. 4.
Рис. 4. Общий вид сцены «от третьего лица»: 1 — носитель; 2 — кабель; 3 — ТНПА
Адекватность. Для проверки адекватности построенной модели кабеля (далее — динамическая модель) использовано сравнение результатов, полученных при выходе движения кабеля на установившийся режим при заданной силе, действующей на кабель со стороны ТНПА, и заданной скорости течения, с результатами, которые дает статическая конечномерная модель кабеля, предложенная В.В. Вельтищевым и развитая в работе [4]. В этой модели кабель представлен набором отдельных одинаковых элементов, связанных друг с другом шарнирами, и выставляются определенные условия силового взаимодействия элементов между собой.
Под установившимся режимом для динамической модели понимается статическая геометрическая конфигурация, которую принимает кабель, когда в процессе движения достигается равновесие равнодействующей гидродинамических сил, действующих на элементы кабеля, и заданной внешней силы, действующей на первый в последовательности элемент кабеля. Фактически эта сила моделирует воздействие на кабель со стороны ТНПА. Результаты, полученные при достижении установившегося режима в динамической модели, и с помощью статической модели для различного числа элементов кабеля и при различных условиях наложения внешней силы приведены на рис. 5. Для расчетов гидродинамических сил по формулам (1), (2) использованы следующие значения параметров: CkT= 0,02; Ckn = 1,2; р = 1025 кг/м3; D = 0,005 м; L = 6 м. Скорость течения равна 1,5 м/с и направлена вдоль оси X. Остаточная плавучесть кабеля принималась равной нулю.
Отметим хорошее совпадение результатов при том, что в динамической модели не используются ограничения, накладываемые на действующие силы в статической модели. Выход на установившийся режим в динамической модели достигается в течение достаточно продолжительного времени, поскольку проводится расчет движения кабеля в реальном времени. В частности, результат, представленный на рис. 5, в, потребовал нескольких часов расчета.
Реальное время, эффекты соударений и запутывания кабеля. Для задачи моделирования физических процессов в тренажере, как и в компьютерной игре, важен, прежде всего, эффект реалистичности отображения обновления сцены при визуализации. Пакет BGE как «движок», предназначенный для разработки компьютерных игр, по определению должен обеспечивать расчет физических процессов в реальном времени. Интегральным критерием этого является показатель FPS (Frames Per Second — число кадров сцены, отображаемых за одну секунду), равный частоте обновления сцены при визуализации. Кроме аппаратных ресурсов (мощность процессора, число ядер, возможности видеокарты), этот показатель определяется числом объектов сцены и сложностью их геометрии, физикой взаимодействий между ними и др. Снижение показателя FPS ниже некоторого предела означает, что при данных аппаратных ресурсах «движок» не справляется с расчетом физических процессов в реальном времени и визуализация обновления сцены начинает заметно «тормозить». В практике компьютерных игр приемлемым принимается значение показателя FPS не менее 30.
О 200 400 600 х, мм
у, мм
Рис. 5. Результаты, полученные при достижении установившегося режима в динамической модели (1), и с помощью статической модели (2) для различного числа элементов кабеля и при разных условиях наложения внешней силы: а — число элементов 100; длина кабеля 600 м; силы на ходовом конце кабеля Fx = -50 Н; Fy = -50 Н; б — число элементов 200; длина кабеля 1200 м; силы на ходовом конце кабеля Fx =-500 Н; Fy =-50 Н; в — число элементов 300; длина кабеля 1800 м; силы на ходовом конце
кабеля Fx =-700 Н; Fy =-50 Н
Рассмотрим, как на значение показателя FPS влияет наличие взаимных соударений объектов сцены. Как было отмечено выше, для моделирования эффектов запутывания кабеля в пакете BGE должны быть разрешены с помощью битовой маски соударения элементов кабеля друг с другом и другими объектами (кроме объекта Root). Без разрешения соударений моделирование запутывания кабеля оказывается невозможным — при соприкосновении элементов кабеля с другими объектами или друг с другом происходит их взаимное проникание, своеобразное «прорезание». Для выяснения возможностей пакета BGE с позиции расчета соударений в реальном времени и реалистичности модели запутывания кабеля было смоделировано несколько характерных ситуаций. Гидродинамические силы рассчитаны по формулам (1), (2), остаточная плавучесть кабеля принималась равной нулю, диаметр и длина элемента кабеля — 0,005 и 0,5 м; течение отсутствовало. Результаты, полученные при совершении ТНПА
циркуляции вокруг подводного объекта и затягивании образующихся петель кабеля, для гладкого протяженного объекта (рис. 6, а и б) и объекта с выступающими частями (рис. 6, в и г) приведены на рис. 6. Было смоделировано прохождение ТНПА сквозь одиночную замкнутую петлю кабеля (рис. 7, а) и сквозь множественные петли кабеля, образующиеся при неконтролируемом разматывании кабеля (рис. 7, б). Предельный случай множественного запутывания кабеля показан на рис. 7, в, зависимость показателя FPS от числа элементов кабеля, участвующих во взаимных соударениях (без соударений с ТНПА) при множественном запутывании, — на рис. 8.
Рис. 6. Моделирование запутывания кабеля вокруг протяженного подводного гладкого объекта при числе элементов кабеля 340 (а, 6) и объекта с выступающими частями при
числе элементов кабеля 262 (в, г): а, в — промежуточная стадия (кабель не натянут); 6, г — конечная стадия (кабель натянут за счет подвсплытия ТНПА); 1 — подводный объект; 2 — кабель; 3 — ТНПА (FPS = 60; вид сцены
«от третьего лица»)
Полученные результаты позволяют сделать следующие выводы. Если число объектов, участвующих в соударениях и определяющих запутывание, относительно невелико, то встроенный физический процессор Bullet пакета BGE вполне удовлетворительно справляется с их расчетом без заметного снижения показателя FPS, т. е. получаем картину соударений и, соответственно, запутывания кабеля, в реальном времени (см. рис. 6, рис. 7, 6). Начиная с некоторого числа объектов, участвующих в соударениях, показатель FPS начинает уменьшаться, причем весьма существенно. Отметим, что, если в соударениях элементов кабеля, соответственно, в запутывании, участвует и ТНПА, то критические значения показателя FPS достигаются при меньшем числе элементов.
в
Рис. 7. Моделирование прохождения ТНПА через петли кабеля: а — одиночная петля, число элементов 155, FPS = 60; б — множественные петли, образующиеся при неконтролируемом разматывании кабеля, число элементов 338; FPS = 3,3; в — предельный случай множественного запутывания кабеля в результате неконтролируемого разматывания,
число элементов кабеля 468; FPS = 1,97
Число элементов
Рис. 8. Зависимость показателя FPS от числа элементов кабеля, участвующих во взаимных соударениях при множественном запутывании кабеля (без соударений с ТНПА)
Заключение. Перечислим возможности использования библиотек BPY и BGE.
Для разработки ПО можно использовать встроенный язык Python графической оболочки среды разработки Blender или язык Python без обращения к графической оболочке. В первом случае может быть применена встроенная библиотека BPY графической оболочки, включающая в себя большой набор функций для работы с объектами, в том числе функции динамического изменения геометрии объектов. Для воспроизведения работы программы, разработанной с
использованием библиотеки BPY, необходим предварительный запуск графической оболочки среды разработки Blender. Во втором случае для визуализации сцены и воспроизведения работы программы достаточно запуска приложения Blender Player с соответствующим скриптом, но при разработке такой программы может быть применена только библиотека пакета BGE, в которой отсутствуют многие полезные функции библиотеки BPY. Однако в рамках общей задачи создания тренажерного комплекса невозможен предварительный запуск графической оболочки, что обусловливает использование только библиотеки пакета BGE при разработке ПО и соответствующих ограничений. В частности, единственной функцией динамического изменения геометрии объектов, доступной в библиотеке пакета BGE, является использованная выше функция масштабирования размеров объектов.
Даже при отсутствии взаимных соударений при достаточно большом числе элементов сцены показатель FPS заметно уменьшается. По-видимому, это связано с тем, что расчет физических процессов, т. е. динамического взаимодействия объектов сцены, реализован в пакете BGE в виде одного потока и не использует оптимальной возможности современных многоядерных процессоров. Заметное снижение показателя FPS (примерно в 2 раза, с 60 до 20-30) при моделировании кабеля без соударений и запутывания происходило при числе элементов кабеля более 1000.
Неустойчивость, т. е. разрыв связей между элементами кабеля при резких изменениях положения в пространстве отдельных элементов, особенно характерна, если кабель моделируется длинными и тонкими элементами (стержнями). По-видимому, для таких элементов при определенных условиях теряет устойчивость расчетная схема интегрирования уравнений движения. Можно предположить, что при этом резко возрастают рассчитанные значения ускорений и скоростей движения отдельных элементов, а также силы, действующие в шарнирах, соединяющих элементы друг с другом, что и приводит к разрыву связей. Отметим, что расчет физических процессов в пакете BGE происходит в режиме «черного ящика», т. е. отсутствует возможность контроля адекватности примененных формул и методов расчета.
Уменьшение показателя FPS и неустойчивость в пакете BGE приводят к проблеме моделирования длинных кабельных линий. Для того чтобы получить модель достаточно протяженной кабельной линии, например, длиною в несколько километров, без снижения показателя FPS, необходимо использовать длинные и тонкие элементы кабеля. Это приведет к потере устойчивости модели при резких изменениях положения элементов кабеля, связанных, например, с маневрированием ТНПА. Применение более коротких элементов кабеля не позволит получить модель длинной кабельной линии без потери FPS. Решение этой проблемы, в перспективе видится следующим образом. Для небольших участков маневрирования ТНПА, например, вблизи носителя или вблизи цели, следует использовать моделирование кабельной линии с помощью относительно небольшого числа коротких элементов с соударениями. При этом возможно
воспроизведение различных сложных ситуаций, связанных, например, с запутыванием кабеля, без снижения показателя FPS. Для моделирования перемещения ТНПА на большие расстояния, не связанного с существенными маневрами и, следовательно, с резким изменением положения элементов кабеля, может быть применена протяженная кабельная линия, состоящая из длинных и тонких элементов с отключенными соударениями. Эти несколько задач могут выполняться одновременно с помощью запуска нескольких независимых приложений Blender Player. При применении многоядерного процессора каждое запущенное приложение будет работать на своем процессорном ядре. Стыковка задач друг с другом может быть реализована путем обмена данными, например, по UDP-протоколу. Еще одним вариантом может быть использование подхода, связанного с разделением всего пространства сцены на зоны и сохранением их в виде отдельных проектных файлов или сцен с дальнейшей стыковкой [15].
ЛИТЕРАТУРА
1. Клименко Т.С., Милованов М.А., Илларионов А.В. Тренажерный комплекс для обучения операторов телеуправляемых необитаемых подводных аппаратов различных типов // Материалы XIV Международной научно-технической конференции «Современные методы и средства океанологических исследований» (МСОИ-2015). Т. 2. М.: АПР, 2015. С. 71-75.
2. Ханычев В.В. Тренажерный комплекс для обучения операторов телеуправляемых необитаемых подводных аппаратов различных типов // Материалы Шестой Всероссийской научно-технической конференции «Технические проблемы освоения мирового океана» (ТПОМО-6). Владивосток, 2015. С. 50-60.
3. Егоров В.И. Подводные буксируемые системы. Л.: Судостроение, 1981. 304 с.
4. Егоров С.А. Управление положением телеуправляемого подводного аппарата в режиме совместного с носителем движения. Дис. ... канд. техн. наук. М., 2002. 396 с.
5. Лукомский Ю.А., Чугунов В.С. Системы управления морскими подвижными объектами. Л.: Судостроение, 1988. 271 с.
6. Автономные подводные роботы: системы и технологии / М.Д. Агеев, Л.В. Киселев, Ю.В. Матвиенко и др.; под общ. ред. М.Д. Агеева. М.: Наука, 2005. 298 с.
7. Виноградов Н.И., Гутман М.Л., Лев И.Г., Нисневич М.З. Привязные подводные системы. Прикладные задачи статики и динамики. СПб.: Изд. С.-Петерб. ун-та, 2000. 324 с.
8. Шигапов Р.Д. Разработка и моделирование системы управления движением подводного аппарата, связанного кабель-тросом с кораблем. Дис. ... канд. техн. наук. Ульяновск, 2014. 116 с.
9. Вельтищев В.В. Упрощенное представление гибкого кабеля переменной длины для моделирования динамики телеуправляемого подводного комплекса // Вестник МГТУ им. Н.Э. Баумана. Сер. Машиностроение. 2012. Спец. вып. «Специальная робототехника и мехатроника». С. 32-39.
10. Blender project — free and open 3D creation software. URL: https://www.blender.org (дата обращения: 24.10.2016).
11. Real-time physics simulation // Home of the open source Bullet Physics Library and physics discussion forums. URL: http://bulletphysics.org/wordpress (дата обращения: 24.10.2016).
12. Blender artists community. Веб-сайт. URL: http://blenderartists.org/forum (дата обращения: 24.10.2016).
13. Лутц М. Программирование на Python. Т. 1, T. 2 / пер. с англ. СПб.: Символ-Плюс, 2016. 990 с.; 992 с.
14. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.: Наука, 1977. 832 с.
15. Прахов А. Blender game engine // URaldev: веб-сайт.
URL: http://www.uraldev.ru/articles/42 (дата обращения: 24.10.2016).
Гамазов Николай Иванович — канд. физ.-мат. наук, доцент кафедры «Подводные роботы и аппараты», заведующий сектором «Подводные системы» МГТУ им. Н.Э. Баумана (Российская Федерация, 105005, Москва, 2-я Бауманская ул., д. 5, стр. 1).
Новиков Владимир Игоревич — инженер отдела «Подводные системы», ассистент кафедры «Подводные роботы и аппараты» МГТУ им. Н.Э. Баумана (Российская Федерация, 105005, Москва, 2-я Бауманская ул., д. 5, стр. 1).
Просьба ссылаться на эту статью следующим образом:
Гамазов Н.И., Новиков В.И. Моделирование движения кабельной линии подводного аппарата в пакете Blender Game Engine // Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2017. № 3. C. 47-64. DOI: 10.18698/0236-3933-2017-3-47-64
SIMULATION OF UMBILICAL CABLE OF REMOTELY OPERATED UNDERWATER VEHICLE WITH BLENDER GAME ENGINE PACKAGE
N.I. Gamazov [email protected]
V.I. Novikov [email protected]
Bauman Moscow State Technical University, Moscow, Russian Federation
Abstract Keywords
Developing a realistic computer model of the system, Remotely operated underwater which consists of a remotely operated underwater vehicle vehicle, simulator, umbilical cable, (ROV) and the umbilical cable connecting the ROV to simulation, unwinding, winding, the carrier vessel is necessary for developing a simulator tangling, software, Blender Game for training ROV operators. The model should be able to Engine package, Python program-reproduce a situation related to the water flow and ROV ming language maneuvering (tangling, winding and unwinding of umbilical cable). Computer model of umbilical cable with small generating element, resistant to the phenomenon of sudden destruction, created with Blender Game Engine package (BGE), is provided. The model includes algorithms of element-wise cable winding and unwinding, and instant creation. We checked the adequacy of the model by comparing the steady-state configurations of the cable obtained by means of the given model with the static cable model. We also examined the problem of simulation long cables in the BGE package and the method of its solution
REFERENCES
[1] Klimenko T.S., Milovanov M.A., Illarionov A.V. Trenazhernyy kompleks dlya obucheniya operatorov teleupravlyaemykh neobitaemykh podvodnykh apparatov razlichnykh tipov [Simulator complex for operator training for different types of remotely operated vehicles]. Materialy XIV Mezhdunarodnoy nauchno-tekhnicheskoy konferentsii «Sovremennye metody i sredstva okeanologicheskikh issledovaniy» (MSOI-2015). T. 2 [Proc. XIV Int. sci.-tech. conf. "Modern methods and resources for oceanological researches" (MSOI-2015). Vol. 2]. Moscow, APR Publ., 2015, pp. 71-75 (in Russ.).
[2] Khanychev V.V. Trenazhernyy kompleks dlya obucheniya operatorov teleupravlyaemykh ne-obitaemykh podvodnykh apparatov razlichnykh tipov [Simulator complex for operator training of remotely operated vehicles]. Materialy Shestoy Vserossiyskoy nauchno-tekhnicheskoy konferentsii «Tekhnicheskie problemy osvoeniya mirovogo okeana» (TPOMO-6) [Proc. 6th Russ. sci.-tech. conf. "Technical problems of World ocean reclamation" (TPOMO-6)]. Vladivostok, 2015, pp. 50-60 (in Russ.).
[3] Egorov V.I. Podvodnye buksiruemye sistemy [Underwater towed systems]. Leningrad, Sudostroenie Publ., 1981. 304 p.
[4] Egorov S.A. Upravlenie polozheniem teleupravlyaemogo podvodnogo apparata v rezhime sovmestnogo s nositelem dvizheniya. Dis. kand. tekhn. nauk [Positional control on remotely operated vehicle in mode of cooperative motion with carrier. Kand. tech. sci. diss.]. Moscow, 2002. 396 p.
[5] Lukomskiy Yu.A., Chugunov V.S. Sistemy upravleniya morskimi podvizhnymi ob'ektami [Management system for moving offshore objects]. Leningrad, Sudostroenie Publ., 1988. 271 p.
[6] Ageev M.D., Kiselev L.V., Matvienko Yu.V., et al. Avtonomnye podvodnye roboty: sistemy i tekhnologii. [Autonomous underwater robots: Systems and technologies]. Moscow, Nauka Publ., 2005. 298 p.
[7] Vinogradov N.I., Gutman M.L., Lev I.G., Nisnevich M.Z. Privyaznye podvodnye sistemy. Prikladnye zadachi statiki i dinamiki [Tethered underwater system. Applied problems of statics and dynamics]. Saint-Petersburg, Saint-Petersburg University Publ., 2000. 324 p.
[8] Shigapov R.D. Razrabotka i modelirovanie sistemy upravleniya dvizheniem podvodnogo apparata, svyazannogo kabel'-trosom s korablem. Dis. kand. tekhn. nauk [Development and simulation of management system for motion control of undersea vehicle connected to ship by the tether. Kand. tech. sci. diss.]. Ul'yanovsk, 2014. 116 p.
[9] Vel'tishchev V.V. The simplified representation of flexible variable-length cable for simulation of dynamics of remotely operated underwater complex. Vestn. Mosk. Gos. Tekh. Univ. im. N.E. Baumana, Mashinostr. [Herald of the Bauman Moscow State Tech. Univ., Mechan. Eng.], 2012, Spets. Vyp. «Spetsial'naya robototekhnika i mekhatronika» [Spec. iss. "Specialty robototronics and mechatronics"], pp. 32-39 (in Russ.).
[10] Blender project — free and open 3D creation software. Available at: https://www.blender.org (accessed 24.10.2016).
[11] Real-time physics simulation. Home of the open source Bullet Physics Library and physics discussion forums. Available at: http://bulletphysics.org/wordpress (accessed 24.10.2016).
[12] Blender artists community. Website. Available at: http://blenderartists.org/forum (accessed 24.10.2016).
[13] Lutz M. Programming Python. O'Reilly Media, 2006. 1552 p.
[14] Korn G.A., Korn T.M. Mathematical handbook for scientists and engineers: Definitions, theorems, and formulas for reference and review. General Publishing Company, 2000. 1152 p.
[15] Prakhov A. Blender game engine. URaldev: website. Available at: http://www.uraldev.ru/ articles/42 (accessed 24.10.2016).
Gamazov N.I. — Cand. Sc. (Phys.-Math.), Assoc. Professor of Underwater Robots and Vehicles Department, Sector Head of Underwater Systems Department, Bauman Moscow State Technical University (2-ya Baumanskaya ul. 5, str. 1, Moscow, 105005 Russian Federation).
Novikov V.I. — engineer of Underwater Systems Department, Assistant of Underwater Robots and Vehicles Department, Bauman Moscow State Technical University (2-ya Baumanskaya ul. 5, str. 1, Moscow, 105005 Russian Federation).
Please cite this article in English as:
Gamazov N.I., Novikov V.I. Simulation of Umbilical Cable of Remotely Operated Underwater Vehicle with Blender Game Engine Package. Vestn. Mosk. Gos. Tekh. Univ. im. N.E. Baumana, Priborostr. [Herald of the Bauman Moscow State Tech. Univ., Instrum. Eng.], 2017, no. 3, pp. 47-64. DOI: 10.18698/0236-3933-2017-3-47-64
Ю.А. Кохор?в, Ф.В. Звягин
Способы расчета точностных характеристик деталей и узлов приборов
Б Издательстве МГТУ им. Н.Э. Баумана вышло в свет учебное пособие авторов ГО.А. Кокорева, Ф.В. Звягина
«Способы расчета точностных характеристик деталей и узлов приборов»
Изложены вопросы обоснования выбора точностных характеристик, рассмотрены возможные методы расчета на точность сложных и взаимосвязанных деталей и узлов. Приведены справочные материалы, необходимые для расчета на точность деталей и узлов приборных устройств с учетом их назначения, условий эксплуатации, требований к разработке, а также примеры расчетов приборных устройств различного назначения и рационального оформления конструкторской документации. Материалы подготовлены с учетом новых ГОСТов.
По вопросам приобрет ения обращайтесь:
105005, Москва, 2-я Бауманская ул., д. 5, стр. 1
+7 (499) 263-60-'! 3
www.baumanpress.iu