«Я зарегистрировался на гонки, чтобы победить, – провозгласил Уиттакер. – В этот раз Red Team будет больше похожа на Красную Армию[25]».
Команды Карнеги – Меллона и Стэнфорда неизбежно должны были столкнуться на предварительной конференции. Урмсон заметил, что Монтемерло держит в руках листы бумаги, и узнал в них статью, написанную им самим после первых соревнований. Она раскрывала подход Red Team во всех подробностях. Открытая публикация всех секретов, заключенных в методах команд, была одним из обязательных условий участия в гонке, поставленных DARPA. Это была здравая политика. Она следовала духу академической науки: открытый обмен знаниями внутри сообщества ускоряет прогресс направления в целом. В то же время она также усложняла задачу Уиттакеру и Урмсону. Перед первой гонкой положение ведущей лаборатории по робототехнике в стране обеспечивало им фору. Публикация технологии сократила разрыв между ними и всеми остальными. Кроме того, перебежчики – Монтемерло и Трун – были людьми исключительно способными. Их участие означало, что победа Карнеги – Меллона отнюдь не обеспечена. Перед второй гонкой Red Team суждено было встретить самого серьезного противника за всю свою недолгую историю.
Еще в самом начале приготовлений Red Team решила перестраховаться и выставить двух роботов. (Прецедент был – SciAutonics тоже участвовала в первой гонке с двумя машинами.) Отчасти этот шаг был продиктован желанием смягчить напряженность между руководителем разработки ПО Кевином Петерсоном и руководителем проекта Крисом Урмсоном, готовых вцепиться друг другу в глотку за право командовать финальной стадией разработки Sandstorm. Был разговор о том, чтобы дать каждому из заместителей Уиттакера свою машину, но сам Уиттакер позднее утверждал, что оба они внесли свой вклад в каждую из них. Отчасти сыграли свою роль практические соображения. В конце концов, благодаря щедрости AM General у Red Team теперь было достаточно машин.
Вторая машина, получившая известность под названием Highlander[26], относилась к 1999 модельному году и была, таким образом, на 13 лет младше Sandstorm. Машина, подаренная AM General, была оснащена 6,5-литровым дизельным двигателем с турбокомпрессором. Одна из проблем при создании автопилота – это управление положениями педали газа и рулевого колеса. Большинство автомобилей-современников Sandstorm управлялись механически. Это означает, что человек поворачивал руль, нажимал на педаль газа, переключал передачи. А вот при попытке заставить компьютер делать то же самое возникали сложности. Когда привод, действующий по команде компьютера, нажимал на педаль газа, всегда имела место погрешность.
У нового Humvee, Highlander[27], управление было полностью электронным. Машина с самого начала была спроектирована так, чтобы ею управлял компьютер. Обороты, например, регулировались модулем управления двигателем, установленным прямо на заводе. Поэтому группа Highlander могла не устанавливать электромотор и рычаг, физически нажимающие на педаль газа, как это было сделано на Sandstorm, а просто переработать имеющуюся компьютерную систему под свои нужды и регулировать обороты при помощи электроники. Погрешность в этом случае была меньше, поэтому как водитель Highlander был лучше.
Было и еще одно отличие: Уиттакер и его студенты нашли другую, более точную систему определения местоположения. На первых гонках такая система имела погрешность примерно в метр. Новая, предоставленная спонсором, компанией Applanix, обладала точностью в 25 см – ощутимое улучшение характеристик машины для вторых гонок.
Итак, у Red Team было много новостей. Но то же самое происходило и в группе Труна. По сути своей Уиттакер был человеком «железа», порождением эпохи, когда изготовление робота подразумевало точную наладку взаимодействия между приводами и карбюраторами, электромоторами и солнечными батареями. Традиционный подход к делу определял методы, использованные для подготовки к первой гонке: ее члены тратили столько же времени на отработку механики компьютерного контейнера и подвеса, сколько на написание кода. Но по мере роста вычислительной мощности компьютеров робототехника постепенно превращалась из аппаратной задачи в программную, решать которую следовало специалистам по информатике. Уиттакер был инженером. В команде Труна преобладали специалисты по информатике. Аппаратная платформа, использованная командой Стэнфорда, почти не включала специально спроектированных для нее деталей. В отличие от команды Карнеги – Меллона, с нуля разработавших компьютерный контейнер и карданов подвес, Трун просто приобретал датчики на рынке и устанавливал их на машину, включая лидар, цветную камеру для сканирования дороги и два радара, задачей которых было идентифицировать препятствия на большом расстоянии. Девизом команды Стэнфорда было «считать автономное управление программной задачей».
«С моей точки зрения, нужно было просто извлечь человека из машины и заменить его роботом – а у этой задачи есть аппаратный аспект, – вспоминает Трун. – Нужно решить, как поворачивать рулевое колесо и нажимать на тормоз. Но эта часть тривиальна. Следует установить небольшой мотор на рулевое колесо. Научных исследований это не требует… По-настоящему в центре задачи находится искусственный интеллект. Принятие верных решений. Поэтому мы полностью сосредоточились на том, чтобы сделать систему умной».
«Группа Карнеги – Меллона была полноценной командой. Это огромный университет, и поэтому в ней были специалисты по всему, – объясняет Монтемерло. – Наша группа была гораздо меньше, и разбирались мы главным образом в программном обеспечении. Ни один из нас не имел навыков механика».
Тем не менее Трун очень многому научился из опыта совместной работы с Уиттакером. В сентябре 2004 года, сразу после доклада Монтемерло, он начал работу над машиной для DARPA Grand Challenge в точности по шаблону Уиттакера. В точности как тот, он набрал добровольцев, пригласив их участвовать в университетском семинаре. В случае Труна семинар назывался «Проекты в области искусственного интеллекта». На первой встрече со студентами – их было около сорока человек – Трун произнес речь в стиле Уиттакера. «Смотрите, ни краткого содержания курса, ни его плана, ни лекций – ничего этого нет, – так вспоминал он свое выступление позже. – Все, что нам предстоит сделать – это построить робота, способного пройти трассу первых соревнований».
Вспоминая, как Уиттакер стимулировал своих студентов работать с полной отдачей, ставя перед ними труднодостижимые цели, Трун поставил перед группой ясную и четко определенную цель: через два месяца, то есть к концу семестра, они должны построить автомобиль, который преодолеет одну милю первоначальной трассы. «Мы с Редом очень разные, – говорит Трун. – Но я старался учиться у него. И научился следующему: если поставить перед студентами цель – неважно, насколько сложно достичь ее, – то они, не имея представления о ее сложности, полагают, что она достижима. И со временем в самом деле достигают ее».
У группы не было бюджета, чтобы приобрести автомобиль, и они попросили компанию Ford предоставить им его. Автопроизводитель согласился, но потребовал, чтобы по окончании соревнований машина была возвращена им в первоначальном состоянии. Трун отказался – возможно, вспомнив историю с переворотом Sandstorm. К счастью, его друг по имени Джозеф О’Салливан, работавший в Google над проблемами искусственного интеллекта, играл в футбол с другим человеком, которого звали Седрик Дюпон – а он, в свою очередь, оказался инженером в лаборатории Volkswagen в Пало-Альто. Благодаря ему группа Труна получила Touareg R5 TDI 2004 года выпуска, а также обещание помощи инженеров VW в получении доступа к его компьютеру. «Это был словно дар свыше», – говорит Трун. Как и на Highlander, на Touareg стояло электронное управление, и с помощью инженеров VW подключиться к нему было достаточно просто.
В конце концов у Труна осталось примерно двадцать человек, всерьез готовых работать в команде Стэнфорда. Он разделил их на более мелкие группы. Одной он поручил конфигурирование аппаратуры, что означало установку датчиков на Touareg, которому в знак уважения к альма-матер дали имя Stanley. Другой – картографию. Третья отвечала за навигацию.
Спустя два месяца Трун со студентами отправились в пустыню Мохаве и установили Stanley на трассу первых соревнований. Они привели робота в действие и стали наблюдать. Stanley миновал отметку в одну милю, которую они назначили себе в качестве цели, чем привел Труна в восторг. Его восторг сменился изумлением, когда машина прошла 11,7 км, то есть повторила результат Sandstorm Университета Карнеги – Меллона. Через несколько минут, в 13,5 км от старта, Stanley застрял в глубокой колее, образовавшейся из-за дождя.
Трун был вне себя от радости. Колею, в которой застрял его робот, DARPA устранило бы в ходе расчистки трассы. Будь это настоящие гонки, Stanley мог бы уйти гораздо дальше. «Это было просто невероятно, – вспоминает Трун, – именно тогда ко мне пришло осознание: боже мой, а ведь это вполне решаемая задача». Если команда, составленная из относительных новичков, всего за два месяца смогла превзойти лучшую команду Карнеги – Меллона, то чего она сможет достичь за год, оставшийся до следующих состязаний?
План Red Team на этот раз выглядел как усовершенствованная и дополненная версия предыдущего.
Откровенно говоря, они чувствовали себя до определенной степени обманутыми тем, как проводились гонки. Информация, исходившая от DARPA перед гонками, заставила их предполагать, что роботам придется преодолевать бездорожье разной степени тяжести. В действительности на трассе оказалось несколько трудных участков, например тоннели или узкие ворота в заборе, но в самой дороге ничего особенного не было. Это была обычная гравийная дорога через пустыню. Она была по силам любой импортной малолитражке, наугад взятой с любой дилерской стоянки. Оглядываясь назад, Red Team понимала, что зря потратила бессчетное количество часов, чтобы научить робота преодолевать бездорожье. И не просто преодолевать, а делать это быстро. Вот почему им понадобились компьютерный контейнер на амортизационных стойках и карданов подвес – ведь вычислительная техника должна была выдержать все неизбежные рывки и толчки. Забудь группа об испытаниях робота в тяжелейших условиях и сконцентрируйся она на машине, просто способной двигаться от одной контрольной точки GPS-координат к другой, они могли бы – думало большинство группы – дойти до финиша первой гонки. Они могли бы победить.
Поэтому в этот раз Уиттакер сконцентрировал усилия на совершенствовании функций, уже разработанных Red Team. В том числе это касалось метода предварительного объезда трассы, который группа использовала перед первыми соревнованиями. В августе 2005 года Уиттакер отправил Sandstorm и Highlander в Неваду. Специалист по робототехнике предположил, что на вторых соревнованиях федеральное агентство усложнит условия. Одной из самых трудных трасс во всей стране был полигон для танков M1 Abrams в Автомобильном испытательном центре в Неваде. Именно туда отправилась Red Team, имея в запасе всего три месяца до гонок. Ее задачей было провести как для роботов, так и для людей несколько репетиций в условиях, максимально приближенных к реальным – вплоть до того, что специальные люди должны были изображать персонал DARPA и носить его форму.
Red Team обычно использовала для испытания своих автомобилей две трассы. Одна из них, известная как «Свиная отбивная» (Pork Chop), представляла из себя кольцо протяженностью 48 км, на котором встречалось все: и размытая грунтовая дорога, и асфальтированный участок, и ворота для скота, и высоковольтные линии электропередач, и железнодорожные переезды. Вторая трасса, «Колодцы Хутена» (Hooten Wells) протяженностью 85 км, напротив, была незамкнутой и шла по старому пути Pony Express. На ней нужно было преодолеть дно высохшего озера, гравийный участок и узкий каньон.
Испытания не обошлись без аварий. У Спайкера была привязанная к счету университета кредитная карта с лимитом 100 000 долл. в месяц, и этот лимит он регулярно превышал, вынужденный приобретать запчасти для ремонта то Sandstorm, то Highlander после аварий, происходивших во время заездов. Так, например, 26 августа Highlander потерял переднее правое колесо, пытаясь преодолеть особенно трудный участок бездорожья. 15 сентября Sandstorm врезалась в дерево и сильно пострадала, хотя и подлежала ремонту.
Если оставить эти инциденты в стороне, можно сказать, что испытания шли хорошо.
Впервые Sandstorm и Highlander полностью преодолевали трассы, по протяженности сопоставимые с той, что ждала их на соревнованиях, да еще проложенные по самому трудному бездорожью из возможных. Автомобили прошли по 1600 км каждый. Еще лучше было то, что при этом они показывали время, позволяющее им прийти к финишу на соревнованиях менее чем за семь часов. Red Team оценивала свои шансы на победу очень высоко.
Тем не менее график работ в команде Уиттакера был напряженным, как никогда. Подъем в четыре часа утра давал себя знать. Репетиционные заезды начинались в 6:30, как на настоящих соревнованиях. После прохождения трассы машины отправлялись в гаражи, где программисты и механики работали до глубокой ночи, ремонтируя пострадавшие узлы и внося доработки в код. На следующее утро они снова вставали в 4:00, и цикл повторялся. Это был жестокий режим. «Все едва держались на ногах от переутомления», – вспоминает Уиттакер.
Чтобы дать людям отдохнуть и привести команду ко дню соревнований свежей и полной сил, Ред назначил неделю каникул перед общенациональными квалификационными заездами, которые начинались 28 сентября 2005 года на треке California Speedway. DARPA должно было оценить 43 команды и отобрать из них 23 финалиста, которые встретятся в настоящих соревнованиях 8 октября 2005 года.
Последним днем испытаний было 19 сентября. Уиттакер поставил последнюю задачу: Sandstorm и Highlander должны были сделать по 10 кругов по 48-километровой трассе, пройдя, таким образом, по 480 км, то есть примерно вдвое больше, чем во время гонок. Как только они выполняют задачу, состояние программного обеспечения замораживается, роботы ставятся на хранение, а команда разъезжается в отпуск, каждый в свою сторону.
К полудню 19-го Sandstorm была готова к соревнованиям, за исключением необходимости поменять одну покрышку и масло в двигателе. В это время Highlander заканчивал последние круги последнего испытательного заезда. Во втором Humvee, полученном от AM General, за ним следовали Петерсон на пассажирском сиденье и инженер-программист Джейсон Зиглар – за рулем. Зиглар изо всех сил старался не отставать от Highlander, бешено вращая баранку и вдавив педаль газа до упора. Когда машина прошла 430 км, и ей оставался только последний круг, Петерсон позвонил Реду в Питтсбург, где тот улаживал последние организационные формальности. «Машина идет очень хорошо, – сказал ему Петерсон, – но мы насилуем ее». Вдруг что-нибудь случится? Петерсон посоветовал Реду отказаться от последнего круга. «Казалось, что мы уже узнали все, что можно», – вспоминает Петерсон.
Отступиться от цели прежде, чем команда достигнет ее, – не таков был Уиттакер. Он приказал выполнить программу испытаний полностью. Машины продолжили движение. Скоро Highlander скрылся в своем обычном облаке пыли. Петерсон не мог видеть робота с пассажирского сиденья машины сопровождения, но благодаря WiFi мог видеть на мониторе своего ноутбука то же самое, что и Highlander. Приближаясь к левому повороту, он сбросил скорость, как и предписывали его алгоритмы, а затем ускорился на выходе из дуги. Однако он чуть вильнул вправо, с дороги – и дисплей Петерсона внезапно заполнился красным цветом. Когда пыль рассеялась, Петерсон заметил по правую сторону дороги продолговатую насыпь, похожую на приспособление, которое используют каскадеры, чтобы поставить машину на два колеса. В данном случае каскадерский трюк состоял в том, что Highlander упал на бок, а затем завалился на крышу. Робот наехал на насыпь правыми колесами на скорости 50 км в час и взлетел в воздух.
Еще один переворот.
Поскольку в этот раз у команды уже был опыт, она сразу приступила к делу. Никто не расстроился – Спайкер подготовился как следует. Многие запчасти, нужные для ремонта Highlander, уже лежали в гараже Автомобильного испытательного центра. Доставку всего остального из Питтсбурга в Неваду Спайкер смог организовать.
А что же насчет недели каникул, которая должна была начаться у всех на следующий день? Отменена, канула без следа. Эта неделя стала периодом самой напряженной работы за всю историю группы.
После того как стэнфордская группа успешно провела заезд на 13,5 км, Трун сократил численность команды до четырех человек, оставив только незаменимых. Первыми двумя были сам Трун и Майк Монтемерло, пришедший с ним из Карнеги – Меллона. Среди участников своего семинара по робототехнике Трун нашел соотечественника-немца, специалиста в области компьютерного зрения и гениального программиста по имени Хенрик Далькамп. Четвертым был студент-старшекурсник Дэвид Стейвенс.
Группа в четыре человека идеально подходила для решения задачи, потому что как раз столько могло с комфортом разместиться в Touareg. Время от времени Трун и трое его коллег отправлялись на неделю в пустыню Мохаве и объезжали ее дороги. Вначале они ставили машину на дорогу, давали ей возможность двигаться самостоятельно до тех пор, пока она не встречала препятствие, с которым не понимала что делать. Тогда кто-то писал код, исправляющий ситуацию. По мере повторения процесса десятки, а со временем и сотни раз робот стал настолько совершенным, что приобрел способность обучаться самостоятельно. На этой стадии Трун садился за руль Stanley и вел машину через пустыню, сбрасывая скорость на бездорожье и крутых склонах. На ровных и прямых участках он, наоборот, ускорялся. Проведя так несколько дней, Трун отправлялся в университет, а у Stanley начиналась ночная смена, во время которой он пересматривал данные о поездках и учился на них. «Вот на таком участке, – думал Stanley, – Себастьян решал ехать тут, и я буду делать то же самое». «Таким образом, робот проводил ночь, разбирая данные и создавая порядок из хаоса», – говорил Трун.