Симуляция в симуляции: зачем тестировать роботов в метавселенной

Зачем нужна симуляция
Идея создания симуляций не нова: например, тренажеры для подготовки пилотов, имитирующие реальность, стали появляться еще в прошлом веке. Программное обеспечение в таких симуляторах должно как можно точнее моделировать физический мир и работу воздушного судна, чтобы пилот набрался опыта и мог применять его в настоящих полетах. С появлением автономных роботов, которые работают без прямых команд человека, необходимость в подобных онлайн-тренажерах не отпала — наоборот, только увеличилась.
Сегодня программы симуляции нужны практически любой компании, разрабатывающей роботов: это могут быть автономные автомобили, антропоморфные роботы, как у Boston Dynamics и Figure.ai, или промышленные устройства (например, роборуки). Подобное ПО позволяет в виртуальном мире проверить, как машина поведет себя в заданной ситуации и конкретных условиях, а также дообучить ее вести себя лучше. Глобальная задача симуляции — ускорить разработку и сэкономить средства, но, если углубляться в детали, она позволяет решить несколько важных проблем.
- Создать нужные условия
Любое устройство важно протестировать в как можно более разнообразных условиях, и не всегда это просто сделать в реальности. Например, летом невозможно узнать, как автономный транспорт поведет себя в снегопад, а зимой — проверить его в условиях дождя. Да и в любое время года осадки бывают далеко не каждый день. При этом разработчикам важно проверить, как машина поведет себя, если датчики (камеру или лидар) залепит снег или зальет вода, и желательно много раз. Симуляция позволяет не привязываться к погодным условиям и исследовать то, что мы хотим и когда хотим.
- Протестировать сложные ситуации
Подобная проблема касается и необычных инцидентов. Когда автономный автомобиль ездит по полигону или городу, он обычно не сталкивается с внештатными ситуациями — пешеходы не выбегают в неположенном месте, ремонтные работы не перекрывают дорогу в неожиданных местах. Это редкие инциденты, но нам критически важно знать, как техника себя поведет, если столкнется с чем-то подобным. В симуляции такие ситуации можно моделировать специально и в нужном количестве.
- Подстроиться под скорость разработки
Разработчики постоянно работают над улучшениями, однако в финальный продукт обычно внедряются не все доработки — часть экспериментов не оправдывает себя на этапе тестирования. Для эффективной работы очень важен этот непрерывный процесс проверки гипотез. Использование симулятора позволяет проводить все эксперименты в нужном объеме и быстрее собирать по ним репрезентативные данные. В реальном мире это банально заняло бы гораздо больше времени.
Что такие системы позволяют делать
Разработчики могут пользоваться софтом для симуляции, который доступен сегодня на рынке: к примеру, MuJoCo от компании DeepMind обладает наиболее продвинутой физикой и создан для тестирования и обучения роботов из самых разных сфер. Некоторые задачи моделирования можно решать и через игровые движки — такие, как Unity или Unreal Engine. Однако зачастую компаниям приходится разрабатывать собственные симуляторы — как Carcraft от сервиса беспилотных такси Waymo.
Подходы к симуляции развиваются быстро. Еще несколько лет назад такие системы представляли всех участников (роботов и других важных агентов) в качестве очень условных объектов. Сегодня компании работают над end-to-end тестированием — полностью симулируют то, что видит система. Например, в случае с автономным автомобилем с помощью генеративных нейронных сетей и алгоритмов симулятор создает реалистичные данные камер, лидаров, радаров и других сенсоров.
Симуляции в некоторых сферах позволяют моделировать работу устройства с нуля в полностью сгенерированной среде. В некоторых случаях система дает возможность редактировать архивные записи с реальных роботов. К примеру, можно запустить запись проезда автономного авто, который происходил летом, и изменить его под зимние условия, добавив снег и уменьшив освещенность. Так же можно менять и путь робота — например, если он объехал объект на дороге справа, моделирование позволит оценить, что будет происходить с роботом, если он объедет объект слева.
Однако реальный мир — это система с огромным числом переменных, и пока ни одна программа симуляции не позволяет учесть их все. Например, для автономного транспорта требуется моделировать даже очень неочевидные физические условия: например, как колеса будут проскальзывать по льду во время срабатывания ABS-системы, или ветер под разными углами будет влиять на движение грузовика на трассе.
Как симуляции будут развиваться дальше
Чтобы технологии симуляции становились умнее, нужна работа в двух направлениях. Во-первых, важна инфраструктура. Чем большее число параметров и условий закладывается в симуляцию, тем больше GPU (графических процессоров) нужно для расчетов. Поскольку это дорогостоящий ресурс, важна оптимизация и работа специалистов в этом направлении. Во-вторых, огромную роль играют алгоритмы. Есть много технических задач, которые должны учитывать разработчики, чтобы система как можно точнее отражала реальность. Например, в любого робота данные с сенсоров поступают с небольшой задержкой. В симуляции нужно как можно точнее моделировать эту задержку, иначе полученные данные просто не будут отражать реальность.
Технологии машинного обучения играют здесь очень важную роль. Моделирование условий окружающей среды, физики, сенсоров, действий разных объектов — все это невозможно без машинного обучения, причем самых передовых его моделей.
Для некоторых сфер поведение в симуляции уже сейчас удается сделать похожим на реальность. Например, автономные автомобили — именно такой случай. Но, например, у области гуманоидных роботов все обстоит иначе. Сейчас разрыв между смоделированными условиями и реальностью для таких роботов остается большим — нужно учитывать много ограничений при переносе данных онлайн-экспериментов в реальный мир. И эта проблема является настолько существенным ограничителем в разработке, что недавно Google DeepMind, Nvidia и Disney Research объявили о совместном стратегическом проекте по улучшению физики в симуляторе MuJoCo. И все равно такие Sim2Real технологии уже сейчас позволяют разработчикам быстрее получать полезные данные, а компаниям — экономить средства и время. А в ближайшее время технологии ИИ позволят еще сильнее приблизить симуляцию к реальности.
Мнение редакции может не совпадать с точкой зрения автора