Troubleshooting OpenRTM-aist (C++ edition, Python edition, and Java edition).
Symptom: A component which has been launched and registered to a name server is displayed as a zombie object in the name service view of RTSystemEditor. Even if I drag it down on the system editor, nothing is shown.
You may not have reached the host where the component was launched from the PC where RTSystemEditor is running for some reason. At first check whether pings from the PC where RTSystemEditor is running to the host where the component was launched are successful.
For example, there are three hosts A, B, and C:Networks among these hosts are set up like this:
[hostA]-(networkI)-[hostB]-(networkII)-[hostC]
In this case, if host B is not configured for routing between networkI and networkII, hostA is unreachable from hostC. You need to configure hostB in order to reach hostA from hostC.
launched.
When the firewall is enabled in the host where the component was launched, this problem may occur. Please recheck the configuration or turn off the firewall to connect to the component externally.
is displayed while executing the installer, and it fails in the installation.
Please log on as a user who has the Administrator privilege to run the installer.
After launching the name server and components, I connect to the name server with RTSystemEditor, but the components have not been registered.
First, to increase the log level to the highest level, please add the following line to rtc.conf:
logger.log_level:PARANOID
and launch the components.
If the following message cannot be found in the component's log, the registration of the name server is not complete:
naming_svc NameServer connection succeeded: corba/Host name : Port number
In this case, the following causes are possible.
Please make sure that the rtc.conf the components load is set correctly. If you want to set the host name as openrtm.aist.go.jp, the line shown below must be included in rtc.conf.
corba.nameservers: openrtm.aist.go.jp
Also, when you start the name server by specifying port number, you need to specify the port number in rtc.conf, too. If you specify 1234 as the port number when launching the name server, you need to set rtc.conf as follows:
corba.nameservers: openrtm.aist.go.jp:1234
If you do not specify the port number, the default port of 2809 will be used. This is the default port number of the omniORB name server (omniNames). If you use another name server than omniORB name server, set the port number appropriately.
Please make sure you can connect from the host where the component was launched to the host where the name server was launched. First, confirm whether you can ping one computer from the other. If the ping does not succeed, please check the network configuration again.
Even if the ping succeeds, the connection may be prohibited by a firewall. First, please check the configuration of the host where the name server was launched. The easiest solution is to turn off the firewall. For more details, please refer to the configuration of each OS and firewall.
When there are more than two network interfaces, you need to specify to CORBA which interface to use. You should consider both the name server and the component.
Let's assume that each host has two interfaces and that the address for each interface is set as follows (the netmask is assumed to be 255.255.255.0):When launching the name server, you need set the environment variable OMNIORB_USEHOSTNAME on the name server side.
(csh) > setenv OMNIORB_USEHOSTNAME 192.168.0.1 (bash) > export OMNIORB_USEHOSTNAME=192.168.0.1 > rtm-naming or launch the name server by omniNames
You may modify rtm-naming (Unix) or rtm-naming.bat (Windows) directly.
While you modify the configuration of corba.endpoint in rtc.conf on the component side, you can specify the interface to use.
corba.endpoint: Interface IP address:Port number corba:endpoint: 192.168.0.2: (In case of not specifying port number) corba:endpoint: 192.168.0.2:1234 (In case of specifying port number)
You don't have to specify the port number, but please don't forget to add :(colon) after the IP address if you do.
This error can appear when rtm-naming.bat is executed to start the name server. This error occurs because there is no VC++ runtime library in the execution environment. OpenRTM-aist (C++ edition) doesn't operate in the environment in which the VC++ (Microsoft Visual Studio and Visual C++ Express, etc.) runtime is not installed. Please install VC++ or the VC++ runtime. OpenRTM-aist (C++ edition) provides a VC8 (VS2005) version and a VC9 (VS2008) version. Install the Microsoft Visual C++ 2005 SP1 redistributable package when using OpenRTM-aist-X.X.X_vc8.msi, and the Microsoft Visual C++ 2008 redistributable package when using OpenRTM-aist-X.X.X_vc9.msi.
>c:\program files\omniorb\include\omnithread\nt.h(35) : fatal error C1083: include file cannot be opened. 'windows.h': No such file or directory
Refer to the Visual C++ 2005 Express Edition help for more details.
Sympton: If rtm-naming.bat is executed, an application error occurs.
When applications such as Visual Studio 2005 are not installed, please install "Visual C++ 2005 Express Edition" from the Visual Studio 2005 Express Edition site.
When rtm-naming.bat is executed, a black window (command prompt screen) opens and immediately closes.
The name server, OmniNames.exe, of omniORB is started by rtm-naming.bat. Because OmniNames.exe is not installed if omniORB is not installed, the name server cannot be executed. Please download and install omniORB on the download page.
The name server of omniORB is started in rtm-naming.bat with:
omniNames.exe -start 2809 -logdir %TEMP%
An environment variable, %TEMP%, sets the user's temporary directory, typically to:
C:\Documents and Settings\[user-name]\Local Settings\Temp
When the user name uses 2-byte character codes, such as Japanese names, omniNames cannot create the log file and exits.
To resolve this issue, use one of the following methods.Edit the file C:\Program Files\OpenRTM-aist\[version]\bin\rtm-naming.bat, changing the following line:
%cosnames% -start %port% -logdir %temp%
%cosnames% -start %port% -logdir [log path]
Ensure that the new log path does not contain 2-byte character codes and that the user has permission to write to that directory.
When the Java edition of OpenRTM-aist and the Java JDK are installed, start-orbd.vbs will be present in the Examples folder of the Start Menu. This starts the name server included in the Java CORBA system. It has no problems with 2-byte character codes.
The automatic installer included in OpenRTM-aist checks for the existence of packages and their versions, and if appropriate packages are not installed, it downloads the packages from the download site of each package and installs them. Make sure your computer is connected to Internet to install with the automatic installer. Although your network connection is normal, when download errors still happen, it may be possible that the download fails because of network congestion, or locations or names of the files have been changed on the download site. In the first case, try automatic installation again after waiting some time. In the latter case, specify your target packages and download them individually to install manually, or modify the download links in the automatic installer and run it again. If there are changes in the download sites, please notify us.
Most configuration errors happen when a required package cannot be found. When there is an error, make sure required packages are installed, and headers and libraries are installed in locations autoconf searches.
Launch the automatic installer of packages again and start over from package installation. If some error messages are shown during this process, install the specified packages manually and run configure. When configure ends without error messages, execute make again to finish the build.
When an old version of OpenRTM-aist is not completely uninstalled, a new version cannot be installed. Please install it again after uninstalling an old version once.
Please use "pkg_install_XXXX.sh" to uninstall.
>su #pkg_install_XXXX.sh -u
The old OpenRTM-aist can be uninstalled with the apt-get command:
>su #apt-get remove OpenRTM-aist-example #apt-get remove OpenRTM-aist-dev #apt-get remove OpenRTM-aist-doc #apt-get remove OpenRTM-aist
The old OpenRTM-aist can be uninstalled with the yum command:
>su #yum remove OpenRTM-aist-example #yum remove OpenRTM-aist-dev #yum remove OpenRTM-aist-doc #yum remove OpenRTM-aist
The old OpenRTM-aist can be uninstalled with the apt-get command:
>su #apt-get remove OpenRTM-aist-example #apt-get remove OpenRTM-aist-dev #apt-get remove OpenRTM-aist-doc #apt-get remove OpenRTM-aist
When apt-get, pkg_install_ubuntu.sh, and pkg_install_debian.sh are used on distributions such as Ubuntu and Debian, a CD might be asked for:
Media change: please insert the disc labeled 'Ubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016)' in the drive '/cdrom/' and press enter
Press ctrl-c to interrupt installation when the message is displayed. When you do not have the CD, you can avoid this message with the following method:
The following lines are in /etc/apt/sources.list.
deb cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ Japanese Remix - Release i386 (20071018)]/ gutsy main restricted
or
deb cdrom:[Debian GNU/Linux 4.0 r3 _Etch_ - Official i386 NETINST Binary-1 20080218-14:15]/ etch contrib main
Comment out the line by inserting a # character at the start.
#deb cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ Japanese Remix - Release i386 (20071018)]/ gutsy main restricted
or
#deb cdrom:[Debian GNU/Linux 4.0 r3 _Etch_ - Official i386 NETINST Binary-1 20080218-14:15]/ etch contrib main
Start the installation from the beginning.
It may be because run.sh does not have the execution bit set. Set the execution bit, or pass the script to the shell directly.
> ls -al run.sh -rw-r--r-- 1 n-ando n-ando 1146 4 27 15:12 run.sh > chmod 755 run.sh > ./run.sh Or > sh run.sh
The execution script of SimpleIO, run.sh assumes a terminal window is one of kterm, xterm, or gnome-terminal. Therefore when you use another terminal window, edit run.sh appropriately.
cmd = "omniNames -start "+str(port)+" -logdir \""+str(currdir)+"\" &"
Add the Python installation folder (e.g. C:\Python26) to the PATH environment variable.
Cygwin is installed. Since there may be several versions of python.exe in some environments where Cygwin is installed, even if the PATH environment variable is set up correctly, another version of python.exe that is different from the expected can be started. This sometimes causes failures caused by version differences in the two Pythons. Finding the exact cause can be extremely difficult. If you use an environment where Cygwin is installed, make sure python.exe is starting from the Python installation folder when you run OpenRTM-aist for Python.
This is an error because the WINDOWS\system32 folder does not have msvcp71.dll. Get msvcp71.dll from this URL:
http://www.vector.co.jp/soft/win95/util/se435079.html
If an rtc.conf file is not found in the same directory as the RT-Component or in the search path, the component cannot be started. The error appears as follows:
Can't open file: ./rtc.conf Can't open file: /etc/rtc.conf Can't open file: /etc/rtc/rtc.conf Can't open file: /usr/local/etc/rtc.conf Can't open file: /usr/local/etc/rtc/rtc.conf
corba.nameservers: localhost naming.formats: %n.rtc
If the new lines in rtc.conf are CRLF, you should remake rtc.conf. You can check using the file command:
$ file rtc.conf
corba.args: -ORBTCPReadTimeouts 1:60000:300:1
Therefore, 1:60000:300:1 means:
When a large amount of data is received, all the data cannot be acquired with a single read. In that case, it usually divides reads into portions. With the default value, the read thread will wait for 100ms, so it takes time to receive a large amount of data. Java's CORBA divides data into 100KB. When data that exceeds this is exchanged, you should add the above-mentioned setting to rtc.conf.