[openrtm-users 01418] Re: Regarding connecting OpenRTM components in windows on computer with 2 interfaces

Geoffrey Biggs geoffrey.biggs @ aist.go.jp
2010年 9月 28日 (火) 11:17:07 JST


Hi Tony,

On 28/09/10 06:14, Tony Kuo wrote:
> Hi all,
> I am developing and testing my OpenRTM components on two computers each
> with 2 interfaces (one LAN and one wireless )
> I am using windows on both these two machines, therefore configuring
> components through rtc.conf described here
> http://www.openrtm.org/openrtm/en/content/troubleshooting don't really
> apply.
> 
> I tried set OMNIORB_USEHOSTNAME environment variable to the interface I
> am using,
> but I still get "NameServer connection failed: corba/localhost" error.
> 
> Does anyone know how to configure component properly on windows?
> so it's connected to its nameserver
>  and when I launch system editor on one of the machines,
> I can see components on both computers.

The number of interfaces on a computer should, in general, not make much
difference. Particularly in the case of running the name server on
another computer, it doesn't matter how many interfaces you have - as
long as at least one has a route to the computer running the name server.

Sometimes, though, multiple interfaces or other network
mis-configurations can throw off omniORB, causing components to be
unable to reach the name server even from the local computer. We see
this particularly often in Windows. The solution is to configure the
endpoints for the ORB manually. You can read about endpoints here:

http://omniorb.sourceforge.net/omni41/omniORB/omniORB008.html#toc42

We support setting the ORB endpoints in rtc.conf. The page you linked to
does describe this, but OMNIORB_USEHOSTNAME is only half the story. You
also need to set the corba.endpoints (note the plural; the
troubleshooting page apparently needs updating) option in rtc.conf for
the components.

When you have multiple computers, you have two options for registration
management:

a) Run a single name server on one computer. Configure components on
other computers to register on that using corba.nameservers. You can
specify multiple name servers in this option if you want a component to
register in multiple places.
b) Run a name server on each computer. Each component registers on the
name server on its local computer. In RTSystemEditor, add all the name
servers to the name server view. In rtcshell, set RTCTREE_NAMESERVERS to
a semi-colon-separated list of the name server addresses (or just
specify them directly in paths).
c) I guess there's a third option: you can run as many name servers as
you like wherever you like, even on a single computer if you use
different ports.


Geoff



openrtm-users メーリングリストの案内