Как калифорниец в одиночку выиграл космическое соревнование по робототехнике от НАСА

Космическое соревнование по робототехнике от НАСА (Space Robotics Challenge, SRC) проходило в прошлом году. В ходе соревнований виртуальные роботы-гуманоиды «Валькирии» (Valkyrie) бродили по виртуальному Марсу, пытаясь починить виртуальные объекты. Участвовать можно было всем желающим, и поскольку виртуальность соревнования подразумевала отсутствие необходимости в использовании больших и дорогих роботов, участвовать реально могли все. Из 93-х команд, подписавшихся на соревнование, НАСА выбрало 20 финалистов на основе выполнения ими предварительных задач по работе с трёхмерным симулятором робота Gazebo. Каждому из финалистов предлагалось запрограммировать гуманоида Валькирию так, чтобы он сумел выполнить миссию по починке оборудования на симулируемой марсианской базе.

Победителем SRC стала команда Coordinated Robotics, которая, к тому же, стала единственной командой, добившейся 100% завершения задачи, и получила за это главный приз в $125 000 плюс бонус в $50 000 за «идеальное выполнение». Однако «командой» её можно назвать с натяжкой, поскольку Coordinated Robotics состоит всего из одного товарища: Кевина Кнёдлера [Kevin Knoedler]. Мы побеседовали с Кевином по поводу эпического выигрыша, и проконсультировались с Нэйтом Кёнигом из Open Robotics, ведущим разработку Gazebo и помогавшим организовать SRC.

SRC было очень похоже на VRC (квалификацию в соревновании DARPA Robotics Challenge, DRC), поскольку все команды соревновались, запуская код в виртуальном окружении Gazebo. «Сами задачи были в какой-то мере вдохновлены фильмом ‘Марсианин’, – сказал нам технический директор Open Robotics Нэйт Кёниг. – Валькирия находится на Марсе, подготавливает всё для создания колонии людей, и тут налетает пылевая буря». После бури Вале нужно подправить коммуникационную спутниковую антенну, починить солнечные батареи и найти утечку из обитаемой зоны. Вот несколько фрагментов с соревнований:
«В целом соревнование прошло гладко, – говорит Кёниг. – Уникальность SRC, в отличие от VRC, была в том, что мы требуем последовательного выполнения задач. Вы получаете больше очков за выполнение большего количества задач, когда Валькирия не падала, и её не нужно было перезапускать – то есть, чем надёжнее вы ходите и управляетесь с объектами, тем лучше у вас результат».

 

Как и в случае DRC, ограничения на время выполнения задач были заданы так, чтобы команды пытались по максимуму использовать робота в автономном режиме. Большинство из них так и поступили. Для усложнения задачи были введены жёсткие ограничения на канал передачи данных и задержки, эмулировавшие реальную удалённую работу с роботом, находящимся где-то в космосе. Кёниг поясняет:

Задержки сети и ограничения на ширину канала были жёстче, чем в случае с VRC. Мы хотели симулировать что-то похожее на задержку сигнала, идущего на Марс и обратно, но это было бы уже слишком – так что мы сошлись на задержке в 20 секунд. Некоторые задачи были ограничены пропускной способностью в 380 бит/с, а это, по сути, уже убивает вариант с TCP.

Людям необходимо было творчески подойти к задаче, и мы увидели разные уникальные решения. Один человек запустил сервер и клиента IRC для передачи информации, другие использовали текстовые консольные сообщения, без визуальных данных – это было похоже на чтение Матрицы. Одна команда, Xion, работала полностью автономно: они просто написали код и нажали кнопку «старт», в результате чего им удалось выполнить впечатляющее количество задач.

Кёниг сказал, что они с коллегами не ожидали, чтобы какая-нибудь команда сможет выполнить все задачи подряд. «Но Кевин опроверг нас, – добавляет он. – И он оказался единственной командой, способной на это».

Кевин – это Кевин Кнёдлер, полный состав команды Coordinated Robotics. Как сказал Нэйт, Кевин сумел завершить все задачи SRC без ошибок и подряд, что весьма удивительно. Мы пообщались с ним по электронной почте, чтобы узнать, как это у него получилось.

Мы: какое у тебя образования, и почему ты решил участвовать в SRC самостоятельно?

Кевин: после получения диплома в MIT я работал инженером и управленцем в Teradyne. В 2007 я ушёл от них, чтобы сидеть дома с ребёнком. И работая там, и в роли домохозяина, я постоянно участвовал в различных соревнованиях — Robot Wars, Battlebots, три соревнования по автономным средствам передвижения от DARPA, и DRC. SRC казалось сложным и интересным, так что я решил участвовать и в нём.

Осенью 2016-го, когда начался квалификационный тур, я был занят тренировками двух футбольных команд, и я знал, что буду занят во время финальных испытаний в начале 2017, преподавая в программе «Odyssey of the Mind». Обычно при работе в команде необходимо работать вместе и координироваться на ранних стадиях процесса. Поскольку я знал, что буду занят в ключевые моменты, я решил сделать всё в одиночку, чтобы не расстраивать себя и других потенциальных членов команды. Обычно в командах работать лучше, поскольку, чем больше людей, тем больше творческих идей. На всех предыдущих проектах я работал с командами.

Насколько твоя стратегия полагается на автономность?

Я приступал к разработке, предполагая, что задержка по времени будет максимальной, и роботу придётся выполнять короткие задания самостоятельно. И даже без проработки 20-секундная задержка не была основной проблемой, поскольку на весь конкурс отводились часы. Мой код был не настолько идеальным и надёжным, как мне бы хотелось, поэтому я сфокусировался на том, что будет планировать и выполнять. Это в основном была контролируемая автономная работа с помощью человеческого восприятия.

Ты отправил нам своё видео с одного из прогонов (ниже). Можешь подробно прокомментировать его?

На видео в перспективе от третьего лица показан робот, выполняющий три задачи. Первая – поворот рукояток для выравнивания антенны. На второй робот достаёт солнечную панель из трейлера, ставит её на стол и подключает кабель. В третьей нужно подняться по лестнице, открыть дверь дома, найти утечку при помощи инструмента, а затем устранить её при помощи второго инструмента. Больше всего мне понравился этап поиска утечки. Нужно было обследовать большую площадь, часть которой была загорожена – и каждый раз было интересно искать утечку.Утечка была найдена роботом, проводящим инструментом вверх-вниз при помощи вращения туловища для минимизации количества шагов. Робот, разыскивая утечку, отмечал участки территории как необследованный, не содержащий утечек, или содержащий утечку. Эта информация демонстрировалась оператору через интерактивный маркер Rviz, чтобы нам легче было видеть, что уже обследовано и как была найдена утечка.

Что было самым сложным?

Я бы сказал, что сложнее всего было использовать и манипулировать инструментами. Качественно взять инструмент и заставлять робота использовать его, будто это его продолжение, было сложно каждый раз делать с одинаковой эффективностью. В Gazebo я создал сценарий, где робот начинал работу рядом с инструментами, и ему ничего не мешало. Это позволило протестировать взятие инструментов с различных начальных позиций, с последующим размещением их на столе.

Интересный факт с соревнования: иногда настоящее оборудование застревает и нужно приложить усилие, чтобы заставить его двигаться. Симуляционный робот вёл себя так же. [Open Robotics назвали это «интересным возникшим поведением», поскольку специально в программу его не вводили]. Большой палец робота мог застрять и не реагировать на команды. Со мной это случилось на соревнованиях третьем прогоне заданий. Но, как и в реальной жизни, мне помогло то, что я надавил пальцем на стол, он перестал заедать и вновь начал двигаться.

Что в симуляциях проще, чем в реальности?

В симуляции всё легче. Не кардинально, но 90% проблем в симуляции решить можно. В основном легче из-за надёжности железа – в симуляции оно не ломается, как часто происходит с настоящим. Также можно заниматься более рискованными экспериментами. Если в Gazebo робот-гуманоид падает, на его ремонт не нужно тратить $100 000 и несколько недель времени. Ещё одно преимущество – один человек может запускать сразу множество тестов. С реальными роботами несколько человек запускают один тест.

Если бы НАСА разместило реальную Валькирию на полигоне, эмулирующем Марс, и попросило бы тебя выполнить те же задачи, что бы ты сделал?

Робот должен суметь выполнить все задания после начальных проверок и исправления различий между симуляцией и железом. Мой подход был многоуровневым, я всегда мог вернуться на нижний уровень контроля, если основной не справлялся. Между симуляцией и реальным железом всегда бывает достаточно различий для того, чтобы возникала необходимость в некоей адаптации для успешной отработки. Но после тестов и адаптаций, я думаю, всё бы получилось!

После участия в DRC и SRC как ты оценишь потенциал роботов-гуманоидов в реальной помощи в районах стихийных бедствий или исследовании планет?

После DRC и SRC мы приблизились к использованию гуманоидных роботов в районах стихийных бедствий и в исследовании планет. Основные трудности на Земле – это надёжное железо, способное обрабатывать падения, и работать в сложных условиях (возможность проползать под препятствиями, окружение с препятствиями и недостатком свободного места, ситуации, где для поддержки требуется рука, и т.п.). В космосе – всё то же самое плюс большие расстояния, требующие от робота большего восприятия и автономности.

Leave a Reply

Your email address will not be published. Required fields are marked *