| Журнал шаман-буддиста котовода-электроника профессионала-программиста :) - Бастер-2010: Часть 13. се... | |
|
Предыдущие статьи по теме: Бастер-2010: Часть 10. Соединение силовой электроники с компьютером Бастер-2010: Часть 11. Соединение силовой электроники с компьютером (окончание) Бастер-2010: Часть 12. Обзор первой стадии проекта. Пока "юные техники" налаживают шасси и приводы, поговорим о следующем этапе - создании сенсорной системы робота. Очевидно, что система восприятия роботов в первую очередь опирается на принципы, заимствованные в живой природе. Главное отличие состоит в том, что обработка информации в роботах имеет электрическую природу, в то время как в живых организмах преобладают химические (электрохимические, если точнее) процессы. На сегодняшний день доступно огромное количество сенсоров, преобразующих различные параметры окружающей среды в электрические сигналы. Можно, конечно, попытаться создать машину, столь же или даже более чувствительную, как живой организм. Технически это несложно сделать, но на этом пути мы столкнемся с проблемой иного рода. Количество информации, поступающей от множества датчиков, может оказаться настолько большим, что наш робот не сдвинется с места: его вычислительные ресурсы будут перегружены. Из этого, кстати, следует, что далеко не все решают сами сенсоры - многие из них просто бесполезны без совершенного программного обеспечения. Простой пример - телекамеры. Сейчас можно приобрести отличные миниатюрные камеры за гроши. Но что дальше? Информация, выдаваемая телекамерой - всего лишь непрерывный поток данных о яркости точек в плоскости кадра. Преобразование этой информации в представление о пространственной сцене за приемлемое время - задача, до сих пор не имеющая универсального решения. Между тем, любой слизень с микроскопическими глазками и несколькими тысячами нейронов справляется с этой проблемой лучше всяких компьютеров. Следует выбрать некоторый ограниченный набор сенсоров, удовлетворяющий тем задачам, которые должен решать робот. Чем специализированнее робот, тем ограниченнее его восприятие, соответственно, тем проще его сенсорная система. Мы не ищем легких путей. Мы строим робота, не предназначенного для решения каких-либо конкретных задач. Цель его создания - научиться использовать достижения современной науки и техники. Главное - с ним должно быть интересно. Попробуем определить разумные пределы совершенствования нашего робота. Дэйв Хейзерманн, создатель Бастера, ограничился контактными датчиками прикосновения к боковым поверхностям робота. Все остальные датчики рассматривались в его проекте как необязательные дополнения. С них и начнем. 1. Датчики прикосновения (контактные). Если подумать, без них нельзя обойтись. Эти датчики представляют собой электрические контакты, замыкаемые при касании бампером робота какого-либо предмета. Ничего проще и надежнее двух контактов уже не придумать. К тому же, эти датчики сразу выдают однозначную информацию о событии, не требуя какой-либо предварительной обработки данных. То есть, если сработал контактный датчик переднего бампера, это означает, что робот уперся носом в стену, и ничего другого. Просто и понятно. Несмотря на всю примитивность, контактные датчики, пожалуй, наиболее полезны. Я считаю, что мобильный робот должен иметь их обязательно. В конце концов, даже мы, находясь в полной темноте, выставляем вперед руку, чтобы нащупать препятствие. Даже кошки, обладающие куда лучшим зрением, слухом и обонянием, оснащены мощнейшей системой усов. Контактные датчики идут под номером 1 как основа сенсорной системы робота, но у них есть один существенный недостаток. Датчик в бампере замыкается тогда, когда робот уже во что-то врезался. На практике это означает, что до этого момента он двигался с максимальной скоростью. Учитывая немалый вес конструкции, подобного события следует всячески избегать. Лично у меня все ноги были в синяках, когда я налаживал своего Бастера. 2. Датчики дистанции. Это как раз то, что должно позволить роботу узнать о препятствии до того, как он в него ударится. Датчик дистанции измеряет расстояние до объектов в зоне чувствительности и выдает сигнал тревоги, если оно оказывается меньше установленного значения. Таким образом, робот может избежать столкновения с объектом заранее. Измерение расстояния производится следующим образом. Датчик излучает сигнал, который отражается от поверхности объекта и возвращается в приемное устройство датчика. Зная скорость распространения сигнала, можно определить расстояние до объекта. Современные интеллектуальные датчики имеют встроенные вычислительные устройства, которые выдают готовые результаты вычислений, что весьма удобно. В качестве зондирующего сигнала может быть использован пучок радиоволн (такой датчик называется радаром), луч света или звуковые волны. Дальномеры, использующие звук, появились одними из первых. К ним относятся эхолоты, измеряющие расстояние в воде и ультразвуковые дальномеры, широко использующиеся, например, в качестве датчиков для облегчения парковки автомобилей. Для измерения расстояния с помощью света обычно используют луч лазера, так как он обладает очень узкой направленностью и стабильными параметрами излучения. На основе лазеров изготавливают не только дальномеры, но и целые системы, сканирующие пространство - лидары. Существует также другая разновидность оптических измерителей расстояния. В этих дальномерах определяется не время прохождения света, а угол, под которым луч отражается от объекта. Источник света и приемник в таком датчике разнесены на некоторое расстояние, причем приемник выполнен в виде линейной матрицы чувствительных элементов. Если объект находится достаточно далеко, луч света отражается от него под более острым углом и попадает в ту часть приемника, которая ближе к излучателю. По мере приближения к объекту угол отражения увеличивается, и световое пятно смещается к удаленному концу матрицы приемника. По такому принципу работают инфракрасные дальномеры Sharp, о которых я уже упоминал ранее. Еще более простой вариант - датчик, состоящий из инфракрасного светодиода и фотоприемника. Излучающий диод и приемник устанавливаются таким образом, что свет попадает в приемник только при наличии отражающего объекта на определенном расстоянии. С практической точки зрения, большинство из перечисленных типов датчиков не подходят для любительских роботов. Ультразвуковые датчики могут быть сравнительно дешевыми, но они требуют большого количества энергии для работы. То же относится к радарам. Кроме того, радарные датчики еще и довольно дорогие. Лидары и прочие лазерные устройства не проходят в первую очередь по цене. К тому же, для их использования потребуется колоссальная вычислительная мощность и весьма изощренное программное обеспечение, что тоже стоит денег и требует энергии. Из всех вариантов я остановился на инфракрасных датчиках из светодиодов и фотоприемников, а также ИК-дальномерах Sharp. На мой взгляд, они отлично дополнят контактные датчики робота. 3. Анализ внутренних параметров системы. Собственно, на третьем месте совсем не датчики, но важная часть сенсорной системы робота. Возможность анализировать собственное состояние позволит роботу избежать многих проблем в ситуациях, когда датчики не работают или дают искаженные показания. Анализ внутренних параметров системы является эквивалентом чувства усталости, голода, боли, и отчасти может заменить роботу интуицию. Какие параметры электрической системы могут служить источником жизненно важной информации? Первое, что приходит в голову, измерение степени разряда батареи питания. Внезапная потеря питания может привести к весьма плачевным результатам, начиная от уничтожения накопленной информации и заканчивая механическими повреждениями. Реализовать контроль разряда батареи довольно просто и надо сделать это обязательно. Второй важный показатель - сила тока, потребляемого двигателями при работе. Если двигатель потребляет ток, существенно превышающий некий средний показатель, это может говорить о блокировании механизмов робота препятствием или посторонним предметом. Например, повышение тока ходового двигателя почти наверняка вызвано тем, что робот уперся в препятствие или его колеса застряли в грязи. С другой стороны, падение тока двигателя также может быть признаком опасности. К примеру, вывешивание ведущих колес или поломка редуктора вызывают именно такое падение тока. Как видите, измерение всего одного внутреннего параметра системы может дать весьма полезную информацию даже в ситуации, когда внешние датчики спасовали. В принципе, на этом пока можно остановиться. Реализация всего лишь этих трех пунктов позволит нашему роботу вполне уверенно чувствовать себя в самых различных ситуациях. При желании и наличии возможностей можно добавить и другие сенсоры, улучшающие представление робота об окружающей среде и его собственном состоянии. Вот некоторые полезные дополнения на будущее. Датчики ускорения и наклона. Помогают избежать повреждений при движении по неровной поверхности или обнаружить опасные изменения рельефа местности. Также дублируют контактные датчики. Сейчас резко упали в цене и стали более доступными так называемые твердотельные гироскопы. Это микросхемы, содержащие в своем кристалле аналог гироскопа с маховиком. Применение таких сенсоров в мобильном роботе может быть очень интересным. Датчики температуры, освещенности и влажности. Могут быть весьма полезны, если робот эксплуатируется под открытым небом. Датчик температуры, например, поможет избежать перегрева системы от длительного пребывания на солнце, а датчик освещенности - обнаруживать объекты по затемнению вблизи. Акустические датчики (микрофоны) при правильном подходе также могут дать много полезной информации. Например, источник звука высокой интенсивности почти наверняка связан с повышенной опасностью для мобильного робота. Это может быть газонокосилка, работающий автомобиль или вообще выезд на шоссе. Датчики вращения колес. Позволяют лучше распределять энергию в системах с несколькими ведущими двигателями, определять пройденное расстояние, помогают выявлять вывешивание и блокирование колес и т.п. Как видите, никаких телекамер и GPS. Хотя, конечно, никто не запрещает поставить и их тоже. В любом случае, начинать придется с самого малого - с контактных датчиков в бампере. Вот о них и поговорим в следующий раз. Привет! Источник: |