[ros-users] ros communication without roscore

Christian Verbeek verbeek at servicerobotics.eu
Tue Feb 8 13:14:55 UTC 2011


Tully,

I am talking about end user products. We need to integrate things into
one Windows application. What's going on behind the scene doesn't matter
but these things are directly visible to the user.

Best wishes
Christian

> Christian,
>
> For a slightly lower effort you could run the roscore inside a VM on
> the windows machine with a known IP.  roscore has a pretty small
> footprint and overhead so it could use a relatively small VM.  I know
> it feels a little excessive, but I expect it will get you going quicker.
>
> Tully
>
> On Mon, Feb 7, 2011 at 8:44 AM, Ken Conley <kwc at willowgarage.com
> <mailto:kwc at willowgarage.com>> wrote:
>
>     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:=<port_num>
>
>     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
>     <verbeek at servicerobotics.eu <mailto:verbeek at servicerobotics.eu>>
>     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 at code.ros.org <mailto:ros-users at code.ros.org>
>     > https://code.ros.org/mailman/listinfo/ros-users
>     >
>     _______________________________________________
>     ros-users mailing list
>     ros-users at code.ros.org <mailto:ros-users at code.ros.org>
>     https://code.ros.org/mailman/listinfo/ros-users
>
>
>
>
> -- 
> Tully Foote
> Systems Engineer
> Willow Garage, Inc.
> tfoote at willowgarage.com <mailto:tfoote at willowgarage.com>
> (650) 475-2827
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20110208/c3fc43b7/attachment-0003.html>


More information about the ros-users mailing list