Rapyuta:Cloud robotics Platform - by shan

23
Rapyuta: A cloud Robotics Platform Presented by SHAN K M S7 , CSE Roll No:122044

Transcript of Rapyuta:Cloud robotics Platform - by shan

Rapyuta: A Cloud Robotics Platform

Rapyuta: A cloud Robotics PlatformGuided by Mrs.Deepa Merin JoseAsst. ProfessorComputer Science Department

Presented bySHAN K MS7 , CSERoll No:122044

Introduction

Rapyuta is an open source cloud robotic platform. It helps robots to offload heavy computation by providing secured customizable computing environment

2

Mobile robots lack intelligence because,Costs of on-board computation and storage are highNeed extra space which affects mobility and operation time Absence of a common mechanism and medium to communicate and share knowledge between robots

Running robotics applications in the cloud falls into the platform-as-a-service (PaaS) model. In PaaS, the cloud computing platform typically includes :an operating system, an execution environment, a database, and a communication server.

Before Rapyuta ?

Google App Engine Exposes limited subset of program APIs specifically for web applicationsAllows only a single processDoes not exposes sockets HerokuOvercomes the limitations of Google App Engine.Lacks bidirectional data flow between robots and their computing environments Cloud foundry and OpenShift Liberal in terms of available runtimes and languagesExpect applications to be single process or preconfigured Has only HTTP connection outside

Why Rapyuta ?

Open source Allocates secure computing environment and are tightly interconnected , allowing robots to share all or subset of their serviceProvides high bandwidth access to the RoboEarth No need of more expensive or power hungry hardwares, setup overheads, often failure prone maintenance and updatesCan be customized for other robotics middleware'sWeb Socket based communication server provides bidirectional, full duplex communication with physical robot.It allows mobiles and browsers to connect to this ecosystem It allows humans to monitor robots when they are lost. It makes robotic system more robust

Rapyuta consists mainlyComputing environments for robots to offload their tasksA set of communication protocolsA set of core tasks to administer the systemA command data structure to organize the system administration

Architecture and design choices

Computing Environments

Computing environments are implemented using Linux Containers, which provides a lightweight and customizable solution for process separation and securityOnto which robots offload their tasksEach computing environment is set up to run any process that is ROS node and all processes within a single environment communicate with each other using the ROS inter-process communication

Communication and Protocols

3 main solutions were considered and evaluated Bus based communication approach Each host machine to which all of the other Rapyuta process running in the host machine were connectedIt provides functionality to route the internal messages to the corresponding destination It allowed a relatively easy control of the message flow but results high latencies Directly connecting ROS nodes without any intermediate processesLowest latencies but relatively complex to maintain during runtime and securing the communication

Use Endpoint processes to define a clear interface for the communication with external processesCurrently implemented in RapyutaThe Endpoints are directly connected with each other using ports Interfaces are used for communicating between a Rapyuta process and a non Rapyuta process running either on the robot or in the computing environment Ports are used for communicating between Rapyuta processes

Endpoints spilt communication protocols into three parts

Internal communication protocol Which covers all communication between Rapyutas process

2.External communication protocol Which covers the data transfer between the physical robot and the cloud infrastructure running Rapyuta

3. Communication between Rapyuta and the applications running inside the container

Basic communication channels of Rapyuta.

Solid lines represents the internal communication between Rapyutas processThe Endpoints (EP) are connected to Master task using a two-way remote procedure call (RPC) protocolThe Endpoints have Interfaces (I) for communicating between EndpointsDotted lines represents the external communicationDashed line represent the ROS based communication between ROS nodes and Rapyuta

Core Task SetsHere present the four Rapyuta task sets that administer the system Master Task SetThe Master process is the brains of Rapyuta. Every administrative request from a User is handled by the process and it is responsible for the initiation of the necessary changes to the system. These administrative tasks include:connections to robotscreation/destruction of containersaddition/removal of robots addition/removal of nodesaddition/removal of interfaces to/from endpointsaddition/removal of connections between endpoints/interfacesThere is exactly one Master process for the entire RoboEarth Cloud Engine.

Robot Task SetThe robot task set is defined by capabilities necessary to communicate with a robot. It includeForwarding of configuration requests to MasterConversion of data messages to the appropriate formatCommunication with robots and other Endpoints Environment Task SetIt is defined by the capabilities necessary to communicate with a computing environment. It includesCommunication with ROS nodes and other Endpoints Launching/stopping ROS nodesAdding/removing parameters There is exactly one Environment process per Computing EnvironmentContainer Task SetThe Container process creates and destroys computing environments (i.e. containers) according to the orders from the Master process.There is exactly one Container process per machine, which should be used to run computing environments.

Command Data StructureRapyuta is organized in a centralized command data structure with four component

The Network is the most complex part of the data structure. Its elements are used to provide the basic abstraction of the whole platform and are referenced by the other three components. It is also used to organize the internal and external communication

The User represents generally a human who has one or more robots that need to be connected to the cloud. Each User has a unique API key, which is used by the robots for authentication. Additionally, all requests are initially processed by the User and handed off to another component for further processing if necessary

The LoadBalancer is used to manage the Machines which are intended to run the computing environments. The load balancer is used to assign new containers to the appropriate machine.

The Distributor is used to distribute the incoming connections from the robots over the available robot Endpoints.

Communication protocolsLets see Rapyutas internal and external communication protocolsInternal Communication ProtocolAll Rapyuta processes communicate with each other over UNIX sockets It can be split into two categories:The rst type consists of all the administrative messages used to congure Rapyuta. All these messages either originate or end in the process containing the command data structure, which is typically the Master task setThe second and the most frequent type is the data message. For this type of communication a length prexed protocol is used. The data message itself is internally transported as a serialized ROS message.

External Communication ProtocolThe robots connect to Rapyuta using the WebSockets protocolThe protocol was implemented using the Autobahn toolsUnlike a common web server, which uses pull technology, the use of WebSockets allows Rapyuta to push the resultsThe messages between the Robot and Rapyuta are pure ASCII JSON messages that have the following top level structure{ "type":"...", "data": ... }The value of the type key is a string and denotes the type of message found in data: CC - Create Container message that creates a secure computing environment in the cloud DC - Destroy Container message destroys an existing computing environment CN - Congure Components message allows to launch/stop ROS nodes CX - Congure Connections message allows to connect/disconnect Interfaces DM - Data messages are used to send/receive any kind of messages to/from application nodesST - Status message pushed from Rapyuta to the robotER - Error message also pushed from Rapyuta to the robot

Basic Communication ExampleConsider a Roomba vacuum cleaning robot with a wireless connection uses Rapyuta to record/log its 2D pose. The communication takes place in the following order:

Initialization: user ID: roombaOwner, robot ID: roomba, the API key: secret,Roomba performs the initialization by sending the following HTTP request to the master containing the command data structure:http://[domain]:[port]?userID=roombaOwner&robotID=roomba&key=secret&version=[version]A robot Endpoint is assigned on an available machine and the machines URL together with an authentication key is returned to the Roomba as a JSON encoded response.{"url":"ws://[domain]:[port]/","key":"8f42eeedefb0463a834c582782a9e2bc"}

In the nal step of the initialization process, Roomba makes a connection using the received URL and registers with the assigned robot Endpoint using the following URL.ws://[domain]:[port]/?userID=roombaOwner&robotID=roomba&key=8f42eeedefb0463a834c582782a9e2bcContainer Creation: The Roomba creates a computing environment and tags it with a CC type message having a data key with value:"containerTag" : "roombaCloneCongure Nodes: The Roomba launches the logging node starts two Interfaces"addNodes" : [{"containerTag" : "roombaClone","nodeTag" : "positionRecorder","pkg" : "testPkg","exe" : "posRecorder.py"}],

"addInterfaces" : [{"endpointTag" : "roomba","interfaceTag" : "pos","interfaceType" : "SubscriberConverter","className" : "geometry_msgs/Pose2D"}, {"endpointTag" : "roombaClone","interfaceTag" : "pos","interfaceType" : "PublisherInterface","className" : "geometry_msgs/Pose2D","addr" : "/posPub"}]

Binding Interfaces: Before Roomba can use the added node the two Interfaces have to be connected."connect" : [{"tagA" : "roomba/pos","tagB" : "roombaClone/pos"}]

Data: Finally, the Roomba starts sending the data message that contains the 2D-Pose information"iTag" : "pos","type" : "geometry_msgs/Pose2D","msgID" : "id","msg" : {"x" : 3.57,"y" : -44.5,"theta" : 0.581}

Demonstrations

ConclusionWe have seen how the computing environments and the communication protocols allow robots to easily offload their computation to the cloud Rapyutas computing environments can be interconnected to share specific resources with other environments. So it eliminates setup and update overhead for the users.Eliminating the separate databases and hardwares, robots can improve its mobility and efficiency Any updation on a robots in anywhere can use others without any overhead

References

Gajamohan Mohanarajah, Dominique Hunziker, Raffaello D'Andrea, and Markus Waibel, Rapyuta: A Cloud Robotics Platform, in IEEE transactions on automation science and engineering, vol. 12, no. 2, April 2015Rajesh Arumugam, V.R. Enti, Liu Bingbing, Wu Xiaojun, Krishnamoorthy Baskaran, F.F. Kong, A.S. Kumar, K.D. Meng, and G.W. Kit. DAvinCi: A Cloud Computing Framework for Service Robots. In IEEE International Conference on Robotics and Automation, pages 3084{3089. IEEE, 2010.Google, Google App Engine, 2008. [Online]. Available: https://developers.google.com/appengineRoboearth, [online]: http://roboearth.org

Thank YouDOUBTS ?QUESTIONS ?