Робот-гонщик поумнел: На ходу
Несколько лет назад команда разработчиков Stanford Racing заняла второе место в гонке DARPA Urban Challenge, но на достигнутом не успокоилась. Совершенствование их роботизированного автомобиля Junior продолжается, и в мае уже нынешнего года один из молодых членов группы, Зико Кольтер (Zico Kolter) представил видеозапись одного нового трюка, которому «обучился» автомобиль. Трюка, который под силу далеко не каждому водителю из плоти и крови.
Junior набирает более 40 км/ч, после чего резко тормозит и берет поворот на 180 градусов, останавливаясь на узком пятачке. Это практически знаменитый «полицейский разворот», с той только разницей, что после него робот не продолжает движение, а останавливается в заданной позиции. Junior сохраняет постоянный контроль над заносом — так что это не просто забавный трюк, но реальный его «навык», который дает автомобилю без водителя гибкость и надежность действий в различных непредвиденных ситуациях на дороге. Схематически все выглядит так.
На самом деле, чтобы с достаточной надежностью контролировать автомобиль в таком развороте, инженерам пришлось потрудиться. Дело в том, что в нормальном режиме езды Junior использует алгоритм управления, основанный на постоянной передаче на компьютер данных с различных бортовых камер и датчиков. В режиме реального времени компьютер обрабатывает эту информацию и передает необходимые управляющие команды на нужные системы автомобиля. Такой подход неплохо зарекомендовал себя при езде по прямой дороге, с не слишком высокой скоростью, когда поведение автомобиля в каждый следующий момент напрямую и сравнительно легко прогнозируется.
Но в быстром заносе ситуация меняется, и подход не срабатывает (в начале приведенного ниже ролика видно, как Junior, руководимый этим алгоритмом, не справляется с задачей). Модели, способные описывать поведение автомобиля, становятся слишком сложными. Инженерам пришлось искать альтернативу — и они ее нашли.
Несмотря на то, что разворот с заносом представляет собой гораздо более сложный с точки зрения динамики процесс, чем прямолинейное движение, в целом он остается настолько же строго детерминированным законами физики. Если один раз совершить маневр удачно, в следующий достаточно добиться тех же условий (скажем, скорости движения и момента торможения) и просто повторять ранее сработавшую схему, действуя, фактически, вслепую. Конечно, и такой подход имеет свои очевидные минусы: все изменения в обстановке никак не сказываются на наборе команд, которые в этом случае выдает бортовой компьютер Junior. И в итоге это приводит к тому, что остановка происходит все-таки немного не там, где следует (этот момент показан в середине ролика).
В итоге инженеры придумали совмещать обе стратегии: на первых фазах разворота Junior действует по схеме, а на последних корректирует остановку «по приборам». При езде робот самостоятельно выбирает момент перехода с одной схемы на другую и обратно. В конце ролика видно, какой ювелирной точности он добивается.
Кстати, если вы хотите научиться таким трюкам самостоятельно, рекомендуем заглянуть в нашу статью, посвященную технике авто-акробатики: «Чтобы девушки визжали».
По публикации IEEЕ Spectrum