ед Уиттакер начал планировать вторую гонку еще до того, как Sandstorm вернулась в Питтсбург после первой. Во время поисков спонсоров у него сложились хорошие связи с компанией AM General, производившей Humvee. В тот момент он полагал, что сможет убедить руководство пожертвовать Red Team еще один внедорожник для участия в следующих соревнованиях – при условии, что их удастся убедить в выдающихся возможностях Sandstorm.
Через несколько дней после первой гонки Уиттакер, Спайкер и Петерсон вместе с Sandstorm прибыли в кампус AM General в Саут-Бенд, штат Индиана, чтобы провести демонстрацию. Спайкер и Петерсон остались снаружи, собираясь выпустить робота на полосу препятствий, предназначенную для ознакомления новых владельцев Humvee с возможностями их машины.
Одним из элементов полосы была массивная плоская бетонная плита толщиной почти в полметра, напоминавшая крышку стола. Петерсон и Спайкер спрашивали себя, сможет ли машина подняться на препятствие и спуститься с него. Через несколько секунд Sandstorm, вместо того чтобы приближаться к препятствию малым ходом, рванулась к нему на большой скорости.
Аварийная кнопка была встроена в Sandstorm как раз для того, чтобы отключить машину, если та поведет себя непредсказуемо. Беда в том, что кнопка обладала задержкой в одну-две секунды. Спайкер нажал кнопку, но Sandstorm столкнулась с препятствием прежде, чем она сработала. Передние колеса резко подняли передок вверх. Задние тоже ударились о плиту и подбросили вверх корму. На мгновение машина оказалась парящей в воздухе целиком. Затем она со страшным грохотом упала на бетон, ударившись передком.
Именно в этот момент аварийная кнопка наконец сработала.
Спайкер и Петерсон кинулись выяснять ущерб. Уиттакер находился в здании неподалеку и проводил презентацию для руководства AM General, посвященную Red Team и невероятным возможностям ее робота. На улице Спайкер и Петерсон выяснили, что от удара Sandstorm о бетонную плиту треснул бачок антифриза. Починив его, они вывели гигантского робота на прямой участок дороги и включили, чтобы испытать. Передние колеса немедленно повернулись вправо. Такого не должно было быть. «Выключай, выключай, выключай!» – закричал Спайкер Петерсону. Ревя выхлопом, Sandstorm набирала скорость и уходила вправо от дороги, прямо в сторону корпуса, где Уиттакер беседовал с руководством AM General. Удар Sandstorm об стену сотряс все здание.
Позже Спайкер понял, что удар о бетонную плиту сорвал с крепления датчик положения руля; именно это и послужило причиной второго инцидента. Но оказалось, что это уже не имеет значения. Уиттакер и менеджмент AM General выскочили из здания, чтобы понять, что произошло. Спайкер подумал, что о спонсорстве теперь уже нечего и говорить. Но когда директора AM General закончили осматривать место происшествия, он понял, что его страхи беспочвенны.
«Непоколебимая любезность» – так охарактеризовал Уиттакер поведение руководства AM General, назвав их «превосходными хозяевами, не делающими проблемы из того, что гость уронил вилку или пролил воду». Менеджмент воспринимал себя как производителей конструкции, по природе своей предназначенной для того, чтобы дойти до предела возможностей автомобиля как такового, – и Red Team занималась тем же самым, только в ином ключе. Разумеется, они будут спонсировать команду Уиттакера. «Мы дадим вам два Humvee, – торжественно провозгласил один из директоров, – только будьте осторожны».
Несколько месяцев спустя Себастьян Трун, ученый, работающий в области компьютерных наук, присутствовал на докладе о DARPA Grand Challenge в классе Стэнфордского университета. Трун недавно оставил преподавательскую работу в Институте робототехники Университета Карнеги – Меллона, где работал вместе с Уиттакером над роботом под названием «Сурок» (Groundhog), разработанным для разведки и нанесения на карту заброшенных угольных шахт в Пенсильвании. На новом месте работы, в Пало-Альто, Калифорния, он возглавлял Лабораторию искусственного интеллекта Стэнфордского университета; когда-то это была очень уважаемая исследовательская организация, основал ее пионер ИИ Джон Маккарти в 1963 году, но с тех пор, как в 1980 году ее включили в состав факультета компьютерных наук жизнь там замерла. Чтобы оживить организацию, Трун привел с собой девятерых преподавателей из Карнеги – Меллона. Оставив все проекты в своем бывшем университете, Трун искал быстрый способ восстановить репутацию лаборатории.
Трун присутствовал на предыдущих Grand Challenge в качестве зрителя, и ему очень хотелось принять участие в следующих соревнованиях. Это могло бы стать тем самым успехом возрожденной лаборатории. Поэтому Трун попросил одного из «перебежчиков» из Карнеги – Меллона провести презентацию для остальных членов группы.
Оратора звали Майк Монтемерло, это был инженер с тихим и вкрадчивым голосом, обладавший репутацией компьютерного гения, эксперта в программном обеспечении для роботов, которое позволяет им определять свое местоположение и одновременно привязываться к карте. Как раз эта функция так подвела Sandstorm во время первой гонки. Отец Майка, Мелвин Монтемерло, был программным директором НАСА и плотно сотрудничал с Уиттакером в многочисленных проектах. Когда Майк заканчивал школу, отец провез его по нескольким университетам, чтобы тот своими глазами увидел кампусы каждого из них. Однажды вечером в Питтсбурге они вдвоем бросали камушки в окно Уиттакера, пытаясь вызвать живую легенду робототехники на улицу и попросить ее показать Майку Центр полевой робототехники. Именно из-за этой экскурсии Майк оказался в Университете Карнеги – Меллона. Несколько лет спустя Уиттакер стал руководителем кандидатской диссертации Монтемерло. В то же самое время Майк работал в одном офисе с Крисом Урмсоном.
По существу, стэнфордское выступление Майка представляло собой отчет о поездке на трек California Speedway. Выступление было богато проиллюстрировано фотографиями роботов и ясно показывало проблемы и недостатки техники, с которыми пришлось столкнуться каждой команде. Он потратил много времени на работу, результаты которой были практически уничтожены инцидентом с переворотом Sandstorm. Предпоследний слайд спрашивал, стоит ли Лаборатории искусственного интеллекта принимать участие в следующих гонках DARPA Grand Challenge. На заключительном слайде красовалось слово «НЕТ», набранное полужирным шрифтом большими буквами.
Трун – худощавый мужчина, говорящий с идеальной дикцией и ювелирно точными предложениями, особый колорит которым придает немецкий акцент. Он родился в небольшом городе Золинген в Рейнской области и вырос в северной Германии. «Почему нет?» – спросил он негромко.
«Это трудно, – ответил Монтемерло, из-за своей прически с пробором посередине и очков в тонкой металлической оправе выглядевший в точности как программист из голливудских фильмов. – Это означает отгородиться от мира, – продолжил он, вероятно, имея в виду опыт Урмсона и его группы. – Люди будут вынуждены работать днем и ночью. Они полностью лишатся социальной жизни. Наконец, это просто невозможно!»
Видимо, в глубине души Монтемерло догадывался, что лучший способ заставить Труна попытаться сделать что-либо – сказать ему, что это невозможно. «Я не считаюсь с правилами, – отвечает ему Трун в точности так, как это сделал бы и Уиттакер. – Я бунтарь и люблю совершать безумства».
Трун был младшим из трех детей. «На меня у родителей уже не хватало ни времени, ни сил, – признался он как-то во время интервью много лет спустя. – У меня было прекрасное детство, но в основном я был предоставлен сам себе». Вынужденный проводить время в одиночестве, он приобрел страсть к разного рода интеллектуальным предприятиям. Когда ему было двенадцать лет (на дворе стоял 1980 год), его страстью был калькулятор Texas Instruments; на этой машинке можно было писать программы для решения уравнений. Трун развлекался, составляя для него небольшие игровые программы. Затем ему попался на глаза персональный компьютер Commodore 64 в местном универмаге. Для семьи из среднего класса это было слишком дорогой покупкой, поэтому Трун приходил к выставленному в магазине компьютеру и программировал на нем день за днем, неделю за неделей. Каждый день он пробовал все более крупные задачи. Он стал мастером написания краткого, сжатого кода: каждый день, когда магазин закрывался, компьютер выключали, и на решение задачи у него было два с половиной часа между окончанием уроков в школе и закрытием магазина.
К тому моменту, как родители купили ему подержанный компьютер North Star Horizon, молодой человек уже был способен кодировать несложные игры и, например, написал виртуальный кубик Рубика. Другим его проектом была база членов теннисного клуба, принадлежавшего их семье. Кажется, будто Трун провел юность в поиске все более трудных задач, чтобы испытывать на них свои навыки программиста. Тот же принцип преобладал в его научной и профессиональной деятельности. Он поступил на факультет информатики Боннского университета. Искусственный интеллект привлекал его: Трун полагал, что в отличие от людей с их иррациональным, подчас необъяснимым поведением, причины того или иного поведения программы понять можно всегда.
В 1990 году Боннский университет приобрел для исследовательских нужд японский робот-манипулятор. Тут Трун обратил на себя внимание, обучив робота при помощи нейросети ловить катящийся мячик. Научная статья, написанная по результатам этой работы, была принята на американскую конференцию по искусственному интеллекту Neural Information Processing Systems. Поездка туда стала поворотным пунктом в карьере Труна, которому на тот момент было 22 года. Он открыл, что существуют в точности такие же люди, как он, – «сообщество психологов, статистиков, специалистов по информатике, вместе пытающихся понять, как заставить машину учиться». С этого момента Трун сосредоточился на написании научных статей, чтобы иметь возможность посещать конференции по искусственному интеллекту чаще. Благодаря таким мероприятиям его наставниками стали Алекс Уэйбел из Университета Карнеги – Меллона, слывший легендой среди специалистов по искусственному интеллекту, а также будущий руководитель его кандидатской диссертации Том Митчелл. Защитив диссертацию в Боннском университете и получив степень доктора философии в области информатики и статистики, в 1995 году Трун присоединился к преподавательскому составу Университета Карнеги – Меллона.
Одним из самых интересных проектов Труна в Питтсбурге был робот-экскурсовод для музеев. Чтобы обыграть ассоциации, сформировавшиеся у широкой публики в связи с понятием «робот» – вспомните комедию 1986 года «Короткое замыкание» (Short Circuit), сериал «Рыцарь дорог» (Knight Rider) и благонамеренного андроида по имени Data (Данные) из сериала «Звездный путь: Следующее поколение» (Star Trek: The Next Generation), – Трун снабдил своего робота по имени Минерва парой объективов в качестве глаз и ртом красного цвета, который мог изгибаться в гримасу, выражая неудовольствие. Чтобы продемонстрировать публике возможности новых технологий, Минерва водила экскурсии по Смитсоновскому музею в Вашингтоне.
Оказалось, что запрограммировать робота таким образом, чтобы он передвигался по музею, не представляя угрозы ни для себя, ни для окружающих, – удивительно сложная задача. Одновременно с Минервой в залах музея будут находиться сотни посетителей-людей, не говоря уже о ценных экспонатах. Как построить машину так, чтобы она не врезалась в экспонаты? Как написать код таким образом, чтобы она не переехала ребенка?
За шесть лет до DARPA Grand Challenge, в 1998 году, Трун оснастил Минерву лазерными дальномерами. Затем он загрузил в робота алгоритм машинного обучения и отправил его в залы музея ночью, когда там нет посетителей. Минерва передвигалась между экспонатами, просвечивая помещения лазерными лучами и составляя себе их карту. Затем, когда музей открывался и в залах одновременно с роботом оказывались и посетители, Минерва пользовалась ранее составленной картой, чтобы определить свое местоположение. Кстати, именно благодаря карте Минерва избегала столкновения с людьми. Робот считал, что каждое новое препятствие, не отмеченное на карте, – человек, и останавливалась на безопасном расстоянии от него.
Проект робота-экскурсовода оказался весьма успешным, и Трун воспользовался положительными отзывами, чтобы получить место руководителя по программному обеспечению в других проектах. Например, Уиттакер убедил Труна присоединиться к группе, конструировавшей робота под названием «Сурок», с помощью которого планировалось сделать добычу угля в Аппалачах безопаснее. Для старых, выведенных из эксплуатации шахт карт не было, и это являлось потенциальным источником опасности. Например, девять рабочих оказались заперты под землей в старой шахте в городе Куикрик, Пенсильвания, пробив стену заброшенной в течение многих лет выработки, которая оказалась затопленной. Шахтеров спасли через три дня, но Уиттакер воспринял случившееся как личный вызов и всего за два месяца построил робота, которого можно было сбрасывать в старые шахты, сканировать выработки и строить их трехмерные карты, – при этом Трун программировал задачи одновременной локализации и картографирования (SLAM).
К гонкам DARPA Grand Challenge Трун относился с огромным энтузиазмом. Когда ему было 18, его лучший друг Харальд пригласил его покататься на принадлежавшем кому-то из общих друзей новеньком Audi Quattro. На дорогах был гололед, водитель ехал слишком быстро, выскочил на встречную полосу и столкнулся с грузовиком. Харальд погиб на месте. Удар был такой силы, что ремень безопасности лопнул. С тех пор эта авария стала неотступным кошмаром для немецкого профессора робототехники.
Трун видел в беспилотных автомобилях возможность сделать поездки безопаснее и исключить возможность аварий, подобных той, что погубила его друга. После первых соревнований он уже начал обдумывать решение. То, что DARPA установило по трассе контрольные точки, упрощало задачу. Обучить Минерву находить дорогу в заполненных посетителями залах Смитсоновского музея было едва ли проще, чем построить беспилотный автомобиль. Прежде чем уйти из Карнеги – Меллона, он обратился к Реду Уиттакеру с предложением. «Смотрите, – сказал он живой легенде робототехники, – меня пригласили в Стэнфорд, но я был бы рад помочь вам подготовиться к следующим состязаниям».
«Согласись он тогда, – вспоминает Трун, – я бы с удовольствием работал в его команде и никогда не создал бы свою».
Но Уиттакер отклонил его предложение. Предположительно, он хотел видеть в команде только тех, кто так или иначе связан с Карнеги – Меллоном. Трун же после презентации Монтемерло задумался о самостоятельном участии в состязании. Red Team понадобился год, чтобы построить робота, который в конечном счете прошел 11,7 км. Если новая лаборатория Труна сможет превзойти их результат, общенациональное признание окажется к ней значительно ближе. Функции SLAM абсолютно необходимы для хорошего результата, а Трун и Монтемерло были лучшими во всем мире специалистами по ним. Поэтому вывод Труна свелся к простому «почему нет?».
14 августа, когда DARPA проводило конференцию для потенциальных участников, Трун привел с собой Монтемерло и еще нескольких членов команды. Мероприятие проходило в городе Анахайм, штат Калифорния. Несмотря на негативное освещение первых соревнований в прессе, в этот раз участников было еще больше: конференцию 2004 года посетили свыше 500 человек из 42 штатов и 7 стран. В итоге для участия в гонках зарегистрировались 195 команд, почти вдвое больше, чем в первый раз.
Включая, конечно, Red Team. Летом, после позора в пустыне, Урмсон оставил группу, защитил докторскую и получил работу в компании Science Applications International Corporation, государственном подрядчике, спонсировавшем Sandstorm. Должностные обязанности Урмсона состояли в том, чтобы работать с Редом Уиттакером и Red Team и готовиться ко вторым соревнованиям DARPA. В этот раз Урмсон был настроен гораздо оптимистичнее. Они получили дополнительные полтора года на доработку Sandstorm. И в этот раз заниматься ею должна была более профессиональная группа, в состав которой теперь входили два инженера из компании Caterpillar, производящей строительную технику. Бюджет вырос до 3 млн долл. Изменилась и общая атмосфера. В первый раз их вел юношеский энтузиазм. Теперь его сменила мрачная решимость.
«Я зарегистрировался на гонки, чтобы победить, – провозгласил Уиттакер. – В этот раз 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. Другой – картографию. Третья отвечала за навигацию