Теоретически измерить расстояние с помощью ультразвука может показаться простой задачей, но на практике возникают проблемы с правильным приемом отраженного сигнала. Первая проблема - паразитное взаимодействие передатчика и приемника, когда часть сигнала передатчика «просачивается» на вход своего же приемника, в результате чего через несколько секунд после излучения импульса генерируется ложное эхо. Во-вторых, амплитуда отраженного сигнала уменьшается пропорционально пройденному расстоянию.
Первой решение этих проблем предложила компания Polaroid, которая уже 20 лет тому назад изобрела мгновенный фотоаппарат со встроенной системой распечатки снимков.
Polaroid решила проблему, изменяя коэффициент усиления в зависимости от времени (минимальный коэффициент усиления в начале увеличивается с прошествием времени), и блокируя в течение нескольких миллисекунд любой принятый отраженный сигнал.
2.2.6 Датчики положения
Знание положения для выбора направления движения - это одна из проблем для ориентации робота. Точное знание своего положения и ориентация относительно отправной точки представляет собой непростую задачу, которая требует привлечения значительных математических ресурсов [15]. Но не всегда требуется знать точное положение. Для некоторых роботов достаточно простого указания для ориентации направления их движения.
Для определения своего местоположения робот может воспользоваться несколькими способами. Используемая информация бывает абсолютной или относительной.
Система глобального позиционирования (GPS - Global Position System) позволяет определить местоположение любого мобильного (сухопутного или водного) транспортного средства на земном шаре с точностью, достаточной для него, но недостаточной для робота, установленного на предприятии. Решение заключается в установке неподвижных маяков на маршруте движения робота для передачи ему необходимой информации. Для повышения точности определения местоположения в качестве возможного дополнительного навигационного маяка можно использовать электронный компас, но магнитные поля двигателей часто снижают достоверность его работы.
В некоторых случаях достаточно знать угол вращения относительно оси. Робот-пылесос, направляясь к разъему зарядного устройства, довольствуется изменением угла вращения относительно источника света, установленного в устройстве.
Ориентиры выполняют для роботов ту же роль, что и маяки для морских судов. Они могут указывать на препятствия, от которых следует уклониться, или передавать другую нужную роботу информацию. В случае с роботами маяк может быть пассивным или активным. Простейшие пассивные маяки представляют собой отражающую ленту, а самые сложные – штрих-коды. Они могут передавать простую или более сложную информацию. Таким образом, несколько маяков, установленных на маршруте движения робота, передают ему информационные сообщения об относительном или абсолютном положении.
Активные маяки дают возможность проводить измерения на базе сигналов различных диапазонов частот. Для общения с роботом используются инфракрасные, ультразвуковые или звуковые сигналы. Ультразвуковые сигналы обеспечивают возможность измерения расстояний или курсовых углов между маяками и роботом. Задача робота заключается в идентификации этих маяков. ИК-сигналы позволяют кодировать излучения для различения маяков. Звуковые сигналы способны при необходимости заменить ультразвуковые сигналы. Первый вариант взаимодействия сигналов различных частот – маяки передают кодированные ИК-сигналы, которые робот получает, направляясь к ним. Второй вариант взаимодействия - робот излучает ИК-луч, активирующий маяки. В свою очередь, маяки излучают спектр ультразвуковых сигналов, измеряемый роботом.
Еще один вид датчиков положения – гироскопы представляют собой датчики, позволяющие измерять угол вращения робота относительно выбранной оси. Гироскоп предназначен для двух следующих измерений: угла поворота робота или его угловой скорости. Он представляет собой датчик угловой скорости, основанный на явлении кориолисовых сил. Это явление возникает в результате передачи на гироскоп определенной угловой скорости вращения. На рис. 2.9 представлен принцип работы датчика.
Рисунок 2.9 – Принцип роботы пьезоэлектрического гироскопа
2.2.7 Датчики внутреннего состояния робота
Датчики этого типа сообщают информацию о внутреннем состоянии робота [16]. Плата управления робота обрабатывает информацию с датчиков – прежде всего, ток потребления двигателей и напряжение питания батареи. Но внутренние датчики могут также сообщать информацию о температуре или выполнять тестирование внешних датчиков.
Для измерения напряжения батареи используется делитель напряжения с активным сопротивлением, который обеспечивает напряжение 5 В при полной зарядке батареи. Получаемые при измерениях значения напряжений меняются в зависимости от того, работает ли робот, или он выключен. В состоянии покоя напряжение всегда выше значения для батареи, подающей ток. О реальном состоянии батарей следует судить по их напряжению при работе робота.
Измерение тока потребления двигателей также является очень важной информацией. Оно может либо подтвердить нормальную работу робота, либо указать блокировку одного из двигателей. В случае блокировки робот должен вращаться вокруг своей реи вместо движения по прямой. Если эта неисправность не будет вовремя устранена, двигатель может выйти из строя при повышении тока больше максимально допустимого. Как правило, для определения тока, потребляемого двигателями, используются резисторы небольшого номинала, подключаемые последовательно с каждым из двигателей.
Чрезмерное увеличение температуры электронных компонентов или двигателей представляет собой верный признак неисправности в их работе. В этом случае достаточно использовать терморезистор с отрицательным или положительным температурным коэффициентом сопротивления совместно с каким-либо резистором для образования делителя напряжения, напряжение с которого можно прочесть через аналоговый вход платы управления. Существуют также датчики температуры, которые вырабатывают аналоговое напряжение, пропорциональное температуре.
2.3 Сенсорная система iRobot Create
iRobot Create имеет следующие внешние датчики (рисунки 2.10, 2.11):
– два датчика столкновения, для обнаружения удара слева или справа. Они расположены внутри бампера робота;
– инфракрасный приемник, расположенный сверху на передней части робота (используется вместе с виртуальной стеной, домашней базой);
– датчики спада, находящиеся на ведущих колесах, переднем и заднем ролике;
– четыре ИК-датчика, расположенных под бампером.
К внутренним датчикам относятся:
– датчик, показывающий превышение потребляемого тока левым колесом;
– датчик, показывающий превышение потребляемого тока правым колесом;
– два одометра, расположенных на ведущих колесах;
– напряжение батареи;
– температура батареи;
– датчик заряда батареи.
Рисунок 2.10 – iRobot Create (вид сверху)
Рисунок 2.11 – iRobot Create (вид снизу)
3. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ IROBOT
3.1 Открытый интерфейс iRobot Create
iRobot Create содержит последовательный протокол передачи данных, называемый открытым интерфейсом (OИ), используемый для управления роботом и чтения состояния его датчиков.
Открытый интерфейс (OИ) состоит из аппаратного и программного интерфейсов. Аппаратный интерфейс включает в себя 7 контактный разъем Mini-DIN и 25 контактный разъем в грузовом отсеке для подключения оборудования, например, манипулятора, оптического датчика и т.д. Программный интерфейс позволяет манипулировать поведением робота, считывать данные с его датчиков, а также выполнять ряд других.
Каждая команда начинается из однобайтового кода операции. Некоторые из команд должны следовать за байтами данных. Все команды ОИ включают заданное количество байт данных. После команды необходимо указать количество байт данных, иначе, процессор робота войдет в состояние «ожидание».
ОИ Create имеет четыре режима работы: выключенный, пассивный, безопасный и полный. После замены батареи или первой подзарядки ОИ находится в выключенном режиме. При этом скорость передачи данных установлена на 57600 или 19200 байт/с для получения команды Старт. После этой команды можно включить любой из трёх оставшихся режимов.
Находясь в пассивном режиме можно получать данные с датчиков робота, но нельзя изменять параметры исполнительных механизмов (двигатель, динамик и т.д.). В этом режиме также доступно выполнение демонстрационных команд.
Безопасный режим дает полный контроль над iRobot Create, за исключением следующих положений:
– обнаружение обрывов при движении вперед;
– обнаружение спада колеса (любого);
– обнаружение зарядного устройства.
Если попытаться выполнить запрещенную команду, робот вернется в пассивный режим.
В полном режиме возможен контроль над всеми исполнительными механизмами и запрещенными в безопасном режиме командами.
Передача команд с ПК осуществляется через последовательный порт (COM-порт) с помощью программ, работающих с потоками данных, например – RealTerm. RealTerm очень хороший и функциональный пакет для работы с последовательным портом ПК, имеет множество настроек, позволяет выводить и считывать байты в различных форматах, и протоколах, тестировать порты, и многое другое. Интерфейс этой программы представлен на рисунке 3.1.
Список основных команд приведен в таблицах А.1, А.2.