Облачная робототехника
Облачная робототехника — область робототехники, в которой применяются облачные технологии, такие как облачные вычисления, облачное хранилище и другие интернет-технологии, с целью использования преимуществ конвергентной инфраструктуры и общих сервисов для роботов. Роботы, подключенные к облаку, получают доступ к вычислительным, хранилищным и коммуникационным ресурсам современных центров обработки данных, способным обрабатывать и обмениваться информацией от различных роботов и агентов (других машин, смарт-объектов, людей и др.). Люди могут также удалённо поручать роботам выполнение задач через сети. Облачные вычисления наделяют робототехнические системы высокой вычислительной мощностью при одновременном снижении издержек. Благодаря этому возможно создавать лёгких, недорогих и «умных» роботов с интеллектуальным «мозгом» в облаке. Такой «мозг» состоит из центров обработки данных, баз знаний, планировщиков задач, модулей глубокого обучения, средств обработки информации, моделей окружающей среды, средств коммуникации и др[1][2][3][4].
Компоненты
Облако для роботов потенциально включает не менее шести ключевых компонентов:
- Построение «облачного мозга» для роботов — главный объект облачной робототехники.
- Предоставление глобальной библиотеки изображений, карт, данных об объектах (нередко с геометрией и механическими характеристиками), экспертных систем, баз знаний (например, с элементами семантической паутины, центров данных);
- Массивно-параллельные вычисления по требованию для статистического моделирования, планирования движения и задач, многороботного взаимодействия, координации и планирования;
- Совместное использование роботами результатов, траекторий, политик динамического управления и поддержка обучения роботов;
- Общее использование открытого кода, данных и конструкций для программирования, экспериментов и аппаратной сборки;
- Запрашиваемые у человека руководство и помощь для оценки, обучения и устранения ошибок;
- Расширенное взаимодействие человек-робот с помощью различных средств (семантические базы знаний, сервисы типа Apple Siri и др.).
Применение
- Автономные мобильные роботы
- беспилотные автомобили Google — пример облачных роботов. Автомобили используют сеть для доступа к огромной базе карт Google, спутниковым и средовым моделям (например, Streetview), объединяя их с текущими данными GPS, камер и 3D-датчиков для отслеживания собственного положения с точностью до сантиметров, а также с историей и актуальной ситуацией на дорогах для предотвращения аварий. Каждый автомобиль может изучить новые сведения об окружающей среде, дорогах и условиях движения и передать эти данные в облако Google для улучшения эффективности других автомобилей.
- Облачные медицинские роботы
- медицинское облако (или «кластер здравоохранения») включает различные сервисы: архив заболеваний, электронные медицинские карты, системы управления здоровьем пациентов, сервисы практики, аналитические сервисы, клинические решения, экспертные системы и др. Робот может подключаться к облаку для оказания клинических услуг пациентам, а также для помощи врачам (например, при совместных операциях). Также реализована функция обмена информацией между врачами и персоналом о лечении клинических случаев[5].
- Ассистивные роботы
- бытовой робот может использоваться для ухода и мониторинга здоровья пожилых людей. Система собирает информацию о состоянии здоровья пользователя и обменивается данными с облачными экспертными системами или врачами для облегчения жизни пожилых, особое значение приобретает при хронических заболеваниях. К примеру, роботы могут поддерживать при падениях, оказывать экстренную помощь при сердечных заболеваниях и разном кровотечении. Опекуны получают через сеть уведомления от робота в экстренных случаях[6].
- Промышленные роботы
- как показано в плане правительства Германии Industry 4.0, «индустрия находится на пороге четвёртой промышленной революции. Под воздействием Интернета реально-виртуальные миры всё более сливаются в Интернет вещей. Промышленность будущего будет строиться на индивидуализированном производстве с высокой гибкостью, глубокой интеграцией клиентов и партнёров и появлением так называемых гибридных продуктов»[7]. В производстве облачные робототехнические системы могут автоматизировать задачи вроде протяжки проводов, выравнивания прокладок, используя профессиональные базы знаний. Группа роботов может делиться информацией при совместной работе. Клиент может напрямую заказывать индивидуализированные товары у производственных роботов через онлайн-системы[8]. Другая перспективная парадигма — доставка товаров роботами: складской робот отправляет продукт автономному автомобилю или беспилотному дрону для доставки получателю.
Исследования
RoboEarth[9] финансировался по седьмой рамочной программе ЕС для исследований и технологического развития специально для изучения области облачной робототехники. Его задача — обеспечить возможность роботам использовать опыт других роботов, способствовать развитию машинного интеллекта и поведения, более глубокому и тонкому взаимодействию между человеком и машиной. RoboEarth предоставляет инфраструктуру облачной робототехники; его база знаний хранит данные, сгенерированные людьми и роботами, в машиночитаемом формате (программные модули, карты навигации, планы задач, стратегии манипуляции и др.). Облачный движок RoboEarth поддерживает мобильных роботов, автономные транспортные средства и дроны, которые требуют больших вычислительных ресурсов для навигации[10].
Rapyuta[11] — открытая программная облачная робототехническая платформа на основе RoboEarth Engine, разработанная в ETH Zurich. Каждый робот, подключённый к Rapyuta, получает защищённую вычислительную среду (в виде прямоугольных контейнеров), позволяя выполнять ресурсоёмкие вычисления в облаке. Эти среды плотно интегрированы и имеют широкополосное соединение с базой знаний RoboEarth[12].
FogROS2[13] — открытое расширение для Robot Operating System 2 (ROS 2), разработанное в Калифорнийском университете в Беркли. Платформа позволяет роботам отправлять ресурсоёмкие задачи (SLAM, планирование захватов, планирование движения и др.) на вычисления в облаке, сокращая требования к собственным ресурсам. FogROS2 автоматизирует развертывание облачных экземпляров, рабочих узлов ROS 2 и обеспечивает безопасную связь между роботами и облаком. Платформа совместима с приложениями ROS 2 без необходимости модификации кода. Среди дополнительных функций — FogROS2-SGC (обеспечивает защищённое соединение между сетями и регионами)[14], и FogROS2-FT (устойчивость к сбоям за счёт репликации сервисов между разными облачными провайдерами)[15].
KnowRob[16] — расширение проекта RoboEarth, совмещающее методы представления и рассуждения о знаниях с методами их получения и приземления на физические системы, выступающее единой семантической платформой интеграции из различных источников.
RoboBrain[17] — крупномасштабная вычислительная система, обучающаяся на открытых ресурсах интернета, симуляциях и реальных робототехнических экспериментах. Формирует связанную базу знаний роботов для научных исследований, бытовых роботов, самоуправляемых машин. Руководителями проекта выступают Стэнфордский университет и Корнеллский университет, финансирование — от NSF, Office of Naval Research, Army Research Office, Google, Microsoft, Qualcomm, Alfred P. Sloan Foundation, National Robotics Initiative (США)[18].
MyRobots — сервис для подключения роботов и интеллектуальных устройств к интернету[19]. По сути — социальная сеть для роботов и смарт-объектов. Через коллективное взаимодействие и обмен данными роботы могут делиться сенсорной информацией и состоянием.
COALAS[20] финансируется по трансграничной программе INTERREG IVA Франция—Англия и нацелен на новые социально-технологические решения для людей с инвалидностью. Задача — создать когнитивную систему ассистивной среды, подключённую к облачному кластеру здравоохранения и бытовым сервисным роботам (гуманоидные роботы, интеллектуальные кресла-коляски и др.), соединённым с облаком[6].
ROS (Robot Operating System) предоставляет экосистему для поддержки облачной робототехники. Это гибкая распределённая программная среда с инструментами и библиотеками для облегчения разработки сложного, надёжного поведения роботов разных платформ. Версия для Java (rosjava) позволяет разрабатывать приложения под Android для роботов, что критически важно в свете популярности Android и миллиардов пользователей[21].
DAVinci Project — проект программного обеспечения, исследующий параллелизацию робототехнических алгоритмов по модели Map/Reduce на платформе Hadoop[22]. Создаётся облачная среда с вычислительным кластером на обычных компонентах, предоставляющая набор робототехнических алгоритмов как SaaS и обеспечивающая коллективный обмен данными между роботами[22]. Проект недоступен публично[23].
C2RO (C2RO Cloud Robotics) — платформа для обработки в облаке задач реального времени, таких как предотвращение столкновений и распознавание объектов. Ранее высокая задержка мешала выполнять эти задачи в облаке, что требовало локальных вычислительных ресурсов (например, GPU). В 2017 году на конференции IEEE PIMRC была продемонстрирована возможность облачного автономного перемещения и других ИИ-сервисов даже на ограниченном аппаратном обеспечении (например, Raspberry Pi)[24]. Позже C2RO первой продемонстрировала облачную SLAM на RoboBusiness в сентябре 2017 года.
Rocos — централизованная облачная платформа для разработки, тестирования, развёртывания, эксплуатации и автоматизации флота роботов в масштабе. Основана в октябре 2017 года, запущена в январе 2019 года.
Ограничения облачной робототехники
Несмотря на многочисленные преимущества облачных вычислений, облачная архитектура подходит не для всех задач робототехники[25].
- Контроль движения робота, требующий (реального времени) сенсоров и связи с регулятором, мало выигрывает от облака.
- Реально-временные задачи требуют локальной обработки.
- Задержки отклика или перебои в сети делают облачные приложения медленными или недоступными. Если робот слишком сильно зависит от облака, потеря связи делает его «безмозглым».
Проблемы и вызовы
В сфере исследований и развития облачной робототехники стоит ряд проблем[25]:
- Масштабируемые параллелизация, грид-вычисления, схемы параллелизации с учётом инфраструктуры автоматизации;
- Эффективный баланс нагрузки: распределение задач между облаком и локальной обработкой;
- базы знаний и представление знаний;
- коллективное обучение в автоматизации через облако;
- Инфраструктура/Платформы как сервис;
- Интернет вещей в робототехнике;
- Интегрированные и коллективные отказоустойчивые решения;
- Большие данные: сбор и распространение информации по большим открытым сетям позволяет решать задачи классификации, выявлять закономерности;
- Беспроводная связь, подключение к облаку;
- Системные архитектуры облаков для роботов;
- Открытые и открытые инфраструктуры;
- Распределение нагрузки;
- Стандарты и протоколы.
Риски
- Экологическая безопасность — концентрация вычислительных ресурсов и пользователей в одной облачной среде сопровождается концентрацией угроз. Крупные облака часто становятся объектами атак виртуальных машин, ботнетов, переборов паролей и т.п[26].
- Конфиденциальность и безопасность данных — хранение персональных данных у облачного провайдера переносит контроль за их защитой вне компании. В каждое облако поступает множество пользовательской информации (в том числе о частной жизни). Узнав расположение дома, фото, видеопотоки, злоумышленник может использовать их в преступных целях. Захваченный робот может нести угрозу пользователю.
- Этические проблемы — облачная робототехника ставит вопросы этики. Поскольку робот подключён к сети, он может стать объектом несанкционированного доступа. В случае потери управления, совершения противоправных действий должна устанавливаться ответственность.
История
Термин «облачная робототехника» впервые был публично предложен Джеймсом Кафнером в 2010 году на конференции IEEE/RAS International Conference on Humanoid Robotics в докладе «Cloud-enabled Robots»[27]. С тех пор термин объединяет обмен информацией, распределённый искусственный интеллект, коллективное обучение через облачные сети и современные средства вычислений. Кафнер в тот момент работал в Google, которая публично реализовала облачную робототехнику в 2019 году, запустив Cloud Robotics Platform[28].
В заре робототехники вычисления традиционно выполнялись внешними по отношению к роботу компьютерами, связанными кабелем по питанию и сигналам управления. С развитием беспроводной связи появились роботы с «внешним мозгом», в которых часть задач выполнялась локальными ресурсами (управление, защита), а ресурсоёмкие обработки уносились на внешние компьютеры[29].
Термин «облачные вычисления» получил популярность после запуска Amazon EC2 в 2006 году, что стало возможно благодаря появлению сетей большой ёмкости, дешёвых компьютеров, устройств хранения, распространению виртуализации и сервис-ориентированной архитектуры[30]. В интервью Popular Science (июль 2006) Кафнер описывал будущее коллективного опыта в облачной робототехнике:
"...робот сможет 'публиковать' свои оптимизированные модели на определённом сайте или в универсальном хранилище знаний, откуда их смогут загрузить все будущие роботы. Моя идея — создать 'базу знаний роботов', которая со временем станет улучшать возможности всех следующих робототехнических систем. Она будет складом информации и статистики о физическом мире, к которой роботы смогут обращаться для повышения точности, безопасности и надёжности принятых решений. Она также сможет существовать как 'библиотека навыков'. Например, если я обучил своего робота-дворецкого готовить идеальный омлет, я бы мог 'загрузить' программу на сервер, чтобы любой другой робот мог скачать её и приготовить омлет по запросу. Могла бы появиться целая коммуна пользователей роботов, выкладывающих экспертные программы и навыки, по аналогии с сегодняшними моделями shareware и freeware для ПК."
— Джеймс Кафнер, (июль 2006)
Основные публикации и события в истории облачной робототехники (по хронологии):
- В 2001 году Кен Голдберг и Роланд Зигварт создали технический комитет по интернет- и онлайн-роботам IEEE RAS. В 2004 году его работа расширена до технического комитета по сетевым роботам IEEE Society of Robotics and Automation[31].
- Джеймс Дж. Кафнер выступил с докладом о облачной робототехнике на конференции IEEE/RAS International Conference on Humanoid Robotics 2010[27].
- Райан Хикман (Google) вёл внутреннюю инициативу по интеграции роботов с облачными сервисами Google, позже реализованную с открытой поддержкой ROS и Android, впервые продемонстрированной на Google I/O 2011[32].
- National Robotics Initiative (США) анонсирована в 2011 г. для исследований, как роботы могут дополнять труд людей, а не заменять его[33].
- Мастерская NRI «Cloud Robotics: Challenges and Opportunities» — февраль 2013[34].
- Дорожная карта по робототехнике в США (2013) отметила облачную робототехнику и автоматизацию для индустрии будущего[25].
- «Cloud-Based Robot Grasping with the Google Object Recognition Engine»[35].
- IEEE IROS Workshop on Cloud Robotics, Токио, ноябрь 2013[36].
- Cloud Robotics-Enable cloud computing for robots. Р. Ли, 2014[4].
- Спецвыпуск IEEE Transactions on Automation Science and Engineering, апрель 2015[1].
- Robot APP Store: облачные приложения для роботов, аналогично магазину приложений для ПК и мобильных[37].
- DARPA Cloud Robotics[38].
- Первая индустриальная облачная робототехническая платформа — Tend, основана Марком Силлиманом, Джеймсом Джентес и Робертом Киффером в феврале 2017 года. Tend позволяет дистанционно контролировать и мониторить роботов через websockets и NodeJS[39][40].
- Сравнительный анализ облачных архитектур для примеров будущих исследований[41].
Примечания
Литература
- Goldberg, Ken. Cloud-based robot grasping with the google object recognition engine // 2013 IEEE International Conference on Robotics and Automation. — 2013. — P. 4263–4270. — ISBN 978-1-4673-5643-5. — doi:10.1109/ICRA.2013.6631180.