Журнал «Компьютерра» № 6 от 14 февраля 2006 года, стр. 13

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

Журнал «Компьютерра» № 6 от 14 февраля 2006 года - _626h7t3.jpg

Рассмотрим системы с оптической подсветкой. Если установить на робота одну камеру и лазер, который создает яркое пятнышко на поверхности предметов, то по скорости перемещения пятна можно судить о дистанции до предмета, а по ускорению – о наклоне поверхности (при наличии двух или более камер). Таким образом, можно «прощупать» лазером все поле зрения робота. Но согласитесь, многим не понравится, если механический курьер в офисе будет всюду шарить лазером. Впрочем, можно взять лазер, излучающий в невидимом диапазоне. Еще более изящное решение – использовать структурированную подсветку. Все поле зрения робота засвечивается лазерной решеткой, и расстояние до преграды определяется по шагу решетки на кадре: чем он больше – тем и расстояние больше. Такие системы не смогут работать с зеркальными поверхностями, но согласитесь, что в стеклянном лабиринте не сможет сориентироваться даже человек, поэтому всерьез этот недостаток воспринимать не следует.

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

Система зрения робомобиля Stanley
Журнал «Компьютерра» № 6 от 14 февраля 2006 года - _626w7t5.jpg

Гонку робомобилей DARPA Grand Challenge выиграл колесный кибер Stanley. Автопробег был организован американским Агентством содействия оборонным разработкам (DARPA) и проводился в пустыне Мохаве, штат Невада. Участникам пришлось преодолеть 240-километровую трассу по пересеченной местности. Автомобиль Stanley, созданный специалистами Стэнфордского университета на базе джипа Volkswagen Touareg, был оснащен мощным комплексом цифрового зрения и системой GPS, предназначенной для определения местонахождения.

При медленном движении Stanley использовал систему лазерного сканирования, которая позволяла распознавать даже небольшие препятствия в радиусе 25 метров. Но этого не хватало для движения на большой скорости. Более того, лазерный дальномер принимает лужу за идеально ровную поверхность, из-за чего в прошлом году многие участники сошли с трассы: их машины выбрали путь через заполненные водой ямы.

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

Журнал «Компьютерра» № 6 от 14 февраля 2006 года - _626n7d4.jpg

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

Своими руками: Пультсериал

Автор: Сергей Ключко [email protected]

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

В продаже есть фотоприемники, предназначенные для телевизоров, их можно прекрасно приспособить для наших нужд. Эта небольшая деталь включает в себя датчик ИК-излучения и усилитель. Питание для него можно взять из порта компьютера, на который и будем передавать данные. В COM-порту нет нужных нам 5 вольт, но есть сигнальные линии, выходной уровень которых близок к 12 вольтам, а тока вполне достаточно для нашей схемы.

Журнал «Компьютерра» № 6 от 14 февраля 2006 года - _626i10x1.jpg

Всего нужны пять деталей. Самая дорогая – фотоприемник типа ТК-19 (TSOP1738, SFH56-38 и др. – С.Л.) – стоит 60 рублей. Еще желателен, но не обязателен стабилизатор напряжения (можно заменить 5-вольтовым стабилитроном. – С.Л.). Я взял 78L05, подойдет и отечественный КРЕН5A (точнее, КР142ЕН5А (В). – С.Л.), ценою 5 рублей. Остальные детали – сопротивление 4,7 кОм (для некоторых фотоприемников имеет смысл увеличить номинал до 10 кОм. – С.Л.), конденсатор 4,7 мкФ/10 В и диод КД521 или подобный. Понадобится также разъем для COM-порта типа «мама» (можно распотрошить старую мышь, будет не очень эстетично, но кто там за системным блоком видит…).

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

Теперь надо обработать сигналы, поступающие в компьютер. Для Linux есть нужный проект под названием LIRC. Он давно переведен на Windows-платформу и называется WinLIRC.

К сожалению, у меня WinLIRC в связке с плейером Light Alloy (для управления которым я все и затеял) неважно понимал отдельные пульты, часто путал кнопки, поэтому я решил поискать что-то другое.

Журнал «Компьютерра» № 6 от 14 февраля 2006 года - _626r10p2.jpg

Другое нашлось в виде плагина к программе Girder. Сама программа – это шедевр. Позволяет все и еще чуть-чуть. Я остановился на небольшой, бесплатной и к тому же русифицированной версии 3.2. (Сейчас на сайте разработчика этой версии нет – программа стала платной. Но на отстойниках типа narod.ru, индексируемых всеми поисковиками, чего только не попадается. – С.Л.)

К Girder написано множество плагинов, позволяющих сильно расширить ее и так безграничные возможности; нужный нам называется Igor SFH-56 Device. Никаких настроек не требуется, нужно лишь указать COM-порт и входящий сигнал. Правда, иногда попадаются пульты, высокая частота посылок импульсов у которых не позволяет фотоприемнику обработать их (вернее, порты, рассчитанные на 115 кбит/с, не в состоянии пропустить 400 кГц некоторых пультов. – С.Л.). Но у меня из четырех пультов, бывших под рукой, заработали все четыре.

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

Журнал «Компьютерра» № 6 от 14 февраля 2006 года - _626c10d3.jpg

Создаем любую команду, нажимаем кнопку «Учить событие». В окошечке должна появиться комбинация цифр или букв, этот уникальный код как раз и определяет каждую кнопку ПДУ. Теперь подставляем для нашей команды любое событие из всего того богатства, что предлагает Girder, и наслаждаемся, глядя как компьютер реагирует на кнопки пульта.