Но Урмсон, Уиттакер и другие не доверяли маршруту, рассчитанному программой. Ей случалось отправлять Sandstorm прямиком через каменные гряды, в овраги и на ограждения из колючей проволоки. Поэтому группа редакторов разделяла маршрут на участки, а затем при помощи компьютеров буквально проходила каждый метр вручную в поисках ошибок. Проверенные участки затем собирались обратно в маршрут, он загружался в Sandstorm, и во время состязаний робот должен просто следовать ему.
Тем не менее к январю 2004 года, то есть всего за два месяца до гонок, Sandstorm еще не прошла самостоятельно и 80 км. В частности, Уиттакера и Урмсона беспокоили отличия между условиями, в которых испытывалась машина, от тех, в которых будут проходить соревнования. Они испытывали робота на холодных берегах реки Мононгахила, а гонки будут проходить в пустыне Мохаве. Не создаст ли смена окружающей среды трудностей для Sandstorm?
В феврале Уиттакер вывез Sandstorm в Мохаве в сопровождении основных членов группы, включая Урмсона, Петерсона и Спайкера, чтобы отшлифовать там поведение машины. (Sandstorm проделала весь путь в 16-метровом полуприцепе седельного тягача.) Завершающие приготовления должны были проходить в Автомобильном испытательном центре штата Невада, огромном участке пустыни, где производители автомобилей и самых разных их частей, от покрышек до коробок передач, испытывали свою продукцию в самых жестких пустынных условиях.
В Неваде группа Урмсона работала исключительно над Sandstorm. Написать код, вывести машину на полигон, чтобы испытать код, отметить ошибки, написать код. Этот цикл повторялся и повторялся, невзирая на время и такие несущественные прихоти природы, как смена дня и ночи.
Программисты работали по два-три дня подряд без сна, поддерживая себя только энергетиками Mountain Dew, Red Bull и фастфудом, а когда сохранять вертикальное положение тела становилось непосильной задачей, спали. Иногда в арендованном доме на колесах (однако спальных мест в нем не хватало на всех, и тогда кому-то приходилось спать на полу мастерской полигона, положив на него сложенные садовые стулья, или же на откидывающихся сиденьях джипа, который группа тоже арендовала в качестве автомобиля сопровождения для Sandstorm).
Работа в режиме нон-стоп днем и ночью представляла собой определенные трудности. Однажды вечером Sandstorm врезалась в столб забора, разбив передний бампер, на котором находились камеры и радарные датчики. Мастерские были закрыты, но, решив исходить из того принципа, что выпросить прощение после всегда легче, чем разрешение до, Спайкер и прочие перелезли через забор, взломали дверь, и сварили новый бампер из толстой металлической трубы. Получившаяся деталь весила больше 90 кг, и ее прочности было более чем достаточно, чтобы служить опорой камерам и радарам. «Наверное, можно было протаранить здание, не повредив эту штуковину», – вспоминает Спайкер.
А вот чего они почти не делали, так это не мылись. Ассенизационный бачок в доме на колесах наполнился до краев, и когда у них дошли руки отправиться в ближайший город и опустошить его, тряска на ухабистой грунтовой дороге привела к тому, что его содержимое расплескалось и залило все внутренние помещения машины. Уборка оставила настолько неприятные впечатления, что группа решила не больше не пользоваться санузлом дома на колесах. Туалеты на полигоне были, а вот душ отсутствовал, и группа не мылась примерно шесть недель. Потом, где-то в середине февраля, один из их спонсоров, Intel, пригласил находившихся в Неваде членов Red Team в Сан-Франциско, где производитель компьютерных микросхем намеревался показать Sandstorm на конференции Intel Developer Forum.
К тому моменту Sandstorm уже развивала скорость 79 км в час и прошла 160 км в автономном режиме. Результаты приводили группу в восторг. В то же время у робота сохранялись свои причуды. Например, он всегда был готов видеть препятствие там, где его не было, не видеть там, где оно было, или даже интерпретировать загруженные в него команды на свое усмотрение. Что, если подобное произойдет во время показа?
На следующее утро сотни человек наблюдали, как беспилотный автомобиль взобрался на сцену – как легко догадаться, благодаря высокотехнологичным датчикам, передовой инженерии и компьютерам с надписью «Intel Inside». Зрители восхищенно аплодировали, и эти аплодисменты были приятны членам Red Team, находившимся здесь же, в зале. Вот они на конференции, проводимой компанией из Кремниевой долины, и их принимают как знаменитостей. Признание говорило, что их жертвы не напрасны, а проект по-настоящему важен. Кроме того, они чувствовали благодарность. Ведь никто так и не заметил, что во время демонстрации один из членов группы забрался в кабину робота и спрятался под рулем, готовый при необходимости мгновенно нажать рукой на педаль тормоза, если тяжелая машина покатится со сцены прямо в толпу.
Была пятница, 5 марта 2004 года. Оставалось восемь дней до состязаний и всего три – до квалификационных заездов. Крис Урмсон встал рано утром, оделся в свою обычную рабочую форму, состоявшую из забрызганной грязью бейсболки, легкой флисовой куртки и поношенных джинсов, зашнуровал кроссовки и решил, что именно сегодня следует произвести решительное испытание Sandstorm.
Урмсон, Петерсон, Спайкер и остальные члены группы, находящиеся в Неваде, испытывали Sandstorm в самых тяжелых условиях, какие только могли себе представить. Часто в качестве испытательного полигона служили участки трассы, по которой Pony Express[21] доставляла почту больше ста лет назад. «Ред настаивал, чтобы испытания были тяжелыми», – объясняет Петерсон. Агентство DARPA предупреждало, что длина маршрута составит около 240 км. К тому моменту самое большое расстояние, которое Sandstorm преодолела самостоятельно, было 160 км. Теперь, когда до гонок оставалось чуть больше недели, вся группа хотела провести испытания на более протяженной трассе, чтобы быть уверенными в машине.
Цель была поставлена в точности такая же, как и во время гонок: 240 км. Маршрут имел форму вытянутого овала длиной примерно в 3 км. Пока Sandstorm готовили к старту, Урмсон и Петерсон работали над новым компонентом программного обеспечения. Они решили, что этот фрагмент должен встраиваться в модуль, задающий скорость и отвечающий за сброс скорости перед входом в поворот. Новый блок должен был обеспечить более быстрое движение по прямой.
Код работал превосходно. Во время нескольких пробных заездов Sandstorm смогла разогнаться до 79 км в час, а затем новый алгоритм замедлял ход машины по мере приближения к повороту. На самом деле Урмсон и Петерсон наблюдали за своим детищем и думали, не слишком ли энергично он его замедляет. Небольшая поправка, внесенная в алгоритм во время заправки топливом, казалось, улучшила поведение робота. На первом кругу они видели, как Sandstorm вошла в поворот, слегка замедлила ход, а затем ускорилась на выходе из него. В конце второго круга Sandstorm быстро приближалась к тому, что Урмсон позже в отчете о полевых испытаниях назовет «растянутым S-образным поворотом» влево. Колеса правого борта сошли с дороги в глубокий песок, и когда Sandstorm попыталась исправить положение и вернуться на утрамбованный грунт дороги, она взяла влево слишком резко. Обе правые покрышки стали глубоко вгрызаться в мягкий песок. Левые колеса поднялись и оторвались от полотна дороги. Сзади, в машине сопровождения, Урмсон с ужасом смотрел, как Sandstorm встала на бок, а затем перевернулась вверх колесами и осталась лежать так – подмяв под себя весь контейнер с компьютерным оборудованием, карданов подвес и все самые чувствительные приборы.
Робот был спроектирован так, чтобы защитить начинку контейнера при любых авариях. Лобовое соударение, удар сзади и вообще почти любое столкновение – во всех этих случаях электронным приборам, можно сказать, ничто не угрожало. Но у машины была ахиллесова пята: переворот. Поскольку Humvee обладает сравнительно низким и приземистым силуэтом, переворот был практически исключен по причинам чисто физическим.
С одним очевидным исключением: если не испытывать робота в пустыне Мохаве.
Съемочная группа History Channel приехала снимать пробный заезд. Они тут же выскочили на трассу с камерами и буквально сунули одну из них Урмсону в лицо, требуя тут же, на месте описать ущерб от аварии. Урмсон взглянул на разбитого робота, на разработку которого группа потратила большую часть года, на сломанный карданов подвес, согнутые антенны GPS-приемника, смятый в лепешку контейнер с компьютерами и сорванные с места амортизационные стойки. И разразился потоком непечатных выражений, благодаря которому оказался одним из немногих людей, «запиканных» на History Channel. «Шок и нежелание верить в случившееся, – сказал Урмсон, когда его более чем десять лет спустя попросили описать реакцию на происшедшее. – Но главным образом – нежелание верить».
Нежелание верить, поскольку группа считала, что близка к цели. Нежелание верить, поскольку всего несколько дней отделяли их от квалификационных заездов. Нежелание верить, поскольку произошло это на втором кругу, а Sandstorm должна была пройти еще семьдесят три.
Большинство членов Red Team решило, что на этом история окончена. Что им никоим образом не удастся починить робота к сроку. Кто-то позвонил в Питтсбург, чтобы рассказать остальным об аварии. На том конце провода трубку сняла ассистент Реда, Мишель Гиттлеман. Позже она будет вспоминать, что плакала, принимая сообщение.
Будь руководителем группы кто-нибудь другой, а не Ред Уиттакер, команда наверняка бы сдалась и признала поражение. Но Ред даже не рассматривал такую возможность.
Урмсон, Петерсон, Спайкер и остальные члены группы прицепили Sandstorm к полноприводной машине сопровождения при помощи сети из нейлоновых веревок и смогли поставить его обратно на колеса. Спайкер, лучше всех разбиравшийся в механике, внимательно исследовал двигатель. Тот был залит дизельным топливом, но за исключением этого выглядел нормально.
Остальные занялись оценкой ущерба электронике. Блоки GPS были полностью разрушены. Карданов подвес принял на себя основной удар, и его нужно было изготавливать заново. Основной лидар восстановлению не подлежал. К счастью, на складе в Питтсбурге были запасной лидар и подвес. Sandstorm отбуксировали в мастерскую и трое суток работали практически без сна, пытаясь починить все, что можно. Они почти успели.
Состязания были назначены на 13 марта 2004 года. Перед началом квалификационных заездов, проходивших на треке Фонтана в Калифорнии, GPS-навигация уже работала, то есть робот мог определить свое местоположение в этом мире. И датчики работали, то есть видеть препятствия он тоже мог. Компьютеры были готовы рассчитывать траектории, чтобы следовать по маршруту, проложенному сотрудниками Red Team. Так в чем же была проблема? «У нас не было времени откалибровать систему», – вспоминает Уиттакер. Иными словами, Sandstorm смотрела на мир через кривое стекло.
Представьте себе, что каждый сенсор – это глазное яблоко. Каждый глаз видит свою картинку действительности, а мозг способен объединить изображения от двух глаз в общую картину мира. Sandstorm комбинировала изображения с четырех лидаров и одной стереокамеры. Чтобы картина мира в представлении робота была похожа на реальность, нужно калибровать каждый датчик в отдельности – трудная и долгая работа, выполняемая методом проб и ошибок. «Калибровка похожа на регулировку фар, – объяснял Уиттакер. – Ведь даже корректор фар вашего автомобиля регулируют в мастерской, чтобы они светили куда надо, правда? Если есть несколько датчиков, каждый из которых поставляет данные в общую модель, они тоже должны быть отрегулированы. Иначе, если просто взять и соединить их вместе, получится в своем роде чудовище Франкенштейна, причем слегка косоглазое».
Итак, косоглазое чудовище Франкенштейна кое-как дотянуло до той недели, на которую были назначены состязания. Оно отчаянно дымило дизельным выхлопом, было помято и расцарапано, но в остальном находилось в полном порядке. Red Team предстояло соревноваться с двадцатью другими претендентами, прибывшими со всех концов Соединенных Штатов. Во время квалификационных заездов двадцати одному роботу предстояло преодолеть полосу препятствий длиной в одну милю, чтобы быть допущенными к основной части конкурса.
Приехав на трек, Уиттакер отправился побродить по нему, чтобы составить представление о соперниках. Он увидел багги Doom, единственную допущенную к соревнованиям машину, построенную старшеклассниками. Ее изготовили в школе Palos Verdes, расположенной неподалеку от Лос-Анжелеса. Студент-старшекурсник Калифорнийского университета в Беркли Энтони Левандовски возглавлял группу, выставившую единственный двухколесный аппарат: мотоцикл-робот, удерживавший равновесие при помощи гироскопа. «Группу Голем» от Калифорнийского университета Лос-Анджелеса возглавлял человек по имени Ричард Мейсон, профинансировавший свой проект при помощи 28 500 долл., которые он выиграл в Jeopardy![22].
На другом конце спектра находились профессиональные команды от корпораций, так или иначе связанных с машиностроением. Изобретатель по имени Дейв Холл построил роботизированный автомобиль на базе пикапа Toyota Tundra, примечательный тем, что спокойно передвигался при помощи только системы стереовидения и не использовал лидар вообще. Команда из Висконсина, представлявшая корпорацию Oshkosh Trucks[23], выставила трехосное чудовище весом в 14,5 тонн, окрашенное в пронзительный желтый цвет и носящее внушительное имя TerraMax. Машина CajunBot, выставленная командой из Луизианы, тоже передвигалась на шести колесах, но была значительно меньше, чем аппарат конкурентов из Oshkosh, и была основана на вездеходе, который лицензированные охотники обычно используют, чтобы передвигаться по заболоченным рукавам рек.
Урмсон, Петерсон, Уиттакер – все они прогуливались по треку, беседуя с людьми такого же инженерного склада ума, как и они сами. Быстро для них стало очевидно, что Red Team была одной из самых многочисленных команд. Журнал Popular Mechanics оценивал их шансы на победу как самые высокие, семь к одному. Статус фаворита автоматически ставил Red Team в положение участника, о победе над которым мечтают все. Урмсон опубликовал на сайте группы фотографию Sandstorm, лежащей вверх колесами. Сейчас, обходя лагерь, разговаривая с руководителями других команд, он часто замечал этот снимок на экранах мониторов. Некоторые команды ставили ее в качестве обоев – для мотивации.
Оживления добавляло то, что отдел DARPA по связям с общественностью пригласил на трек репортеров и тележурналистов со всей страны. Урмсон и его коллеги месяцами работали в безвестности. Восторженный прием на конференции Intel был приятен, но куда чаще приходилось сталкиваться с недоверием. «Автомобиль, который управляет собой сам?!» – презрительно интересовался очередной слушатель. Для многих это звучало дико. Присутствие репортеров, готовых брать интервью у всех и каждого, напомнило соперникам, что их работа важна. Достаточно важна, чтобы правительство Соединенных Штатов предложило за нее приз в миллион долларов. Может быть, достаточно важна, чтобы спасти жизни американских солдат, сражающихся на далеких театрах военных действий.
Старт гонок 13 марта 2004 года стал одним из самых запоминающихся моментов в жизни Криса Урмсона. Роботы были выстроены в линию на своих стартовых позициях. В небе кружили вертолеты – военные и пресса. На трибунах находились сотни зрителей, им в лицо хлестал песок пустыни, а поверх всего этого усиленный громкоговорителями голос Тони Тетера[24] возвещал начало соревнований.
«Тридцать секунд отделяют нас от исторического события, – кричал директор DARPA в микрофон. – Итак, дамы и господа, мальчики и девочки, роботам приказано начать движение, отмашка зеленым флагом дана, фотофиниш включен, и вот звучит команда “Марш”!».
Поскольку Sandstorm лучше всего показала себя в квалификационных заездах, ей досталась честь стартовать первой. Огромный Humvee медленно выполз со стартовой позиции. «Sandstorm, дамы и господа! – кричал Тетер. – Беспилотный автомобиль, направляющийся через пустыню ради того, чтобы спасать жизни молодых американских солдат».
Первым препятствием был левый поворот. Его внутреннюю границу обозначала какая-то чахлая растительность, за которой возвышались бетонные блоки, призванные при необходимости защитить зрителей. Sandstorm идеально вписалась в поворот и, выйдя на прямую, тут же увеличила скорость.
Пока Sandstorm была еще в поле зрения, она наехала на тюк сена. Урмсон затаил дыхание. Однако тяжелый внедорожник шел вперед, как ни в чем ни бывало. Вскоре робот скрылся из виду Red Team. Никто не подумал обеспечить участников видеотрансляцией. Все, что им оставалось, это успокоиться и ждать поступающих на старт сообщений от наблюдателей на вертолетах и от других официальных лиц, размещенных вдоль гоночной трассы.
Вскоре начали движение и другие участники. Стартовала машина команды SciAutonics II. Потом CajunBot покинул стартовую позицию на своих шести колесах и покатился прямо в бетонный барьер. Робот команды ENSCO на шасси квадроцикла Honda, едва миновав поворот, выкатился с трассы, опрокинулся набок и покинул гонку, пройдя всего около 200 метров.
Автономный багги школы Palos Verdes тоже врезался в бетонное ограждение. Затем наступила очередь самого интересного участника: автономного мотоцикла Энтони Левандовски. Тот вывел машину на стартовую позицию, завел работающий на природном газе двигатель, отошел в сторону – только для того, чтобы с ужасом увидеть, как мотоцикл немедленно опрокинулся. Позже Левандовски выяснил, что забыл включить гироскоп, удерживающий машину в вертикальном положении. Так или иначе, гонка для него была окончена.
Через несколько минут Red Team узнала от организаторов, что у Sandstorm тоже неприятности. Оказалось, что наезд на тюк сена сразу после старта был признаком серьезной поломки. То ли датчики не были откалиброваны как следует, то ли гораздо меньшая частота сканирования резервного лидара дала себя знать, но Sandstorm постоянно считала, что находится примерно на полметра левее или правее своего истинного положения. Humvee сбил один столб забора, затем другой, третий. Через несколько километров машина стала входить в поворот, причем особенно трудный: от крутого обрыва дорогу отделял только барьер высотой примерно по колено. В полном соответствии с программой Урмсона и Петерсена робот сбросил ход перед поворотом. Но находился он чуть левее, чем ему следовало быть. В результате колеса левого борта поднялись на барьер, а затем свалились вниз. Sandstorm легла на брюхо – такое Урмсон называл «аномально высоким положением».