Назад в библиотеку

Вопросы проектирования и создания тренажеров машин и механизмов

Автор: Мыльников В. В.
Источник: Вестник Адыгейского государственного университета. Серия 4: Естественно-математические и технические науки. – 2014. – № 2(137), с. 135–146.

Аннотация

Теоретико-методологической базой данной статьи являются основы проектирования программного обеспечения, системного анализа, моделирования систем и создание систем обучения с использованием 3D графики. В настоящее время существует значительное количество тренажеров и симуляторов в авиации и космонавтике. Такие разработки должны быть и в машиностроении, и в строительстве, и для строительных машин и механизмов. Целью данной работы является создание 3D тренажера автокрана для обучения крановщиков и контроля их знаний.

Ключевые слова

Инженерная и компьютерная графика, интерактивная графика, компьютерное обучение, 3D движок, 3D Studio Max, OpenGL, DirectX, Delphi, V-Ray.


Компьютерная графика остается одной из самых впечатляющих и быстро развивающихся областей современных технологий. Она стала стандартом в прикладном программном обеспечении и компьютерных системах. Методы компьютерной графики повсеместно применяются в разработке многих продуктов, обучающих тренажерах, производстве музыкальных клипов и телерекламе, кинофильмах, анализе данных, научных исследованиях, медицинских процедурах, а также во множестве других приложений. В этих прикладных областях используются разнообразные технологии и аппаратные решения. В частности, большая часть современных исследований в области компьютерной графики связана с повышением эффективности, реализма и скорости генерации изображений.

За последние годы не только возросли функциональные возможности средств компьютерной графики, но и значительно снизилась стоимость графических рабочих станций, причем это характерно для установок всех классов как простейших, так и профессиональных. В течение нескольких лет стоимость графической станции, способной формировать около одного миллиона трехмерных многоугольников в секунду с учетом эффектов освещения и наложения текстуры, существенно снизилась. Значительно более доступными по цене стали и специализированные графические платы для персональных компьютеров. При цене несколько сотен долларов эти платы обеспечивают почти такие же возможности, как и графические рабочие станции. В области программного обеспечения также произошли серьезные изменения.

Целью настоящей работы является процесс проектирования 3D тренажеров, машин и механизмов, предназначенных для работающих на них сотрудников. Чтобы создать такие программные средства, необходимо:

Основное внимание в настоящей работе уделим разработке и проектированию тренажера автокрана, поскольку эта работа внедрена в учебном комбинате г. Майкопа и используется при подготовке крановщиков на автомобилях.

Обзор существующих подходов по созданию интерактивной 3D графики

3D движок – это центральный программный компонент компьютерных и видеоигр или других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии, упрощает разработку и часто дает игре возможность запускаться на нескольких платформах, таких, как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows.

На процессе разработки можно сэкономить за счет повторного использования одного игрового движка для создания множества различных игр.

Термин «игровой движок» появился в середине 1990-х годов, главным образом, в связи с 3D играми. Многократно используемые движки ускоряют и упрощают разработку игры, что является ценным преимуществом в конкурирующей индустрии компьютерных игр. Поэтому для нас важно иметь свой разработанный игровой движок, в частности, для создания тренажера автокрана. Этот 3D движок впоследствии может быть использован в других проектах, сэкономив очень много времени.

Главным компонентом движка является визуализатор. Он визуализирует сцену для игрока, чтобы он смог принимать определенные решения на основе отображаемой на экране информации. Визуализатор, в общем-то, первая вещь, которую нужно создать при построении игрового движка. Ведь если вы ничего не видите, то как вы узнаете, что ваш код работает? На визуализатор обычно уходит более 50% ресурсов процессора, и именно за визуализатор игровых разработчиков чаще всего и критикуют.

Визуализатор должен использовать 3D ускоритель, API, трехмерные вычисления. Для игровых приставок сейчас требуются аналогичные знания, но с приставками, по крайней мере, вам не требуется достичь постоянно меняющейся цели. Простому пользователю компьютера не понятно, почему визуализация требует столько ресурсов ПЭВМ. Но у компьютера нет зрения, как у человека, вот и попробуйте с закрытыми глазами воспроизвести качественную картину в движении.

Мы в своих работах реализуем свой собственный 3D движок CraneEngine, что обеспечит максимальное быстродействие работы в связи с полным контролем кода движка и добавление в него только необходимого функционала. Среди бесплатных движков не существует такого, который удовлетворит наши потребности и будет иметь хорошую поддержку. Среди коммерческих движков существуют X-Ray и CryEngine 3, но они стоят слишком дорого.

Обзор программных средств 3D моделирования

При разработке тренажеров мы должны создать все необходимые модели для последующей визуализации с помощью нашего движка. Для каждой модели нужно создать не только модель, но и текстуры, настроить ограничители подвижности, физическое поведении объекта. Не все программы моделирования умеют все это в полной мере. Некоторые делают одни этапы лучше и проще чем другие, некоторые программы вовсе не способны сделать какой-либо этап, потому что не были для этого предназначены. Для создания тренажера автокрана нам необходимо не так уж и много. Нам будет достаточно полигонального моделирования, наложения простых карт, карт нормалей, карт отражений, возможность «запекания» текстур, поддержка объектами «костей», экспорт в форматы OBJ. На данный момент существует множество программ, которые могут это делать. Ниже идет краткий обзор некоторых из них.

Blender

Blender – бесплатный редактор трехмерной графики и анимации. Несмотря на относительно небольшой размер, функций этого пакета вполне достаточно для работы как обычным пользователям, так и профессионалам. В программе есть все основные инструменты, которые используются в профессиональных 3D-редакторах. Blender включает в себя средства 3D моделирования, анимации, рендеринга, обработки видео, набор опций для создания интерактивных игр, визуальные 3D эффекты и многое другое. Используя эту программу, можно создавать реалистичные 3D картины, с качеством цифровой фотографии.

В Blender, как и в любой профессиональный 3D-пакет, встроено большое количество примитивов, из которых вы можете собирать свои собственные модели, различные кольца, кубы, сферы, цилиндры, дополнительные сетки и т.д.

Очень хорошая программа моделирования и анимации. Имеет даже свой движок для создания игр. Еще один ее большой плюс – она полностью бесплатна. Ее мы будем использовать для моделирования.

Solidworks

SolidWorks – это система автоматизированного проектирования (САПР), использующая привычный графический интерфейс пользователя Microsoft Windows. Другими словами, это легкое в освоении средство позволяет инженерам-проектировщикам быстро отображать свои идеи в эскизе, экспериментировать с элементами и размерами, а также создавать модели и подробные чертежи.

Эта система больше предназначена для моделирования механизмов и проверки их параметров, чем для создания моделей для тренажера.

Autodesk Maya

Autodesk Maya – представляет собой интегрированное программное решение для 3D моделирования, анимации и рендеринга, основанное на открытой архитектуре. Его выбирают производители компьютерных игр, которым требуется высокий уровень контроля за процессами создания продукции.

Очень хороший пакет для моделирования и анимации. Но версии с пробным периодом найдено не было [1].

3D Studio Max

3D Studio Max – полнофункциональная профессиональная программная система для работы с 3D графикой, разработанная компанией Autodesc.

Программа 3DS Max располагает обширными средствами по созданию разнообразных по форме и сложности трехмерных моделей реальных или фантастических объектов окружающего мира с использованием разнообразных техник и механизмов, включающих следующие:

Методы моделирования могут сочетаться друг с другом. Моделирование на основе стандартных объектов, как правило, является основным методом моделирования и служит отправной точкой для создания объектов сложной структуры, что связано с использованием примитивов в сочетании друг с другом как элементарных частей составных объектов.

В 3DS Max реализована возможность создания нескольких основных источников частиц. Начиная с 8 версии, имеется 6 основных источников частиц, демонстрирующих различное поведение.

Исходным методом визуализации в 3DS Max является сканирующий построчный алгоритм. Некоторые расширенные возможности были добавлены в сканирующий визуализатор спустя годы, такие, как расчет всеобщего освещения, анализ излучательности и трассировка лучей.

Mental ray (функция 3DS Max) является пригодной для производственного применения высококачественной системой визуализации, разработанной компанией Mental Images. Mental ray встроен в последние версии 3DS Max, это мощный инструмент визуализации, поддерживающий сегментную визуализацию (подобно механизму сопровождающей визуализации, реализованному в Maya), а также технологию распределенной визуализации, позволяющую рационально разделять вычислительную нагрузку между несколькими компьютерами. Включаемая в 3ds Max версия mental ray поставляется с набором инструментария, позволяющим относительно просто создавать множество различных эффектов.

V-Ray – популярнейший в русскоязычном пространстве внешний визуализатор компании Chaos Group.

Этот пакет является одним из лучших. В нем существуют абсолютно все возможности, которые нам нужны. Поэтому он будет использоваться нами очень широко. Также будет использоваться дополнительный визуализатор для 3D max – V-Ray, который позволит создавать более качественные текстуры и материалы для модели автокрана.

Выбор программного обеспечения, графического API

На данный момент существует два основных графических API. Это DirectX и OpenGL.

OpenGL (Open Graphics Library – открытая графическая библиотека) – спецификация, определяющая независимый от языка программирования кроссплатформенный программный интерфейс для написания приложений, использующих двумерную и трехмерную компьютерную графику.

Включает более 250-ти функций для рисования сложных трехмерных сцен из простых примитивов. Используется при создании компьютерных игр, САПР, виртуальной реальности, визуализации в научных исследованиях. На платформе Windows конкурирует с Direct3D.

DirectX – это набор API-функций, разработанных для решения задач, связанных с игровым видеопрограммированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft.

Практически все части DirectX API представляют собой наборы COMсовместимых объектов.

Для создания программы тренажера будем использовать OpenGL.

Перечислим основные критерии, по которым был сделан выбор:

OpenGL способен работать на множествах платформ, что позволит при необходимости перенос тренажера автокрана на GNU/Linux и Mac OS X.

Выбор среды разработки

Для разработки программного продукта мы воспользовались средой программирования Delphi 2009.

Delphi 2009 может работать в среде операционных систем от Windows 98 до Windows 7.

Delphi – среда разработки, использует язык программирования Delphi (начиная с 7 версии, язык в среде именуется Delphi, ранее – Object Pascal), разработанный фирмой Borland и изначально реализованный в ее пакете Borland Delphi, от которого и получил в 2003 году свое нынешнее название. Object Pascal по сути является наследником языка Pascal с объектно-ориентированными расширениями.

Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ GNU/Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и вскоре после этого было объявлено о поддержке Microsoft.NET. При этом высказывались предположения, что эти два факта взаимосвязаны.

Реализация среды разработки проектом Lazarus (Free Pascal) позволяет использовать его для создания приложений на Delphi для таких платформ, как GNU/Linux, Mac OS X и Windows CE.

Delphi является средой RAD (от англ. rapid application development – быстрая разработка приложений).

Delphi – результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил объектно-ориентированные свойства, а Delphi – объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией.

Delphi является ООП – объектно-ориентированным языком программирования, позволяющего резко снизить сроки разработки программ и существенно повысить их качество.

Современная технология динамической компиляции позволяет достигнуть уровня быстродействия, аналогичного традиционным «статическим» компиляторам (например, C++), и вопрос быстродействия зачастую зависит от качества того или иного компилятора.

Выбор дополнительных библиотек

К дополнительным библиотекам мы относим динамически связываемые библиотеки, которые предназначены для того, чтобы добавить новые функции без больших затрат времени.

Библиотека загрузки текстур

DevIL (Developer's Image Library – библиотека изображений разработчиков) – кроссплатформенная программная библиотека, целью которой является создание общего интерфейса программирования приложений для разных файловых форматов графических изображений. Изначально библиотека называлась «OpenIL», однако в связи с конфликтом с компанией Silicon Graphics была переименована в «DevIL».

DevIL состоит из трех частей: основная библиотека IL (IL Utility), библиотека утилит ILU и сервисный инструментарий ILUT (IL Utility Toolkit).

В настоящее время DevIL поддерживает чтение из 43 файловых форматов и запись в 17 файловых форматов. Среди тех форматов, для которых поддерживается и чтение, и запись, присутствуют: BMP, DDS, JPEG, PCX, PNG, RAW, TGA, TIFF.

Выбор библиотеки DevIL очевиден, она способна загружать большинство известных форматов изображений с очень высокой скоростью, другие библиотеки сильно уступают по этим критериям.

Рассмотренные программы 3D моделирования являются лучшими аналогами в своей области. С помощью любой из них можно создавать и текстурировать модели. Тем не менее, для разработки тренажера автокрана мы будем использовать Blender и Autodesk 3D Max 2009, потому что по ним намного больше информации и примеров. Для этих программ также легко найти дополнительные плагины экспорта или написать собственные. Кроме того, Blender абсолютно бесплатен для любого использования. В случае с 3D Max мы будем использовать пробную версию. Для создания и редактирования текстур будет использоваться Adobe Photoshop CS с пробным периодом.

Наш выбор программного обеспечения позволит использовать всю мощь современных CPU и GPU (видеопроцессоров) за счет использования современных компиляторов и применения шейдеров. Следует заметить, что видеоадаптер необходим не ниже указанных в минимальных требованиях. Это обусловлено тем, что поддержка шейдеров второй версии начинается именно с них. Если видеоадаптер будет неподходящий, то программа тренажера автокрана будет работать с ошибками, либо не запустится вообще.

Таким образом, для создания эффективного тренажера необходимо:

Будем использовать Delphi – объектно-ориентированный язык программирования и API OpenGL функции для рисования 3D сцен из простых примитивов для ОС Windows.

Основные подходы при создании тренажера машин и механизмов

Задача компьютерной графики – визуализация, то есть создание изображения. Визуализация выполняется исходя из описания (модели) того, что нужно отображать. Существует много методов и алгоритмов визуализации, которые различаются между собою в зависимости от того, что и как отображать. Например, отображение того, что может быть только в воображении человека – график функций, диаграмма, схема, карта. Или наоборот, имитация трехмерной реальности – изображения сцен в компьютерных развлечениях, художественных фильмах, тренажерах, в системах архитектурногопроектирования. Важными и связанными между собою факторами здесь являются: скорость изменения кадров, насыщенность сцены объектами, качество изображения, учет особенностей графического устройства.

pic1

Рисунок 1 – Уровни программных средств тренажера автокрана

pic2

Рисунок 2 – Взаимодействие компонентов тренажера автокрана

Разработка тренажера очень похожа на разработку компьютерной игры. Так что можно считать, что мы создаем компьютерную игру.

Так как мы используем часть готовых библиотек при разработке тренажера автокрана, то некоторые низкоуровневые конструкции у нас уже имеются. Наш проект будет выглядеть следующим образом: на нижнем уровне находятся библиотеки OpenGL, Windows API, DevIL, OpenAL+Ogg Vorbis, ODE, за ними – прослойка из библиотек и классов нашего движка CraneEngine, который будет содержать стандартные для каждого проекта классы и объекты, далее следуют вспомогательные утилиты, на верхнем уровне будет наше приложение с его уникальной рабочей логикой (рис. 1, 2).

В начале 1980-х, в раннюю эпоху домашних компьютеров и игровых приставок, единственный программист мог управлять почти всеми задачами разработки игры. Такая же ситуация сохранилась и в настоящее время. Однако разработка современных коммерческих видеоигр предполагает наличие широкого круга навыков и персонала поддержки. Как результат, для работы над одним проектом часто требуются целые команды.

Процесс разработки тренажера меняется в зависимости от компании и проекта. Однако разработка коммерческой игры обычно включает следующие этапы.

Предпроизводственный процесс и производство

Обычно перед началом разработки любого тренажера 3D должна сформироваться идея. В более распространенном случае, если разработчик и издатель являются разными компаниями, идея должна быть предложена руководству, одобрена и выставлена на рассмотрение заказчикам. Если заинтересованный заказчик найден, можно начинать производство.

На этапе основного производства выполняется огромный объем работ. Программисты пишут исходный код, художники рисуют графику (спрайты или 3D-модели игровых элементов). Звукооператоры разрабатывают звуковые эффекты, а композиторы пишут музыку для игры. Дизайнеры уровней создают уровни, а писатели пишут диалоги для скриптовых сцен и неигровых персонажей.

Создание 3d объектов и включение их в проект Создание моделей в 3ds max

Для создания моделей используются стандартные приемы, которых множество в различных книгах или ресурсах Интернет. Детально их описывать нет необходимости. Модели можно создавать в любой программе моделирования. Однако нужно заметить, что программа моделирования должна иметь возможность экспорта моделей в нужный нам формат, либо предоставлять систему плагинов или скриптов для написания экспортера в наш формат. Программами, которые имеют все необходимые функции, являются Blender, Autodesk Maya, Autodesk 3ds max.

Следует также отметить некоторые рекомендации, к которым следует прислушаться при создании моделей для тренажера автокрана:

Процесс создания модели автокрана довольно сложный и трудоемкий.

Сначала мы создаем все объекты крана по отдельности, затем создаем для каждой части материал.

Кроме стандартных параметров материал может содержать карты. Для реализации приемов, изложенных выше, необходимы будут следующие карты: DiffuseMap, SpecularMap, BumpMap. Позже, возможно, понадобятся и другие. Их можно и не назначать, тогда 3D Max сгенерирует их сам. Используя инструмент Render To Texture, создаем необходимые карты для всех частей модели. Далее все части модели крана необходимо переместить в места, где они должны использоваться в тренажере. Результат этапов моделирования виден на рисунках 3 и 4.

На конечном этапе необходимо экспортировать модель в формат OBJ и скопировать готовые карты.

Мы создали только модель крана, но необходимо создать еще множество других моделей. Это могут быть модели строительных материалов, недостроенные дома, модели рабочих и другие. Для некоторых из них придется создавать анимацию движения. Для моделей строителей придется создавать сложный скелет и применять сложные модификаторы.

pic3

Рисунок 3 – Шасси автокрана

pic4

Рисунок 4 – Модель автокрана

Экспорт моделей из 3ds max

В тренажере мы используем собственный формат хранения 3d моделей OBJ, нам необходимо иметь средство экспорта из среды 3ds max в наш формат. Для этих целей был написан скрипт на внутреннем языке 3d редактора.

MAXScript – это объектно-ориентированный скриптовый язык программирования, встроенный в 3ds max, и для связанных с ним продуктов.

Средство MAXScript позволяет пользователю в точности объяснить 3ds Max, что должно произойти в сцене в определенные промежутки времени. Для этого достаточно либо наглядно продемонстрировать операцию, либо ввести несколько инструкций, которые программа должна выполнить.

Скрипт успешно работает в 3ds max версии 6, 7, 8 и 9. Для экономии дискового пространства запись производится в бинарный тип данных. В файл идет запись информации о вершинах, нормалях, текстурных координатах объекта, наложенных материалах, степени прозрачности, цвете, физических параметрах.

Для того чтобы подключить модели к проекту, их недостаточно просто скопировать в соответствующие директории программы тренажера автокрана. Они должны находиться в специальном формате OBJ. Это внутренний формат для отдельных статических моделей.

Структура главной программы

Главная программа является связующим звеном между движком и логикой работы системы. Таким образом, мы можем, не изменяя движка (или даже не имея возможности сделать это), использовать всю его функциональность в своих целях, добавляя в главное приложение лишь логическую часть работы, а остальное должен делать движок (например, визуализацию или проверку столкновений).

Так как класс главной программы у нас наследуется от класса Engine, то мы можем перегрузить в нашу программу основные функции (Init, Update, Render). На рисунке 5 приведена общая схема работы нашей программы.

Сначала из перегруженной из Engine функции Init происходит инициализация переменных и настройка приложения. Если функция не существует, то, соответственно, выполнится функция из Engine, которая инициализирует все по умолчанию.

Далее вызываются функции загрузки контента (ресурсов, моделей и текстур). В ней мы загружаем все ресурсы, необходимые для работы программы [2].

После этого происходит вход в главный цикл, в котором выполняются функции Update и Render. В них и происходит вся работа. Функция Update обновляет всю логику программы (перемещения, ввод, столкновения), а функция Render визуализирует очередной кадр.

pic5

Рисунок 5 – Алгоритм работы основной программы

Руководство пользователя

При запуске приложения пользователь попадает в меню настроек тренажера, где можно выбрать карту для прохождения, разрешение экрана, уровень сглаживания и качество работы физической системы.

Нажав кнопку «Старт», пользователь переходит в главное окно тренажера.

Основные действия, которые он может производить с краном:

Также существует возможность перемещаться на кране по площадке с помощью клавиш вперед, назад, вправо, влево и мыши для ориентации в пространстве (рис. 6).

Клавиши F1, F2 служат для переноса камеры вида на место водителя крана и место оператора стрелы, клавиша F3 устанавливает камеру в свободное положение.

Из более простых механизмов нами выполнен редуктор, основное назначение которого показать его работу, сборку и разборку (рис. 10).

Заслуживает внимания работа – Кассетное изготовление железобетонных изделий (ЖБИ), выполненная на основе нашего автокрана. На рисунках 7-9 представлена работа кассетного оборудования в процессе изготовления ЖБИ [1, 3].

pic6

Рисунок 6 – Поднятие и поворот стрелы одновременно

pic7

Рисунок 7 – Армирование установки

pic8

Рисунок 8 – Подача бетона в установку

pic9

Рисунок 9 – Монтаж ЖБИ

pic10

Рисунок 10 – Редуктор в работе

Заключение

Созданы необходимые модели для тренажеров автокрана, кассетного оборудования, работы редуктора, удалось текстурировать и оснастить их. Также был разработан 3d движок CraneEngine, продемонстрированы приемы работы с ним для использования в других проектах. Ценность разработки тренажера автокрана в том, что компьютерный тренажер с помощью встроенного движка успевает среагировать на нажатие клавиш оператора (повороты, подъем груза, отцепка, выдвижение стрелы и пр.), при этом не замедляя процесс тренинга. Это и есть интерактивное программирование.

Обоснована актуальность использования программных продуктов в обучении, что повышает эффективность базовых знаний специалистов, пользующихся нашими разработками.

Снижаются текущие затраты, связанные с эксплуатацией оборудования машин и механизмов за счет использования компьютерной техники.

Можно отметить, что дипломники, способные справиться с такими работами, программируют со школьной скамьи.

Список использованной литературы

1. Колесников А. А., Мыльников В. В. Вопросы проектирования и создания симулятора автокрана КС-55727-1 // Сборник научных трудов. Тамбов, 2009. № 11. С 47-52.
2. Бурденко А. И., Мыльников В. В. Вопросы проектирования и создания 3d тренажера автокрана // Сборник научных трудов. Тамбов, 2010. № 6. С. 23-27.
3. Зайцев Л. В. Автомобильные краны. М.: Высш. шк., 1987. 322 с.