Поиск:  
  
Технологии робототехники
Фотогалерея
Книжная полка
Доска объявлений
Форумы
Контакты

  






  ***

МОБИЛЬНЫЙ РОБОТ SR04..


РобоКлуб/Проекты/Мобильные/МОБИЛЬНЫЙ РОБОТ SR04..



МОБИЛЬНЫЙ РОБОТ SR04.

Статья является переводом описания робота, опубликованном на сайте www.dprg.org. Автор проекта - Дэвид Андерсон (David Anderson).

Введение

SR04 – это небольшой мобильный робот, предназначенный для автоматического обследования жилых помещений. Он управляется микропроцессором Motorola HC6811 на плате M.I.T. 6.270, подобно коммерчески доступному роботу "Handy Board". Два мотора, работающие от напряжения постоянного тока 12 В в конфигурации разностной пары, обеспечивают маневрирование робота. Они уравновешиваются за счет самоориентирующегося хвостового колеса и питаются от герметичных свинцово-кислотных батарей напряжением 12 В. с ресурсом 2,2 А*ч. Чувствительными элементами являются (в порядке приоритета) датчики на переднем бампере, инфракрасная система предупреждения столкновений, стереосистема звуковой дальнометрии, фотодетекторы, пассивные инфракрасные датчики движения и система одометрии, основанная на преобразовании поворот-перемещение.

Это мой четвертый робот. Предыдущие три были созданы с использованием Lego Techniques ® и управлялись различными способами с помощью аналогового оборудования, процессора New Micros HC6811 Forth и платы "Rug Warrior", которая продавалась вместе с замечательной книгой Флинна (Flynn) "Мобильные роботы" ("Mobile Robots"). От своих предшественников новый робот частично унаследовал дизайн, который также был улучшен во время долгих обсуждений с друзьями и ветераном роботостроения Дуане Густавусом (Duane Gustavus).

I. КОНСТРУКЦИЯ.

Конструкция робота SR04 определялась следующими, довольно нестрогими, критериями:

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

A. Ходовая часть

Окончательная конструкция представляет собой круглую платформу диаметром 11 дюймов (28 см) с парным дифференциальным двигателем. Хвостовое и ведущие колеса расположены по периметру платформы, таким образом, робот может вращаться вокруг своей оси. Это значительно упрощает разработку алгоритмов ориентирования и предупреждения столкновений.

B. Центральный процессор

Робот управляется микропроцессором Motorola HC6811 на плате M.I.T. 6.270. Эта плата была разработана для учебного курса по робототехнике, читавшегося в Массачусетском технологическом институте (Massachusets Institute of Technology, M.I.T.). На ней размещены процессор HC6811, 32 Кб оперативной памяти с питанием от батарей, 32 восьмибитных аналого-цифровых канала, регистр прерываний с частотой 40 кГц, 6 одноамперных H-мостов (L293) – каналов управления электродвигателем, жидкокристаллический экран и несколько цифровых портов ввода/вывода для подключения таймера и вывода сравнительных функций, полезных при создании робота.

Основа шасси робота SR04 сделана из нижней половины алюминиевой коробки размером 3"x5"x7" (7,6 см * 12,7 см * 17,8 см). Прикрученный болтами к нижней части коробки кронштейн держит двухдюймовое (5 см) свободно вращающееся хвостовое колесо. Основные ведущие колеса резиновые, размером 5 дюймов (12,7 см), взяты из модели аэроплана. Они крепятся на стальных осях диаметром 1/4 дюйма на опорном подшипнике с бронзовыми втулками диаметром 1/4 дюйма. Опорные подшипники привинчены к деревянному бруску толщиной 1 дюйм (2,5 см), который немного снижает центр тяжести, а также прижимает свинцово-кислотную батарею.

II. СРЕДА РАЗРАБОТКИ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

A. Среда разработки

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

Программное обеспечение робота было разработано и протестировано в среде интерпретатора псевдокода, но недавно я переписал все под “icc11” компании ImageCraft. Новый скомпилированный код работает в 10 раз быстрее интерпретационного псевдокода и позволяет более развито управлять картой распределения памяти (это позволило освободить 10 Кб!)

B. Обзор программного обеспечения

Программное обеспечение робота SR04 состоит из набора подпрограмм датчиков и отвечающих им действий. Они выполняются одновременно многозадачным планировщиком по кругу без приоритетного прерывания. В общем, эта структура основана на архитектуре категоризации Родни Брукса (Rodney Brooks), как описано в книге Флинна «Мобильные роботы» и более подробно на домашней странице Брукса (и еще где-то, поищите в интернете по слову «категоризация» ("subsumption")).

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

Приоритет основан на расстоянии до определяющего события. Чем оно ближе, тем больше приоритет, чем событие дальше – тем приоритет меньше. Точная последовательность следующая:

0Оператор
1Бамперы
2Поворот и сканирование
3Инфракрасная система предупреждения столкновений
4Сонар
5Фотодетектирование / избегание
6Детектор движения
7Счисление пути

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

III. УЗЛЫ РОБОТА.

A. ПИД-контроллер.

Пропорционально-интегрально-дифференциальный [ПИД] алгоритм используется для управления моторами ведущих колес и маневрирования роботом. Этот полезный и эффективный метод состоит из трех подсистем:

1. Счетчики поворота.

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

2. Широтно-импульсная модуляция

Встроенный в чип HC6811 генератор прерывания по таймеру используется для генерации двух ШИМ-сигналов, подаваемых на два H-моста L293 для управления ведущими моторами.

3. ПИД

Сам ПИД алгоритм работает в цикле вместе с сенсорами с частотой в 20 Гц. Из обработки данных датчиков положения он определяет текущие скорости вращения моторов, сравнивает их с требуемыми в данный момент времени и увеличивает, или уменьшает величину ШИМ для их совпадения.

Входные данные для ПИД-узла управления – это глобальные переменные: скорость и вращение, обе со знаком. Скорость определяется движением центра робота, а вращение разностью скоростей вращения ведущих колес. После поступления этих данных в ПИД-контроллер он, с частотой 20 раз в секунду, вычисляет нужные значения частоты отсчета датчиков вращения валов и пытается настроить скорость вращения моторов на нужную величину.

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

B. Одометрия.

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

C. Телеметрия

Пара радиоприемников "Lynx" с режимом приема и передачи используется для осуществления телеметрии. Робот передает сплошной поток пакетов по 80 символов ASCII со скоростью 2400 бод. В них входят данные одометра, сенсоров, напряжение батарей, флаги состояния и так далее. Они принимаются и либо выводятся прямо на экран компьютера, либо сохраняются в файл для последующего использования. Передатчики робота потребляют всего 10 мА, и их радиус действия ограничивается 50 футами (15,2 м) в зависимости от обстановки.

IV. СЕНСОРЫ И ДЕЙСТВИЯ РОБОТА

A. Блуждание

Блуждание обладает наименьшим приоритетом и может принимать два значения:

1. Цель = 0;

По пути нет определяющего объекта. По умолчанию робот двигается вперед, разгоняясь до максимальной скорости, разрешенной оператором.

2. Цель != 0;

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

a. Определяется расстояние и направление на объект.
b. Формирование команд поворота вправо/влево в зависимости от направления на объект.
c. Управление скоростью мотора в зависимости от расстояния до объекта, необходимо уменьшить скорость при приближении к нему.

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

Действие по умолчанию определяется просто: при получении данных с датчика какой-либо сторон надо отъехать назад и повернуться в противоположную сторону. Таким образом, столкновение справа поворачивает робота налево и наоборот. При получении сигнала с центрального бампера вызывается генератор случайных чисел, который и определяет поворот. Этот алгоритм работает в 95% случаев, но может зациклиться, если робот попадет в угол, особенно острый. Непреодолимым препятствием для такого алгоритма является чертов офисный стул с 5 ножками (у меня таких несколько).

В SR04 предусмотрено два механизма выхода из этого замкнутого круга. В соответствии с первым, при попадании в угол робот пытается двигаться вправо-влево-вправо-влево, второй начинает работать, если произошло слишком много столкновений за короткое время. В обоих случаях робот просто поворачивается на 180º и пытается снова. Обычно это работает, хотя и не всегда с первого раза.

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

C. Фотоэлементы

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

В зависимости от значения флага «избегать» возможны два действия:

1. избегать = 0

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

2. избегать = 1

В этом случае действия робота аналогичны, но поворот происходит ОТ наиболее яркого источника, а не к нему, как в предыдущем случае.

Этот простой алгоритм управления может дать нетривиальные результаты. В простейшем случае робот направится к источнику яркого света и будет кружиться вокруг него как мотылек, если активен режим движения на свет (избегать = 0). В более продвинутом случае робот будет обследовать комнату, избегая теней и обходя препятствия. Этот режим дополнительно требует работы датчиков бампера для предупреждения столкновений

D. Система инфракрасного детектирования

1. Конструкция

Система инфракрасного предупреждения столкновений основана на двух инфракрасных светодиодах, установленных в затененной коробке на переднем бампере. Также по обеим сторонам установлено два детектора инфракрасного излучения Sharp, направленных под 45 градусов от центральной линии. Такая конфигурация позволяет регистрировать отраженное инфракрасное излучения с расстояния до примерно 30 дюймов (76 см). Области, отвечающие различным детекторам, незначительно перекрываются в центре.

2. Модуляция ИК-системы

На плате 6.270 расположен источник сигнала частотой 40 КГц для управления светодиодами в соответствии с требованиями детекторов Sharp. Программно этот сигнал может включаться и выключаться, что используется для уменьшения погрешности, связанной с фоновой засветкой. Детектирующий код робота дополнительно модулирует сигнал на ИК светодиоды с частотой 125 Гц. Программа работает два раза в цикл, т.е. с частотой 250 Гц и сигнализирует наличие ИК-излучения, если во время работы излучателей сигнал от детекторов есть, а когда диоды выключаются, сигнал пропадает.

3. Детектирование ИК-излучения

Перед запуском реакции на сигнал ИК детекторов необходимо зарегистрировать его подряд несколько раз. Это число хранится в переменной max_count. Чем меньше это число, тем чувствительней робот к малому числу отсчетов вплоть до рыскания в центре комнаты. При его увеличении робот реагирует более медленно но более уверенно на отсчеты ИК-излучения, в крайнем случае, робот совсем не избегает неминуемых столкновений.

Реакция робота на ИК-излучение в данной версии основана на самонастраивающемся механизме, который задает значение max_count в зависимости от числа отсчетов. Малая частота отсчетов уменьшает эту переменную, таким образом, увеличивая чувствительность системы и наоборот. Это позволяет роботу исследовать помещение, оставаясь на расстоянии от стен и препятствий, но при этом дает возможность проникать в труднодоступные места, автоматически увеличивая значение max_count, снижая чувствительность ИК-системы

4. Реакции ИК-системы

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

Предусмотрена реакция для выхода из ситуации заклинивания ИК-системы, которое определяется, если оба боковых детектора сигнализировали наличие излучения в течение долгого времени (30 секунд). В этом случае система ИК-детектирования выключается на определенное время (30 секунд).

E. Сонар

1. Конструкция

На переднем бампере расположена пара ультразвуковых локаторов Polaroid 6500 и каждый направлен на 7.5 градусов в сторону от центральной оси. Эти приборы посылают ультразвуковой импульс и по времени прихода первого эха определяют расстояние до отражающего объекта. Угловая ширина пучка достаточно узкая, около 15 градусов, таким образом, их отклонение обеспечивает обзор в обе стороны без слепой зоны в центре.

2. Электрика

Оба сонара управляются от разъема H-моста на плате аппаратного расширения 6.270. Это дает 6 управляющих каналов ввода/вывода для управления сонарами. Оба порта вывода (ECHO) подсоединены к цифровым портам ввода/вывода на основной плате.

3. Реакции

Программа управления сонаром выдает расстояния от 3 дюймов (7,6 см) до 35 футов (10,7 м) с точностью до 1 дюйма (2,5 см). По умолчанию, реакция на данные сонара – это поворот в сторону более дальнего препятствия, если разница превышает фиксированную величину, равную доле измеренного расстояния. Расстояние до препятствия определяет угол поворота: чем меньше расстояние, тем круче поворот.

Если оба сонара показывают, что препятствие ближе некоторой фиксированной величины CLOSE (30 дюймов = 76,2 см), тогда робот останавливается и может только поворачиваться на месте, как и для системы инфракрасного ориентирования.

F. Детекторы движения

1. Расположение

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

2. Электрика

Детекторы движения генерируют логический сигнал 0 или 5 вольт, подходящий для прямого подсоединения к цифровому порту ввода/вывода. Проще пареной репы.

3. Реакции

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

  1. Выдвинуть серво манипулятор
  2. Дождаться стабилизации детекторов
  3. Задействовать детекторы
  4. Ждать детектирования движения

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

G. Счисление пути

Эта процедура выполняется как часть реакции «блуждание». Она берёт таблицу декартовых координат X,Y в дюймах, задает значения X_target и Y_target, используемые процедурой «блуждание», и устанавливает флагу TARGET (цель) значение истина. Потом она ожидает, пока процедура «блуждание» не вернет флагу TARGET значение ложь и переходит к следующему набору координат X,Y из таблицы. Когда достигнут конец цикла, исполняется мелодия «я завершил просмотр списка координат»

Изначально я сделал такой режим работы для участия в конкурсе, организованной ГРПРД (Группой Разработки Персональных Роботов из Далласа, DPRG, Dallas Personal Robotics Group), но потом обнаружил абсолютно новую систему реагирования, основанную на том же исходном коде. Недавно я добавил режим, в котором робот случайно двигается в помещении в течение трех минут, а потом, издав сигнал тревоги, пытается вернуться в исходную точку. Эта задача становится особенно интересной, если обратный путь заблокирован. В одном из экспериментов робот выехал из дома, обогнул его и вернулся в исходную точку через другую дверь.

H. Пассивное поведение Этот детектор срабатывает, если случается определенная задаваемая последовательность событий датчиков бампера. При этом выполняется следующая последовательность действий:

  1. Повернуть робот на 360 градусов, на каждом шаге в несколько градусов снимая данные сонара, инфракрасных и фото детекторов.
  2. Повернуться в том направлении, где наиболее вероятно присутствие человека, основываясь на наибольшем расстоянии, выданном сонаром, максимальной освещенности и минимальном сигнале ИК-датчиков.
  3. Остановить робот, таким образом задействовав детекторы движения.
  4. Исполнить приятную мелодию и ждать срабатывания датчиков движения.
  5. Завершение.

Достаточно занимательный режим. Бывает, что я сижу в кресле за работой, пока робот бродит по дому. В какой-то момент я понимаю, что уже давно его не слышал и иду искать его. А он в это время просто засел за дверью или диваном. Когда он неожиданно выпрыгивает на тебя трудно не испугаться. А вот моей жене такой режим не нравится.

I. Реагирующее поведение

Реагирующим поведением я называю режим, когда включены все датчики робота, кроме системы «блуждание». В этом случае по умолчанию робот затаивается, ожидая сигнала с какого-либо датчика. Данные с сонара, бампера, инфракрасных и фотодетекторов заставляют робот реагировать и пытаться найти место, где все датчики замолкнут. В результате робот блуждает по комнате под действием разных датчиков, пока не найдет абсолютно спокойное место. Если кто-нибудь включит свет, или начнет ходить по комнате, изменяя освещенность и данные сонара, робот включится и снова начнет искать место отдыха.

J. Смешанное поведение

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

V. БУДУЩИЕ УЛУЧШЕНИЯ

A. Осторожно, ступеньки

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

B. Поиск источников энергии

Способность робота заряжать свои батареи даст огромный толчок в сторону его полной автономности. Это будет что-нибудь вроде станции подзарядки, или, возможно, солнечные батареи. Сейчас, когда у робота заканчивается энергия, он делает так же, как и мои дети: зовет меня.

C. Двусторонняя радио связь

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

 


Автор конструкции: David P. Anderson
gale
Dallas Personal Robotics Group

Комментарии

Добавить комментарий к мобильным