Введение

Безымянная машина команды CyberRider.
В марте прошлого года на Tom’s Hardware Guide появились две статьи (часть 1, часть 2), посвящённые состязанию DARPA 2004: гонке, в которой полностью роботизированные и автономные машины должны были проехать по трассе в пустыне. И хотя до финиша так никто и не добрался, команды усвоили урок и, не покладая рук, готовятся к следующему состязанию DARPA, которое пройдёт в октябре.
Состязание DARPA финансирует правительство США, а участие в нём может принять любая команда, сконструировавшая машину, которая способна автономно проехать трассу, объезжая препятствия. Длина трассы составляет около 280 километров, причём машины должны проехать это расстояние не более чем за 10 часов. Победившая команда получит приз в $2 миллиона, хотя для некоторых участников эта сумма даже не покроет расходы, ушедшие на сборку машины.
В духе дружественного соревнования команды постоянно обмениваются идеями, как лучше сконструировать машину-робота, которая сможет пересечь пустыню Мохаве. Мы решили взять несколько интервью у команд-участниц грядущего состязания. Мы расспросим команды о существующих технических трудностях и радостях найденных решений.
Чтобы написать эту статью, несколько человек из нашей редакции выехали в калифорнийский городок Ирвайн и взяли интервью у команды CyberRider. Эти ребята и девчата — настоящие технофилы, буквально колдующие над «железом» и программным обеспечением, чтобы выиграть состязание. Команда выставила машину на гонку 2004 года, однако в последний момент от участия пришлось отказаться — из-за неполадок в электропроводке. Поэтому команда с нетерпением жаждет принять участие в состязании 2005 года.
Руководители команды: Ивар Шунмейер и Рик Браун
Ни одна команда не обходится без капитана, и CyberRider немало повезло с Иваром Шунмейером (Ivar Schoenmeyr). Ивар не боится никаких технических проблем: у него 22 патента, так что уж изобретать он точно умеет. Вообще, он сам не помнит точное число патентов: «После того, как я зарегистрировал четвёртый патент, я перестал их считать».
Кроме того, Шунмейер является совладельцем компании Aquatec Water Systems, производящей водяные насосы и испытательное оборудование. Это даёт определённые преимущества: команда CyberRider использует офисы компании для встреч и тестирования роботов.
Но большим проектам необходим хороший менеджер, и в этом деле команду поддерживает Рик Браун (Rick Brown). Вообще, днём он работает сетевым управляющим в компании Pacific Life. Рик утверждает, что управление командой сродни жонглированию: «Всё необходимо держать на контроле, при этом нельзя ущемлять гений членов команды. Каждый в нашей команде очень умён».
Команда CyberRider: нужна помощь
Кроме двух руководителей, в команде CyberRider участвует два десятка разработчиков ПО, специалистов по компьютерному зрению и сенсорам. Возраст совершенно разный: от студентов до профессуры университета. Но все члены команды, безусловно, талантливы. И хотя два десятка — это уже почти толпа, однако команда постоянно ищет новых людей, которые могли бы внести свой посильный вклад.
Желаете потратить бессчётные часы на решение невозможной задачи? Команде CyberRider нужны волонтёры. Причём вы не обязательно должны быть инженером. Сегодня у команды есть вакансии игрового и Java-программистов.
Команда планирует перейти на Java, чтобы упростить разработку программного обеспечения. Однако Шунмейер не уверен, будет ли Java использоваться в качестве основного языка или только для слоя управления, который свяжет все языки вместе.
Состязание можно рассматривать как большую игру. В недавних шутерах типа Halo или Half-Life 2 враги отличаются хорошим искусственным интеллектом. Они достаточно умны, чтобы обходить препятствия, атаковать сообща или прятаться за скалой. И всему виной волшебство игровых программистов. Кто-то ведь запрограммировал, что враг будет устраивать засаду за валуном, услышав ваши шаги, или поймёт, что пуля будет остановлена стеной.
Команда CyberRider пытается заставить компьютеры моделировать собственный «игровой мир», который является отражением реального внешнего мира. В этом игровом мире робот будет пытаться проехать до нужного места. А информация управления будет передаваться на рулевой механизм, системы ускорения и торможения.
И старания команды отнюдь не направлены на получения денег. Придётся тратить многие часы за мизерное вознаграждение или даже абсолютно бесплатно. Никто в команде и не обсуждал, как будут поделены заветные два миллиона. Для членов команды главное — создание и продвижение технологии. Чтобы не умереть от этой страсти, команда обеспечивается бесплатными напитками и едой.
Автомобильная платформа

Команда CyberRider разделила проект на три области: автомобильная платформа, обработка информации сенсоров/синтез данных и управление машиной. Конечно же, платформа должна быть такой, чтобы выдержать гонку в пустыне. В состязании этого года DARPA приготовит различные препятствия для роботизированных машин. Скажем, будут вырыты ямы, в которых будут установлены стальные балки (вспомните противотанковые «ежи» на береге Нормандии в фильме «Спасти рядового Райана»). Кроме того, в пустыне есть и естественные преграды, способные остановить любую машину: кактусы, овраги, дюны, канавы и валуны, не говоря об остальном.
В состязании 2004 года мы видели различные машины, от «Хаммера» до мотоциклов. Насколько они хороши для пустыни? Шунмейеру и другим членам команды пришлось проверить всё на своей шкуре, во время 16-часовой езды на внедорожнике. «В конце поездки нам стало плохо, а лица приобрели зелёный оттенок, — сообщил Шунмейер. — Внедорожники и «Хаммеры» не предназначены для пустыни».

Поэтому команда CyberRider остановила свой выбор на рессорной машине-багги, которая в пустыне чувствует себя, как дома. В конце концов, если человек не может проехать трассу за десять часов, то искусственный интеллект явно быстрее не справится.
Машина оснащена двигателем на пропане с турбонаддувом. В ней применена уникальная воздушная подвеска, которая позволяет динамически увеличивать или уменьшать высоту просвета над поверхностью. Машина использует огромные колёса, наверное, самые большие в состязании: пневматики низкого давления.
Как отметил Шунмейер, «мы выбрали машину, достаточно надёжную, чтобы выдержать программные ошибки».
Дайте больше энергии!
Большой технической проблемой стало питание всех сенсоров и компьютеров. Машину пришлось наполнить многочисленными системами питания и преобразователями, но ведь место не бесконечно. Генератор переменного тока создаёт электронный «шум», способный вызвать помехи сенсоров и компьютерного оборудования, если подключать их напрямую. Поэтому команде пришлось проводить энергию через набор батарей, чтобы уменьшить «шум». Собственно, примерно так и работает блок бесперебойного питания.
Сенсоры и синтез данных

Точка доступа Linksys и DGPS-навигатор.
На машину команда CyberRider навесила множество сенсоров. Они помогают вести машину к цели и предупреждают о возникающих препятствиях. Для того чтобы не сбиться с курса, используется дифференциальная система GPS.
Сегодня миллионы людей используют GPS для определения своего местоположения. Однако GPS даёт погрешность около 10-20 метров, что вполне пригодно для повседневных целей, но не подходит для навигации в пустыне. Дифференциальная система GPS позволяет уменьшить погрешность до двух-пяти метров, вычитая ошибку в сигналах GPS. Вычитание осуществляется путём отслеживания известной точки и вычисления ошибки.
Для объезда препятствий используются лазерный и обычный радары, камеры, ультразвуковые и интроспективные датчики. Лазерный радар — это версия радара, использующая лазер вместо радиоволн. Механизм работы основан на отражении луча лазера от препятствий. Сканирование происходит как в электронно-лучевой трубке: сверху вниз.
В бампер машины встроены ультразвуковые датчики, позволяющие определять объекты по отражённой звуковой волне. Собственно, механизм работы аналогичен «видению» летучей мыши. Кроме того, в машину встроены физические сенсоры — металлические трубки, выставляющиеся на несколько десятков сантиметров, которые смогут определять контакт с препятствием. Интроспективные сенсоры определяют положение машины: скажем, стоит ли она на четырёх колёсах или перевёрнута.
«Мы старались использовать минимально возможное количество датчиков. Посмотрите на мир живой природы. Летучая мышь во время полётов использует сонар. У птицы всего два глаза. И все они прекрасно себя чувствуют без радиолокации, лазеров или системы навигации GPS», — сказал Шунмейер.
Многие люди думают, что сенсоры никогда не ошибаются, но это не так. Во время гонки из-за тряски радар или лазерный радар могут сбоить, в результате чего программе навигации придётся их игнорировать и использовать информацию других датчиков.
«В школе вас учили, что дважды два — это четыре. Однако нам пришлось на своём опыте испытать, что в жизни всё бывает иначе».
Джефф Бейкер (Jeff Baker), главный в проекте по сенсорам и синтезу данных, пытался решить проблему ошибок, разработав стабилизированную платформу для сенсоров. Пришлось прибегнуть к помощи гироскопов и к модифицированным креплениям Steadicam, которые позволяют стабилизировать сенсоры машины и снизить эффект тряски, которая неизбежна на пересечённой местности.
Определение препятствий
Бейкер разделил препятствия на «хорошие» и «плохие». К первым он отнёс кактусы и заборы, а ко вторым — выбоины, ямы, овраги и впадины. Кроме того, к «плохим» препятствиям относятся и «танковые ловушки».
На малой скорости определять препятствия очень легко, однако по мере увеличения скорости сложность возрастает экспоненциально. Кроме того, лазерный и обычный радары на больших скоростях вносят свою задержку. Скажем, луч лазера начинает сканирование сверху, и при высокой скорости картинка к моменту достижения лучом нижнего участка уже будет не верна.
Чёртово солнце!
Определение препятствий через систему компьютерного видео может показаться простым, но и здесь есть свои «подводные камни». Прямой солнечный свет и блики искажают картинку камеры. В начале трассы 2004 года DARPA сделала на трассе полный поворот на 360 градусов. Многие поначалу думали, что такой трюк нужен для того, чтобы впечатлить журналистов на вертолётах, но в этом всё же была своя логика. DARPA желала узнать, как машины справятся с ситуацией, когда в поле зрение камеры попадает солнце.
Ещё одной проблемой камер являются тени. Бейкер объяснил, что камера может интерпретировать тень как какой-либо твёрдый объект. В Grand Challenge 2004 года одна машина так и остановилась, приняв тень за препятствие.
Одним из способов избавиться от тени, является подсветка ярким ксеноновым светом, убирающим тени. Но команда CyberRider разрабатывает ещё одно секретное «оружие», которое сможет решить проблему теней. Всё, что мы можем сказать, — нам разрешили раскрыть этот секрет в одной из будущих статей.
Некоторые из вас могут подумать: а почему бы камерам не определять объекты по цвету? Но на самом деле в пустыне с низкой контрастностью это не будет работать — здесь нет ярко-розовых кактусов или ядовито-зелёных булыжников. Кроме того, цветопередача камеры зависит от времени суток и отражённого света.
Управление машиной
Возможно, самой главной проблемой Grand Challenge можно считать управление машиной, которое производится полностью программно. Компьютер анализирует данные всех сенсоров, создаёт координаты виртуального мира, а затем управляет машиной. Интеграция информации сенсоров — очень сложная задача.
И палка здесь о двух концах. Первая проблема связана с выбором, какой сенсор имеет приоритет в выборе решения о дальнейшем направлении движения. К примеру, лазерный радар может обнаружить препятствие на расстоянии двух метров, а обычный радар — ничего не видеть. Какой из сенсоров победит? Какой из них следует принимать во внимание? Проблема усложняется и тем, что машина движется на приличной скорости.
Вторая проблема — все сенсоры работают в разных координатах. Команда пытается создать единую сетку координат, которая бы упростила навигацию.
Кроме того, необходимо точно просчитывать траекторию маршрута, даже если сенсоры выйдут из строя или будут выдавать неправильную информацию. При этом необходимо определять текущее положение — на основе предыдущей скорости и положения. К примеру, если все сенсоры сгорят, машина должна определить, где она окажется через 100 метров на основе текущей скорости в 15 км/ч.
В случае аварии нажмите красную кнопку!

Как вы понимаете, роботизированная машина, едущая со скоростью 50 км/ч — небезопасный объект. DARPA и команды Grand Challenge обеспокоены безопасностью участников, зрителей да и самих роботов. Поэтому были разработаны специальные правила.
Все роботы, к примеру, должны быть оснащены кнопкой останова, которая полностью заглушает машину при сбойном управлении. Эта кнопка должна быть доступна снаружи машины. Кроме того, участникам финала дадут беспроводные блоки останова E-Stop, которые необходимо будет интегрировать в машину.
Все машины должны быть оснащены средствами звукового и визуального предупреждения, чтобы случайный наблюдатель или животное не подходили близко. Каждый робот перед началом движения и в его процессе должен подавать звуковой сигнал не тише 85 дБ. А на крыше машины должны быть установлены «мигалки». Судя по итогам Grand Challenge 2004, где во время квалификации нескольких журналистов едва не задавили, от роботов нужно держаться как можно дальше.
Во время гонки столкновения с препятствиями необязательно приводят к дисквалификации, но командам следует избегать «стратегии танка» — машина не может разрушать и переезжать препятствия на своём пути. Она должна пытаться объехать препятствие.
Тестирование и проблемы

Член команды Трэйвис Пудербах (Travis Puderbaugh) занимается отладкой робота по беспроводной сети.
Команда CyberRider разработала своё собственное программное обеспечение тестирования и диагностики. Члены команды могут диагностировать и отслеживать робота со своих ноутбуков по беспроводной сети. Для этого на крышу машины смонтирована точка доступа Linksys. Бортовой компьютер команды работает под управлением Slackware 10, предоставляя терминал и web-сервер. «Никаких особых причин для выбора Slackware 10 у нас не было, просто коробка с диском оказалась ближе остальных дистрибутивов Linux», — сказал член команды Трэйвис Пудербах, в «обычной жизни» работающий разработчиком программ и web-приложений.
Так как роботы будут ехать автономно, программное обеспечение ноутбука не должно управлять машиной. Но с диагностикой оно прекрасно справляется. «Намного безопасней тестировать робота на расстоянии, чем в близком контакте», — сообщил Пудербах.

Терминал отображает забавную ASCII-картинку траектории машины.

Web-сервер показывает аэроснимок местности с координатными точками GPS. В левой части экрана можно заметить индикаторы газа, рулевого управления и компас.
Команда запустила машину и показала, как автономная навигация и управление работают в реальном времени. Машина неплохо прошла трассу, но когда кончилось время, ушла немного вбок.
Для такой сложной технологии и «навороченного» программного обеспечения, как у нашего робота, каждая мелочь может испортить тестирование. Во время нашего визита севший аккумулятор задержал тестирование на несколько минут. Кроме того, когда корпус был закрыт, непрочно закреплённые провода приводили к перезагрузке компьютера.
Заключение

Надписи сзади робота.
Через несколько месяцев мы планируем вновь посетить команду CyberRider, чтобы посмотреть на новые достижения и проблемы. Действительно, будет интересно взглянуть, как робот совершенствуется со временем. «Мы постоянно дорабатываем нашу машину, — сказал Шунмейер. — Мы удаляем часть оборудования, затем вновь устанавливаем».
Команда CyberRider находится в постоянном сотрудничестве с другими командами. Кстати, перед нашим посещением в гостях у CyberRider побывала другая команда. У них возникла проблема с системой рулевого управления, и ребята из CyberRider дали несколько полезных советов. «Мы с радостью помогаем другим командам по каким-то ключевым проблемам, — сообщил Шунмейер. — Решать проблемы вместе всегда проще».
Конечно, вся эта работа, оборудование и бесплатная еда обходятся «в копеечку». Мы поинтересовались затратами команды.
Шумахер лишь ухмыльнулся и сказал: «Действительно, это наша больная мозоль».