Previous Page  5 / 18 Next Page
Information
Show Menu
Previous Page 5 / 18 Next Page
Page Background

Моделирование движения кабельной линии подводного аппарата в пакете

Blender Game Engine

ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2017. № 3

51

Моделирование кабеля.

В Интернете имеются примеры моделирования

протяженных гибких объектов (цепей, веревок и пр.), выполненные в пакете

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).