С другой стороны, кое в чем городская среда проще, чем песчаная трасса в пустыне. «Движение в условиях города имеет множество ограничений. В сущности, вы можете сделать не так уж и много, — утверждает Монтемерло (которому, как мне кажется, просто никогда не доводилось ездить по развязкам около аэропорта имени Кеннеди в Нью-Йорке). — Благодаря этому мы ощущаем себя на дороге достаточно комфортно. Правила и линии разметки подсказывают нам, чтó может произойти в будущем».
На дороге часто приходится строить предположения. Мы на полной скорости проскакиваем на зеленый сигнал светофора, предполагая, что водители, стоящие на других въездах на перекресток, будут стоять. Мы не ожидаем столкновения, когда по встречной полосе едет другая машина. Мы спокойно въезжаем на холм, не думая, что где-то впереди может оказаться внезапно остановившийся на дороге бензовоз. «Мы ездим быстрее только из-за того, что делаем определенные предположения», — полагает Монтемерло. В сущности, стэнфордская команда превращает эти предположения в сотни тысяч строк программного кода (мозга Джуниора), однако программа достаточно гибка для того, чтобы робот не «завис» в какой-то особенно странной для него ситуации.
А странных ситуаций на дороге хватает с лихвой. Возьмем, например, сломанный светофор. Как-то раз Дэвид Леттерман пошутил, что светофоры в Нью-Йорке — «лишь примерные указания к действию». Однако представьте себе, что вы подъехали к перекрестку, где для всех горит красный свет. После некоторых колебаний вы, возможно, решите крайне осторожно все же проехать перекресток. Или представьте, что вы оказались за машиной с заглохшим двигателем. Чтобы ее объехать, вам нужно будет пересечь двойную сплошную линию, что в обычных ситуациях запрещено. Однако вы это делаете — в правилах дорожного движения учтено, что порой вам приходится действовать в исключительных обстоятельствах. А что делать на перекрестке равнозначных дорог? Иногда возникает неясность относительно того, кто появился первым, и образуется затор. Теперь представьте себе четырех роботов-водителей, подъезжающих к перекрестку в один и тот же момент. Если они запрограммированы на то, чтобы пропускать первого подъехавшего, возможны два варианта: они все поедут вперед и столкнутся либо же все застынут на месте (как компьютер, давший сбой). Поэтому команда из Стэнфорда использует довольно сложные алгоритмы, чтобы хоть как-то приблизить бинарную логику Джуниора к человеческой. «Джуниор пытается определить самое правильное время для начала движения и дожидается своей очереди, — рассказывает Монтемерло. — Но если другая машина не поворачивает вовремя и проходит достаточно много времени, робот начнет собирать за собой хвост»{10}.
Команда из Стэнфорда поняла, что лучший способ освоить навыки вождения для Стэнли и Джуниора — наблюдать за тем, как водят машину люди. Но способны ли роботы научить нас чему-то? В ходе первого Grand Challenge Тран, по словам Монтемерло, «постоянно жаловался на то, что робот слишком сильно замедляется при прохождении поворотов». Однако когда студент-старшекурсник проанализировал результаты гонки, то пришел к заключению, что робот «проходил повороты, как Ferrari» и смог за счет этого сэкономить лишь несколько минут из 7-часовой гонки (при этом значительно повысив риск аварии). Дело в том, что трасса по большей части была ровной. Поддержание самой высокой средней скорости движения на этих участках было важнее, чем прохождение сравнительно небольшого количества поворотов (наиболее опасной части дороги) с максимально возможной скоростью.
Монтемерло называет это «толковым вождением». Он много думал об этом во время Urban Challenge: «Поначалу мы полагаем, что можем взять все, что уже умеет Джуниор, и просто ускорить процессы — например, разгон с места после знака “Стоп” или сокращение срока ожидания у этого знака. Но опыт показывает, что все это не особо помогает. Мимо вас проезжает с нарушением скоростного режима какой-то парень, а затем вы наблюдаете его вновь перед собой на очередном светофоре. Случайный характер трафика сводит на нет все наши попытки ехать максимально быстро. В то же время некоторые направления оптимизации (например, выезд из-под знака “Стоп” после пары секунд остановки) приводят к проблемам для всех. Такие действия замедляют движение»{11}.
{10}
Можно предположить, что роботы-водители свободны от влияния сложных психологических факторов, мешающих людям на перекрестках. Однако, так же как и в случае с людьми, все зависит от того, как они настроены. «Роботы могут вести себя более агрессивно или более консервативно, — сказал мне Монтемерло. — Вы можете настроить робота так, чтобы он всегда игнорировал порядок в очереди и пытался пролезть вперед». Однако эффективность подобной стратегии будет зависеть от того, каким образом запрограммированы другие роботы. Проезд сложного перекрестка для чрезмерно настырного робота может достаточно быстро привести к негативным последствиям.
{11}
Вспоминается цитата из книги: