This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
introduction [2014/06/03 15:53] gajan |
introduction [2014/06/03 17:05] (current) gajan [Next Steps] |
||
---|---|---|---|
Line 6: | Line 6: | ||
Some of the details such as authentication and message types are skipped here to keep the introduction simple. Please see the [[communication_protocol|Communication Protocol]], [[Developer Resources | Developer Resources]], and the Tutorial sections for a more complete explanation. | Some of the details such as authentication and message types are skipped here to keep the introduction simple. Please see the [[communication_protocol|Communication Protocol]], [[Developer Resources | Developer Resources]], and the Tutorial sections for a more complete explanation. | ||
- | ==Computing Environments== | + | ====Computing Environments==== |
- | Computing Environments are implemented using [[http://lxc.sourceforge.net/|Linux Containers (LXC)]] providing a secure, lightweight virtual machine to execute 3rd party code. In the current setup each container is a full fledged [[http://www.ros.org/wiki/|ROS]] environment with its own [[http://www.ros.org/wiki/Master|ROS master]]. The user, which can be a human or a robot, can launch [http://www.ros.org/wiki/Nodes ROS nodes] and set [[http://www.ros.org/wiki/Parameter%20Server|parameters]]. | + | Computing Environments are implemented using [[http://lxc.sourceforge.net/|Linux Containers (LXC)]] providing a secure, lightweight virtual machine to execute 3rd party code. In the current setup each container is a full fledged [[http://www.ros.org/wiki/|ROS]] environment with its own [[http://www.ros.org/wiki/Master|ROS master]]. The user, which can be a human or a robot, can launch [[http://www.ros.org/wiki/Nodes|ROS nodes]] and set [[http://www.ros.org/wiki/Parameter%20Server|parameters]]. |
Our example robot can create a container for itself using the following message (type CC) | Our example robot can create a container for itself using the following message (type CC) | ||
Line 23: | Line 23: | ||
</code> | </code> | ||
- | [[File:lxc-roomba.jpg|center|600px|thumb|Computing Environments are implemented using Linux Containers (LXC) providing a secure, lightweight virtual machines. Container Task Sets control the launching and shutting down of the LXCs. Container Task Sets receive their commands from the Master Task Set.]] | + | {{ :lxc-roomba.jpg |}} |
+ | Computing Environments are implemented using Linux Containers (LXC) providing a secure, lightweight virtual machines. Container Task Sets control the launching and shutting down of the LXCs. Container Task Sets receive their commands from the Master Task Set. | ||
- | == Environment Endpoint == | + | ==== Environment Endpoint ==== |
An Environment Endpoint is where the messages enter and leave the Linux Containers. The interface that gets exposed outside of the container has to be explicitly mentioned. | An Environment Endpoint is where the messages enter and leave the Linux Containers. The interface that gets exposed outside of the container has to be explicitly mentioned. | ||
Line 39: | Line 40: | ||
</code> | </code> | ||
- | ==Robot Endpoint== | + | ====Robot Endpoint==== |
- | A Robot endpoint is where messages to/from the robot enter/leave the Rapyuta. Robots and Robot Endpoint connect with each other using the [http://en.wikipedia.org/wiki/Websocket WebSockets protocol]. Rapyuta's WebSockets based protocol allows various tyes of messages: [http://en.wikipedia.org/wiki/JSON JSON] encoded messages (simliar to rosbridge), serialized ROS messages, or binary blobs. For binary blobs a converter has to be registered on the cloud side which converts the binary data into the standard message format used inside Rapyuta. | + | A Robot endpoint is where messages to/from the robot enter/leave the Rapyuta. Robots and Robot Endpoint connect with each other using the [[http://en.wikipedia.org/wiki/Websocket|WebSockets protocol]]. Rapyuta's WebSockets based protocol allows various tyes of messages: [[http://en.wikipedia.org/wiki/JSON|JSON]] encoded messages (simliar to rosbridge), serialized ROS messages, or binary blobs. For binary blobs a converter has to be registered on the cloud side which converts the binary data into the standard message format used inside Rapyuta. |
- | [[File:external-roomba.jpg|center|600px|thumb|Robots and Robot Endpoint connect using the WebSockets protocol, allowing for a bi directional, full duplex communication.]] | + | |
+ | {{ :external-roomba.jpg |}} | ||
+ | Robots and Robot Endpoint connect using the WebSockets protocol, allowing for a bi directional, full duplex communication. | ||
Our sample robot has to add an interface on Robot Endpont in order to send its pose messages to the cloud. This is done using the following message (type CN) | Our sample robot has to add an interface on Robot Endpont in order to send its pose messages to the cloud. This is done using the following message (type CN) | ||
Line 53: | Line 56: | ||
</code> | </code> | ||
- | ==Internal Communication== | + | ====Internal Communication==== |
All endpoints (Environment & Robot) can communication with each other to realize different topologies. With a Robot Endpoint and Environment Endpoint talking you can connect a Robot to a container, with Environment Endpoints you can connect containers and finally with only Robot endpoints you can connect robots together. | All endpoints (Environment & Robot) can communication with each other to realize different topologies. With a Robot Endpoint and Environment Endpoint talking you can connect a Robot to a container, with Environment Endpoints you can connect containers and finally with only Robot endpoints you can connect robots together. | ||
Line 64: | Line 67: | ||
</code> | </code> | ||
- | [[File:roomba_all.jpg|center|600px|thumb]] | + | {{ :roomba_all.jpg |}} |
- | ==Next Steps== | + | ====Next Steps==== |
- | * If you want to just go ahead and try Rapyuta, visit [[Installation|Installation]] | + | * If you want to just go ahead and try Rapyuta, visit [[Install|Install]] |
- | * If you want to dive in deeper, visit [[Developer Resources | Developer Resources]]. | + | * If you want to dive in deeper, visit [[Developer Resources | Developer Resources]]. |