Смекни!
smekni.com

Сенсоры для навигации мобильного робота (стр. 5 из 6)

В ряде задач робототехники пороги яркости объектов и фона неизвестны, поэтому метод порогового ограничения следует дополнить способом определения порогов. Определение порогов обычно связано с анализом гистограмм. Гистограмма – это отображение из множества {а,..., β} значений яркости в множество натуральных чисел, каждому b

{а,..., β} сопоставляется число точек (m, n)
D, для которых (m,n) = b.

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

2.6 Центроидное связывание

Гистограмма изображения является его глобальной характеристикой – при ее формировании не используется понятие близости элементов изображения. Поэтому методы, рассмотренные выше, являются глобальными. Перейдем к локальным методам сегментации, получившим название наращивание областей. Алгоритмы наращивания областей используют информацию о связности объектов и основаны на рекуррентном способе разметки точек. На шаге с номером k размечаются те и только те точки, которые имеют соседей из числа размеченных на предыдущем шаге (k – 1). Разметка точек осуществляется согласно некоторому критерию однородности. Конкретные алгоритмы различаются выбором критерия однородности, способом просмотра точек и выбором начальных «стартовых» точек, размечаемых на нулевом шаге.

В литературе известно два основных подхода к стратегии выбора стартовых точек и порядка просмотра остальных: центроидное связывание и слияние – расщепление областей.

Выбор стартовых точек и их меток в алгоритмах центроидного связывания должен быть, осуществлен так, чтобы никакие две точки с различными метками не были соединены.

Кроме того, если априорно известна некоторая информация о расположении объектов в поле зрения, то желательно стремиться к выполнению следующих требований:

- точки с различными метками должны соответствовать областям различных объектов;

- точки с одной меткой должны соответствовать одному и тому же объекту.

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

.

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

Слияние областей – наиболее ответственные моменты алгоритмов центроидного связывания. Чем меньшее число раз возникает вопрос о слиянии областей, тем выше надежность алгоритма, тем меньше время, необходимое для реализации алгоритма. Число слияний областей зависит от правильности выбора порога Т и стартовых точек.

2.7 Реализация программы системы навигации ИМР в Visual C++

Реализация системы навигации робота способами Visual C++ имеет некоторые особенности. Во-первых: пролог-программа, базирующаяся исключительно на базе данных в С++, что требует реализации специальных способов преподнесения. Во-вторых: разработку С++ программ будет невозможно представить без реализации системы выполнения рабочих планов.

Конечно, решение заданий по разработке планов, исключительно зависит от начального состояния системы. Каждый объект мира ИМР должен быть однозначно описан в базе данных программы (рис. 2.3)

Рисунок 2.3 – Начальное расположение объектов в системе планирования

Таким образом мир робота состоит из пяти комнат, соединенных дверями. В комнате находятся коробки. Робот, как действующий объект такого ограниченного мира, может выполнять такие действия:

- перемещаться к дверям или коробкам;

- перемещаться в конкретную комнату;

- открывать или закрывать двери;

- загружаться коробкой или освобождаться от неё.

Опишем основные моменты разработки планов робота в ограниченном пространстве.

1. Для описания начального, текущего и конечного состояния системы планирования объявим класс CRoboPlan.

Пример 4.1 – Главный класс системы разработки планов робота

class CRobotPlan

{public: char *relname,*agent,*sobj1,*sobj2;

CRobotPlan *next;

CRobotPlan();

CRobotPlan(char *,char *,char *,char *,CRobotPlan *);

CRobotPlan(char *,char *,char *,CRobotPlan *);

void print();

CRobotPlan *dataformer();

CRobotPlan *addfact(char *,char *,char *,char *);

CRobotPlan *delfact(char *,char *,char *,char *);

CRobotPlan *delfact(char *,char *,int,char *);

CRobotPlan * delfactall(char *rel, char *n);

int dbtest(char*,char*,char*);

int dbtest(char*,char*,char*,char*);

int dbtest(char*,int,char*,char*);

int dbtest(char*,int,char*,int);

CRobotPlan *findfact(char *,char *);

CRobotPlan *findfact(char *,char *,char *);

CRobotPlan *findfact(char *,char *,char *,char *);

CRobotPlan *findfact(char *,int,char *,char *);

CRobotPlan *findfact(char *,int,char *,int);

CRobotPlan *findfact(char *,char *,char *,int);

CRobotPlan* Revers(CRobotPlan *);

void deciser();

char *find_action();

void support_action(char*);

void old_cleaner(char*);

void new_adder(char*);

};

Как видно класс состоит с трех переменных членов и ряда функций. Поля *relname, *agent, *sobj1 и *sobj2 означают: имя отношения, что входит в состав базы данных; программный субъект, который выполняет действия; два объекта на которые направлено действие.

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

3. Для решения заданий системы реализуем функцию решения – deciser(), что структурирует последовательность принятия решений:

void CRobotPlan::deciser()

{if(!evil->dbtest(relname,agent,sobj1,sobj2))

{char *action=find_action();

if (action){ support_action(action);

old_cleaner(action);

new_adder(action);

}}}

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

Если, например, перед системой возникает задание, в программе создается объект типа CRobotPlan, для которого возникает функция – решение например:

goal=new CRobotPlan(“is_in”,”robot”,”room1”,NULL); // tested

goal->deciser();

В данном случае задается целевой факт нахождения робота в комнате «room1».

4. Установление начальной цели системы планирования легко реализовать при помощи специального диалогового окна с комбинированными списками (рис. 2.4).

Рисунок 2.4 – Вид диалогового окна формирования цели робота

При помощи комбинированных списков «Агент» (содержит значение «робот», «коробка1», «коробка2»), действие («перейти к», «толкать до», «открыть», «закрыть») и «Объект действия» (все двери, комнаты и коробки) можно сформировать задания робота. Нажатие кнопки «Подтвердить» означает окончание выбора проверки корректности задания и запуск системы планирования. Перечисление действий, что в результате, запланирует система принятия решений – выводится списком в правой часте диалогового окна.

Нажатие кнопки «Показать» – запускает функции графического отображения разработанного плана действий робота.


Выводы

Разработка ИМР для различных производственных и исследовательских целей является весьма важной и актуальной задачей.

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

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

– Рассмотрены существующие навигационные системы, а именно:

Системы измерения угловых координат:

Телевизионная угломерная система;

Оптическая угломерная система со сканированием луча;

Индукционная угломерная система;

Радиационная угломерная система;

Системы измерения дальности и скорости:

Акустическая дальномерная система;

Лазерная дальномерная система;

Радиационная дальномерная система;

Системы поиска и обнаружения:

Оптическая система поиска по угловым координатам;

Акустическая система поиска по дальности;

– Разработана система навигации ИМР, включающая подсистемы: