Сегодня мы хотим продолжить публикацию своеобразных конспектов выступлений спикеров Russian Code Cup 2013. В этот раз представляем вашему вниманию доклад Кена Голдберга.
Кен Голдберг (Ken Goldberg), изобретатель первого в мире робота с web-интерфейсом, профессор Школы информатики Калифорнийского университета в Беркли.
Своё выступление я хотел бы посвятить обсуждению современной робототехники и её ближайшего будущего. Вы уже наверняка слышали про «гугломобиль», который ездит без водителя? Меня часто спрашивают, зачем вообще компания Google занимается роботами? Полагаю, что это связано с большой заинтересованностью «поисковой корпорации» в облачных технологиях. Лично не представляю себе будущую робототехнику без использования «облаков». Полагаю, вы задаётесь вопросом: а что же это за роботы такие будут, которые без «облака» не смогут работать? Позвольте рассказать вам об облачной робототехнике и о моих последних исследованиях в этой области.
Начну с исторического экскурса. Интернет в том виде, в каком мы его знаем, был создан около 20 лет назад. В 1993 году я впервые узнал о www. Мы с моими студентами захотели придумать что-нибудь интересное с использованием этой новой технологии. Нашим проектом стал садовый робот, подключённый к сети — «Телесад» (“Telegarden”). Устроили клумбу диаметром в 2 м и высотой 0,5 м, посадили растения, в центре установили роботизированную «руку» и написали простой браузерный интерфейс. Конечно, в 1993 году было мало мест, откуда можно было получить доступ к Телесаду.
Робот позволял наблюдать за растениями через видеокамеру, а также поливать их. Любой желающий мог через сеть поливать нашу клумбу. Тем, кто провёл N поливок, мы дарили семена, которые можно было посадить с помощью робота. Конечно, со временем число удалённых пользователей выросло настолько, что они стали только мешать друг другу, клумба пришла в запустение. Так что наш эксперимент, помимо прочего, наглядно проиллюстрировал поговорку про семь нянек.
С тех пор и сам интернет, и робототехника шагнули далеко вперёд. Люди уже начали привыкать к роботам-пылесосам, военные роботы становятся обыденностью, врачи уже эксплуатируют около 2000 медицинских роботов, в основном в хирургии. В общем, роботы уже вошли в нашу жизнь.
Оранжевые ящики на этом снимке — роботы, которые сортируют заказы на огромных складах таких компаний, как Amazon. Роботы также подвозят паллеты с товарами к людям-операторам, которые непосредственно собирают заказы.
А этот пример робота известен гораздо большему числу людей, это модуль Kinect для игровой приставки Xbox:
Сам термин «облачная робототехника» был придуман Джеймсом Кафнером из Google. Он одним из первых начал говорить о том, что облачные вычисления сильно облегчат выполнение роботами их задач. Например, чтобы робот мог вымыть посуду, заправить кровать, навести порядок в квартире, он должен решить массу сложных аналитических задач. Это связано с трудностями в распознавании окружающей среды и огромным количеством предметов в этой среде. Вычислительные мощности, способные за адекватное время справиться с такими задачами, встраивать в простеньких роботов слишком дорого. Не говоря уже об огромном объёме описательной базы данных предметов, которую он должен в себе хранить. Гораздо дешевле и проще использовать для распознавания и вычисления удалённые ресурсы.
Кстати, уже появилась операционная система ROS для роботов, чем-то похожая на Linux. Она имеет открытый исходный код и развивается довольно быстро.
В прошлом году я участвовал в африканском проекте по созданию на Чёрном Континенте сети робототехников. Для этого решено было создать некоторое количество очень дешёвых роботов, предназначенных для использования в школах и ВУЗах. Был объявлен конкурс на создание робота стоимостью в 10$. Мы понимали, что цель, скорее всего, недостижима, но это будет неким ориентиром для участников. Победителем стал энтузиаст-любитель из Тайланда: он взял пульт для игровой приставки, добавил несколько сенсоров, а в качестве противовеса использовал два «Чупа-чупса». И получился робот стоимостью 8,9$, включая стоимость леденцов. Он его назвал Lollybot (Леденцеробот).
Любой, даже самый сложный робот, будет сталкиваться с задачами, решить которые ему будет не по силам. В таких случаях он сможет выходить в интернет или звать на помощь человека. Вообще, облачная робототехника имеет следующие преимущества:
- Доступ к огромным объёмам данных
- Доступ к мощнейшим вычислительным системам
- Работа в системе с открытым кодом
- Возможность самообучения с помощью обмена данными с другими роботами
- Возможность обратиться за помощью к удалённому специалисту-человеку.
Помните, в фильме «Матрица» был диалог:
– Что ты на этом можешь летать?
– Пока не могу. Оператор: загрузи программу пилота вертолета B-22.
В этом направлении проводится много исследований, о самых интересных из них вы можете узнать здесь.
Сейчас со своими студентами я занимаюсь двумя темами. Представьте, что роботу нужно убрать со стола. «Глядя» на стол с помощью камеры, робот может испытывать затруднения при распознавании предметов, определении их расположения в пространстве, позиционировании своих манипуляторов. Для решения этих проблем существует комплекс методик, который называется believe space, то есть пространство представлений, гипотез. Мы знаем, какие вещи могут нам встретиться в окружающих нас условиях. Исходя из некоторого количества распознанных образов, обработав большой объём данных, спрогнозировать наличие каких-то других объектов. Всё это нецелесообразно осуществлять силами самого робота. И мы пытаемся с помощью «облака» решить проблему захвата манипулятором объекта сложной формы.
Модель объекта должна содержать определённые геометрические допуски, потому что робот будет постоянно сталкиваться с предметами, немного отличающимися от эталонов в базе данных. Вообще, существует много работ, посвящённых проблематике захвата объекта неизвестной точно формы:
Reuse-PRM based on known obstacles. Lien and Lu, 2005
Adaptation of Motion Primitives. Hauser et al, 2006
Policy transfer for footstep plans. Stolle et al, 2007
Learning where to sample. Zucker et al, 2008
Skill trees from demonstration. Konidaris, et al, 2010
Path retrieval from static library. Jetchev and Toussaint, 2010
Предположим, что у нас есть два захвата и объект, чью форму сенсоры робота представляют в таком виде:
Очевидно, что реальные геометрические параметры объекта могут отличаться от того, что в данный момент «видит» робот. И он должен разработать безопасный способ захвата. Можно провести вероятностный анализ различных форм с помощью кривой Гаусса; можно приблизительно рассчитать расположение центра тяжести, и исходя из расчётов разработать алгоритм захвата. Давайте исходить из того, что наши захваты параллельны друг другу. Итак, сенсор определил, что один из захватов коснулся предмета. После этого нужно провести геометрическое тестирование разных алгоритмов захвата и оценить вероятность безопасного, надёжного захвата. Все эти расчёты можно проводить в «облаке», распараллелив геометрический анализ для каждого варианта формы.
Посмотрите на эту подборку разных объектов:
Глядя на эти проекции, вы можете более-менее предположить, как их лучше захватывать. Но интуиция нас зачастую подводит. Далеко не всегда наш собственный выбор точки захвата является оптимальным. Мы протестировали нашу методику в реальных условиях на более простом предмете:
Несмотря на то, что наша интуиция и опыт говорят нам, что все три варианта захвата (в правом верхнем углу изображения) могут быть весьма успешными, математические расчёты говорят об обратном — самым лучшим является первый вариант. Причём вероятность успешного захвата почти в 4 раза выше, чем в третьем варианте, и посмотрите, как незначительно они отличаются друг от друга. Эксперименты подтвердили наши расчёты.
Второй задачей, над которой мы работаем, является проблема распознавания объектов.
Для решения проблемы робот может сфотографировать нераспознанный им объект и прогнать через Google Goggles — бесплатную систему графического поиска от Google. Конечно, в идеале, это должна быть специализированная база данных, которая сможет предоставить также информацию о прочности и массе предмета, его размерам. Будет совсем прекрасно, если система ещё и подскажет оптимальный вариант захвата, или несколько лучших. Но для этого необходимо проделать большую работу по расстановке тегов, маркированию. Для обучения других роботов целесообразно осуществлять обратную связь с базой данных относительно успешности применения предложенных алгоритмов. Пока что разработанная нами система далека от совершенства: вероятность распознавания объектов около 80%, а из распознанных лишь 87% удаётся надёжно захватить манипулятором.
В начале своего выступления я упомянул о хирургических роботах, и хочу рассказать подробнее об их применении. Существует такая методика лечение, как брахитерапия, то есть контактная лучевая терапия. По статистике, каждый шестой мужчина заболевает раком простаты. Одним из методов лечения является введение в опухоль игл, сквозь которые осуществляется точечно облучение.
Чтобы достичь простаты, эти иглы должны пройти через ряд других важных и нежных органов и тканей. Как вы понимаете, это сама по себе весьма рискованная процедура [ну ещё бы!!!]:
Было предложено отказаться от матрицы и вводить иглы под разными углами, чтобы снизить риск повреждения окружающих органов.
Для этого был разработан специальный алгоритм для расчёта векторов. Такого рода вычисления требуют больших мощностей, и при наличии доступа к «облаку» это не является проблемой. Уже есть практические результаты, которые подтверждают, что отказ от параллельного введения игл не менее эффективен и при этом более безопасен для пациентов. Сейчас разрабатываются роботы, которые помогут хирургам точнее вводить иглы.
Второй сферой, где внедряются хирургические роботы, это внедрение имплантатов в областные виды рака. Эти имплантаты могут выполнять функцию линзы для фокусирования облучения в конкретной области опухоли. Для этого нужно правильно определить форму имплантата с учётом геометрических параметров каналов, полостей и органов пациента.
В августе мы представили нашу методику расчёта нелинейной доставки имплантатов к месту облучения. Благодаря 3D-печати, которая с каждым годом становится дешевле, можно изготавливать не только сами имплантаты, но и каналы любой необходимой конфигурации для введения облучающих инструментов.
Первые результаты клинического исследования нашего метода уже дают серьезные основания для дальнейшего оптимизма. Другой медицинский пример использования облачных технологий мы назвали «сверхчеловеческой» хирургией. Речь идёт о лапароскопии, и робот выполняет функцию ассистента, при этом хирург контролирует его действия.
Есть масса функций, которые давным-давно можно было автоматизировать. Например, зашивание разреза — дело, не требующее большого ума, но высочайшей концентрации. Хирург может указать, где нужно начать шов, где закончить, а дальше уже доверить эту функцию роботу. Просто запрограммировать эту процедуру пока не получается в виду высокой сложности. Поэтому наилучшим вариантом является «обучение» робота на примере работы человека. Анализ движений хирургов показал, что движения человека не идеально гладкие, всегда присутствует некий тремор:
Так сказать, очень много шума. Для сглаживания действия хирурга мы использовали технологию динамического искажения, применяемую в распознавании речи.
Полученную сглаженную траекторию можно уже передавать роботу на исполнение:
Используя методику итерационного обучения, мы можем скорректировать алгоритм движений робота и выполнять эту операцию максимально точно и эффективно, после чего резко повысить скорость проведения операции.
Ещё одна задача в хирургии, где можно использовать роботов, это извлечение посторонних предметов из тела человека: пуль, осколков и так далее. Работы в этом направлении также ведутся. Пока что человек справляется с этой операцией втрое быстрее, чем автономная система. Но нам кажется, что этот разрыв в скорости можно легко устранить за счёт использования облачных вычислений и дополнительных оптимизаций алгоритмов.
В заключение хочу сказать несколько слов о том, что, на мой взгляд, ждёт нас в ближайшем будущем. Нас будут окружать устройства с собственными «мозгами». Ну, или хотя бы с RFID-метками. Увеличится количество устройств и приборов, подключённых к интернету для получения нужной информации. То есть появится так называемый «промышленный» интернет, «интернет вещей».
Конечно, для этого необходимо будет решить вопросы надёжности производителей всех этих «умных» устройств, увеличения пропускной способности сетевой инфраструктуры, защиты от хакеров. Заодно встанет проблема ремонта и технического обслуживания такого количества электроники. Кстати, одним из первых вестников появления бытовых роботов без собственных вычислительных мощностей является вот этот малыш:
Он представляет собой просто платформу, а всё управление осуществляет программа, установленная в вашем Айфоне.
Большого прогресса следует ожидать в создании антропоморфных и зооморфных роботов, и успехи разработчиков из Boston Dynamics столь велики, что это даже несколько пугает. Также бурное развитие переживают летающие роботы, квадрокоптеры.
Резюмирую: зачем же нам нужна облачная робототехника? Для использования в разработке технологий Open source, для обеспечения возможности обучения роботов друг у друга и у людей, получение доступа к огромным объёмам данных и вычислительных мощностей.
Спасибо большое за ваше внимание.
Автор: TeamMRG