Неотъемлемой частью проектирования таких сложных систем, как системы наблюдения, навигации или управления, является разработка стендов моделирования. При применении такого рода устройств, на этапе моделирования, проработка технических решений наиболее удобна и практична, по причине низкой себестоимости, в сравнении с проведением опытов на реальном оборудовании. Стенды моделирования успешно используются для отладки алгоритмов обработки информации в вышеперечисленных системах. Работа посвящена разработке модуля визуализации для стенда моделирования системы освещения обстановки широкого назначения. Целью рассматриваемого стенда была отладка, как систем наблюдения обитаемых судов, так и автоматических систем наблюдения и управления научно-исследовательских автономных необитаемых аппаратов.
Одной из основных частей стенда моделирования систем наблюдения является моделирование тактической обстановки, в результате которого на основе начальных данных формируется движение объекта-носителя системы и наблюдаемых объектов. Тактической обстановкой, в данном контексте, будем называть совокупность сведений о местоположении и параметрах движения объектов в заданном регионе. Имитатором тактической обстановки (ИТО) является программа, моделирующая тактическую обстановку на некотором временном интервале по заданным начальным данным.
Трёхмерное графическое отображение движения моделируемых объектов в рамках создания таких стендов имеет два основных применения. Во-первых, это наглядное представление информации на экране, доступное для восприятия не только разработчику, но и специалистам других областей. Во-вторых, подобная программа, формирующая трёхмерное изображение всех объектов с учётом их движения и взаимного расположения может быть использована в качестве имитатора выхода канала видеонаблюдения (оптоэлектронного канала наблюдения), расположенного на одном из объектов. Изменяя параметры модели, можно получить наглядную графическую интерпретацию моделируемой ситуации. Разработка программы трёхмерной визуализации тактической обстановки, а также аспекты её применения рассмотрены далее в статье.
Постановка задачи и назначение программы
Основной целью работы была разработка компонента стенда моделирования, обеспечивающего трёхмерное графическое отображение истинной тактической обстановки для наглядной демонстрации результатов моделирования и обеспечения выполнения стендом ряда специальных задач.
Рассмотрим подробнее вышеописанные области применения программ. Наглядность трёхмерного представления информации о движении и взаимном расположении объектов в трёхмерном пространстве не вызывает сомнений: человеку проще воспринимать информации в её как можно более естественном представлении. Так как это информация о взаимном перемещении объектов, то воспринимать её в виде генерируемой в реальном времени трехмерной сцены будет значительно проще, чем в имеющихся альтернативах: табличном или двумерном графическом представлении информации. Особенно, если речь идёт об анализе данных не программистом разработчиком системы, а сторонним экспертом, не имеющим опыта работы с подобными системами.
Одним из применений, в котором трёхмерная визуализация особенно актуальна, является моделирование автоматических систем управления.
Рис. 1. Структура ПО стенда моделирования систем наблюдения и управления автономным необитаемым аппаратом
На рисунке 1 приведена краткая схема ПО стенда моделирования для отладки таких систем применительно к автономным необитаемым аппаратам. В ИТО задаётся начальная тактическая обстановка и устанавливается соединение с разрабатываемой программой. Текущая тактическая обстановка из ИТО передаётся в программу имитации средств наблюдения и навигации объекта-носителя, которые на её основе формируют массив наблюдаемых объектов (в том числе препятствий) и оценку координат и параметров движения носителя. Эти данные отличаются от истинных, так как формируются с учётом ошибок и погрешностей измерения. Результаты работы систем наблюдения и навигации передаются в систему управления, которая на их основе принимает те или иные решения по управлению движения объектом. Эти решения передаются в виде управляющего воздействия обратно в ИТО, который будет менять изначально заложенное движение в соответствии с поступившими командами. Таким образом мы получаем замкнутую систему с обратной связью. С периодичностью один раз в секунду, ИТО отправляет данные о положении объектов в трехмерном пространстве, и на их основе изменяется положение объектов и носителя в программе отображения истинной тактической обстановки.
Очевидно, основным результатом моделирования работы системы управления здесь является поведение объекта, наблюдение за которым значительно удобнее производить при трёхмерном его отображении, нежели путём анализа таблиц его параметров и проекции траектории и движения на разные плоскости.
Рис. 2. Структура ПО стенда моделирования оптоэлектронного канала наблюдения
На рисунке 2 представлена упрощённая структура ПО, моделирующего работу оптоэлектронного канала наблюдения. Здесь в ИТО также задаётся начальная тактическая обстановка и устанавливается соединение с разрабатываемой программой ОИТО. Роль ОИТО в данной системе — имитация выходного видеопотока, аналогичного получаемому от аппаратно-программных средств из оптоэлектронного канала наблюдения, который будет в дальнейшем обработан программой анализа видеопотока, и вместе с результатами работы других каналов наблюдения будет выведен в системе отображения. Здесь программа ОИТО используется не столько для отображения результатов моделирования, сколько в качестве используемого при моделировании инструмента. Вывод результатов здесь осуществляют штатные программы системы отображения с графическим интерфейсом пользователя. Целью такого моделирования является анализ работы, во-первых, алгоритмов обработки видеопотока, а во-вторых, проработка технических решений по организации отображения самого видеопотока в системе управления и интеграции его с остальными результатами наблюдения для оптимального представления оператору.
Разрабатываемая программа, будет напрямую общаться только с ИТО, передавая данные по сети. Таким образом, нагрузка на ЭВМ, на которой будет построена трехмерная симуляция, будет снижена на порядок, поскольку будет обрабатывать уже готовые координаты объектов и сцены действий.
Разработка программы
Для создания данного приложения, было предложено использовать платформу Unity3d. Это коммерческая программная система, специализированная под создание виртуальной реальности, нашедшая применение, в частности, в разработке множества успешных программных продуктов, чем хорошо себя зарекомендовала на мировом уровне. Пример трехмерной сцены построенной с использованием графической платформы Unity3d представлен на рисунке 3.
Рис. 3. Пример трехмерной сцены на графической платформе Unity3d
В проекте, реалистичность изображения, будет являться далеко не первостепенной задачей. Можно выделить две основные причины, по которым была выбрана именно эта платформа:
- Мультиплатформенность — проекты, написанные с использованием данной платформы, можно без проблем компилировать под все основные операционные системы.
- Полноценная среда разработки — свобода в написании кода компонентов программы, возможность привлечения сторонних библиотек, написанных при помощи любых языков программирования, для расширения встроенного функционала.
- Возможность использования языка C# для написания компонентов программы.
Параметры сцены задаются в ИТО. После задания тактической обстановки, запускается разработанная программа. В ней указывается IP адрес и порт сокета, через который будет происходить соединение. Сокет соединение реализовано при помощи стандартных библиотек C# .Net [1]. На рисунке 4 представлен интерфейс программы ИТО.
В момент получения первого пакета данных, у программы будут все необходимые данные для построения трехмерной сцены, а именно, количество объектов, их тип и координаты. При получении второго и последующих пакетов, объекты сцены начинают реагировать на изменения, и в течение одной секунды, трехмерная сцена будет переходить в состояние соответствующее последнему полученному пакету данных. Таким образом истинная тактическая обстановка будет отличаться от данных, полученных от ИТО ровно на одну секунду. На рисунке 5 показана трехмерная сцена, полученная на основе данных ИТО.
Каждому типу объекта в базе данных комплекса соответствует файл формата .3ds содержащий трехмерную модель объекта. Этот формат был выбран в связи с тем, что он хранит в себе не только информацию о геометрии объекта, но также, в случае необходимости, можно хранить в нем и данные об анимации объекта [2]. Изначально было предложено использовать формат .fbx, однако его спецификация является закрытой. При появлении каждого нового объекта в сцене, данные о его модели считываются из базы данных комплекса и представляются в формате графической платформы для вывода в трехмерной сцене. Чтение файлов 3ds реализовано при помощи сторонней библиотеки, под названием Assimp (OpenAssetImportLibrary) [3]. База моделей объектов может быть модифицирована вне зависимости от разработанного программного продукта.
Рис. 4. Интерфейс программы ИТО. Создание тактической обстановки
Рис. 5. Полученная трехмерная сцена
Таким образом, при запуске разработанной программы, пользователю представлен результат работы ИТО, в более наглядной форме. Для удобства наблюдения за объектами в сцене, положение камеры не фиксировано, и может быть задано произвольно при помощи соответствующих команд.
В дальнейшем планируется доработка графической составляющей программы: реализация динамического построения рельефа дна, по заранее заданной карте высот, а также симуляция волнения морской поверхности.
Вывод:
Разработана программа, выполняющая клиентский процесс подключения к серверу и выводящая на экран изображение, соответствующее истинной трехмерной графической интерпретации тактической ситуации, аналогичное состоянию моделируемой системы, основываясь на полученных от ИТО данных.
Программа опирается на существующую общую базу данных комплекса, которая в свою очередь может быть модифицирована вне зависимости от настоящего программного продукта.
Разработанная программа показала свою полезность при проведении моделирования на стендах и успешно внедрена в работающие имитационно-моделирующие комплексы. Программа наглядно отображает информацию и позволяет организовывать видеозахват экрана с трансляцией его в сеть для обеспечения моделирования оптоэлектронного канала.
Литература:
- An Introduction to Socket Programming in .NET using C# by Mubashir Afroz, www.codeproject.com
- 3D-Studio File Format, Martin van Velsen, Robin Fercoq, Jim Pitts
- Assimp Documentation and C/C++ Reference, http://assimp.sourceforge.net