{"id":280,"date":"2015-11-23T22:57:42","date_gmt":"2015-11-24T03:57:42","guid":{"rendered":"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/?page_id=280"},"modified":"2016-05-06T17:51:22","modified_gmt":"2016-05-06T21:51:22","slug":"collaboration-subsystem","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/system-information\/collaboration-subsystem\/","title":{"rendered":"Collaboration Subsystem"},"content":{"rendered":"<p style=\"text-align: left\"><span style=\"text-decoration: underline;color: #000000\"><strong>Robotics in Concert- A multi-master paradigm (ROCON)<\/strong><\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #000000\">The framework is similar to <\/span><span style=\"color: #000000\">the LAN networks that we have at our homes or offices. There is a central server called the <\/span><span style=\"color: #000000\">\u2018hub\u2019. Structurally hub is a form of local ReDiS (Remote Dictionary Server) similar to the one <\/span><span style=\"color: #000000\">used in LAN connections. The purpose of this hub is to collect all the data coming from the <\/span><span style=\"color: #000000\">different nodes and direct them to the desired nodes thus preventing high traffic by not <\/span><span style=\"color: #000000\">sending the messages to all the nodes and also keeps all the nodes decoupled thus regulating <\/span><span style=\"color: #000000\">the message passing. Between the connection of node\u2019s master and the hub there is a <\/span><span style=\"color: #000000\">\u2018gateway\u2019 which is similar to a public interface for the hub to interact with. Whenever a <\/span><span style=\"color: #000000\">message is received by the hub, the hub checks something called gateway\u2019s \u2018switch\u2019. If this <\/span><span style=\"color: #000000\">switch is flipped by the user or the node the hub passes on the message to this node. If the <\/span><span style=\"color: #000000\">switch is not flipped then the message is not sent to the node. The gateways of other nodes can also interact with the gateways of other nodes. If a node wants a service from a particular node, <\/span><span style=\"color: #000000\">the gateway of the former will request a \u2018pull\u2019 from the gateway of the latter.<\/span><\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-435 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/multimaster-300x236.png\" alt=\"multimaster\" width=\"300\" height=\"236\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/multimaster-300x236.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/multimaster.png 605w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong><span style=\"color: #000000\">Figure: Rocon implementation example. Multimaster setup with conductor as hub<\/span><\/strong><\/p>\n<p style=\"text-align: left\"><span style=\"text-decoration: underline;color: #000000\"><strong>Implementing ROCON<\/strong><\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #000000\">Rapps are just packages which are taken as arguments in the ROCONs abstract <\/span><span style=\"color: #000000\">package called as ROCON Capabilities package. After we create RAPPS, the Capabilities take <\/span><span style=\"color: #000000\">the launch files of the Rapps and launch them in a file called concert\u00adclient.launch. \u00a0<\/span><br \/>\n<span style=\"color: #000000\">\u00a0<\/span><br \/>\n<span style=\"color: #000000\">The Rapps basically is a package of four files. They are as follows <\/span><br \/>\n<span style=\"color: #000000\">1. Launch file \u00a0<\/span><br \/>\n<span style=\"color: #000000\">2. Interface file <\/span><br \/>\n<span style=\"color: #000000\">3. Rapps file <\/span><br \/>\n<span style=\"color: #000000\">4. Parameters file <\/span><br \/>\n<span style=\"color: #000000\">\u00a0<\/span><br \/>\n<span style=\"color: #000000\"><strong>The launch file<\/strong> is just like any other launch file where we launch all the nodes we desire and <\/span><span style=\"color: #000000\">also we mention the remappings of the topics as they will be different in the HUB namespace <\/span><span style=\"color: #000000\">(HUB \u00ad a master which regulates the communication of all the other masters and also is <\/span><span style=\"color: #000000\">responsible to launch them). \u00a0<\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #000000\"><strong>An interface file<\/strong> is where you define the topics the master or the nodes within that master would <\/span><span style=\"color: #000000\">subscribe or publish. This file is of YAML format as it is used during compilation period which is\u00a0when you do Catkin_make. We can also enter services if we are using client\/server response <\/span><span style=\"color: #000000\">method of two way communication. <\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #000000\"><strong>A parameter file<\/strong> is the one in which we can import parameters to the Parameter server that is <\/span><span style=\"color: #000000\">local to one particular master in a multi\u00admaster setup. Here we can initiate the variables with <\/span><span style=\"color: #000000\">different values for example the robot name or node name or port number etc. <\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #000000\"><strong>A Rapp file<\/strong> is where we mention the names of the three other files along with their paths relative <\/span><span style=\"color: #000000\">to this file on the machine. This file is actually taken as an argument in the Capabilities package <\/span><span style=\"color: #000000\">launch file called concert_client.launch. <\/span><\/p>\n<p style=\"text-align: justify\">\u00a0<strong><a href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1500.jpg\" rel=\"attachment wp-att-437\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-437 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1500-300x225.jpg\" alt=\"IMG_1500\" width=\"300\" height=\"225\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1500-300x225.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1500-768x576.jpg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1500-1024x768.jpg 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/strong><span style=\"color: #000000\">\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Figure: Detection subsystem over ROCON setup. Three masters collaboratively determining the expression of the person<\/strong><\/span><\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-142318-e1462559047739.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-467\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-142318-e1462559047739-300x154.png\" alt=\"Screenshot from 2016-05-06 14:23:18\" width=\"300\" height=\"154\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-142318-e1462559047739-300x154.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-142318-e1462559047739.png 583w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><strong>Figure : Navigation subsystem over ROCON. Three Turtlebots collaboratively moving towards the person of interest in the form of flock. Note that only one robot has detected the persons location. Others are communicated over the network.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Robotics in Concert- A multi-master paradigm (ROCON) The framework is similar to the LAN networks that we have at our homes or offices. There is a central server called the \u2018hub\u2019. Structurally hub is a form of local ReDiS (Remote Dictionary Server) similar to the one used in LAN connections. The purpose of this hub<br \/><a class=\"moretag\" href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/system-information\/collaboration-subsystem\/\">+ Read More<\/a><\/p>\n","protected":false},"author":38,"featured_media":0,"parent":29,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-280","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages\/280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/users\/38"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/comments?post=280"}],"version-history":[{"count":8,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages\/280\/revisions"}],"predecessor-version":[{"id":505,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages\/280\/revisions\/505"}],"up":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages\/29"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/media?parent=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}