-
Notifications
You must be signed in to change notification settings - Fork 1
Home
The ros_rt_wmp
is a ROS node capable of replicating whatever ROS topic or
service in another computer wirelessly connected with the source without
the need of sharing the same roscore.
As an example consider a team of robots building cooperatively a map. The robots have to exchange their laser and pose information. However if the network that connect the robots is not completely connected and they can't use an infrastructure network there is no way to share data among robots using the ROS unless a routing protocol is set up on top of the IP protocol.
The ros_rt_wmp
nodes allow that,
creating a multi-hop firm real-time network.
Even if we are using the ros_rt_wmp
and specially the RT-WMP in our research continuously, '''this project is very young''' and bugs can appear during its use.
We encourage the users to communicate it to the authors in order to be solved.
This node is often updated and new features added frequently.
We are working, for example, on making source/destination specification definable
through a configuration file.
In any case we would love to hear about your experience, bugs, feature requests and feel free of asking about the operation of the node at the address [email protected]. On the other hand, any help on developing/testing/debugging/documenting is highly appreciated.
This package was published for the first time almost 2 years ago. Recently it has been completely rewritten and offers now a much higher user bandwidth.
Check this video where an image topic (24 fps) was replicated over a 3-nodes chain network both using a raw 802.11 protocol with fixed routing and using a single roscore
(left) and the use of ros_rt_wmp
(right).
Moreover it has been introduced the possibility of using the ros_rt_wmp
taking advantage of the kernel-space implementation of RT-WMP. This offers the possibility of remoting access far away nodes by means of standard commands like ssh
(see below).
Suppose that robot R0 has to share its \laser
data with R4
that is, from the point of view of the network topology, 5 hops away
and '''can't/don't want to''' share the same roscore. To do that is sufficient
to instanciate two ros_rt_wmp
nodes, the first on R0 and the second
on R4. The \laser
topic on R0 is remapped to the ros_rt_wmp
"input"
topic called (for example) /R0/tx/laser
. It will provoke the node to
send the data published in that topic to node R4 through the network.
At the destination node a topic /R4/rx/R0/laser
that
replicates the /laser
topic on R0 will appear automatically.
It means that on R4 we are receiving data from R0 of type laser.
The communication can be
bidirectional if we follow the same steps on node R4. It is possible
to use whatever number of topics and of whatever type.
It is possible
to do a similar thing with service also. If we have a service at R1
called /factorial
, and we want to call it from R5, we can configure
the ros_rt_wmp
nodes to have a service /R4/R0/factorial
on R4 that, if
called, will transparently call the service /factorial on R0 and will return
the result to the caller.
To summarize, ros_rt_wmp
allows to distribute/decentralize a complex
robotics system in multiple computation unit in a transparent form:
the only requisite is to know which data from other robots we need in
each one of them.
The ros_rt_wmp
nodes uses the RT-WMP protocol [1-5] that allows real time
communication in wireless mobile ad-hoc networks and supports multi-hop
and message priorities.
The data published in the topics are packed by the
source ros_rt_wmp
node in RT-WMP messages and delivered to the destination
node. The latter unpack them and publish data to the correspondent topic.
A similar (but two-way) process takes place for services. Since the RT-WMP
is capable of managing efficiently the mobility of the nodes, the process
is completely transparent to the users that have only to configure the
needed topic/services and source/destination for each one of them.
[1] D. Tardioli, '''Real-Time Communication in Wireless ad-hoc networks. The RT-WMP protocol''', PhD Thesis, Universidad de Zaragoza, October, 2010
[2] D. Tardioli, J. L. Villarroel, '''Routing Wireless Real-Time Traffic Using Minimum Spanning Trees''', International Conference on Computing, Networking and Communications, To appear, 2012
[3] D. Tardioli, L. Almeida, J. L. Villarroel, '''Adding Alien Traffic Endurance to Wireless Token-Passing Real-Time Protocols''', In the 2010 Asia-Pacific Services Computing Conference, 2010
[4] D. Sicignano, D. Tardioli and J. L. Villarroel, '''QoS over Real Time wireless multihop Network''', In the First International Conference on Ad-hoc Networks, 2009
[5] D. Tardioli and J. L. Villarroel, '''Real-Time Communications over 802.11: RT-WMP''', In the fourth IEEE international Conference on Mobile Ad-hoc and Sensor Systems, 2007
The complete documentation and step by step tutorial can be found at here