Hi Ken, Thank you for this answer. A good hint is to bind the nodes to specific ports. I will try to connect to the nodes directly not using ROS but raw xmlrpc. Christian > Hi Christian, > > In the 'ronin' and 'rosproxy' package we explore various solutions to > the problem you describe. In general, all you need to do is have > another program register the remote node on another master. The > 'register.py' script in rosproxy contains code to do this. What you > need is the IP address of the remote node, plus the port of the TCPROS > server that it is running. This will let you connect to a remote > publisher; a remote subscriber is more difficult because a subscriber > needs regular callbacks to notify it of a new publisher. The ronin > node, in Python, is a node that is capable of re-attaching to masters. > > You can force a roscpp node to bind to a particular TCPROS port by using: > > __tcpros_server_port:= > > as a command-line argument. Unfortunately this option does exist in > rospy yet, though it could be hacked in. > > In the longer term, we want to explore mDNS/Avahi-based solutions for > doing the network config. There are some packages that already > experiment with this, such as Jon Fink's bonjour-based multimaster: > > https://github.com/jonfink/multimaster-ros-pkg > > It might be a solution to the problems you describe, but I don't have > first-hand experience with it. > > - Ken > > On Mon, Feb 7, 2011 at 3:16 AM, Christian Verbeek > wrote: >> Dear all, >> >> It might be quite unusual but I would like to communicate with a ROS >> system without connecting to a roscore. The problem I see is the >> following. My robots run Ubuntu and are perfectly suited to run ROS. The >> app for programming these robots is a Windows program. We already ported >> ROS to Windows (http://ros-win32.servicerobotics.eu/). In general we >> would be able to integrate ROS into our Windows app and connect to the >> roscore running on the robots. >> >> This will not do for the following reasons: >> >> 1) The IP address of the robot is not fixed, i.e. can be change by the >> user. In order to be able to connect from the outside to the robot >> ROS_MASTER_URI and ROS_IP on the robot would have to reflect the current >> IP address. This might not be a general problem but makes things quite >> complicated for the user when the IP address has to be changed. I would >> prefer to set ROS_MASTER_URI and ROS_IP on the robot to 127.0.0.1 as >> this will always work. >> >> 2) We also have a simulator for our robot which is also a Windows >> application. If we would use ROS to connect to our robot we would have >> to run a roscore on Windows and connect the simulated robot to this ROS >> master. With a single simulated robot this might work. But when we >> simulate more than one robot we are getting in very big trouble because >> there are many statics in libros. The robots are loaded at runtime to >> the simulator and the statics make it impossible to handle the robots >> individually as it is done right now. >> >> What we would need is a point to point communication with a specific ROS >> node. We know the IP address of the robot and we know which nodes are >> running there. Is there a way to connect to a node's topic directly? Or >> is there a better solution to my problem? >> >> Regards >> Christian >> >> _______________________________________________ >> ros-users mailing list >> ros-users@code.ros.org >> https://code.ros.org/mailman/listinfo/ros-users >> > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users >