Моделирование рабочего пространства мобильного робота
Моделирование рабочего
пространства мобильного робота
1. Анализ литературы
1.1 Анализ
робототехнических систем
компьютерный визуальный робот
моделирование
Робототехника - важная и перспективная
отрасль промышленности, поскольку при помощи роботов и их комплексов
руководители предприятий могут создавать высокоэффективное производство с
минимальными издержками и высоким качеством продукции. Для достижения этой
задачи они готовы привлекать инвестиционный капитал и вкладывать в их развитие
собственные средства предприятия с целью значительно увеличить чистую прибыль
от продаж продукции в будущем.
Робототехника наука о процессе разработки автоматизированных
технических систем на базе электроники, механики и программирования.
Роботостроение развитая отрасль промышленности: несколько тысяч роботов
работают на различных предприятиях, робототехнические манипуляторы превратились
в неотъемлемую часть подводных исследовательских аппаратов, изучение
космического пространства уже не обходиться без использования роботов с высоким
уровнем интеллекта.
Предмет робототехники - это создание и
применение роботов, других средств робототехники и основанных на них
технических систем и комплексов различного назначения. Возникнув на основе
кибернетики и механики, робототехника в свою очередь породила новые направления
развития и самих этих наук. В кибернетике это связанно прежде всего с
интеллектуальным управлением и бионикой как источником новых, заимствованных у
живой природы идей, а в механике - с многостепенными механизмами типа
манипуляторов.
Робот можно определить как универсальный
автомат для осуществления механических действий, подобных тем, которые
производит человек, выполняющий физическую работу. При создании первых роботов
и вплоть до наших дней образцом для них служат возможности человека. Именно
стремление заменить человека на тяжелых и опасных работах породило идею робота,
затем первые попытки ее реализации (в средние века) и, наконец, обусловило
возникновение и развитие современной робототехники и роботостроения.
На рис. 1.1 показана функциональная схема
робота. В общем виде она включает исполнительные системы - манипуляционную
(один или несколько манипуляторов) и передвижения (транспортную),
информационно-управляющую, сенсорную, дающую информацию о внешней среде и
систему связи с оператором, а также с другими взаимодействующими с роботом
машинами. Исполнительные системы в свою очередь состоят из манипулятора - это
обычно кинематическая цепь, состоящая из подвижных звеньев с угловым или
поступательным перемещением, которая заканчивается каким-нибудь рабочим
инструментом или захватным устройством. Со временем понятие робот расширилось и
под ним часто стали понимать любую автоматическую машину, заменяющую человека и
чем-то напоминающую его разумное поведение.
Рисунок 1.1 - Функциональная схема робота
Из данного определения робота следует, что
- это машина автоматического действия, которая объединяет свойства машин
рабочих и информационных, являясь, таким образом, принципиально новым видом
машин. В достаточно развитом виде роботы аналогично человеку осуществляют
активное силовое и информационное взаимодействие с окружающей средой благодаря
этому могут не только обладать искусственным интеллектом, но и совершенствовать
его. Правда, пока роботы еще очень далеки по своим интеллектуальным
возможностям от человека. При этом от ранее известных видов машин роботы также
принципиально отличаются своей универсальностью (многофункциональностью) и
гибкостью (быстрым переходом к выполнению новых операций).
В основе универсальности роботов лежит
универсальность его рабочих органов, хотя сегодня до универсальности руки
человека им еще далеко. Правда, это компенсируется возможностью быстрой смены
рабочих органов робота в процессе выполнения операций.
Универсальность роботов предполагает
возможность выполнения ими различных целенаправленных действий, которые требуют
определенных интеллектуальных способностей. Это открывает широкие возможности
использования роботов в качестве как основного технологического оборудования
(на сборке, сварке, окраске и т.п.), так и вспомогательного - для замены
рабочих, занятых обслуживанием такого оборудования.
Универсальность роботов позволяет
автоматизировать принципиально любые операции, выполняемые человеком, а быстрота
перестройки на выполнение новых операций при освоении новой продукции или иных
изменениях в производстве сохраняет у автоматизируемого с помощью роботов
производства ту же гибкость, какую сегодня имеют только производства,
обслуживаемые человеком. Роботы потому и появились лишь во второй половине ХХ
столетия, что именно сейчас назрела необходимость в таких универсальных и
гибких средствах, без которых невозможно осуществить комплексную автоматизацию
современного производства с его большой номенклатурой и частой сменяемостью
выпускаемой продукции, включая создание гибких автоматизированных производств.
Дальнейшее развитие робототехники привело
к расширению сферы ее применения, включая создание с ее помощью новых
технических систем, принципиально невозможных при участии или даже присутствии
человека.
Помимо роботов для тех же целей широкое
применение получили манипуляторы с ручным управлением (копирующие манипуляторы,
телеоператоры и т.п.) и с различными вариантами полуавтоматического и
автоматизированного управления, а также однопрограммные (не
перепрограммируемые) автоматические манипуляторы (автооператоры и механические
руки). Эти устройства явились в значительной степени предшественниками роботов.
Появились они главным образом для манипулирования объектами, непосредственный
контакт с которыми для человека вреден или опасен (радиоактивные вещества,
раскаленные болванки и т.п.). Однако, хотя появление роботов существенно сузило
сферу их применения, эти простые средства механизации и автоматизации не потеряли
своего значения. Все они сегодня вместе с роботами входят в общее понятие
средств робототехники.
Как уже было отмечено, объективной
причиной возникновения и развития современной робототехники явилась
историческая потребность производства в гибкой автоматизации с устранением
человека из непосредственного участия в машинном производстве и недостаточность
для этой цели традиционных средств автоматизации. Поэтому задачей робототехники
наряду с созданием собственно средств робототехники является разработка
основанных на них систем и комплексов различного назначения. Системы и
комплексы, автоматизированные с помощью роботов, принято называть
роботизированными. Роботизированные системы, в которых роботы выполняют
основные технологические операции, называются робототехническими.
Как уже отмечалось, наряду с внедрением в
действующие производства роботы открывающие широкие перспективы для создания
принципиально новых технологических процессов, не связанных с весьма
обременительными ограничениями, налагаемыми непосредственным участием в них
человека. При этом имеются в виду как действительно очень ограниченные
физические возможности человека (по грузоподъемности, быстродействию, точности,
повторяемости и т.п.), так и требуемая для него комфортность условий труда (качество
атмосферы, отсутствие вредных внешних воздействий и т.д.). Сегодня
непосредственное участие человека в технологическом процессе зачастую является
серьезным препятствием для дальнейшей интенсификации производства и создания
соответствующих новых технологий.
Роботы получили наибольшее распространение
в промышленности и, прежде всего, в машиностроении. Предназначенные для этой
цели роботы называют промышленными роботами (ПР). Не менее широкие перспективы
имеют роботы в горнодобывающей промышленности, металлургии и нефтяной
промышленности (обслуживание бурильных установок, монтажные и ремонтные
работы), в строительстве (монтажные, отделочные, транспортные работы), в
легкой, пищевой промышленности.
Применение роботов не только приносит
конкретный технико-экономический эффект, связанный с повышением производства
труда, сменности работы оборудования и качества продукции, но и является важным
средством решения социальных проблем, позволяя освобождать людей от опасного,
тяжелого и монотонного труда [1], [2].
Робот и другие средства робототехники -
это типичные динамические объекты, причем работающие в основном в
неустановившихся режимах. С точки зрения математического описания и
аналитического изучения эти объекты предоставляют большие трудности в силу
значительного числа степеней подвижности, нестационарности, нелинейности, и
высокого порядка уравнений, описывающих их. Поэтому основными методами изучения
роботов являются их компьютерное моделирование и физический эксперимент.
Робот с позиции теории автоматического управления может быть
представлен как совокупность объекта управления, которым в данном случае
являются исполнительные устройства робота, и устройства управления.
Исполнительные устройства в свою очередь состоят из механической системы и
приводов [3].
1.2 Основные принципы моделирования
1.2.1 Виды моделирования
При классификации по характеру моделируемой стороны объекта
выделяют следующие виды моделей:
˗ кибернетические или функциональные модели. В них
моделируемый объект рассматривается как «черный ящик», внутреннее устройство
которого неизвестно. Поведение такого «черного ящика» может описываться
математическим уравнением, графиком или таблицей, которые связывают выходные
сигналы (реакции) устройства с входными (стимулами). Структура и принципы действия
такой модели не имеют ничего общего с исследуемым объектом, но функционирует
она похожим образом.
˗ структурные модели - это модели, структура
которых соответствует структуре моделируемого объекта. Примерами являются
командно-штабные учения, день самоуправления, модель электронной схемы в
Electronics Workbench и т.д.;
˗ информационные модели, представляющие собой
совокупность специальным образом подобранных величин и их конкретных значений,
которые характеризуют исследуемый объект. Выделяют вербальные (словесные),
табличные, графические и математические информационные модели. Например,
информационная модель студента может состоять из оценок за экзамены,
контрольные и лабораторные работы. Или информационная модель некоторого
производства представляет набор параметров, характеризующих потребности
производства, его наиболее существенные характеристики, параметры выпускаемого
товара.
По отношению ко времени выделяют:
˗ статические модели - модели, состояние которых не
изменяется с течением времени: макет застройки квартала, модель кузова машины;
˗ динамические модели представляют собой
функционирующие объекты, состояние которых непрерывно изменяется. К ним
относятся действующие модели двигателя и генератора, компьютерная модель
развития популяции, анимационная модель работы ЭВМ и т.д.
По способу представления состояния системы различают:
˗ дискретные модели - это автоматы, то есть реальные
или воображаемые дискретные устройства с некоторым набором внутренних
состояний, преобразующие входные сигналы в выходные в соответствии с заданными
правилами;
˗ непрерывные модели - это модели, в которых
протекают непрерывные процессы. Например, использование аналоговой ЭВМ для
решения дифференциального уравнения, моделирования радиоактивного распада с
помощью конденсатора, разряжающегося через резистор и т.д.
По степени случайности моделируемого процесса выделяют:
˗ детерминированные модели, которым свойственно
переходить из одного состояния в другое в соответствии с жестким алгоритмом, то
есть между внутренним состоянием, входными и выходными сигналами имеется
однозначное соответствий (модель светофора);
˗ стохастические модели, функционирующие подобно
вероятностным автоматам; сигнал на выходе и состояние в следующий момент
времени задается матрицей вероятностей. Например, вероятностная модель ученика,
компьютерная модель передачи сообщений по каналу связи с шумом и т.д.
По способу реализации различают:
˗ абстрактные модели, то есть мысленные модели,
существующие только в нашем воображении. Например, структура алгоритма, которая
может быть представлена с помощью блок-схемы, функциональная зависимость,
дифференциальное уравнение, описывающее некоторый процесс. К абстрактным
моделям также можно отнести различные графические модели, схемы, структуры, а
также анимации;
˗ материальные (физические) модели представляют
собой неподвижные макеты либо действующие устройства, функционирующие в чем-то
подобно исследуемому объекту. Например, модель молекулы из шариков, макет
атомной подводной лодки, действующая модель генератора переменного тока,
двигателя и т.д.
Реальное моделирование предусматривает построение
материальной модели объекта и выполнение с ней серии экспериментов. Например,
для изучения движения подводной лодки в воде строят ее уменьшенную копию и
моделируют течение с помощью гидродинамической трубы. Нас будут интересовать
абстрактные модели, которые в свою очередь подразделяются на вербальные,
математические и компьютерные. К вербальным или текстовым моделям относятся
последовательности утверждений на естественном или формализованном языке,
описывающие объект познания. Математические модели образуют широкий класс
знаковых моделей, в которых используются математические действия и операторы.
Часто они представляют собой систему алгебраических или дифференциальных
уравнений. Компьютерные модели представляют собой алгоритм или компьютерную
программу, решающую систему логических, алгебраических или дифференциальных
уравнений и имитирующую поведение исследуемой системы. Иногда мысленное
моделирование подразделяют на:
˗ наглядное - предполагает создание воображаемого
образа, мысленного макета, соответствующих исследуемому объекту на основе
предположений о протекающем процессе, или по аналогии с ним;
˗ символическое - заключается в создании
логического объекта на основе системы специальных символов; подразделяется на
языковое (на основе тезауруса основных понятий) и знаковое;
˗ математическое - состоит в установлении
соответствия объекту исследования некоторого математического объекта;
подразделяется на аналитическое, имитационное и комбинированное.
Аналитическое моделирование предполагает написание системы из
алгебраических, дифференциальных, интегральных, конечно-разностных уравнений и
логических условий. Для исследования аналитической модели могут быть
использованы аналитический и численный методы. В последнее время численные
методы реализуются на ЭВМ, поэтому компьютерные модели можно рассматривать как
разновидность математических. Математические модели довольно разнообразны и
тоже могут быть классифицированы по разным основаниям.
По степени абстрагирования при описании свойств системы они
делятся на мета-, макро- и микромодели. В зависимости от формы представления
различают инвариантные, аналитические, алгоритмические и графические модели.
По характеру отображаемых свойств объекта модели
классифицируют на структурные, функциональные и технологические.
По способу получения различают теоретические, эмпирические и
комбинированные. В зависимости от характера математического аппарата модели
бывают линейные и нелинейные, непрерывные и дискретные, детерминированные и
вероятностные, статические и динамические.
По способу реализации различают аналоговые, цифровые,
гибридные, нейронечеткие модели, которые создаются на основе аналоговых,
цифровых, гибридных вычислительных машин и нейросетей. Эффективным способом
изучения явлений окружающей действительности является научный эксперимент,
состоящий в воспроизведении изучаемого явления природы в управляемых и
контролируемых условиях. Однако часто проведение эксперимента невозможно либо
требует слишком больших экономических затрат и может привести к нежелательным
последствиям. В этом случае исследуемый объект заменяют компьютерной моделью и
исследуют ее поведение при различных внешних воздействиях. Повсеместное
распространение персональных компьютеров, информационных технологий, создание
мощных ЭВМ сделало компьютерное моделирование одним из результативных методов
изучения физических, технических, биологических, экономических и иных систем.
Часто компьютерные модели проще и удобнее исследовать, они позволяют проводить
вычислительные эксперименты, реальная постановка которых затруднена или может
дать непредсказуемый результат. Логичность и формализованность компьютерных
моделей позволяет выявить основные факторы, определяющие свойства изучаемых
объектов, исследовать отклик физической системы на изменения ее параметров и
начальных условий.
Компьютерное моделирование требует абстрагирования от
конкретной природы явлений, построения сначала качественной, а затем и
количественной модели. За этим следует проведение серии вычислительных
экспериментов на компьютере, интерпретация результатов, сопоставление
результатов моделирования с поведением исследуемого объекта, последующее
уточнение модели и т.д. Вычислительный эксперимент фактически является
экспериментом над математической моделью исследуемого объекта, проводимого с
помощью ЭВМ. Часто он значительно дешевле и доступнее натурного эксперимента,
его выполнение требует меньшего времени, он дает более подробную информацию о
величинах, характеризующих состояние системы. Сущность компьютерного
моделирования системы заключается в создании компьютерной программы (пакета
программ), описывающей поведение элементов исследуемой системы в процессе ее
функционирования, учитывающей их взаимодействие между собой и внешней средой, и
проведении на ЭВМ серии вычислительных экспериментов. Это делается с целью
изучения природы и поведения объекта, его оптимизации и структурного развития,
прогнозирования новых явлений.
Перечислим требования, которым должна удовлетворять модель
исследуемой системы:
˗ полнота модели, то есть возможность вычисления
всех характеристик системы с требуемой точностью и достоверностью;
˗ гибкость модели, что позволяет воспроизводить и
проигрывать различные ситуации и процессы, изменять структуру, алгоритмы и параметры
изучаемой системы;
˗ длительность разработки и реализации,
характеризующая временные затраты на создание модели;
˗ блочность структуры, допускающая добавление,
исключение и замену некоторых частей (блоков) модели. Кроме того,
информационное обеспечение, программные и технические средства должны позволять
модели обмениваться информацией с соответствующей базой данных и обеспечивать
эффективную машинную реализацию и удобную работу пользователя.
К основным этапам компьютерного моделирования относятся:
˗ постановка задачи, описание исследуемой системы и
выявление ее компонентов и элементарных актов взаимодействия;
˗ формализация, то есть создание математической
модели, представляющей собой систему уравнений и отражающей сущность
исследуемого объекта;
˗ разработка алгоритма, реализация которого
позволит решить поставленную задачу;
˗ написание программы на конкретном языке
программирования;
˗ планирование и выполнение вычислений на ЭВМ,
доработка программы и получение результатов;
˗ анализ и интерпретация результатов, их
сопоставление с эмпирическими данными. Затем все это повторяется на следующем
уровне.
Разработка компьютерной модели объекта представляет собой
последовательность итераций: сначала на основе имеющейся информации о системе S
строится модель M1, проводится серия вычислительных экспериментов, результаты
анализируются. При получении новой информации об объекте S учитываются
дополнительные факторы, получается модель M2, поведение которой тоже
исследуется на ЭВМ. После этого создаются модели M3, M4 и т.д. до тех пор, пока
не получится модель, с требуемой точностью соответствующая системе S.
В общем случае поведение исследуемой системы S описывается
законом функционирования Y(t) = F (X, V, H, t), где X = (x1, x2,…, xn) - вектор
входных воздействий (стимулов), Y = (y1, y2,…, ym) - вектор выходных сигналов
(откликов, реакций), V = (u1, u2,…, uk) - вектор воздействий внешней среды, H =
(h1, h2,…, hl) - вектор собственных параметров системы. Закон функционирования
может иметь вид словесного правила, таблицы, алгоритма, функции, совокупности
логических условий и т.д. В случае, когда закон функционирования содержит
время, говорят о динамических моделях и системах. Например, разгон и торможение
асинхронного двигателя, переходный процесс в цепи, содержащей конденсатор,
функционирование вычислительной сети, системы массового обслуживания. Во всех
этих случаях состояние системы, а значит и ее модели, изменяется с течением
времени. Если поведение системы описывается законом Y = F (X, V, H), не
содержащим время t явно, то речь идет о статических моделях и системах, решении
стационарных задач и т.д. Приведем несколько примеров: расчет нелинейной цепи
постоянного тока, нахождение стационарного распределения температуры в стержне
при постоянных температурах его концов, формы упругой пленки, натянутой на
каркас, профиля скоростей в установившемся течении вязкой жидкости и т.д.
Функционирование системы можно рассматривать как последовательную смену
состояний q1 (t), q2 (t), …, qr (t), которым соответствуют некоторые точки в
многомерном фазовом пространстве. Множество всех точек A = {a1, a2,…, as},
отвечающих всевозможным состояниям системы, называют пространством состояний
объекта (или модели). Каждой реализации процесса соответствует одна фазовая
траектория, проходящая через некоторые точки из множества A. Если
математическая модель содержит элемент случайности, то получается
стохастическая компьютерная модель. В частном случае, когда параметры системы и
внешние воздействия однозначно определяют выходные сигналы, говорят о детерминированной
модели.
1.2.2 Принципы компьютерного моделирования
Модель - это объект, заменяющий исследуемую систему, и
имитирующий ее структуру и поведение. Моделью может являться материальный
объект, совокупность особым образом упорядоченных данных, система
математических уравнений или компьютерная программа. Под моделированием
понимают представление основных характеристик объекта исследования с помощью
другой системы (материального объекта, совокупности уравнений, компьютерной
программы). Перечислим принципы моделирования:
˗ Принцип адекватности: Модель должна учитывать
наиболее существенные стороны исследуемого объекта и отражать его свойства с
приемлемой точностью. Только в этом случае результаты моделирования можно
распространить на объект исследования.
˗ Принцип простоты и экономичности: Модель должна
быть достаточно простой для того чтобы ее использование было эффективно и
экономически выгодно. Она не должна быть более сложной, чем это требуется для
исследователя.
˗ Принцип информационной достаточности: При
полном отсутствии информации об объекте построить модель невозможно. При
наличии полной информации моделирование лишено смысла. Существует уровень
информационной достаточности, при достижении которого может быть построена
модель системы.
˗ Принцип множественности и единства моделей:
Любая конкретная модель отражает лишь некоторые стороны реальной системы. Для
полного исследования необходимо построить ряд моделей, отражающих наиболее
существенные стороны исследуемого процесса и имеющих что-то общее. Каждая
последующая модель должна дополнять и уточнять предыдущую.
˗ принцип системности. Исследуемая система
представима в виде совокупности взаимодействующих друг с другом подсистем,
которые моделируются стандартными математическими методами. При этом свойства
системы не являются суммой свойств ее элементов;
˗ принцип параметризации. Некоторые подсистемы
моделируемой системы могут быть охарактеризованы единственным параметром
(вектором, матрицей, графиком, формулой).
Модель должна удовлетворять следующим требованиям:
- быть адекватной, то есть отражать наиболее существенные
стороны исследуемого объекта с требуемой точностью;
способствовать решению определенного класса задач;
быть простой и понятной, основываться на минимальном
количестве предположений допущений;
позволять модифицировать и дополнять себя, переходить к
другим данным;
быть удобной в использовании.
Объект познания исследуется эмпирическими методами
(наблюдение, эксперимент), установленные факты являются основой для построения
математической модели. Получившаяся система математических уравнений может
исследоваться аналитическими методами или с помощью ЭВМ, - в этом случае речь
идет о создании компьютерной модели изучаемого явления. Проводится серия
вычислительных экспериментов или компьютерных имитаций, и получающиеся
результаты сопоставляются с результатами аналитического исследования
математической модели и экспериментальными данными. Выводы учитываются для
улучшения методики экспериментального изучения объекта исследования, развития
математической модели и совершенствования компьютерной модели. Исследование
социальных и экономических процессов отличается лишь невозможностью в полной
мере использовать экспериментальные методы.
1.2.3 Виды компьютерных моделей
Под компьютерным моделированием в самом широком смысле будем
понимать процесс создания и исследования моделей с помощью компьютера. Выделяют
следующие виды моделирования:
˗ физическое моделирование: компьютер - часть
экспериментальной установки или тренажера, он воспринимает внешние сигналы,
осуществляет соответствующие расчеты и выдает сигналы, управляющие различными
манипуляторами. Например, учебная модель самолета, представляющая собой кабину,
установленную на соответствующих манипуляторах, соединенных с компьютером,
который реагирует на действия пилота и изменяет наклон кабины, показания
приборов, вид из иллюминатора и т.д., имитируя полет реального самолета;
˗ динамическое или численное моделирование,
предполагающее численное решение системы алгебраических и дифференциальных
уравнений методами вычислительной математики и проведение вычислительного
эксперимента при различных параметрах системы, начальных условиях и внешних
воздействиях. Используется для моделирования различных физических,
биологических, социальных и других явлений: колебания маятника, распространение
волны, изменение численности населения, популяции данного вида животных и т.д.;
˗ имитационное моделирование состоит в создании
компьютерной программы (или пакета программ), имитирующей поведение сложной
технической, экономической или иной системы на ЭВМ с требуемой точностью.
Имитационное моделирование предусматривает формальное описание логики функционирования
исследуемой системы с течением времени, которое учитывает существенные
взаимодействия ее компонентов и обеспечивает проведение статистических
экспериментов. Объектно-ориентированные компьютерные симуляции используются для
исследования поведения экономических, биологических, социальных и иных систем,
для создания компьютерных игр, так называемого «виртуального мира», обучающих
программ и анимаций. Например, модель технологического процесса, аэродрома,
некоторой отрасли производства и т.д.;
˗ статистическое моделирование используется для
изучения стохастических систем и состоит в многократном проведении испытаний с
последующей статистической обработкой получающихся результатов. Подобные модели
позволяют исследовать поведение всевозможных систем массового обслуживания,
многопроцессорных систем, информационно-вычислительных сетей, различных
динамических систем, на которые воздействуют случайные факторы. Статистические
модели применяются при решении вероятностных задач, а также при обработке
больших массивов данных (интерполяция, экстраполяция, регрессия, корреляция,
расчет параметров распределения и т.д.). Они отличаются от детерминированных
моделей, использование которых предполагает численное решение систем
алгебраических или дифференциальных уравнений, либо замену изучаемого объекта
детерминированным автоматом;
˗ информационное моделирование заключается в создании
информационной модели, то есть совокупности специальным образом организованных
данных (знаков, сигналов), отражающих наиболее существенные стороны
исследуемого объекта. Различают наглядные, графические, анимационные,
текстовые, табличные информационные модели. К ним относятся всевозможные схемы,
графы, графики, таблицы, диаграммы, рисунки, анимации, выполненные на ЭВМ, в
том числе цифровая карта звездного неба, компьютерная модель земной поверхности
и т.д.;
˗ моделирование знаний предполагает построение
системы искусственного интеллекта, в основе которой лежит база знаний некоторой
предметной области (части реального мира). Базы знаний состоят из фактов
(данных) и правил. Например, компьютерная программа, умеющая играть в шахматы,
должна оперировать информацией о «способностях» различных шахматных фигур и
«знать» правила игры. К данному виду моделей относят семантические сети,
логических модели знаний, экспертные системы, логические игры и т.д. Логические
модели используются для представления знаний в экспертных системах, для
создания систем искусственного интеллекта, осуществления логического вывода,
доказательства теорем, математических преобразований, построения роботов,
использования естественного языка для общения с ЭВМ, создания эффекта
виртуальной реальности в компьютерных играх и т.д.
Исходя из целей моделирования, компьютерные модели
подразделяют на группы:
˗ дескриптивные модели, используемые для понимания
природы исследуемого объекта, выявления наиболее существенных факторов,
влияющих на его поведение;
˗ оптимизационные модели, позволяющие выбрать
оптимальный способ управления технической, социально экономической или иной
системой (например, космической станцией);
˗ прогностические модели, помогающие
прогнозировать состояние объекта в последующие моменты времени (модель земной
атмосферы, позволяющая предсказать погоду);
˗ учебные модели, применяемые для обучения,
тренинга и тестирования учащихся, студентов, будущих специалистов;
˗ игровые модели, позволяющие создать игровую
ситуацию, имитирующую управление армией, государством, предприятием, человеком,
самолетом и т.д., либо играющие в шахматы, шашки и другие логические игры.
1.2.4
Классификация компьютерных моделей по типу математической схемы
В теории моделирования систем компьютерные модели
подразделяются на численные, имитационные, статистические и логические. При
компьютерном моделировании, как правило, используют одну из типовых математических
схем: дифференциальные уравнения, детерминированные и вероятностные автоматы,
системы массового обслуживания, сети Петри и т.д.
По типу математической схемы различают:
˗ непрерывно-детеминированные модели, которые
используются для моделирования динамических систем и предполагают решение
системы дифференциальных уравнений. Математические схемы этого вида называются
D-схемами (от англ. dynamic);
˗ дискретно-детерминированные модели используются
для исследования дискретных систем, которые могут находиться в одном из
множества внутренних состояний. Они моделируются абстрактным конечным
автоматом, задаваемым F-схемой (от англ. finite automata): F =< Q, X, Y, j,
y >. Здесь X, Y-множества входных и выходных сигналов, Q-множеством
внутренних состояний, j (q, x) - функция переходов, y (q, x) - функция выходов;
˗ дискретно-стохастические модели предполагают
использование схемы вероятностных автоматов, функционирование которых содержит
элемент случайности. Они также называются P-схемами (от англ. probabilistic
automat). Переходы такого автомата из одного состояния в другое определяется
соответствующей матрицей вероятностей;
˗ непрерывно-стохастические модели как правило
применяются для изучения систем массового обслуживания и называются Q-схемами
(от англ. queueing system). Для функционирования некоторых экономических,
производственных, технических систем присуще случайное появление требований
(заявок) на обслуживание и случайное время обслуживания;
˗ сетевые модели используются для анализа сложных
систем, в которых одновременно протекает несколько процессов. В этом случае
говорят о сетях Петри и N-схемах (от англ. Petri Nets). Сеть Петри задается
четверкой , где B - множество позиций, D - множество
переходов, I - входная функция, O - выходная функция. Маркированная N-схема
позволяет промоделировать параллельные и конкурирующие процессы в различных
системах;
˗ комбинированные схемы основываются на понятии
агрегативной системы и называются A-схемами (от англ. aggregate system). Этот
универсальных подход позволяет исследовать всевозможные системы, которые
рассматриваются как совокупность взаимосвязанных между собой агрегатов. Каждый
агрегат характеризуется векторами состояний, параметров, воздействия внешней
среды, входных воздействий (управляющих сигналов), начальных состояний,
выходных сигналов, оператором переходов, оператором выходов.
Исследование имитационной модели производится на цифровых и
аналоговых вычислительных машинах. Используемая имитационная система включает в
себя математическое, программное, информационное, техническое и эргономическое
обеспечение. Эффективность имитационного моделирования характеризуется
точностью и достоверностью получающихся результатов, стоимостью и временем
создания модели и работы с ней, затратами машинных ресурсов (времени вычислений
и требуемой памяти). Для оценки эффективности модели необходимо получающиеся
результаты сравнить с результатами натурного эксперимента, а также результатами
аналитического моделирования.
В некоторых случаях приходится объединять численное решение
дифференциальных уравнений и имитацию функционирования той или иной достаточно
сложной системы. В этом случае говорят о комбинированном или
аналитико-имитационном моделировании. Его основное преимущество состоит в
возможности исследования сложных систем, учета дискретных и непрерывных
элементов, нелинейности различных характеристик, случайные факторы.
Аналитическое моделирование позволяет проанализировать только достаточно
простые системы. Одним из эффективных методов исследования имитационных моделей
является метод статистических испытаний. Он предусматривает многократное
воспроизведение того или иного процесса при различных параметрах, изменяющихся
случайным образом по заданному закону. ЭВМ может провести 1000 испытаний и зарегистрировать
основные характеристики поведения системы, ее выходные сигналы, а затем
определить их математическое ожидание, дисперсию, закон распределения.
Недостаток использования машинной реализации имитационной модели состоит в том,
что полученное с ее помощью решение имеет частный характер и соответствует
конкретным параметрам системы, ее начальному состоянию и внешним воздействиям.
Преимущество заключается в возможности исследования сложных систем [4].
1.2.5
Области применения компьютерных моделей
Совершенствование информационных технологий обусловило
использование компьютеров практически во всех сферах деятельности человека.
Развитие научных теорий предполагает выдвижение основных принципов, построение
математической модели объекта познания, получение из нее следствий, которые
могут быть сопоставлены с результатами эксперимента. Использование ЭВМ
позволяет, исходя из математических уравнений, рассчитать поведение исследуемой
системы в тех или иных условиях. Часто это единственный способ получения следствий
из математической модели. Например, рассмотрим задачу о движении трех или более
частиц, взаимодействующих друг с другом, которая актуальна при исследовании
движении планет, астероидов и других небесных тел. В общем случае она сложна и
не имеет аналитического решения, и лишь использование метода компьютерного
моделирования позволяет рассчитать состояние системы в последующие моменты
времени.
Совершенствование вычислительной техники, появление ЭВМ,
позволяющей быстро и достаточно точно осуществлять вычисления по заданной
программе, ознаменовало качественный скачок на пути развития науки. На первый
взгляд кажется, что изобретение вычислительных машин не может непосредственно
влиять на процесс познания окружающего мира. Однако это не так: решение современных
задач требует создания компьютерных моделей, проведения огромного количества
вычислений, что стало возможным лишь после появления электронно-вычислительных
машин, способных выполнять миллионы операций в секунду. Существенным является и
то, что вычисления производятся автоматически, в соответствии с заданным
алгоритмом и не требуют вмешательства человека. Если ЭВМ относится к
технической базе проведения вычислительного эксперимента, то ее теоретическую
основу составляют прикладная математика, численные методы решения систем
уравнений.
Успехи компьютерного моделирования тесно связаны с развитием
численных методов, начавшегося с фундаментальных работ Исаака Ньютона, который
еще в 17 веке предложил их использовать для приближенного решения
алгебраических уравнений. Леонард Эйлер разработал метод решения обыкновенных
дифференциальных уравнений. Из современных ученых весомый вклад в развитие
компьютерного моделирования сделал академик А.А. Самарский, основоположник
методологии вычислительного эксперимента в физике. Именно им была предложена
знаменитая триада «модель - алгоритм - программа» и разработана технология
компьютерного моделирования, успешно используемая для изучения физических
явлений. Одним из первых выдающихся результатов компьютерного эксперимента в
физике является открытие в 1968 году температурного токового слоя в плазме,
создаваемой в МГД-генераторах (эффект Т-слоя). Оно было выполнено на ЭВМ и
позволило предсказать исход реального эксперимента, проведенного через
несколько лет. В настоящее время вычислительный эксперимент используется для
выполнения исследований в следующих направлениях:
˗ расчет ядерных реакций;
˗ решение задач небесной механики, астрономии и
космонавтики;
˗ изучение глобальных явлений на Земле,
моделирование погоды, климата, исследование экологических проблем, глобального
потепления, последствий ядерного конфликта и т.д.;
˗ решение задач механики сплошных сред, в
частности, гидродинамики;
˗ компьютерное моделирование различных
технологических процессов;
˗ расчет химических реакций и биологических
процессов, развитие химической и биологической технологии;
˗ социологические исследования, в частности,
моделирование выборов, голосования, распространение сведений, изменение
общественного мнения, военных действий;
˗ расчет и прогнозирование демографической
ситуации в стране и мире [5].
.3
Моделирование рабочего пространства робота
Рассмотрим моделирование рабочего пространства мобильного
робота, функционирующего в составе гибкой производственной системы (ГПС).
Пусть существует рабочее пространство Р робота Rb, которое
обладает такими свойствами: геометрические размеры, объекты рабочей зоны,
климатические условия, временные параметры P (D(x, y, z), Obj, Clm, T).
В рабочем пространстве существуют определенные объекты:
станки (St), инструмент (Ins), оснастка (Osn), человек (Hum), робот (Rb):
Объекты также обладают определенным набором свойств. Эти свойства
обладают значениями и входят в множества имен и значений свойств.
Пусть наблюдение за рабочей зоной робота осуществляется с помощью
системы компьютерного зрения ZRb, являющейся подсистемой робота. Rb обладает такими свойствами:
˗ диаметр объектива;
˗ фокусное расстояние;
˗ разрешающая способность;
˗ геометрические параметры наблюдаемой зоны,
ограниченные рабочим пространством:.
Между объектами (предметами) и их свойствами существуют
отношения принадлежности, т.е. определенному объекту принадлежат свойства
(объект обладает свойствами).
Предметы взаимодействуют между собой отношениями
принадлежности Pt(x), следования Rt1 (x, y), совместимости Rt2
(x, y), отношениями предопределения Rt3 (x, y), отношениями
ограничения Rt4(x, y), отношениями совместности Rt5 (x,
y), отношениями ограничениями по доступу одних объектов пространства к другим
Rt6 (x, y).
Наличие отношений позволяет ввести определения:
а) Каждый объект рабочей зоны робота обладает хотя бы одном
свойством
,
где - квантор общности, - квантор существования, Obj - множество
объектов рабочей зоны, S - множество свойств.
Множество Obj предметов пространства включает в себя
следующие подмножества: St - станок роботизированного пространства, Ins -
инструмент, Osn - оснастка, Hum - человек, Rb - робот. Таким образом, данное
выражение можно записать в виде:
Множество S свойств предметов включает в себя такие параметры
как: SSt - множество свойств станков; SIns - множество
свойств инструментов; SOsn - множество свойств оснастки; SHum
- множества свойств людей; SRb - множество свойств роботов. Отсюда
следует, что
Из этих определений следует, что
б) Каждый предмет пространства связан каким-либо отношением
Rt с другим предметом:
Определение является истинным, так как каждый из предметов создан
для взаимодействия с другими предметами.
в) Все объекты рабочего пространства являются
упорядоченными по отношению к другим:
г) Для каждого предмета рабочей зоны найдется другой
предмет, который совместен с первым в процессе работы:
Оно является истинным, так как каждый из предметов
роботизированного участка существует с целью участвовать в техпроцессе.
д) Существуют такие предметы, которые предопределяют друг
друга в технологическом процессе.
Это отношение является частным случаем выражения из определения 4,
поэтому оно существует между теми же объектами.
е) Существуют одни и те же предметы.
,
где Qt2 - отношение равенства, используемое для
сравнения значений свойств. Для каждого значения [si] свойства
найдется равное ему. В символическом виде это выражение можно записать так:
ж) Для каждого числового значения свойства (кроме
максимального на конечном множестве значений N) можно найти значение больше
рассматриваемого:
Проведем анализ технологических определений, содержащих цели
проектирования ТП: переходов (движение), операций, маршрута.
Если - конкретные свойства изменения маршрута
робота, то описание переходов робота в рабочем пространстве будет таким:
Тогда из определения следует, что описание технологических
операций будет таким, что свойства робота будут взаимодействовать со свойствами
инструмента, оснастки, человека и станка:
.
Маршрут робота M будет состоять из операций Op и переходов Tr.
Описание маршрута может быть представлено в следующем виде:
,
После определения рабочего пространства робота и его
составляющих (предметов, объектов и т.д.) необходимо выделить их, то есть
идентифицировать и распознать каждый из объектов. Это необходимо для ориентации
робота относительно других предметов в рабочей зоне [6].
2. Основы применения среды Microsoft Robotics
Studio
2.1 Среда моделирования роботов Microsoft
Robotics Developer Studio
Платформа Microsoft Robotics Developer
Studio (MRDS) - это пакет разработчика для робототехники, ориентированный на
программистов разных уровней. Визуальный язык программирования (VPL), входящий
в состав MRDS. Симуляция виртуальных роботов позволит работать с техникой,
которой еще нет, или выйти из положения, если использовать настоящего робота по
каким-то причинам нельзя. На базе технологии CCR гораздо проще писать код,
хорошо масштабируемый на несколько ядер. Сервисный подход в технологии DSS позволяет
создавать слабо связанные распределенные приложения.Robotics Studio - это всего
лишь фундамент для создания многофункционального робота.
В контексте робототехники приложение - это композиция
слабосвязанных параллельно выполняющихся компонентов.
Все компоненты в Robotics Studio представляют собой
независимо исполняемые сервисы и выступают как основополагающий элемент в MSRS.
Иначе говоря, с точки зрения разработчика не существует физического мотора -
есть сервис с интерфейсом, с помощью которого разработчик обращается к мотору
через написанную им программу.
На концептуальном уровне сервис может быть
представлен всем, от чего можно получать данные. Это, например, аппаратное
обеспечение (сенсоры, приводы и т.п.), ПО (пользовательский интерфейс, хранилище
данных), агрегация (группа сенсоров, mash-up).
Среда, в которой выполняется приложение в
Microsoft Robotics Studio, носит название Runtime Environment. В основе Runtime
лежит CLR 2.0, что дает возможность писать приложения, используя любые языки
программирования платформы Microsoft.NET.
Сам по себе Runtime состоит из двух
ключевых технологий: Concurrency & Coordination Runtime (CCR) - это
библиотека для работы с параллельными и асинхронными потоками данных, и
Decentralized System Services (DSS) - средство создания распределенных
приложений на основе сервисов.
Программная логика робота - в отличие от
традиционных приложений - должна взаимодействовать с гораздо более
непредсказуемой окружающей средой и адекватно реагировать на информацию,
поступающую от множества сенсоров одновременно. Более того, по многим причинам
имеет смысл существенную часть логики перенести на множество взаимодействующих
друг с другом компьютеров, которые физически могут находиться как на роботе,
так и вне его. В результате требуется подход, который одинаково хорошо годился
бы как для параллельных, так и для распределенных приложений. Библиотека
Concurrency & Coordination Runtime и была специально разработана для того,
чтобы упростить создание кода для параллельного исполнения и хорошего
масштабирования на современных многоядерных процессорах.
Для ответа на вопрос «зачем нужна CCR»
вспомним определение понятия «приложение» в контексте Robotics Studio: это
композиция слабосвязанных параллельно выполняющихся компонентов. Такой подход
можно было бы реализовать с помощью существующих примитивов многопоточного
программирования. Однако процесс написания многопоточных приложений - далеко не
тривиальная задача, и она становится все сложнее по мере роста числа
одновременно выполняемых потоков.
При использовании CCR не требуется вручную
управлять потоками, блокировками, семафорами, т.е. всеми стандартными
примитивами синхронизации потоков. CCR - это не просто набор утилит, это
совершенно другой подход к написанию кода. Этот подход основан на очередях
сообщений и наборе зависящих от данных примитивов синхронизации. Потоки
полностью скрыты от программиста, и Runtime - в зависимости от данных и от
того, где они нужны, - решает, какой код и где будет исполняться. Поскольку
синхронизация идет по данным, то не рекомендуется - и даже запрещается -
использовать общую память (это может полностью нарушить схему работы кода).
Таким образом, библиотека CCR упрощает
написание программ, которые работают со многими параллельными и асинхронными
потоками данных. Примерами потоков данных могут служить сенсорная информация,
ее обработка и управление движением в роботах.
Вспомним еще раз, что приложение в
контексте MSRS - это композиция слабосвязанных параллельно выполняющихся
сервисов. Тогда для реализации такого приложения необходимо следующее.
Слабая связанность компонентов - это
обеспечивает их взаимозаменяемость и легкость повторного использования.
Например, можно отключить или подключить сенсор без последствий для приложения
в целом.
Разделение состояния и поведения -
состояние сервиса (state) полностью открыто и при этом отделено от его
поведения (behavior). Это очень важно в распределенной системе и позволяет
сервисам легко взаимодействовать друг с другом как локально, так и удаленно по
сети. Поведение в этой ситуации превращается в операции над состоянием, которые
могут его изменять.
Работа с состоянием сервиса, а не с
сессией (session-less) - текущее состояние сервиса определяется им самим, и оно
идентично для всех, кто бы его ни запросил. Сервис не создает индивидуальных
сессий для тех, кто с ним работает.
Работа со структурированными данными -
состояние сервиса не может быть однородной массой, и структурирование на базе
типов CLR позволяет работать со сложными структурами данных.
Работа с событиями изменения состояния
сервиса - отделение состояния и его структурированность дают возможность
сообщать об изменениях тем, кому это важно. В DSS есть модель, позволяющая
отправлять и получать уведомления об этих событиях, а также подписываться на
них.
Поддержка Web UI - анализировать и
отлаживать распределенные приложения достаточно сложно. Структурированные
данные в состоянии сервиса можно сериализовать с помощью XML и просматривать с
помощью любого браузера. При помощи XSLT можно поверх XML данных создать
простой пользовательский интерфейс.
Чтобы реализовать все описанные выше
возможности, были частично использованы два существующих подхода к работе с
сервисами: REST и Web Services.(Representational State Transfer) - этот термин
обозначает абстрагированную и формализованную Web-архитектуру и был предложен
Роем Филдингом в 2000 г. REST построена на идее Тима Бернерс-Ли «URI ссылается
на ресурс, и все взаимодействия с этим ресурсом происходят путем обмена
состояниями». Важно отметить, что REST - это подход к созданию приложений; на
текущий момент он успешно реализован в World Wide Web.
Про Web Services говорят уже давно и
много. В основе Web-сервисов лежит протокол SOAP, который как раз и позволяет
работать со структурированными данными и событиями.
Какой-то один из подходов, REST или
Web-Services, не позволяет реализовать в платформе робототехники все задуманные
возможности. Поэтому была выбрана унифицированная модель, в основу которой лег
протокол Decentralized System Services Protocol (DSSP), в свою очередь
базирующийся на SOAP. Реализация DSSP в Microsoft Robotics Studio предназначена
специально для работы с сервисами [7].
2.2 Моделирование
пространства и объектов рабочей области с помощью визуальной среды Visual
Simulation Environment
Visual Simulation Environment включает в себя две программы:
графический и физический движок.
Графический движок - основной задачей этой программы является
визуализация (рендеринг) двухмерной или трехмерной компьютерной графики.
Графический движок работает в режиме реального времени.
Физический движок - производит симуляцию физических законов
реального мира в виртуальном мире с той или иной степенью точности.
Физический движок позволяет создать виртуальное пространство,
в которое можно добавить виртуальные статические и динамические объекты и
указать законы взаимодействия тел и среды. Расчет взаимодействия тел
выполняется самим движком. Рассчитывая взаимодействие тел между собой и средой,
физический движок приближает физическую модель получаемой системы к реальной,
передавая уточненные геометрические данные графическому движку. В состав MRDS
входит физический движок AGEIA PhysX Engine.
Объекты в симуляторе могут создавать иерархию, реализуя
отношение предок / потомок. Например, манипулятор и сенсор являются дочерними
объектами робота.
После запуска симулятора в нем отображается мир с позиции
главной камеры, которая соответствует позиции глаза. Для управления камерой
используются следующие клавиши клавиатуры:
˗ W - движение вперед;
˗ S - движение назад;
˗ A - передвижение влево;
˗ D - передвижение вправо;
˗ Q - перемещение вверх;
˗ E - перемещение вниз.
Можно использовать сочетания этих клавиш. Удерживая нажатой
клавишу Shift одновременно с одной из клавиш управления камерой, вы ускорите
движение камеры в 10 раз.
Доступны следующие команды (клавиши) управления симулятором:
˗ F2 - изменяет режим рендеринга;
˗ F3 - включает / выключает физический движок;
˗ F5 - переключение между режимами Run и Edit;
˗ F8 - переключение активной камеры.
Симулятор может работать в следующих двух режимах.
˗ Edit - в данном режиме возможно изменение сцены,
параметров объектов, находящихся на сцене, добавление новых объектов в сцену;
˗ Run - в данном режиме запускается процесс
симуляции;
˗ Visual - полностью отображаются все объекты
сцены;
˗ WireFrame - отображаются только линии
треугольников, из которых построены объекты сцены;
˗ Physics - отображаются фигуры, из которых
построены объекты и с которыми работает физический движок. Сложные объекты
иногда представляются в виде простых объектов, таких как кубы и сферы. Если
некоторые объекты не сталкиваются или передвигаются случайным образом, нужно
переключиться в указанный режим и проанализировать фигуры, составляющие
объекты;
˗ Combined - объединяет режимы Visual и Physics
(рис. 2.1).
Рисунок 2.1 - Режим Combined
Параллелепипед, размещенный внутри объекта, показывает центр
масс. Если цвет параллелепипеда красный, то объект управляется вручную (т.е.
является кинематическим), если - белый, то объект управляется физическим
симулятором.
Настройки графического движка открываются после выбора пункта
главного меню Render -> Graphics Settings. Рассмотрим параметры движка.
˗ Exposure - определяет значение экспозиции камеры.
Увеличение значения экспозиции приводит к увеличению яркости сцены;
˗ Anti-aliasing - устанавливает значение
сглаживания границ объектов;
˗ Rotation and Translation Movement Scale -
используется для управления чувствительностью мыши и клавиатуры. С помощью
указанных параметров можно настроить управление камерой мышью и клавиатурой
так, что движение мыши в несколько миллиметров будет приводить к перемещению
вдоль всего экрана;
˗ Quality level - выбор используемой версии шейдеров.
Версия, которая поддерживается графической картой, отмечена как Recommend.
Время симуляции делится на дискретные промежутки, называемые
фреймами. В каждом фрейме симулятор получает результаты обработки предыдущего
фрейма из физического движка. Затем выполняется обновление каждого объекта
сцены. После этого сцена отображается для каждой камеры, находящейся на сцене.
В заключении сцена отображается для главной камеры, и физический движок
переходит к обработке следующего фрейма.
Настройки физического движка открываются после выбора пункта
главного меню PhysicsSettings. Рассмотрим параметры движка:
˗ Enable rigid body for default camera - позволяет
связать с камерой физическое тело, имеющее форму сферы. В результате камера
сможет взаимодействовать с объектами сцены (например, сталкиваться с ними).
После установки данной опции камера будет отображаться в виде белого круга в
центре экрана;
˗ Gravity - значение гравитации, действующей в
симуляторе; определяется как сила, действующая вдоль оси Y. Данное значение
является отрицательным, так как ось Y направлена в направлении, противоположном
действия гравитации. Значение гравитации указывается в метрах в секунду;
˗ Time Base Run-time Settings - определяет
отношение времени симулятора к реальному времени. Для повышения точности при
перемещении робота необходимо уменьшить отношение времени симулятора к
реальному времени. Для замедления времени в 10 раз в поле Real time Scale нужно
установить значение 0.1;
Можно повысить точность симуляции, отведя на фрейм небольшой
интервал времени, допустим, 60 микросекунд (0.00006) и отключив визуализацию.
Рендеринг можно запускать периодически для просмотра сцены. Виртуальный мир
может включать следующие объекты:
˗ динамические - находятся под контролем физического
движка, после их создания их позиция и движение определяются только гравитацией
и взаимодействием с другими объектами;
˗ кинематические - могут взаимодействовать с
другими объектами, но их расположение определяется вручную. Допустим, в сцене
можно разместить доску, висящую в воздухе. Если она была бы динамической, то
упала на землю. Позицию кинематических объектов другие объекты изменить не
могут;
˗ статические - в процессе симуляции не изменяют
свою позицию и состоят из фигур с нулевой массой. Они могут взаимодействовать с
другими объектами, но не могут изменять свое положение.
Сцена, находящаяся в симуляторе, может быть сохранена в
XML-файл и затем загружена. При загрузке сцены все объекты получают то же
местоположение и скорость, которые они имели при сохранении сцены. Для
сохранения сцены используется пункт меню File ^ Save Scene, для загрузки - File
^ Load Scene.
При сохранении сцены записываются два файла: первый содержит
состояние сцены и имеет расширение.xml, второй содержит манифест для сцены и
заканчивается на.manifest.xml.
Редактор симулятора открывается при выборе пункта Mode ^ Edit
главного меню окна. После запуска редактора окно будет содержать отображение
сцены, список объектов сцены и свойства выделенного объекта (рис. 2.2).
Рисунок 2.2 - Симулятор в режиме Edit
Объект можно отметить на сцене, если выделить его в списке
объектов и нажать клавишу Ctrl. Если после выполнения данной операции камера не
показывает объект, то можно использовать сочетания клавиш Ctrl, Shift и клавиш
управления курсором для просмотра различных видов объекта:
˗ Ctrl + клавиша вверх: вид сверху;
˗ Ctrl + Shift + клавиша вверх: вид снизу;
˗ Ctrl + клавиша влево: вид справа;
˗ Ctrl + Shift + клавиша влево: вид слева;
˗ Ctrl + клавиша вправо: вид спереди;
˗ Ctrl + Shift + клавиша вправо: вид сзади.
Для перемещения выбранного объекта по сцене нужно выбрать
направление движения в меню редактирования свойств (Move XYZ, Move XZ, Move X,
Move Y, Move Z) и при нажатой левой кнопке мыши переместить курсор в нужном
направлении. Также возможно указать точные координаты расположения объекта в
том же меню. Подобным образом выполняется вращение объекта вдоль каждой из осей
(рис. 2.3).
Рисунок 2.3 - Меню управления объектом
Редактор предоставляет возможность загрузки, сохранения и
добавления новых объектов. К объектам также можно применять операции вставки,
копирования и удаления.
Физический движок корректирует перекрытие динамических
объектов (в реальном мире невозможное). Добавьте в сцену несколько объектов с
одинаковыми координатами и нажмите клавишу F3. В результате объекты будут
размещены по свободному пространству сцены без перекрытия.
При вставке объекта в сцену можно указать предка для данного
объекта, которым может быть один из объектов сцены. В результате симулятор
будет рассматривать эти два объекта как единое целое.
Объект может обладать такими свойствами:
˗ Position, Rotation - определяют позицию и угол
наклона объекта к каждой из осей координат;
˗ MeshScale/MeshTranslation/MeshRotation -
позволяют упростить подгонку формы (сетки) объекта к самому объекту. Это
связано с тем, что разные средства создания трехмерных объектов могут
использовать разные направления осей и масштаб;
˗ Meshes - отображает информацию о сетках,
загруженных для объекта. Сетка может быть создана из фигур, которые составляют
объект, или загружена из.obj-файла. Также данное свойство позволяет изменять
цвет, яркость и другие параметры объекта. Если были изменены параметры
материала, их можно сохранить, используя пункт меню File -> Save Material
Changes.
Свойства, определяющие освещенность объекта:
˗ Ambient - определяет, как объект отражает свет,
поступающий из окружающей среды, т.е. свет, отраженный от поверхности других
объектов;
˗ Diffuse - определяет, как свет будет отражаться
от объекта, если он будет освещен рассеянным светом. Данная величина определяет
максимальное значение света, которое будет отражено частью объекта, повернутой
к источнику света. Если некоторая часть объекта размещена перпендикулярно
источнику света, то она ничего отражать не будет. Диффузный свет позволяет
видеть объекты трехмерными;
˗ Specular - определяет, как много света будет
отражаться от объекта при его освещении отраженным светом, обычно используемым
для создания эффекта освещения солнцем. Цвет отраженного света эквивалентен
цвету света, а цвет диффузного света - цвету объекта;
˗ Power - определяет плотность отраженного пятна,
большее значение параметра соответствует меньшему отражению.
Каждый объект имеет состояние, представляющее собой набор
параметров:
а) Graphics Assets:
˗ Default Texture - если с объектом не связана сетка,
определяющая ее форму, то она генерируется из физических фигур, составляющих
объект. В этом случае указанное свойство определяет текстуру, которая
накладывается на сгенерированную сетку. Текстура должна быть двумерной и
находиться в одном из следующих форматов:.dds.bmp.png.jpg.tif;
˗ Mesh - файл, определяющий форму объекта. Формат
файла - .obj или.bos. Симулятор для ускорения работы преобразует формат.obj в
формат.bos и только после этого отображает объект. Для этого используется
утилита Obj2Bos.exe.
б) Misc:
˗ Flags - определяет поведение объекта. Если флаги не
определены, предполагается, что объект - динамический;
˗ Kinematic - кинематический объект;
˗ IgnoreGravity - на объект не имеет влияние
гравитация;
˗ DisableRotationX, DisableRotationY,
DisableRotationZ - запрещает вращение объекта вдоль указанных осей;
˗ DisableCollisions - объект не взаимодействует с
другими объектами сцены;
˗ Name - имя объекта (должно быть уникальным).
При изменении имени некоторые сервисы не смогут работать с данным объектом.
в) Motion:
˗ Angular Velocity - вектор угловой скорость
перемещения объекта в каждом из направлений;
˗ Velocity - вектор скорости перемещения объекта
в каждом из направлений.
г) Physical Properties:
˗ Mass/Density - масса и плотность объекта. Если хотя
бы одна из фигур объекта имеет массу и плотность, то вычисляется масса и
плотность всего объекта из суммы масс фигур, составляющих объект. Если сумма
масс фигур равна нулю, симулятор использует величину Mass для определения массы
объекта. Центр масс вычисляется так, как если бы плотность объекта была
однородной. Указанные замечания также касаются и плотности объекта;
˗ Inertia Tensor - тензор моментов инерции,
определяет насколько сложно повернуть фигуру в различных направлениях.
Например, цилиндр просто повернуть около его продольной оси, но сложно
повернуть около двух других осей, вследствие распределения масс. Если вектор не
определен, симулятор вычисляет его на основе расположения и относительной массы
фигуры объекта;
˗ Angular Damping/Liner Damping - данные
параметры позволяют моделировать свойство трения. Большие значения данных
параметров соответствуют более быстрому затуханию угловой или линейной
скорости. При нулевом значении объект будет двигаться бесконечно до тех пор,
пока не столкнется с другим объектом.
2.3 Управление роботом
В качестве шасси некоторых роботов используется
дифференциальный привод. В состав такого привода входят два независимо
управляемых колеса и пассивное (поворотное) колесо, используемое для баланса.
Причина популярности такой конфигурации заключается в том, что ее использование
позволяет сконструировать робота, который может развернуться на площади, по
размеру не превышающей размеры робота.
В MRDS программный доступ к дифференциальному приводу робота
реализован в виде сервиса GenericDifferentialDrive. По умолчанию данный сервис
не связан с определенным приводом. Для соединения сервиса с приводом
используется специальный файл, называемый манифестом. Одно из преимуществ MRDS
заключается в том, что, разработав программу управления определенным роботом,
можно использовать ее для управления другими роботами. Для этого достаточно
будет изменить манифест, связывающий сервис и робота.
Рассмотрим действия сервиса GenericDifferentialDrive:
˗ EnableDrive используется для разрешения или
запрещения движения робота. Данное действие имеет один параметр логического
типа. Если значение параметра - false, то запросы на управление движением
выполняться не будут. Если привод выключается во время движения, он должен
немедленно остановиться независимо от типа выполняемой операции;
˗ SetDrivePower устанавливает количество энергии,
которое подается на правое (параметр RightWheelPower) и левое (параметр
LeftWheelPower) колеса. Количество энергии может изменяться от -1.0 до 1.0 (тип
double). Отрицательная величина указывает на то, что колеса должны вращаться
назад, положительная - вперед. Каждый новый вызов действия изменяет значение
энергии, поданной на колеса.
Возможны следующие варианты движения робота:
˗ движение вперед: LeftWheelPower > 0,
RightWheelPower > 0, Left - WheelPower = RightWheelPower;
˗ движение назад: LeftWheelPower < 0,
RightWheelPower < 0, Left - WheelPower = RightWheelPower;
˗ движение по дуге: LeftWheelPower Ф
RightWheelPower (если на одно колесо робота подать большее количество энергии,
чем на другое, то колесо, на которое подано больше энергии продвинется вперед
дальше, чем колесо, на которое подано меньшее значение, в результате робот
будет двигаться по дуге);
˗ вращение на месте: LeftWheelPower = -
RightWheelPower. Установка значений энергии, подаваемой на оба колеса, в
нулевое значение приводит к остановке робота. Для остановки роботу может
понадобиться время. Между значением энергии, подаваемой на колеса, и скоростью
робота нет прямой зависимости. Однако при больших значениях энергии колеса
крутятся с большей скоростью. В ряде случаев робот может достигать своей
максимальной скорости при значении энергии меньше 1.0, а при малых значениях
энергии (например, 0.1) может не тронуться с места. Некоторые роботы
поддерживают только дискретный набор уровней мощности, в ряде случаев возможно
наличие лишь двух состояний двигателя - включено и выключено;
˗ SetDriveSpeed - устанавливает скорость движения
робота в метрах в секунду;
˗ DriveDistance - устанавливает расстояние, на
которое должен переместиться робот (в метрах).
Параметры действия:
˗ Distance - расстояние в метрах, на которое должен
переместиться робот (тип double);
˗ Power - количество энергии, подаваемое на
колеса (см. действие SetDrivePower);
˗ параметр DriveDistanceStage при вызове действия
DriveDistance должен быть установлен в DriveStage. InitialRequest. Данный
параметр используется для отображения процесса выполнения операции. Любой
запрос на движение (включая DriveDistance) отменяет DriveDistance [3]. Однако
некоторые роботы не могут прервать начатое движжение;
˗ RotateDegrees - используется для поворота робота на месте на
указанный угол (в градусах). Положительный угол означает движение влево или
против часовой стрелки относительно центра робота, если смотреть сверху.
Параметры действия:
˗ Degrees - угол, на который выполняется поворот;
˗ Power - количество энергии, подаваемой на оба
колеса;
˗ параметр RotateDegreesStage должен быть
установлен в DriveStage. InitialRequest.
Сервис GenericDifferentialDrive генерирует ряд уведомляющих
сообщений, с помощью которых возможен анализ процесса выполнения блоком команд.
Связать сервис GenericDifferentialDrive с приводом робота
(моделью робота в симуляторе) можно следующим образом:
˗ Выбрать сервис GenericDifferentialDrive на
диаграмме.
˗ Выбрать в окне Properties в поле Configuration
пункт Use a manifest.
Нажать кнопку Import и выбрать в открывшемся окне пункт
IRobot. Create. Simulation. Manifest.xml (рис. 2.4). Выбранный манифест
определяет робота, который будет добавлен в симулятор. После выполнения
указанных действий окно Properties должно выглядеть, как показано на рисунке
2.5 [8].
Рисунок 2.4 - Список манифестов
Рисунок 2.5 - Установка параметров сервиса
3. Моделирование рабочего пространства средствами
MRDS
3.1 Создание рабочей сцены средствами MRDS
Для создания сцены MRDS необходимо запустить Visual
Simulation Enviroment (VSE) и перейти в режим Edit, т.е. в режим редактора
симулятора. Редактор симулятора открывается при выборе пункта Mode → Edit
главного меню окна. После запуска редактора окно будет содержать отображение
сцены, список объектов сцены и свойства выделенного объекта (рис. 3.1).
Рисунок 3.1 - Пустое окно Microsoft Visual Simulation
Enviroment
Далее необходимо создать основные объекты сцены, такие как
небо (sky) и землю (ground). Элемент MainCamera тоже является основным
объектом, который является активным по умолчанию.
Для создания объекта sky необходимо выбрать пункт меню Entity
→ New. В появившемся окне, в списке Entity Type выберите элемент
SkyEntity и нажать ok (рис. 3.2).
Рисунок 3.2 - Вставка элемента Sky в сцену
В появившемся окне все настройки оставляем без изменений и
нажимаем ok (рис 3.3).
Рисунок 3.3 - Параметры элемента
Затем необходимо повторить процедуру для создания объекта
ground. в списке Entity Type выберите элемент HightFialdEntity и нажать ok.
Рисунок 3.4 - Вставка элемента Ground в сцену
В появившемся окне также не изменяем настройки и нажимаем ок.
Затем необходимо выделить появившийся объект HightFieldEntity и нажать кнопку
Edit Entity для изменения свойств этого объекта (рис. 3.5).
Рисунок 3.5 - Панель свойств объекта симулятора в режиме Edit
В появившемся окне (рис. 3.6) в свойстве Flags устанавлиеваем
флаг Grround, затем в свойстве EntityState нажимаем на клавишу «…».
Рисунок 3.6 - Параметры элемнта Ground
В появившемся окне (рис. 3.7) в свойстве Default Texture
нажимаем на клавишу (…) и выбираем файл с необходимой нам структурой. Файл
должен иметь разрешение.jpg или.dds. После этого в свойстве Name пишем имя
объекта: Ground и нажимаем кнопку ок.
Рисунок 3.7 - Свойства объекта Ground
В результате проделанных действий появится готовая сцена с
начальными объектами (рис. 3.8).
Рисунок 3.8 - Рабочая сцена
По завершению необходимо сохранить созданную сцену. Сцена,
находящаяся в симуляторе, может быть сохранена в XML-файл и затем загружена.
При загрузке сцены все объекты получают то же местоположение и скорость,
которые они имели при сохранении сцены. Для сохранения сцены используется пункт
меню File → Save Scene, для загрузки - File → Load Scene.
3.2 Создание объекта пространства
Создание объектов в среде Microsoft Robotic Studio не
представляется возможным, поэтому объекты необходимо разрабатывать в другой
среде. Для этого будет использована программная среда Autodesk 3ds Max (рис.
3.9).
В качестве контрольного примера будет создан стол. Для этого
необходимо создать стандартный объект Box и задать его размеры в поле
Parameters (рис. 3.10). Этот объект будет служить поверхностью стола.
Рисунок 3.9 - Программная среда Autodesk 3ds Max
Рисунок 3.10 - Создание объекта Box c заданием его параметров
Для создания ножек стола необходимо преобразовать объект Box.
Для этого в поле Modifier List необходимо выбрать пункт Edit Poly и подпункт
Polygon (рис. 3.11).
Рисунок 3.11 - Поле Modifier List
Затем на объекте необходимо выбрать полигоны которые будут
служить ножками стола (рис. 3.12).
Рисунок 3.12 - Выбор полигонов
Далее для преобразования полигонов необходимо в свойстве
Extude задать длину, а затем в поле Beve - коэффициент сужения ножек. Так как
стол создавался перевернутым нужно задать его правильное положение. Для этого
необходимо на панели инструментов нажать правой клавишей мыши на инструмент
Select and Rotate и в поле Y задать значение 180о (рис. 3.13).
Для использования этого объекта в программной среде Microsoft
Robotic Studio необходимо экспортировать его в формате.obj.
Литература
1. Юревич, Е.И. Основы робототехники [Текст]: / Е.И. Юревич. -
СПб.: БХВ-Петербург, 2005. - 416 с.
2. Попов, Е.П. Основы робототехники: введение в специальность
[Текст] / Г.В. Письменный, Е.П. Попов.− М.: Высшая школа, 1990. −
286 с.
3. Тимофеев, А.В. Адаптивные робототехнические комплексы
[Текст] /А.В. Тимофеев. - СПб.: Машиностроение, 1988. - 332 с.
4. Майер, Р.В. Компьютерное моделирование: Моделирование как
метод научного познания. Компьютерные модели и их виды [Текст] / Р.В. Майер. -
Киров: ВятГГУ, 2012. - 23 с.
5. Тарасевич, Ю.Ю. Математическое и компьютерное моделирование
[Текст]: учеб. / Ю.Ю. Тарасевич. - М.: Едиториал УРСС, 2004. - 152 с.
6. \Бронников, А.И. Моделирование рабочего пространства и
сенсорных систем робота / А.И. Бронников // Системи обробки інформації. - 2012.
- №9. - С. 10-14.
7. Kyle Johns Professional Microsoft Robotics Developer Studio
[Text] / Johns Kyle, Taylor Trevor. - Indianapolis.: Whiley Publish, 2008. -
826 p.
8. Гай, В.Е. Microsoft Robotics Developer Studio.
Программирование алгоритмов управления роботами [Текст] / В.Е. Гай. - М.: ЭКОМ
Паблишерз, 2012. - 184 с.
9. Методичні вказівки до виконання розділу «Охорона праці» у
випускних роботах ОКР «бакалавр» усіх форм навчання / Упоряд.: Б.В. Дзюндзюк,
В.А. Айвазов, Т.Є. Стиценко. - Харків: ХНУРЕ, 2012. - 28 с.
10. Методичні вказівки до випускної кваліфікаційної роботи
рівня «Бакалавр» для студентів усіх форм навчання спеціальності 8.091402
«Гнучкі комп’ютеризовані системи та робототехніка» / Упоряд.: Є.І. Литвинова,
О.М. Цимбал - Харків: ХНУРЕ. - 2008. - 48 с.
11. Сибаров Ю.Г. и др. Охрана труда в вычислительных центрах /
Ю.Г. Сибаров. - М.: Машиностроение, 1985. - 185 с.
12. ГОСТ 34.601-90 - Информационная технология. Комплекс
стандартов на автоматизированные системы. Автоматизированные системы. Стадии
создания. - К.: Держстандарт України, 1990.
13. Державний стандарт України 3008-95. Документація. Звіти у
сфері науки і техніки. Структура і правила оформлення. - К.: Держстандарт
України, 1995.
14. ДСТУ ГОСТ 7.1:2006. Система стандартов по информации, библиотечному
и издательскому делу. БИБЛИОГРАФИЧЕСКАЯ ЗАПИСЬ. БИБЛИОГРАФИЧЕСКОЕ ОПИСАНИЕ.
Общие требования и правила составления. - К.: Держстандарт України, 2006.
15. Загальні методичні вказівки з дипломного проектування в
університеті / Упоряд.: П.С. Ковтун, З.В. Дудар, В.Я. Журавльов, О.С. Шкіль. -
Харків: ХНУРЕ, 2002. - 44 с.
16. ДСТУ 3008-95. Документація. Звіти в сфері науки і техніки.
Структура і правила оформлення [Текст]. - К.: Держстандарт України, 1995. - 36
с.
17. ГОСТ 7.1-2003. Бібліографічний запис. Бібліографічний опис.
Загальні відомості та правила складання [Текст]. - Держспоживстандарт України,
2007. - 47 с.
18. Дзюндзюк, Б.В. Методичні вказівки до виконання розділу
«Охорона праці» у випускних роботах ОКР «бакалавр» усіх форм навчання [Текст] /
Упоряд.: Б.В. Дзюндзюк, В.А. Айвазов, Т.Є. Стиценко. - Харків: ХНУРЕ, 2012. -
28 с.
19. Цимбал, О.М. Методичні вказівки до випускної
кваліфікаційної роботи рівня «Бакалавр» для студентів усіх форм навчання
спеціальності 8.091402 «Гнучкі комп’ютеризовані системи та робототехніка»
[Текст] / Упоряд.: О.М. Цимбал - Харків: ХНУРЕ, - 2012. - 48 с.