Облачные технологии для роботов — Rapyuta



В последние годы, облачные вычисления прочно входят в нашу жизнь. Делая многие вещи проще и доступнее.
И, разумеется, напрашивается вопрос, как облачные вычисления могут быть использованы в робототехнике?

Сами усиленно думаем над этим вопросом и даже планируем запустить такой сервис 😉

Здесь уже писали о проекте RoboEarth — единой базе знаний для роботов.
И вот появился проект Rapyuta — RoboEarth Cloud Engine — пакет с открытым исходным кодом, который пытается обеспечить простой инструмент для решения проблем робототехники.

Основной идеей облачной робототехники является то, что, как правило, робот взаимодействует с окружающей средой, посредством своих датчиков и исполнительных устройств. Фактически, это означает, что данные, полученные от датчиков должны быть обработаны и использованы для принятия решений (в качестве обратной связи) относительно следующего действия робота. Для задач, не требующих работы в режиме реального времени, обработка может быть перемещена в облако. Это снижает необходимую вычислительную мощность робота, что может улучшить продолжительность его мобильной работы(без подзарядки), а так же позволяет снизить стоимость робота.

Тем самым, в качестве мозга для робота, может быть использован недорогой вычислитель типа роутера, Raspberry Pi и т.п.

По большому счёту, большинство робототехнических задач высокого уровня, например, таких как построение карты и планирование движения — не требуют работы в режиме реального времени.
Так, построение карты, состоит в хранении описания окружающей среды, чтобы в дальнейшем робот мог локализовать своё местоположение на карте. Кроме того, карта используется для планирования траектории движения или выбора позиции, чтобы захватить какой-либо объект. Причём, обе эти задачи могут быть сделаны заранее и поэтому могут быть не привязаны к ограничениям реального времени.

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

RoboEarth позволяет роботам делиться знаниями, через централизованную базу знаний, и данный подход позволяет избегать дублирования информации и обмениваться только новыми знаниями. Однако, чтобы использовать потенциал этого подхода в полной мере, требуется не только централизованное хранение знаний, а также и централизованное рассуждения, что и является облачными вычислениями для роботов.

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

Технические аспекты Rapyuta

Упрощённо, решение Rapyuta выглядит так:

— роботы подключены к коммуникационному модулю Rapyuta в облаке, в котором так же работают вычислительные среды — LXC (Linux Containers).

Rapyuta схожа с Google App Engine, и так же определяет протокол для взаимодействия приложений в облаке. Однако, в отличие от модели Google, где используются только веб-запросы, Rapyuta вводит дополнительный слой.
Это означает, что робот не общается непосредственно с облаком приложений, но использует Rapyuta, как постредника. Такой подход предоставляет больше гибкости и контроля над системой. Например, Rapyuta может использоваться для ретрансляции связи между роботами, без создания вычислительной среды.
Кроме того, дополнительный слой Rapyuta позволяет запускать несколько процессов с помощью сокетов для связи друг с другом.

Со стороны робота, для работы с Rapyuta используются стандартные протоколы, которые позволяют веб-доступ через веб-браузер (rosbridge и ros.js).
Rapyuta использует WebSockets для постоянных соединений и JSON (JavaScript Object Notation) для сообщений.
Однако, протоколы Rapyuta и rosbridge не совместимы, так как Rapyuta позволяет клиенту взаимодействовать с более чем одним ROS-окружением, что приводит к более сложному протоколу.

На стороне облачного приложения, используется система сообщений определяемая Операционной Системой для Роботов (ROS). Это позволяет развертывать и запускать большинство из более чем 3’000 существующих пакетов ROS с минимальными изменениями в RoboEarth Cloud Engine.

Чтобы отделить ROS узлы для разных пользователей, т.е. для реализации облачных приложений, Rapyuta предоставляет индивидуальные вычислительные среды. Тем самым, робот может иметь множество вычислительных сред, а вычислительная среда может быть использована несколькими роботами.
Для реализации вычислительной среды, используются Linux Containers (LXC), что позволяет надежно контролировать все оперативные аспекты, такие как коммуникации, а также использование ресурсов процессора, оперативной памяти и дискового пространства.
Кроме того, Rapyuta позволяет различным вычислительные средам, взаимодействовать друг с другом при помощи системы ROS-сообщений.

Rapyuta написана на Python и является систмой открытым исходным кодом.
Альфа-версия Rapyuta доступна на GitHub под лицензией Apache версии 2.0.

Вольный перевод статьи:
Rapyuta: The RoboEarth Cloud Engine

Далее: Построение карты в облаке

Ссылки
Rapyuta: The RoboEarth Cloud Engine
http://www.roboearth.org
http://rapyuta.org
https://github.com/IDSCETHZurich/rce
http://www.ros.org/wiki/rosbridge ( http://www.rosbridge.org )
http://ros.org/wiki/rosjs
http://www.rackspace.com

Используются:
http://lxc.sourceforge.net
http://twistedmatrix.com

По теме
База знаний для роботов — RoboEarth
Google I/O 2011: Cloud Robotics
Cloud Robotics


0 комментариев на «“Облачные технологии для роботов — Rapyuta”»

  1. И все, кому не лень, знают что тебе робот даёт на завтрак и какая у тебя планировка в квартире 🙂 Если повезёт — прямо онлайн видео с роботов 🙂 Вобщем фантастика…

    • по-большому счёту, это опасность любых облачных технологий. То же самое с вашими файлами на серверах амазона или гугла, почтой и персональными данными.
      Но, думаю, и с этим нюансом можно справиться, если будет использоваться, например, разграничение доступа и шифрование данных, трафика и т.п.
      А так же, разумеется, возможность создания полностью приватного облака на своих вычислительных мощностях.

    • В общем то я уже давно что-то подобное использую… У меня сначала было ардуино с WiFi модулем а теперь Raspberry Pi с внешним WiFi подключены к домашнему серверу. Просто в самом роботе нет места укладывать столько информации… Раньше робот был с мозгом на сервере, теперь умеет и сам подумать 🙂 Но выставлять всё это на улицу и даже с шифрованием — я небуду… Шифрование — лишняя работа. А без него опасно. Интерес представляет например внешняя база данных разных ратинок например — для роспознавания обьектов.

    • Так ведь речь именно об этом. Я тоже не готов давать доступ к данным/управлению роботом (пусть даже самым безобидным и плюшевым) стороннему сервису (облаку).
      А вот какую-нибудь полезную возможность, которую на роботе/домашнем сервере делать проблематично — например, то же распознавание объектов и т.п. — вполне можно.
      А какие ещё задачи можно передать в облако?

    • Было бы интересно поиметь маленькие виртуальные машинки в которую вливаеш готовый имидж (байткод) и он это решает и в конце сливает данные назад и удаляет виртуал. Так чтобы не отдавать всю задачу в облако. А только куски которые жрут много процесорного времени. Типа поиск в базе — темболее база уже будет как бы там… Хотя уже и это может быть опасно… Я лично всёравно буду стараться максимально перенести в самого робота. Планирую большую часть перенести в FPGA и кучу разных маленьких систем типа Raspberry.

  2. а мне идея нравится. Это не секрет, что на завтрак я ем яичницу, а планировка квартиры — кухня, одна комната и сан узел общей площадью 33 кв.м. Онлайн видео можно заблокировать. Мой компьютер может транслировать онлайн видео, но он же этого не делает. Почему? Я не хочу! Я его хозяин и сам решаю транслировать мне видео или нет… Пока у роботов нет автономного ИИ они будут решать задачи поставленные хозяином.

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение