Введение в робототехнику
Роботов разделяют на шесть категорий: autonomous mobile robots (AMR), automated guided vehicles (AGV), articulated robots, humanoids, cobots, mobile manipulator robot.
Мобильные манипуляторы сочетают в себе свойства двух категорий роботов. Они могут перемещаться в пространстве как мобильные роботы (AMR) и взаимодействовать с объектами как коллаборативные роботы-манипуляторы (cobots). Разработчикам Sber Robotics Lab хотелось объединить возможности двух категорий роботов, поэтому они стали разрабатывать универсальное управление для мобильного манипулятора.
В робототехнике есть пять типов наиболее часто используемых сенсоров:
- RGBD-камера аналогична обычной, в результате также получается изображение. При этом есть depth-канал, который даёт карту глубины и позволяет узнать расстояние до ближайшего препятствия.
- Лидар даёт 3D-облако точек, каждая из которых показывает ближайшее препятствие на пути. Лидар используют для self-driving cars и в мобильной робототехнике для навигации в пространстве.
- Тактильные сенсоры используют для действий с предметами — они дают ощущение контакта с поверхностью, аналогично тому, как человек чувствует шершавую, гладкую, выпуклую и любую другую поверхность.
- IMU-сенсор нужен, чтобы робот мог понять, насколько он стабилен в пространстве, и сбалансировать себя.
- Force-torque сенсор помогает роботу регулировать силу воздействия на предмет.
Если сравнивать строение манипулятора с телом человека, можно сказать, что звенья, из которых состоит манипулятор, — это кости, joints — суставы, end-effector — инструменты взаимодействия с миром, то есть ступни и кисти рук.
Степень свободы — число joints, которые есть у манипулятора. Чем их меньше, тем меньше возможностей взаимодействовать с миром. Манипулятору, который взаимодействует с предметами, необходимо дать бόльшую свободу перемещения и изменения конфигурации.
Конфигурацию манипулятора можно описать с помощью двух систем координат: joint space и cartesian space. В joint space полностью контролируем переход робота из одной конфигурации в другую, а в cartesian space отвечаем только за одну точку у end-effector.
В cartesian space выдаём по позиции только координаты положения, в которое должен переместиться end-effector в пространстве с инференсом модели. Это универсальный и безопасный для окружающего пространства способ.
Для управления в joint space нужно разработать дополнительный декодер для перевода выходных данных модели joint space робота.
Для управления по скорости нужно генерировать данные с высокой частотой, поэтому инференс модели должен быть быстрым.
В случае с joint space для управления скоростью по joint нужен дополнительный декодер.
Насколько воплощённый AGI близко и являются ли foundation model его прототипами
Робототехники стремятся решать много задач при помощи одной модели. Для этого не подходит artificial narrow intelligence — они выполняют только те задачи, которым обучены.
Сейчас робототехники находятся на пути к созданию artificial general intelligence — модели, которая должна выполнять генерализацию на необученных данных. Она сможет выполнить неизвестный навык на основании имеющихся данных.
AGI в теле робота позволит использовать единую модель для управления большим количеством роботов.
Кажется, что foundation model — прототип AGI, поскольку в идеальном мире она должна управлять манипуляторами с различным числом степеней свободы, при этом выполняя одни и те же задачи. Выполнение любой поставленной задачи в любом месте без дообучения — как раз то, чего робототехники ждут от AGI.
Работа foundation model — марковский процесс. При помощи сенсора из среды поступают наблюдения на вход foundation model. Она делает инференс и при помощи выхода из своей модели меняет картину окружающего мира. Затем процесс повторяется.
В идеале на вход foundation model хочется подать данные всех сенсоров робота, а на выходе получить управление роботом.
При этом есть две проблемы:
- Нужно уметь эффективно получать полезную информацию из сенсорных данных, поскольку у них разная структура.
- Решение проблемы управления роботом — это компромисс. Нет идеального варианта, к которому стремятся исследователи, всегда нужно будет чем-то жертвовать.
Данные для foundation model
Команда из Google DeepMind описывает создание первого прототипа foundation model. Изначально foundation model agent обучался на небольшом датасете экспертных траекторий. После обучения он смог генерировать новые данные, которые робототехники добавили в исходный датасет и использовали для дообучения агента.
Это бесплатный и не требующий участия человека способ генерации данных. Сбор данных вручную занял бы у Google DeepMind два года работы человека 24/7.
Успешность выполнения задачи для конечной foundation model составила 74% — это хороший показатель для робототехники.
Следующая статья от той же исследовательской команды говорит о том, что можно взять данные, которые предназначены для разных воплощений робота с разными наборами сенсоров. Если данных достаточно, их можно добавить в обучение foundation model и добиться генерализации.
Проблемы с данными для обучения foundation model
Для обучения foundation model больше всего подходят роботизированные данные — сенсорные данные, собранные с роботов. Данные собирают с помощью экспертной траектории — метода, при котором человек решает задачу, управляя end-effector робота. Метод не автоматизирован и записывается только человеком. Только на одну экспертную траекторию нужно 30 секунд времени человека — это безумно дорого.
Также есть проблема с синхронизацией данных. Сенсоры робота работают на разной частоте, поэтому при выборе момента времени нельзя гарантировать, что все фреймы придут в один и тот же момент. Часть фреймов приходит чуть раньше, другая — чуть позже, поэтому данные не идеальны для обучения foundation model.
Ещё одна проблема — быстрая запись на диск. Есть шина с высокой пропускной способностью, на которой находятся датафреймы — данные от сенсоров. Нужно записать с неё большое количество гигабайт датафреймов с высокой скоростью на диск. При этом скорость записи диска гораздо ниже скорости общения шины. При этом могут теряться пакеты данных, и непонятно, на каких данных в итоге будет обучаться модель.
Выход — проверять, какой эпизод записался. Если есть проблемы, нужно потратить время и перезаписать эпизод. Более лёгкий способ — майнить робототехнические данные из симулятора. Симуляторы разделяют на те, которые имеют очень качественное изображение, и те, которые имеют очень качественную физическую модель мира.
Нет идеального решения, какой симулятор использовать. Чем больше данных собрано из различных симуляторов, тем лучше для foundation model.
Способы ускорения сбора данных из реального мира
Способы ускорения сбора робототехнических данных из реального мира — это ферма роботов. Здесь есть допущение. На ферме много роботов с одинаковым начальным состоянием. Тогда при помощи одного человека и управляющего устройства собираем экспертные траектории на большом количестве роботов одновременно.
Так как человек управляет всеми роботами сразу, скалируем, то есть кратно увеличиваем, количество экспертных траекторий по числу роботов на ферме.
Робота также можно обучить не на робототехнических данных. Это недорогой подход, потому что в интернете много видео со взаимодействием человека с миром и предметами. На этих материалах можно обучаться, они дадут модели большое исходное понимание того, как работает мир. Обучаем политику переноса траектории движения человека с предметом на траекторию движения робота с предметом.
Подход работает, и это повод сократить количество робототехнических данных для обучения foundation model, заменить претрейном то, как человек выполняет задачи, и иметь zero-shot. Человек показывает, как выполнять задачу, а затем просит робота выполнить её самостоятельно. В этом случае должно требоваться гораздо меньше робототехнических данных для того, чтобы научить робота выполнять новый навык, потому что он уже получил информацию об этой или похожих задачах из претрейна.