<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Tully,<br>
    <br>
    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.<br>
    <br>
    Best wishes<br>
    Christian<br>
    <br>
    <blockquote
      cite="mid:AANLkTi=te3y_fDnfi0sgeBNURK2GuSSy2A==gX8FvMP+@mail.gmail.com"
      type="cite">Christian, <br>
      <br>
      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. <br>
      <br>
      Tully<br>
      <br>
      <div class="gmail_quote">On Mon, Feb 7, 2011 at 8:44 AM, Ken
        Conley <span dir="ltr"><<a moz-do-not-send="true"
            href="mailto:kwc@willowgarage.com">kwc@willowgarage.com</a>></span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          Hi Christian,<br>
          <br>
          In the 'ronin' and 'rosproxy' package we explore various
          solutions to<br>
          the problem you describe.  In general, all you need to do is
          have<br>
          another program register the remote node on another master.
           The<br>
          'register.py' script in rosproxy contains code to do this.
           What you<br>
          need is the IP address of the remote node, plus the port of
          the TCPROS<br>
          server that it is running.  This will let you connect to a
          remote<br>
          publisher; a remote subscriber is more difficult because a
          subscriber<br>
          needs regular callbacks to notify it of a new publisher.  The
          ronin<br>
          node, in Python, is a node that is capable of re-attaching to
          masters.<br>
          <br>
          You can force a roscpp node to bind to a particular TCPROS
          port by using:<br>
          <br>
          __tcpros_server_port:=<port_num><br>
          <br>
          as a command-line argument.  Unfortunately this option does
          exist in<br>
          rospy yet, though it could be hacked in.<br>
          <br>
          In the longer term, we want to explore mDNS/Avahi-based
          solutions for<br>
          doing the network config.  There are some packages that
          already<br>
          experiment with this, such as Jon Fink's bonjour-based
          multimaster:<br>
          <br>
          <a moz-do-not-send="true"
            href="https://github.com/jonfink/multimaster-ros-pkg"
            target="_blank">https://github.com/jonfink/multimaster-ros-pkg</a><br>
          <br>
          It might be a solution to the problems you describe, but I
          don't have<br>
          first-hand experience with it.<br>
          <font color="#888888"><br>
             - Ken<br>
          </font>
          <div>
            <div class="h5"><br>
              On Mon, Feb 7, 2011 at 3:16 AM, Christian Verbeek<br>
              <<a moz-do-not-send="true"
                href="mailto:verbeek@servicerobotics.eu">verbeek@servicerobotics.eu</a>>
              wrote:<br>
              > Dear all,<br>
              ><br>
              > It might be quite unusual but I would like to
              communicate with a ROS<br>
              > system without connecting to a roscore. The problem I
              see is the<br>
              > following. My robots run Ubuntu and are perfectly
              suited to run ROS. The<br>
              > app for programming these robots is a Windows
              program. We already ported<br>
              > ROS to Windows (<a moz-do-not-send="true"
                href="http://ros-win32.servicerobotics.eu/"
                target="_blank">http://ros-win32.servicerobotics.eu/</a>).
              In general we<br>
              > would be able to integrate ROS into our Windows app
              and connect to the<br>
              > roscore running on the robots.<br>
              ><br>
              > This will not do for the following reasons:<br>
              ><br>
              > 1) The IP address of the robot is not fixed, i.e. can
              be change by the<br>
              > user. In order to be able to connect from the outside
              to the robot<br>
              > ROS_MASTER_URI and ROS_IP on the robot would have to
              reflect the current<br>
              > IP address. This might not be a general problem but
              makes things quite<br>
              > complicated for the user when the IP address has to
              be changed. I would<br>
              > prefer to set ROS_MASTER_URI and ROS_IP on the robot
              to 127.0.0.1 as<br>
              > this will always work.<br>
              ><br>
              > 2) We also have a simulator for our robot which is
              also a Windows<br>
              > application. If we would use ROS to connect to our
              robot we would have<br>
              > to run a roscore on Windows and connect the simulated
              robot to this ROS<br>
              > master. With a single simulated robot this might
              work. But when we<br>
              > simulate more than one robot we are getting in very
              big trouble because<br>
              > there are many statics in libros. The robots are
              loaded at runtime to<br>
              > the simulator and the statics make it impossible to
              handle the robots<br>
              > individually as it is done right now.<br>
              ><br>
              > What we would need is a point to point communication
              with a specific ROS<br>
              > node. We know the IP address of the robot and we know
              which nodes are<br>
              > running there. Is there a way to connect to a node's
              topic directly? Or<br>
              > is there a better solution to my problem?<br>
              ><br>
              > Regards<br>
              > Christian<br>
              ><br>
              > _______________________________________________<br>
              > ros-users mailing list<br>
              > <a moz-do-not-send="true"
                href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
              > <a moz-do-not-send="true"
                href="https://code.ros.org/mailman/listinfo/ros-users"
                target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
              ><br>
              _______________________________________________<br>
              ros-users mailing list<br>
              <a moz-do-not-send="true"
                href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
              <a moz-do-not-send="true"
                href="https://code.ros.org/mailman/listinfo/ros-users"
                target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
      <br clear="all">
      <br>
      -- <br>
      Tully Foote<br>
      Systems Engineer<br>
      Willow Garage, Inc.<br>
      <a moz-do-not-send="true" href="mailto:tfoote@willowgarage.com">tfoote@willowgarage.com</a><br>
      (650) 475-2827<br>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
ros-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a>
<a class="moz-txt-link-freetext" href="https://code.ros.org/mailman/listinfo/ros-users">https://code.ros.org/mailman/listinfo/ros-users</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">
</pre>
  </body>
</html>