Отчет по практике в ТОО 'Титан'
Формирование
дизайн-проекта в среде Apartment Environment с помощью Microsoft Robotics
Developer Studio
Содержание
Введение
Описание среды Apartment
Environment
Описание системы
координат
Описание алгоритма
перемещения объектов
Заключение
Введение
Пакет Microsoft
Robotics Developer Studio (RDS) предназначен для широкого круга пользователей и
разрабатывался как средство, упрощающее проектирование и изучение робототехнических
систем. Важной частью этого пакета является Визуальная среда моделирования Visual
Simulation Environment (VSE). Ряд доступных технологий компьютерных графики для
ПК и приставок можно применить для моделирования в робототехнике. В частности,
это реалистичная визуализация и физическое моделирование в масштабе реального
времени.
Среда VSE спроектирована
так, чтобы ее можно было использовать в большом количестве задач моделирования,
в которых необходимо обеспечить точность, средства визуализации с возможностью
масштабирования отображаемых сцен. В VSE используются технологии физического
моделирования AGEIA™ PhysX™ Technologies. Этот постоянно совершенствуемый
программный пакет предоставляет возможности, очень полезные для робототехники. Визуализация
сцен в среде VSE основана на программном пакете Microsoft XNA Framework.
Среда
визуального моделирования VSE обеспечивает моделирование физических объектов и
их взаимодействия, в т.ч. ударов, учитывается трение и сила тяжести.
Типичные
проблемы разработки робототехнических систем:
Дорогое и редкое аппаратное обеспечение;
Сложность диагностики аппаратного обеспечения;
Проблемы доступа к аппаратуре.
Преимущества моделирования:
Простота использования;
Поэтапный подход;
Прототипирование;
Образование.
Фактически,
применение Среды моделирования можно рассматривать как попытку преобразовать
аппаратную задачу в программную. Однако, в разработке программного обеспечения
и у физического моделирования есть собственные особенности и ограничения.
Недостатки и
ограничения моделирования:
Отсутствие шумов;
Неполнота и неточность моделей (Большое количество явлений реального
мира очень сложно (или неизвестно, как) смоделировать);
Трудоемкость настройки.
Обзор Среды моделирования.
Среда
моделирования состоит из следующих частей:
Ядро
моделирования (Simulation Engine Service) – выполняет операции по визуализации
объектов и отсчет времени для ядра физического моделирования. Отслеживает
состояние моделируемой сцены и обеспечивает для нее программный интерфейс
(доступный в виде программного сервиса, в т.ч. в распределенной среде).
Оболочка
физического ядра (Managed Physics Engine Wrapper) – изолирует пользователя от
низкоуровневого программного интерфейса физического ядра. Предоставляет более
краткий интерфейс к подсистеме физического моделирования.
Библиотека
функций физического ядра (Native Physics Engine Library) – позволяет ускорить обработку
задач физического моделирования с помощью пакета AGEIA™ PhysX™ Technology.
Объекты
(Entities) – представляют аппаратные устройства и физические объекты моделируемой
сцены. В RDS включен набор объектов, позволяющих пользователям быстро собирать
из них достаточно сложные робототехнические платформы в различных моделируемых
обстановках.
Примеры обстановок.
В поставку
Среды моделирования входят три варианта обстановки:
Обстановка
внутри помещения (Apartment Model)
Естественная
обстановка (Outdoor Model)
Городская
обстановка (Urban Model)
Эти модели
обстановок иллюстрируют уровень сложности, достижимый в Среде моделирования.
|
|
|
Обстановка внутри помещения
|
Естественная обстановка
|
Городская обстановка
|
Рис.1. Примеры обстановок в среде моделирования.
Примеры сцен
из Среды моделирования.
Ниже показан
внешний вид (слева) и физическая модель (справа) для сцены, содержащей два
объекта – робот и стол. Физическая модель, показанная на втором изображении,
представляет собой совокупность твердотельных примитивов, приближенно
представляющих объект для Среды моделирования.
|
|
Робот на основе
модульной платформе с дифференциальным приводом, лазерным дальномером и датчиком
столкновений.
|
Физическая модель.
|
Рис.2.
Примеры сцен из Среды моделирования.
Ниже крупным
планом приведен объект, состоящий из нескольких примитивных твердотельных
элементов, и физическая модель этого объекта.
|
|
Объект из нескольких
примитивов.
|
Физическая модель
объекта из нескольких примитивов
|
Простая
приборная панель для наблюдения данных от моделируемого лазерного дальномера
(изображение обстановки приведено в режиме просмотра физической модели).
Рис. 3.
Примеры объектов, состоящего из нескольких примитивов.
Ниже показан
сложный каркасный объект, построенный по данным из файла, и физическая модель
этого объекта в упрощенной форме выпуклого полигонального каркаса.
|
|
Каркасный объект,
загруженный из файла.
|
Физическая модель
каркасного объекта.
|
Рис. 4.
Пример сбора сложного каркасного объекта из простых объектов.
Описание среды Apartment Environment
Рис. 5.
Стандартный вид среды Apartment Environment.
Для запуска необходимой
среды нужно выполнить следующие действия:
В результате открывается
окно VSE и загружается сцена Apartment Environment.
Опишем
способы управления камерой. В окне среды, когда процесс моделирования запущен,
мышью можно перемещать точку зрения камеры. Сама камера остается неподвижной,
смещается точка, на которую направлен луч зрения.
Для
перемещения камеры можно пользоваться клавишами:
Клавиша
|
Действие
|
w или Стрелка вверх
|
смещение камеры вперед
|
s или Стрелка вниз
|
назад
|
a или Стрелка влево
|
влево
|
d или Стрелка вправо
|
вправо
|
q
|
вверх
|
e
|
вниз
|
Если одну из
перечисленных клавиш нажимать вместе с Shift, то скорость перемещения камеры
будет увеличена. Если одновременно с клавишами перемещения камеры пользоваться
мышью, то можно выполнять «облет» вокруг объектов сцены.
Опишем панель
меню среды:
Рис. 6.
Панель меню.
File –
вкладка операций с файлом.
Open Scene –
открывает и загружает извне новую сцену.
Save Scene
As… - сохранить сцену как…
Save Material
Changes – сохранить изменения в сцене.
Create
Embedded Resources – «захватить вложенные ресурсы».
Capture Image
As… - захватить образ.
Exit Simulator
– выход из программы RDS.
View – вид.
Playback Bar
– вызывает или закрывает Панель Воспроизведения.
Рис. 7.
Панель воспроизведения.
Status Bar –
вызывает (или закрывает) строку статуса. В этой строке отображается отчет времени,
позиция камеры, и др.
Рис. 8. Cтрока
статуса.
Profiler –
вызывает окно изменения вида Профайлер:
Рис. 9. Окно
изменения вида.
Look Along –
перемещение камеры по тем осям координат X, Y, Z в сторону как увеличения, так
и уменьшения их значений.
Render –
режим изображения.
Visual –
визуализация вкл/выкл.
Wireframe –
посмотреть каркас.
Physics –
показать физические свойства.
Combined –
одновременное отображение среды и её каркаса.
No Rendering
– нет визуализации. При нажатии вместо среды отображается черный экран.
Camera –
камера.
MainCamera –
главная камера вкл/выкл.
Physics –
вкладка физических свойств.
Enabled – физические
свойства включены.
Settings… -
настройки физических свойств. При нажатии появляется окно, в котором можно:
Сделать
камеру «твердой», поставив галочку напротив «Enable rigid body for default
camera»;
Задать
значение ускорения свободного падения. По умолчанию оно равно 9,81 м/с2;
Задать режимы
времени (непрерывное реальное время, или задать дискретные временные интервалы).
Рис. 10. Окно
физических настроек.
Mode – режим.
Run – запуск
симуляции.
Edit – режим
редактирования. При нажатии в левой части экрана отображается окно, в котором:
Отображаются
все объекты сцены и их названия;
При выборе
объекта и нажатии кнопки Edit Entity (редактирование объекта) отображается панель
операций с объектом и окно редактирования. В панели можно задавать положение выбранного
объекта, изменяя координаты x, y, z; а также вращать объект. В окне
редактирования можно задать до 39 различных свойств объекта, таких как:
положение, размер, цвет частей и др. Предоставлена возможность сортировки этих
свойств как по категориям, так и в алфавитном порядке.
Рис. 11.
Панель операций с объектом.
Рис. 12. Окно
редактирование объекта.
Help –
помощь.
Help Contents
– вызывает стандартную электронную инструкцию.
About Visual
Simulation Environment 2008 – вызывает окно, в котором содержится информация о
программе (серийный номер, фирма-производитель и т.д.)
В среде
Apartment Environment стандартно находится 31 объект. Опишем первые 10
объектов:
объект 19 –
кровать в спальне. Она состоит из двух примитивов: параллелепипед коричневого
цвета с текстурой типа «шерсть», который обозначает саму кровать, и
параллелепипеда серого цвета, которая характеризует одеяло. Причем второй
примитив можно также рассматривать как плоскость, которая непосредственно
прилегает к коричневому параллелепипеду.
объект 20 –
шестиугольный стол на 4-х ножках в гостиной. Он представлен одним примитивом –
правильной 6-угольной призмой. Текстура – темное полированное дерево.
объект 25 –
цветочный горшок в гостиной. Представлен одним твердотельным цилиндром.
объект 26 –
стул в спальне. Представлен аналогично объектам 21-24.
объект 27 –
кружка с картиной в виде глобуса. В каркасе представляет собой твердотельный
цилиндр. На цилиндре имеется текстура в виде рисунка.
объект 28 –
банка пепси-колы. Представлена аналогично объектам 27 и 25. Только размеры этого
объекта значительно меньше.
объект 29 –
тумбочка для телевизора. Представляет собой параллелепипед темного цвета.
объект 30 –
телевизор. Представлен также в виде темного параллелепипеда и подставки, которая
представлена в виде цилиндра.
объект 31 –
газета. Представляет собой плоскость белого цвета, которая плотно прилегает к
объекту 20 с текстурой в виде текста.
Заметим, что
все обеты в среде Apartment Environment имеют размеры моделей в масштабе, отвечающем
масштабу в реальном мире (т.е. кровать больше стула, банка пепси-колы меньше телевизора,
и т.д.)
Описание
системы координат в среде Apartment Environment
Свяжем
систему координат с объектом 20. Это шестиугольный стол, который представлен в
виде шестиугольной призмы.
Рассмотрим
основание этой призмы. Оно представляет собой плоскость, которая имеет форму
правильного шестиугольника. За начало координат примем геометрический центр
шестиугольника.
Ось Х
проведем таким образом, чтобы она принадлежала плоскости основания, проходила через
начало координат и была перпендикулярна любым двум ребрам (сторонам) шестиугольника.
Другую ось
(ось У) выбираем так, чтобы она лежала в плоскости основания, проходила через
начало координат и была перпендикулярна оси Х. При таком выборе ось У проходит
через начало координат и 2 угла шестиугольника.
Третью ось
(Z) проводим таким образом, чтобы она проходила через начало координат и была
перпендикулярна плоскости основания призмы.
Описание
алгоритма перемещения объектов
Предположим,
нам необходимо переместить объект в заданную точку. В программе Microsoft
Robotics Developer Studio это возможно сделать как минимум двумя способами:
Навести
курсор на выбранный объект, нажать Ctrl+Кнопка мыши и курсором переместить в необходимое
место.
Выбрать имя
объекта в Панели операций с объектом и задать положение геометрического центра
примитива, представляющего данный объект.
Оба этих
способа просты по своей сути, но первый способ не дает высокую точность, если
она требуется. Точность ограничивается чувствительностью мыши и
физиологическими качествами человека-оператора.
Второй способ
дает необходимую точность. Рассмотрим его подробнее на примере перемещения моделей
объектов в заданную точку.
Пусть нам
необходимо переместить объект 19 (кровать в спальне) точно в угол. Нам известны
координаты геометрического центра примитива, с помощью которого задан объект, и
координаты точки, куда должен переместиться геометрический центр примитива. Для
перемещения нам необходимо изменить только 2 координаты – X и Y, т.к.
координата Z (т.е. высота) в данном случае не должна меняться по понятным
причинам (модель кровати не должны «провалиться в пол», или «зависнуть в
воздухе»). Далее в Панели управления объектом выбираем имя модели и изменяем
координаты. Модель объекта автоматически переместиться в заданное место в
сцене.
Рассмотрим
другой пример. Пусть нам необходимо переместить объект 25 (цветочный горшок в
гостиной) на поверхность объекта 20 (на крышку шестиугольного стола). Для этого
нам необходимо знать координаты геометрического центра примитива модели горшка
(назовем их X1, Y1, Z1) и координаты геометрического центра поверхности стола.
Также необходимо уточнить, какую координату имеет центр поверхности стола по
оси Z. Назовем координаты геометрического центра поверхности стола (X2, Y2,
Z2). Тогда мы можем вычислить новые координаты, которыми должны обладать модель
цветочного горшка, чтобы точно переместиться на середину поверхности модели
шестиугольного стола. Они будут равны:
X=X2
Y=Y2
Z=Z1+Z2.
Как видим из
приведенного примера, данный способ перемещения имеет точный алгоритм и может
быть однозначно описан математически. Следовательно, техника перемещения
объектов в среде Apartment Environment может быть автоматизирована.
Заключение
В данной
курсовой работе была рассмотрена среда моделирования Microsoft Robotics
Developer Studio. Были указаны основные сцены моделирования, содержащиеся в
этой среде. Также были рассмотрены основные достоинства и недостатки
моделирования. Приведено описание панели меню и всех вкладок и окон, которые
содержатся в этой панели.
Подробно
описана сцена моделирования Apartment Environment. Описаны некоторые стандартные
модели объектов, которые присутствуют в сцене и примитивы, с помощью которых
они задаются.
Кроме этого,
рассмотрены способы перемещения моделей объектов в заданное место, их достоинства
и недостатки. Также предложен алгоритм перемещения моделей наиболее подходящим
способом. Он просто как для понимания, так и может быть автоматизирован.