The C++ language version of OpenRTM-aist is provided with packages and installers, and it can be easily installed with many OS and distributions. You can also download the source and build it according to your own environment. This section explains how to install C++ language version OpenRTM-aist by each method.
Download the msi package from download site of openrtm.org]. Python, PyYAML, CMake, Doxygen are also necessary, please install. & br; Visual Studio is required to develop components. You can download the free version from this page.
From version 1.1.2, all 3 languages (C++, Java, Python) + tools (Eclipse + rtshell) are bundled with one Windows installer. It is recommended that you uninstall older versions beforehand. Also, please see the notation of deficit notation in download site.
For the procedure, please read Let's start OpenRTM-aist in 10 minutes! page.
The installer performs the following tasks.
RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\ RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ RTM_VC_VERSION=vc12 RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ OMNI_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\ OpenCV_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\ OpenRTM_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\cmake\
C:\Program Files (x86)\OpenRTM-aist\1.1.2\bin\vc12\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\bin\x86_win32\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\x86\vc12\bin\
We provide a script to check the setting of the installation environment. We will explain how to use the script and what you can check on the following page.
The file is installed with the following structure.
Executing script to check the setting of the above installation environment saves the directory structure under OpenRTM-aist by the tree command in the log file, so you can check the details I can do it.
<install_dir> + OpenRTM-aist + 1.x.x :Old version runtime + <version> + bin: dll, lib, various commands + cmake: OpenRTMConfig.cmake + coil: coil header file + Components + CXX: + Examples: C++ Sample components + OpenCV: OpenCV C++ Sample Component + Java: Java Sample component + Python: Python Sample component + etc: rtc.conf sample + ext: ComponentObserverConsumer + jar: + jre: OpenJDK JRE + omniORB + OpenCV + rtm: OpenRTM-aist header file + idl: OpenRTM-aist IDL file + util + OpenRTP: + RTSystemEditor: + rtc-template:
deb packages are provided for installing the C++ version of OpenRTM-aist in Ubuntu and Debian. The supported distribution versions are listed on the download page. The corresponding versions may change or be discontinued without notice.
There are two methods of installation available:
Download the installation script pkg_install_ubuntu.sh or pkg_install_debian.sh provided by openrtm.org from the download page and execute it with root privilege. This script installs required packages sequentially with apt-get.
By specifying the option, you can now install the package according to your purpose, It is also recommended for those who try to install OpenRTM-aist for the first time and compile the source.
Please check here for detailed installation method and kind of option package.
A package repository that can be used from apt-get is provided by openrtm.org. This is not included in the default package repositories, so it must be entered into the apt-get settings manually. Append one of the following lines to the file /etc/apt/sources.list:
deb http://www.openrtm.org/pub/Linux/ubuntu/ (code name) main
deb http://www.openrtm.org/pub/Linux/debian/ (code name) main
"(code name)" should be the release name of your distribution version, as shown below.
Version | code name |
Debian GNU Linux | |
Debian 7.0 | wheezy |
Debian 8.0 | jessie |
Debian 9.0 | stretch |
Ubuntu | |
Ubuntu 14.04 LTS | trusty |
Ubuntu 16.04 LTS | xenial |
Ubuntu 16.10 | yakkety |
Ubuntu 17.04 | zesty |
Ubuntun past / current version / codename can be checked from https://wiki.ubuntu.com/Releases.
Follow the procedure given below to install using apt-get. Answer the questions that are presented appropriately using "y".
# apt-get update # apt-get install gcc g++ make uuid-dev # apt-get install libomniorb4 libomniorb4-dev omniidl4 omniorb4-nameserver # apt-get install python-support (Only needed for Debian 3.1 Sarge) # apt-get install openrtm-aist openrtm-aist-doc openrtm-aist-dev openrtm-aist-example
To maintain an installed version of OpenRTM-aist at the currently-installed version, append the following lines to the file "/etc/apt/preferences" (this example illustrates holding at version 1.0):
Package: OpenRTM-aist Pin: version 1.0.*
For more details, see http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.html#s-pin.
Launchpad is a we application and web site ( https://launchpad.net/ ) for open source software development which is developed and managed by Canonical Ltd. PPA (Private Package Archive) is an Ubuntu package repository in Launchpad sites, and you can publish your packages on there.
We also provide OpenRTM-aist packages for Ubuntu in PPA, and it is freely available. In case you want to publish your RTC on PPA, you can include OpenRTM-aist PPA packages as dependency in your RTC package. Installation of your RTC package would be completed with PPA's OpenRTM-aist packages. This is advantages of using OpenRTM-aist package in PPA.
Installation of PPA's OpenRTM-aist packages are the following.
Installation of PPA's OpenRTM-aist packages is much easier than above mentioned way. At first, please add package repository of OpenRTM-aist at PPA. Repository name is openrtm/stable.
$ sudo add-apt-repository ppa:openrtm/stable
Update package database.
$ sudo aptitude update
Please install packages. OpenRTM-aist packages are consists of openrtm-aist (run-time library), openrtm-aist-dev (header for development), openrtm-aist-doc (documentation) and openrtm-aist-example (example RTCs).
$ sudo aptitude install openrtm-aist1.1 openrtm-aist1.1-dev openrtm-aist1.1-example
That's it.
OpenRTM-aist's PPA repository structure is the following.
Repository name | Description |
ppa:openrtm/stable | Basic repository. Normally users install these pacakges. Naming rule is openrtm-aist[-]{dev,doc,example}: The newest packages openrtm-aistX.Y[-]{dev,doc,example}: Minor version packages. |
ppa:openrtm/unstable | Unstable packages. RC-versions, beta versions and so on. Naming rule is openrtm-aistX.Y.ZrcW[-]{dev,doc,example}: revision/RC-versioned packages. |
To confirm the installation succeeded, use the following command.
$ dpkg -l 'openrtm*' Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii openrtm-aist 1.0.0-0 OpenRTM-aist runtime libraries and configura ii openrtm-aist-d 1.0.0-0 Header files for OpenRTM-aist development pn openrtm-aist-d <none> (no description available) ii openrtm-aist-e 1.0.0-0 OpenRTM-aist examples
The packages contain the following files.
openrtm-aist contains the run-time libraries and commands.
/usr/bin/rtcd /usr/bin/rtm-naming
/usr/share/doc/openrtm-aist/changelog.gz /usr/share/doc/openrtm-aist/README.Debian /usr/share/doc/openrtm-aist/README /usr/share/doc/openrtm-aist/README.jp /usr/share/doc/openrtm-aist/NEWS.gz /usr/share/doc/openrtm-aist/copyright /usr/share/doc/openrtm-aist/changelog.Debian.gz
/usr/etc/rtc.conf.sample
/usr/lib/libRTC-X.X.X.so.X.X.X /usr/lib/libRTC.a /usr/lib/libRTC.la /usr/lib/libRTC.so /usr/lib/libRTC-X.X.X.so.X
openrtm-aist-dev contains the commands and headers necessary for development with OpenRTM-aist.
/usr/bin/rtc-template /usr/bin/rtm-config /usr/bin/rtm-skelwrapper
/usr/share/doc/openrtm-aist-dev/changelog.gz /usr/share/doc/openrtm-aist-dev/copyright /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
/usr/include/rtm/DefaultPeriodicTask.h /usr/include/rtm/OutPortPullConnector.h ... /usr/include/rtm/ExecutionContextBase.h /usr/include/rtm/Manager.h /usr/include/coil/OS.h /usr/include/coil/UUID.h ... /usr/include/coil/Properties.h
/usr/lib/OpenRTM-aist/py_helper/cxx_svc_impl.py /usr/lib/OpenRTM-aist/py_helper/profile_gen.py ... /usr/lib/OpenRTM-aist/py_helper/gen_base.py /usr/lib/OpenRTM-aist/py_helper/yat.py /usr/lib/pkgconfig/libcoil.pc /usr/lib/pkgconfig/libRTM.pc
openrtm-aist-example contains standalone and loadable sample RT Components and their source files.
/usr/share/OpenRTM-aist/examples/ConsoleOutComp /usr/share/OpenRTM-aist/examples/ConsoleInComp ...
/usr/share/OpenRTM-aist/examples/src/Composite/README.Motor /usr/share/OpenRTM-aist/examples/src/Composite/Makefile.Sensor /usr/share/OpenRTM-aist/examples/src/Composite/Motor.cpp ... /usr/share/OpenRTM-aist/examples/src/SimpleService/Makefile.MyServiceProvider /usr/share/OpenRTM-aist/examples/src/SimpleService/rtc.conf
/usr/share/OpenRTM-aist/examples/rtcs/MyServiceConsumer.so.0.0.0 /usr/share/OpenRTM-aist/examples/rtcs/SeqIn.so.0.0.0 ... /usr/share/OpenRTM-aist/examples/rtcs/ConfigSample.so.0.0.0 /usr/share/OpenRTM-aist/examples/rtcs/ConsoleOut.so.0.0.0
/usr/share/doc/openrtm-aist-example/changelog.gz /usr/share/doc/openrtm-aist-example/copyright /usr/share/doc/openrtm-aist-example/changelog.Debian.gz
openrtm-aist-doc contains the class reference and IDL interfaces reference.
/usr/share/OpenRTM-aist/docs/ClassReference/html/ConnectorBase_8h-source.html /usr/share/OpenRTM-aist/docs/ClassReference/html/RTC_8h.html ... /usr/share/OpenRTM-aist/docs/ClassReference-en/html/ConnectorBase_8h-source.html /usr/share/OpenRTM-aist/docs/ClassReference-en/html/RTC_8h.html ... /usr/share/OpenRTM-aist/docs/ClassReference-en/html/FactoryInit_8h-source.html
/usr/share/OpenRTM-aist/docs/IDLReference/html/BasicDataType_8idl-source.html ... /usr/share/OpenRTM-aist/docs/IDLReference-en/html/BasicDataType_8idl-source.html /usr/share/OpenRTM-aist/docs/IDLReference-en/html/structRTC_1_1FsmProfile.html ... /usr/share/OpenRTM-aist/docs/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html
/usr/share/doc/openrtm-aist-doc/changelog.gz /usr/share/doc/openrtm-aist-doc/copyright /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz
(G)For C ++ version OpenRTM - aist is provided for Raspbian armhf for Raspberry Pi, deb package for armel. It takes about 3 hours when self-compiling with Raspberry Pi, so we recommend that you use this when packages are available. Please understand beforehand that correspondence to Raspbian and its version may be changed or suspended without notice.
At the moment the version of Raspbian that package is available
です。
Download the image from the following page and write it to the SD memory card. SD memory card should be more than 4 GB . For details on how to write to the SD memory card, refer to RPi SD Card Setup.
On Windows, write using Win32DiskImager etc. In Linux and Mac OS, write using dd.
$ sudo dd if = / dev / <device file of SD memory card> of = <image file downloaded / decompressed> bs = 1 m
The installation method of OpenRTM - aist can roughly be divided into the following two installation methods.
Please install according to your preference.
It is very convenient because it installs all necessary packages for developing and executing OpenRTM-aist. It is also recommended for those who try installing OpenRTM-aist for the first time or compiling the source. Please check here for detailed installation method and kind of option package.
openrtm.org provides a package repository available from apt-get I will. However, since it is not included in the default package repository, It is necessary to change the setting of apt-get.
Add the following line to /etc/apt/sources.list.
> su # vi /etc/apt/sources.list # Edit "sources.list"
deb http://www.openrtm.org/pub/Linux/raspbian/ (code name) main
version | code name |
Debian GNU Linux | |
Debian 7.0 | wheezy |
The past / current version / codename of Raspbian can be checked from http://www.raspberrypi.org/downloads.
Follow the procedure below to install. On the way, you will be asked for some responses, so please complete with y .
# apt-get update # apt-get install gcc g++ make uuid-dev # apt-get install libomniorb4-1 libomniorb4-dev omniidl omniorb-nameserver # apt-get install openrtm-aist openrtm-aist-doc openrtm-aist-dev openrtm-aist-example
If you want to keep installed version of OpenRTM - aist as it is, edit /etc/apt/preferences and add the following line. (In this example, version is fixed to 1.1 series.)
Package: OpenRTM-aist Pin: version 1.1.*
For details, refer to the following. http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.ja.html#s-pin
Confirm the installation.
pi@raspberrypi ~ $ dpkg -l 'openrtm*' Request = (U)unknown / (I)installation / (R)delete / (P)complete delete / (H)hold (H)Semi-install / (W)Wait for trigger / (T)Trigger on hold (N)No / (I)Installed / (C)Setting / (U)Expanding / | / Error? = (Blank)No / (R)Required reinstallation (status, error capital letter = abnormal) || / Name Version Architecture description +++-=====================-===============-===============-======================= ii openrtm-aist 1.1.0-0 armhf OpenRTM-aist, RT-Middleware distributed by AIST ii openrtm-aist-dev 1.1.0-0 armhf OpenRTM-aist headers for development ii openrtm-aist-doc 1.1.0-0 all Documentation for openrtm-aist ii openrtm-aist-example 1.1.0-0 armhf OpenRTM-aist examples
The contents of each package are as follows.
openrtm - aist contains a runtime library and commands.
/usr/bin/rtcd /usr/bin/rtm-naming
/usr/share/doc/openrtm-aist/changelog.gz /usr/share/doc/openrtm-aist/README.Debian /usr/share/doc/openrtm-aist/README /usr/share/doc/openrtm-aist/README.jp /usr/share/doc/openrtm-aist/NEWS.gz /usr/share/doc/openrtm-aist/copyright /usr/share/doc/openrtm-aist/changelog.Debian.gz
/usr/etc/rtc.conf.sample
/usr/lib/libRTC.la /usr/lib/libRTC.so /usr/lib/libRTC-X.X.X.so.X /usr/lib/libRTC-X.X.X.so
Openrtm - aist - dev contains commands and headers necessary for development.
/usr/bin/rtc-template /usr/bin/rtm-config /usr/bin/rtm-skelwrapper
/usr/share/doc/openrtm-aist-dev/changelog.gz /usr/share/doc/openrtm-aist-dev/copyright /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
/usr/include/openrtm-1.1/rtm/DefaultPeriodicTask.h /usr/include/openrtm-1.1/rtm/OutPortPullConnector.h Omission /usr/include/openrtm-1.1/rtm/ExecutionContextBase.h /usr/include/openrtm-1.1/rtm/Manager.h /usr/include/coil-1.1/coil/OS.h /usr/include/coil-1.1/coil/UUID.h Omission /usr/include/coil-1.1/coil/Properties.h
/usr/lib/openrtm-1.1/py_helper/cxx_svc_impl.py /usr/lib/openrtm-1.1/py_helper/profile_gen.py Omission /usr/lib/openrtm-1.1/py_helper/gen_base.py /usr/lib/openrtm-1.1/py_helper/yat.py /usr/lib/pkgconfig/libcoil.pc /usr/lib/pkgconfig/libRTM.pc
openrtm-aist-example contains samples of standalone RTC, loadable RTC and source of sample RTC.
/usr/share/openrtm-1.1/examples/ConsoleOutComp /usr/share/openrtm-1.1/examples/ConsoleInComp Omission
/usr/share/openrtm-1.1/examples/src/Composite/README.Motor /usr/share/openrtm-1.1/examples/src/Composite/Makefile.Sensor /usr/share/openrtm-1.1/examples/src/Composite/Motor.cpp Omission /usr/share/openrtm-1.1/examples/src/SimpleService/Makefile.MyServiceProvider /usr/share/openrtm-1.1/examples/src/SimpleService/rtc.conf
/usr/share/openrtm-1.1/example/rtc/MyServiceConsumer.so.0.0.0 /usr/share/openrtm-1.1/example/rtc/SeqIn.so.0.0.0 Omission /usr/share/openrtm-1.1/example/rtc/ConfigSample.so.0.0.0 /usr/share/openrtm-1.1/example/rtc/ConsoleOut.so.0.0.0
/usr/share/doc/openrtm-aist-example/changelog.gz /usr/share/doc/openrtm-aist-example/copyright /usr/share/doc/openrtm-aist-example/changelog.Debian.gz
openrtm-aist-doc contains Japanese and English class reference, IDL interface definition reference.
/usr/share/openrtm-1.1/doc/ClassReference/html/ConnectorBase_8h_source.html /usr/share/openrtm-1.1/doc/ClassReference/html/RTC_8h.html Omission /usr/share/openrtm-1.1/doc/ClassReference/html/FactoryInit_8h_source.html
/usr/share/openrtm-1.1/doc/IDLReference/html/BasicDataType_8idl_source.html Omission /usr/share/openrtm-1.1/doc/IDLReference/html/interfaceOpenRTM_1_1InPortCdr-members.html
/usr/share/openrtm-1.1/doc/ClassReference-en/html/ConnectorBase_8h_source.html /usr/share/openrtm-1.1/doc/ClassReference-en/html/RTC_8h.html Omission /usr/share/openrtm-1.1/doc/ClassReference-en/html/FactoryInit_8h-source.html
/usr/share/openrtm-1.1/doc/IDLReference-en/html/BasicDataType_8idl_source.html /usr/share/openrtm-1.1/doc/IDLReference-en/html/structRTC_1_1FsmProfile.html Omission /usr/share/openrtm-1.1/doc/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html
/usr/share/doc/openrtm-aist-doc/changelog.gz /usr/share/doc/openrtm-aist-doc/copyright /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz
OpenRTM-aist version 1.2.0 or later, batch installation script is scheduled to be supported.
There are two types of installation methods in Fedora Linux roughly divided as follows.Download the installation script pkg_install_fedora.sh provided by openrtm.org from the download page and execute it with root privilege. This script installs required packages sequentially with yum.
It is very convenient because it installs all necessary packages for developing and executing OpenRTM-aist. By specifying the option, it is now possible to install the package according to the purpose, so it is also recommended for those who try to install OpenRTM - aist for the first time and compile the source.
However, since all the packages related to OpenRTM - aist are installed, there is a possibility that even unnecessary ones are installed. People who understand in detail should install it manually.
For detailed options and types of packages, please check here
A package repository that can be used from yum is provided by openrtm.org. This is not included in the default package repositories, so it must be entered into the yum settings manually. Enter the following lines to the file /etc/yum.repos.d/openrtm.repo:
[openrtm] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://www.openrtm.org/pub/Linux/Fedora/releases/$releasever/Fedora/$basearch/os/Packages enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEYCENTER:''/etc/yum.repos.d/openrtm.repo''
Follow the procedure given below to install using yum. Answer the questions that are presented appropriately using "y".
> su # yum install gcc-c++ python # yum install omniORB omniORB-devel omniORB-doc omniORB-servers omniORB-utils omniORB-bootscripts # yum install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-doc OpenRTM-aist-example
To confirm the installation succeeded, use the following command.
# rpm -q OpenRTM-aist OpenRTM-aist-1.0.0-0.fcX
The packages contain the following files.
openrtm-aist contains the run-time libraries and commands.
/etc/rtc.conf.sample
/usr/lib/libRTC-1.0.0.so.0 /usr/lib/libRTC-1.0.0.so.0.0.4 /usr/lib/libRTC.a /usr/lib/libRTC.la /usr/lib/libRTC.so /usr/lib/libcoil.a /usr/lib/libcoil.la /usr/lib/libcoil.so /usr/lib/libcoil.so.0 /usr/lib/libcoil.so.0.0.0
openrtm-aist-dev contains headers and commands for developing with OpenRTM-aist.
/usr/bin/coil-config /usr/bin/rtc-template /usr/bin/rtcd /usr/bin/rtcprof /usr/bin/rtm-config /usr/bin/rtm-naming /usr/bin/rtm-skelwrapper
/usr/include/coil/Allocator.h /usr/include/coil/Async.h ... /usr/include/coil/memory.h /usr/include/coil/stringutil.h ... /usr/include/rtm/BufferBase.h /usr/include/rtm/BufferStatus.h ... /usr/include/rtm/Typename.h /usr/include/rtm/config_rtc.h
/usr/include/rtm/idl/BasicDataType.hh /usr/include/rtm/idl/BasicDataType.idl ... /usr/include/rtm/idl/device_interfaces/RFID.idl /usr/include/rtm/idl/device_interfaces/Ranger.idl
/usr/lib/OpenRTM-aist/py_helper/README_gen.py /usr/lib/OpenRTM-aist/py_helper/README_gen.pyc ... /usr/lib/OpenRTM-aist/py_helper/yat.pyc /usr/lib/OpenRTM-aist/py_helper/yat.pyo /usr/lib/pkgconfig/libcoil.pc /usr/lib/pkgconfig/openrtm-aist.pc
openrtm-aist-doc contains the class reference and IDL interfaces reference.
/usr/share/OpenRTM-aist/docs/ClassReference/html/ConnectorBase_8h-source.html /usr/share/OpenRTM-aist/docs/ClassReference/html/RTC_8h.html ... /usr/share/OpenRTM-aist/docs/ClassReference-en/html/ConnectorBase_8h-source.html /usr/share/OpenRTM-aist/docs/ClassReference-en/html/RTC_8h.html ... /usr/share/OpenRTM-aist/docs/ClassReference-en/html/FactoryInit_8h-source.html
/usr/share/OpenRTM-aist/docs/IDLReference/html/BasicDataType_8idl-source.html ... /usr/share/OpenRTM-aist/docs/IDLReference-en/html/BasicDataType_8idl-source.html /usr/share/OpenRTM-aist/docs/IDLReference-en/html/structRTC_1_1FsmProfile.html ... /usr/share/OpenRTM-aist/docs/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html
openrtm-aist-example contains standalone and loadable sample RT Components and their source files.
/usr/share/OpenRTM-aist/examples/ConsoleOutComp /usr/share/OpenRTM-aist/examples/ConsoleInComp ...
/usr/share/OpenRTM-aist/examples/src/Composite/README.Motor /usr/share/OpenRTM-aist/examples/src/Composite/Makefile.Sensor /usr/share/OpenRTM-aist/examples/src/Composite/Motor.cpp ... /usr/share/OpenRTM-aist/examples/src/SimpleService/Makefile.MyServiceProvider /usr/share/OpenRTM-aist/examples/src/SimpleService/rtc.conf
/usr/share/OpenRTM-aist/examples/rtcs/MyServiceConsumer.so.0.0.0 /usr/share/OpenRTM-aist/examples/rtcs/SeqIn.so.0.0.0 ... /usr/share/OpenRTM-aist/examples/rtcs/ConfigSample.so.0.0.0 /usr/share/OpenRTM-aist/examples/rtcs/ConsoleOut.so.0.0.0
There are two methods of installation available:
Download the installation script pkg_install [version number] _vine.sh provided by openrtm.org from the download page and execute it with root privilege. This script installs required packages sequentially with apt-get.
It is very convenient because it installs all necessary packages for developing and executing OpenRTM-aist. It is recommended for those who try installing OpenRTM-aist for the first time. However, since all the packages related to OpenRTM - aist are installed, there is a possibility that even unnecessary ones are installed. If you know more, you should install it manually. Below is the installation procedure using the batch installation script.
> wget [pkg_installXXX.sh download URL] > su # sh pkg_install1XX_vine.sh // Questions will be asked during the procedure. Answer "y" or "Y" when appropriate.
A package repository that can be used from apt-get is provided by openrtm.org. This is not included in the default package repositories, so it must be entered into the apt-get settings manually. Append one of the following lines to the file /etc/apt/sources.list:
rpm http://www.openrtm.org/pub/Linux/Vine/apt x.x/$(ARCH) main
where "x.x" is the Vine version number, e.g. 5.0 for Vine 5.0.
rpm http://www.openrtm.org/pub/Linux/Vine/apt 5.0/$(ARCH) main
After editing sources.list, follow the procedure given below to install.
> su # apt-get update # apt-get install gcc-c++ python # apt-get install omniORB omniORB-devel omniORB-servers omniORB-doc # apt-get install e2fsprogs e2fsprogs-devel # apt-get install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-doc OpenRTM-aist-example
Answer "y" or "Y" to questions as appopriate.
To confirm the installation succeeded, use the following command.
# rpm -q OpenRTM-aist OpenRTM-aist-1.0.0-0.vl50
openrtm-aistcontains the run-time libraries and commands.
/etc/rtc.conf.sample
/usr/lib/libRTC-1.0.0.so.0 /usr/lib/libRTC-1.0.0.so.0.0.4 /usr/lib/libRTC.a /usr/lib/libRTC.la /usr/lib/libRTC.so /usr/lib/libcoil.a /usr/lib/libcoil.la /usr/lib/libcoil.so /usr/lib/libcoil.so.0 /usr/lib/libcoil.so.0.0.0
openrtm-aist-dev contains the commands and headers necessary for development with OpenRTM-aist.
/usr/bin/coil-config /usr/bin/rtc-template /usr/bin/rtcd /usr/bin/rtcprof /usr/bin/rtm-config /usr/bin/rtm-naming /usr/bin/rtm-skelwrapper
/usr/include/coil/Allocator.h /usr/include/coil/Async.h ... /usr/include/coil/memory.h /usr/include/coil/stringutil.h ... /usr/include/rtm/BufferBase.h /usr/include/rtm/BufferStatus.h ... /usr/include/rtm/Typename.h /usr/include/rtm/config_rtc.h
/usr/include/rtm/idl/BasicDataType.hh /usr/include/rtm/idl/BasicDataType.idl ... /usr/include/rtm/idl/device_interfaces/RFID.idl /usr/include/rtm/idl/device_interfaces/Ranger.idl
/usr/lib/OpenRTM-aist/py_helper/README_gen.py /usr/lib/OpenRTM-aist/py_helper/README_gen.pyc ... /usr/lib/OpenRTM-aist/py_helper/yat.pyc /usr/lib/OpenRTM-aist/py_helper/yat.pyo /usr/lib/pkgconfig/libcoil.pc /usr/lib/pkgconfig/openrtm-aist.pc
openrtm-aist-doc contains the class reference and IDL interfaces reference.
/usr/share/OpenRTM-aist/docs/ClassReference/html/ConnectorBase_8h-source.html /usr/share/OpenRTM-aist/docs/ClassReference/html/RTC_8h.html ... /usr/share/OpenRTM-aist/docs/ClassReference-en/html/ConnectorBase_8h-source.html /usr/share/OpenRTM-aist/docs/ClassReference-en/html/RTC_8h.html ... /usr/share/OpenRTM-aist/docs/ClassReference-en/html/FactoryInit_8h-source.html
/usr/share/OpenRTM-aist/docs/IDLReference/html/BasicDataType_8idl-source.html ... /usr/share/OpenRTM-aist/docs/IDLReference-en/html/BasicDataType_8idl-source.html /usr/share/OpenRTM-aist/docs/IDLReference-en/html/structRTC_1_1FsmProfile.html ... /usr/share/OpenRTM-aist/docs/IDLReference-en/html/interfaceOpenRTM_1_1InPortCdr-members.html
openrtm-aist-example contains standalone and loadable sample RT Components and their source files.
/usr/share/OpenRTM-aist/examples/ConsoleOutComp /usr/share/OpenRTM-aist/examples/ConsoleInComp ...
/usr/share/OpenRTM-aist/examples/src/Composite/README.Motor /usr/share/OpenRTM-aist/examples/src/Composite/Makefile.Sensor /usr/share/OpenRTM-aist/examples/src/Composite/Motor.cpp ... /usr/share/OpenRTM-aist/examples/src/SimpleService/Makefile.MyServiceProvider /usr/share/OpenRTM-aist/examples/src/SimpleService/rtc.conf
/usr/share/OpenRTM-aist/examples/rtcs/MyServiceConsumer.so.0.0.0 /usr/share/OpenRTM-aist/examples/rtcs/SeqIn.so.0.0.0 ... /usr/share/OpenRTM-aist/examples/rtcs/ConfigSample.so.0.0.0 /usr/share/OpenRTM-aist/examples/rtcs/ConsoleOut.so.0.0.0
MacPorts is a system to allow the installation and management of open-source software packages in Mac OS X. It is based on the ports system of FreeBSD. A recipe known as a "portfile" describes how to automatically compile and install a package, including downloading source and applying patches. There is also another system for Mac OS X, known as Fink.
To use MacPorts, Apple's Xcode and an X11 environment must be installed. These can be installed from the Mac OS X install CD. See the MacPorts webpage for details.
MacPorts uses dmg package files. You must select the dmg file that matches your operating system version. The dmg files can be downloaded from the MacPorts website:
A script to download the portfile and automatically build and install it is available:
In an appropriate directory, execute the script as below. You will be asked for a superuser password during the install.
$ sh port_install100_mac.sh sh port_install.sh file:///Users/n-ando/ports/ Getting Portfile from: http://www.openrtm.org/pub/MacOSX/macports//ports.tgz --2010-07-27 23:21:06-- http://www.openrtm.org/pub/MacOSX/macports//ports.tgz Resolving www.openrtm.org (www.openrtm.org)... 182.48.18.55 Connecting to www.openrtm.org (www.openrtm.org)|182.48.18.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3600 (3.5K) [application/x-gzip] Saving to: `ports.tgz.1' 100%[================================================>] 3,600 --.-K/s in 0.002s 2010-07-27 23:21:06 (2.02 MB/s) - `ports.tgz' saved [3600/3600] x ports/ x ports/devel/ x ports/PortIndex x ports/PortIndex.quick x ports/devel/OpenRTM-aist/ x ports/devel/OpenRTM-aist/Portfile x ports/devel/OpenRTM-aist/files/ x ports/devel/OpenRTM-aist/Portfile~ x ports/devel/OpenRTM-aist/files/patch-src-lib-rtm-InPortConsumer.h x ports/devel/OpenRTM-aist/files/patch-src-lib-coil-posix-coil-UUID.cpp x ports/devel/OpenRTM-aist/files/patch-src-lib-coil-posix-coil-Routing.cpp x ports/devel/OpenRTM-aist/files/patch-examples-SimpleService-Makefile.in x ports/devel/OpenRTM-aist/files/patch-examples-Composite-Makefile.in x ports/devel/OpenRTM-aist/files/patch-examples-ConfigSample-Makefile.in x ports/devel/OpenRTM-aist/files/patch-examples-SeqIO-Makefile.in x ports/devel/OpenRTM-aist/files/patch-examples-SimpleIO-Makefile.in x ports/devel/OpenRTM-aist/files/patch-src-lib-rtm-idl-Makefile.in Creating port index in /Users/n-ando/ports Adding port devel/OpenRTM-aist Total number of ports parsed: 1 Ports successfully parsed: 1 Ports failed: 0 Up-to-date ports skipped: 0 Adding local ports repository entry to sources.conf # A password may be required for sudo. Input your password. Password: Installing OpemRTM-aist...it may take several minutes. # A password may be required for sudo. Input your password. ---> Computing dependencies for OpenRTM-aist ---> Fetching OpenRTM-aist ---> Verifying checksum(s) for OpenRTM-aist ---> Extracting OpenRTM-aist ---> Applying patches to OpenRTM-aist ---> Configuring OpenRTM-aist ---> Building OpenRTM-aist ---> Staging OpenRTM-aist into destroot ---> Installing OpenRTM-aist @1.0.0_2 ---> Activating OpenRTM-aist @1.0.0_2 ---> Cleaning OpenRTM-aist Cleaning local ports repository entry in sources.conf # A password may be required for sudo. Input your password. Password: $
ports will automatically resolve any dependencies required by the package. This may take some time.
The details of the install are contained in the port_installXXX_mac.sh script. It roughly follows this procedure:
In MacPorts, it searches for the package specified to be installed with the port command from the specific place described in the settings file sources.conf, downloads the source according to Porrtfile and builds.
QNX (Queen Nex, or Queenix) is a commercial real-time OS mainly sold for embedded systems. It is a POSIX-compliant UNIX type OS, which is a built-in OS but is a process type operating system similar to general UNIX. The kernel is a microkernel, various functions are modularized as a server, and only the necessary server is operated according to the purpose, so it is possible to configure a compact system. Since it can operate on various CPUs such as x86 family, MIPS, PowerPC, SH-4, ARM, StrongARM, XScale, and furthermore it has obtained certification in accordance with functional safety standard IEC 61508, safety related It can also be used for systems.
QNX also has a free licensing program for educational institutions, which can be used relatively easily at universities and others.
pkgsrc is one of package management systems for UNIX, derived from FreeBSD's port collection and is now used as a package management system of NetBSD. pkgsrc itself does not depend on a specific OS, it can be used as a file system for NetBSD, Solaris, Linux, Mac OS X, FreeBSD, OpenBSD, IRIX, BSD / OS, AIX, Interix, DragonFlyBSD, OSF / 1, HP-UX, QNX, It can be used on various Unix OS such as Haiku, MINIX 3, Illumos.
There is no package management system in QNX, and pkgsrc for QNX is maintained in the QNX user forum.
After installing the OS, check out pkgsrc from the repository, and put it on the system. (To access the repository, QNX forum account is required.) Since checking out from the svn repository is very time-consuming, you can also download and use pkgsrc_HEAD 650_r396.tgz, but beforehand the latest in pkgsrc We recommend checking the version.
# cd /usr/ # svn checkout --username <username> http://community.qnx.com/svn/repos/pkgsrc/HEAD_650/pkgsrc # (cd pkgsrc/bootstrap && ./bootstrap) # (cd pkgsrc/misc/figlet && bmake install) # pkg_info # cd /usr # tar xvzf <somewhere>/pkgsrc_HEAD650_r396.tgz # (cd pkgsrc/bootstrap && ./bootstrap) # (cd pkgsrc/misc/figlet && bmake install) # pkg_info
pkgsrc has a binary package installation and a method of building from the source and installing it. Not all packages are provided in binary, so you will need to build from sources as needed.
OpenRTM-aist provides a binary package at the following URL of openrtm.org.
OmniORB necessary for OpenRTM-aist is also provided by openrtm.org because there is no binary package in the above distribution site.
The installation method is as follows.
# export PKG_PATH=http://www.openrtm.org/pub/pkgsrc/packages/QNX/i386/6.5.0/All # pkg_add -v OpenRTM-aist-1.1.0-RELESE Replace 1.1.0-RELESE with the version to be installed as appropriate. Running install with PRE-INSTALL for omniORB-4.1.6. bin/omkdepend bin/omnicpp : Installation of omniORB begins man/man1/omniidl.1 Running install with PRE-INSTALL for omniORB-4.1.6. Package omniORB-4.1.6 registered in /var/db/pkg/omniORB-4.1.6 : Installation of OpenRTM-aist begins lib/libcoil.so lib/libcoil.la lib/libcoil-1.1.0.so : share/openrtm-1.1/doc/IDLReference-en/html/unionSDOPackage_1_1Numeric.html etc/rtc.conf.sample Package OpenRTM-aist-1.1.0-RELEASE registered in /var/db/pkg/OpenRTM-aist-1.1.0-RELEASE # # pkg_info|grep OpenRTM OpenRTM-aist-1.1.0-RELEASE RT-Middleware and OMG RTC framework
Installation is now complete.
A sample program is installed under /usr/pkg/share/openrtm-1.1/examples. We will use OpenRTM - aist to verify the operation of OpenRTM-aist.
First, start the name server.
# rtm-naming or # cp /usr/pkg/share/examples/rc.d/omninames /etc/rc.d/ # chmod 755 /etc/rc.d/omninames # /etc/rc.d/omninames
In the latter, we copy the omninames startup script to the rc directory (/etc/rc.d) and then start it. This script can also stop the name server.
# /etc/rc.d/omninames stop
First, let's start the ConsoleOut component. In the example below, we create a tmp directory in the home directory, copy it to it, and then execute it.
# cd ; mkdir tmp ; cd tmp # cp -r /usr/pkg/share/openrtm-1.1/example . # cd example # ./ConsoleOutComp succeed. ================================================= Component Profile ------------------------------------------------- InstanceID: ConsoleOut0 Implementation: ConsoleOut Description: Console output component : ================================================= Port0 (name): ConsoleOut0.in ------------------------------------------------- - properties - port.port_type: DataInPort dataport.data_type: IDL:RTC/TimedLong:1.0 dataport.subscription_type: Any dataport.dataflow_type: push,pull dataport.interface_type: corba_cdr -------------------------------------------------
# cd ; cd tmp/example # ./ConsoleInComp Creating a component: "ConsoleIn"....succeed. ================================================= Component Profile ------------------------------------------------- InstanceID: ConsoleIn0 Implementation: ConsoleIn Description: Console input component : ================================================= Port0 (name): ConsoleIn0.out ------------------------------------------------- - properties - port.port_type: DataOutPort dataport.data_type: IDL:RTC/TimedLong:1.0 dataport.subscription_type: flush,new,periodic dataport.dataflow_type: push,pull dataport.interface_type: corba_cdr ------------------------------------------------- : Please input number:
Now, start RTSystemEditor on another PC, connect and activate the port. If you type a number at the ConsoleIn prompt, it will be output from ConsoleOut.
VxWorks is a real-time OS for embedded systems developed by Wind River. It is the most popular OS in large-scale commercial real-time OS, and it is used in relatively large equipment. It can operate on various CPU such as x86, PowerPC, SH - 4, ARM, MIPS, SPARC etc. It conforms to DO - 178B standard and IEC 61508 standard, and it is used in a wide range of fields such as aerospace and space.
Wind River Workbench is an integrated development environment that executes VxWorks compilation, debugging, etc. by GUI.
This page explains the procedure for introducing OpenRTM-aist (C++ version) to VxWorks.
The host PC is supposed to be Ubuntu 14.04 (or 16.04). We plan to deal with Windows in the future.
Install the following software on the host PC.
Please purchase from Wind River and install it.
Since Workbench operates in 32 bit environment, please install i386 version libc6 package for 64 bit Ubuntu.
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
Please install with the following command.
sudo apt-get install tclsh cmake subversion
It is necessary only when using ORBexpress.
Build is executed by command line operation. From Workbench, right click on Project Explore and launch the command line shell from Open Development Shell .
To build on normal Ubuntu terminal, please set environment variables by the following procedure. If you use the command line shell launched in Workbench, you have already set environment variables, so please proceed to the next step.
Please set the following environment variables.
Variable name | Example |
WIND_HOME | /home/openrtm/WindRiver |
WIND_USR | ${WIND_HOME}/vxworks-6.9/target/usr |
WRVX_COMPBASE | ${WIND_HOME}/components |
WIND_BASE | ${WIND_HOME}/vxworks-6.9 |
WIND_HOST_TYPE | x86-linux2 |
WIND_GNU_BASE | ${WIND_HOME}/gnu/4.3.3-vxworks-6.9/${WIND_HOST_TYPE} |
WIND_FOUNDATION_PATH | ${WIND_HOME}/workbench-3.3/foundation |
Please change WIND_HOME appropriately according to the directory where Workbench is installed.
export WIND_HOME=/home/openrtm/WindRiver export WIND_USR=${WIND_HOME}/vxworks-6.9/target/usr export WRVX_COMPBASE=${WIND_HOME}/components export WIND_BASE=${WIND_HOME}/vxworks-6.9 export WIND_HOST_TYPE=x86-linux2 export WIND_GNU_BASE=${WIND_HOME}/gnu/4.3.3-vxworks-6.9/${WIND_HOST_TYPE} export WIND_FOUNDATION_PATH=${WIND_HOME}/workbench-3.3/foundation
Please set the shared library path to execute the compiler.
export LD_LIBRARY_PATH=${WIND_HOME}/lmapi-5.0/x86-linux2/lib:${WIND_FOUNDATION_PATH}/${WIND_HOST_TYPE}/lib:${LD_LIBRARY_PATH}
When omniORB is used, it is necessary to build omniORB source code. If omniORB is not used, proceed to the next step.
Please obtain omniORB source code with the following command.
wget https://jaist.dl.sourceforge.net/project/omniorb/omniORB/omniORB-4.2.2/omniORB-4.2.2.tar.bz2 tar xf omniORB-4.2.2.tar.bz2
Apply fix patch for VxWorks 6.6, 6.9.
wget http://svn.openrtm.org/omniORB/trunk/vxworks/omniORB-4.2.2-vxworks.patch patch -p1 -d omniORB-4.2.2 < omniORB-4.2.2-vxworks.patch
The IDL compiler etc must operate on Ubuntu. Please build omniORB for Ubuntu by the following procedure.
cd omniORB-4.2.2 mkdir build cd build ../configure make cd ..
Build omniORB for VxWorks.
sed -i '1s/^/platform = ${VXWORKS_PLATFORM}\n/' config/config.mk cd src make export
However, please be sure to enter VXWORKS_PLATFORM according to your operating environment.
VXWORKS_PLATFORM | CPU | VxWorks version | Implementation method |
powerpc_vxWorks_kernel_6.6 | PowerPC | 6.6 | Kernel module |
powerpc_vxWorks_RTP_6.6 | PowerPC | 6.6 | RTP |
powerpc_vxWorks_kernel_6.9 | PowerPC | 6.9 | kernel module |
powerpc_vxWorks_RTP_6.9 | PowerPC | 6.9 | RTP |
simlinux_vxWorks_kernel_6.6 | simulator on Linux | 6.6 | kernel module |
simpentium_vxWorks_RTP_6.6 | Simulator on Linux | 6.6 | RTP |
simlinux_vxWorks_kernel_6.9 | simulator on Linux | 6.9 | kernel module |
simpentium_vxWorks_RTP_6.9 | Simulator on Linux | 6.9 | RTP |
In the case of building a kernel module, name servers etc. are not generated. When starting name servers with VxWorks, please also build RTP.
Please obtain the source code with the following command.
svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/
Start compiling with the following command.
cd OpenRTM-aist/ python convert_character_code.py ./ vxworks euc_jp mkdir src/lib/coil/common/coil cp src/lib/coil/common/*.* src/lib/coil/common/coil/ cp build/yat.py utils/rtm-skelwrapper/ mkdir build_vxworks cd build_vxworks/ cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DVX_VERSION=${VX_VERSION} -DORB_ROOT=${ORB_ROOT} -DOMNI_VERSION=${OMNI_VERSION} -DCORBA=${CORBA} -DVX_CPU_FAMILY=${ARCH} .. make
Please specify the following for CMake options.
TOoolCHAIN_FILE | '../Toolchain-vxworks6.6-Linux.cmake' 'for VxWorks 6.6 (kernel module, PowerPC),' '../ Toolchain-vxworks6.cmake' ' |
VX_VERSION | vxworks - 6.6 or vxworks - 6.9 |
ORB_ROOT | omniORB directory (eg /home/openrtm/omniORB-4.2.2) |
VX_CPU_FAMILY | ppc (PowerPC), simlinux (kernel module, simulator), simpentium (RTP, simulator) |
OMNI_VERSION | omniORB version (40, 41, 42), unnecessary if omniORB is not used |
CORBA | omniORB or ORBexpress |
For RTP, you need to add -DRTP = ON to the cmake command.
When the build is completed, please confirm the operation by the following procedure.
This page explains the procedure to check the operation of the RTC kernel module built for VxWorks using the Workbench simulator.
Follow the procedure below to set up the simulator.
After selecting the simulator with Workbench Remote System, press connect 'xxxxx' button to connect with the simulator.
In the Workbench Remote System, right click on the simulator and select Download → VxWorks Kernel Task.
From the Launch Context tab of the Download Configurations window, select the simulator for the system to be downloaded.
Set the module to download from the Downloads tab. Click the [Add] button.
After setting the path of rtcd.out in the Add window, click the [OK] button. rtcd.out is generated under utils/rtcd in the OpenRTM-aist build directory.
Click the [Download] button to start the download.
Please also download the RTC kernel module to be started in the same procedure.
Start the name server on the VxWorks simulator. Since the name server starts up as a real time process (RTP), right click on the simulator from Remote Systems and click Run → VxWorks Real Time Process.
Please make various settings from the Launch Context tab of the Run Configurations window.
omniNames.out is generated in RTP build directory of omniORB. Because it is not generated in the build directory of the kernel module, omniORB should also build about RTP. If libc.so.1 does not exist in the path of the shared library, you will get an error, please copy it from the Workbench to the omniNames.out directory.
cp $WIND_BASE/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1 /home/openrtm/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9/
If you can not build RTP, do not start the name server in VxWorks, but register RTC on the name server on Ubuntu.
Arguments is the port number of the name server.
After setting is completed, click the [Run] button to start the name server.
In the Workbench Remote System, right click on the simulator and select Run → VxWorks Kernel Task.
Perform various settings in the Run Configurations window. Please enter rtcd_main for Entry Point. Please set "-o manager.shutdown_on_nortcs:NO - o manager.shutdown_auto: NO" to Arguments. Press the [Run] button to start the manager.
To start Ubuntu side name server, add - o corba.nameservers:192.168.200.254 to Arguments. Please check the IP address of Ubuntu's tap 0 interface as appropriate.
It starts up in the same procedure as starting manager. For Entry Point, specify a function to start RTC.
You do not need to enter anything in Arguments.
Please check if RTC started in RT system editor started by Ubuntu. To the VxWorks name server, click the name service connection button, specify the IP address in the displayed window and click OK to connect.
Please check if the RTC started is registered.
Procedures such as RTC connection, activation, etc. are the same as when checking operation with Ubuntu.
After connecting the simulator, you can enter commands from the Target Console window.
The operation of RTC can be confirmed with the following command. Please change the path of Workbench, omniORB, openRTM-aist accordingly.
cd "/home/openrtm/openrtm-build/omniORB/omniORB_69_rtp_sim/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9" cp "/home/openrtm/WindRiver/vxworks-6.9/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1","./" rtpSp "./omniNames.out -start 2809" cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_kernel_sim/OpenRTM-aist/build_vxworks/utils/rtcd" ld<rtcd.out cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_kernel_sim/OpenRTM-aist/build_vxworks/examples/SimpleIO" ld<ConsoleIn.out taskSpawn "rtcd_main",100,67108864,1000000,rtcd_main,"-o","manager.shutdown_on_nortcs:NO","-o","manager.shutdown_auto:NO" taskSpawn "consolein_main",100,0,1000000,consolein_main
This page explains the settings of the VxWorks simulator running on Wind River Workbench.
Workbench The default simulator is the linux_diab simulator. Since OpenRTM-aist uses the gnu compiler, you need to use the linux_gnu simulator.
Please press the [Define a connection to remote system] button and add the simulator.
Select Wind River VxWorks 6.x Simulator Connection on the Select Remote System Type in the New Connection window and proceed to the next.
In VxWorks Boot parameters, specify linux_gnu simulator in Custom simulator.
After going to Network Options, set the network to Full Network and set the IP address. Click the [Finish] button to create a simulator.
Launch the network interface for the simulator. Execute the following command.
sudo ${WIND_BASE}/host/${WIND_HOST_TYPE}/bin/vxsimnetd
A network interface called tap0 will be added.
To use the name server started on Ubuntu side, restart the name server with the following command.
sudo rtm-naming
This page explains the procedure for checking the operation of RTC real-time process (RTP) built for VxWorks using the Workbench simulator.
Follow the procedure below to set up the simulator.
After selecting the simulator with Workbench Remote System, press connect 'xxxxx' button to connect with the simulator.
Start the name server on the VxWorks simulator. Since the name server starts up as a real time process (RTP), right click on the simulator from Remote Systems and click Run → VxWorks Real Time Process.
Please make various settings from the Launch Context tab of the Run Configurations window.
omniNames.out is generated in the omniORB build directory. If libc.so. does not exist in the path of the shared library, you will get an error, please copy it from the Workbench to the omniNames.out directory.
cp $WIND_BASE/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1 /home/openrtm/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9/
If you can not build RTP, do not start the name server in VxWorks, but register RTC on the name server on Ubuntu.
Arguments is the port number of the name server.
After setting is completed, click the [Run] button to start the name server.
Run rtcd.vxe in the same procedure as starting name server. rtcd.vxe is generated under utils / rtcd in the OpenRTM-aist build directory.
You do not need to enter anything in Arguments, but add - o corba.nameservers:192.168.200.254 to Arguments to start Ubuntu side name server. Please check the IP address of Ubuntu's tap 0 interface as appropriate.
Please check if RTC started in RT system editor started by Ubuntu. To the VxWorks name server, click the name service connection button, specify the IP address in the displayed window and click OK to connect.
Please check if the RTC started is registered.
Procedures such as RTC connection, activation, etc. are the same as when checking operation with Ubuntu.
After connecting the simulator, you can enter commands from the Target Console window.
The operation of RTC can be confirmed with the following command. Please change the path of Workbench, omniORB, openRTM-aist accordingly.
cd "/home/openrtm/openrtm-build/omniORB/omniORB_69_rtp_sim/omniORB-4.2.2/bin/simpentium_vxWorks_RTP_6.9" cp "/home/openrtm/WindRiver/vxworks-6.9/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1","./" rtpSp "./omniNames.out -start 2809" cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_rtp_sim/OpenRTM-aist/build_vxworks/examples/SimpleIO" cp "/home/openrtm/WindRiver/vxworks-6.9/target/lib/usr/root/SIMPENTIUMgnu/bin/libc.so.1","./" rtpSp "./ConsoleOutComp.vxe"
This page explains the procedure to check the operation of the RTC kernel module built for VxWorks on the PowerPC board.
Please generate a connection between Workbench and VxWorks as follows.
After selecting the target server with Workbench Remote System, press connect 'xxxxx' button to connect to VxWorks.
In the Workbench Remote System, right-click the target server and select Download → VxWorks Kernel Task.
From the Launch Context tab of the Download Configurations window, select the target server for the system to be downloaded.
Set the module to download from the Downloads tab. Click the [Add] button.
After setting the path of rtcd.out in the Add window, click the [OK] button. rtcd.out is generated under utils/rtcd in the OpenRTM-aist build directory.
Click the [Download] button to start the download.
Please also download the RTC kernel module to be started in the same procedure.
In the Workbench Remote System, right-click the target server and select Run → VxWorks Kernel Task.
Perform various settings in the Run Configurations window. Please enter rtcd_main for Entry Point. - o manager.shutdown_on_nortcs:NO - o manager.shutdown_auto: NO - o corba.nameservers: 172.30.1.1 for Arguments. Since name servers do not start on VxWorks, register RTC on the name server on Ubuntu. When using ORBexpress please also add endpoint setting corba.endpoints: 172.30.1.20: 1234. Press the [Run] button to start the manager. Change the IP address as appropriate.
It starts up in the same procedure as starting manager. For Entry Point, specify a function to start RTC.
You do not need to enter anything in Arguments. Please check if RTC started in RT system editor started by Ubuntu.
Please check if the RTC started is registered.
Procedures such as RTC connection, activation, etc. are the same as when checking operation with Ubuntu.
However, when using ORBexpress, you need to set the endian to big when connecting data port connectors.
You can enter commands from the WTX Console window after connecting to the target server.
The operation of RTC can be confirmed with the following command. Change the path of Workbench, omniORB, openRTM-aist, IP address of Ubuntu accordingly.
cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_kernel_sim/OpenRTM-aist/build_vxworks/utils/rtcd" ld<rtcd.out cd "/home/openrtm/openrtm-build/OpenRTM/OpenRTM_69_kernel_sim/OpenRTM-aist/build_vxworks/examples/SimpleIO" ld<ConsoleIn.out taskSpawn "rtcd_main",100,67108864,1000000,rtcd_main,"-o","manager.shutdown_on_nortcs:NO","-o","manager.shutdown_auto:NO","-o","corba.nameservers:172.30.1.1" taskSpawn "consolein_main",100,0,1000000,consolein_main
If you want to use the OpenRTM-aist itself after adding it in Windows, you can build the source package for Windows yourself. This section explains how to acquire the source from the download page or repository and build OpenRTM-aist on Windows.
Various knowledge on Windows such as setting up environment and building installer is required for build of OpenRTM-aist. Reader for this document is programmers who have basic knowledge for software development and building installer on Windows.
The source package for Windows is distributed separately from the source package for Linux. Although the actual source code is the same, the Windows source package contains the following:
As shown in the diagram, the original source code is contained in a Subversion repository. From this, on Linux the following packages are created:
To use source obtained from the repository on Windows, you must first make a source package in Linux.
The following environments and tools are necessary:
In order to build the binary for Windows, the Visual C++ development environment is necessary. Currently supported Visual C++ is Visual C++ 2008, 2010, 2012, 2012, 2013.
Visual C ++ Express Edition is a C++ development environment provided free of charge by Microsoft and MFC and ATL can not be used, but you can develop Windows applications (Win32 applications). Even in component development using OpenRTM-aist, components that do not use MFC, ATL, etc. can be developed only with Visual C++ Express Edition. Please download and install the ISO image from the link below, obtain the Microsoft Live ID and obtain the license (free).
To build OpenRTM-aist, you need a library of omniORB 4.1.7 (as of March 31, 31/31). Prepared binary packages provided by openrtm.org are provided at the following link. Please download the appropriate one according to the environment and deploy it to the appropriate place (assuming C: \ distribution \ omniORB in the following).
The OMNI_ROOT environment variable must be set. The directory structure of the location this points to must be as follows.
<OMNI_ROOT> + bin | + scripts | + x86_win32 + idl | + COS + include | + COS | + omniORB4 | | + internal | + omnithread | + omniVms + lib | + python | | + omniidl | | + omniidl_be | | + cxx | | + dynskel | | + header | | + impl | | + skel | + x86_win32
1.1.1-RELEASE version does not maintain installer creation code included in source.
WiX (Windows Installer XML) is an open source project aiming to create Windows msi installer with command line based tools.
OpenRTM-aist creates an installer for Windows using WiX. Please install WiX beforehand when creating up to the installer.
Python 2.7 is required because some Python scripts are used during the build. Please obtain the latest version from the following site and install it.
When launching the installer, there are some parts to select in the wizard, You can install by default.
Download an appropriate source package, named similar to OpenRTM-aist-X.X.X-win32.zip, and extract it to a suitable location.
The top of build.bat has the following part. Please check whether these are set to appropriate values respectively.
For the setting of ARCH and VC_VERSION, see the description in this batch file.
set RTM_ROOT=%~dp0 set COIL_ROOT=%RTM_ROOT%\coil set OMNI_ROOT=C:\distribution\omniORB-4.1.7-win64-vc12 if not DEFINED ARCH set ARCH=x86_64 if not DEFINED VC_VERSION set VC_VERSION=12 if not DEFINED PYTHON_DIR set PYTHON_DIR=C:\Python27_x64
Once your environment has been set up as above, you can build OpenRTM-aist. Execute autobuild_vc8.bat (for VC2005) or autobuild_vc9.bat (for VC2008), and the build should automatically start.
You can also build from a solution file. Open the OpenRTM-aist_vc8.sln (for VC2005) or OpenRTM-aist_vc9.sln (for VC2008) and build it.
Once everything has built successfully, install it using the following procedure.
This completes the installation of OpenRTM-aist.
You can compile from the source if you want to change the UNIX environment, package, cross development environment, OpenRTM-aist main source and use it. This section explains how to obtain the source from the download page or repository and build OpenRTM-aist on Linux.
The C++ edition of OpenRTM-aist uses autotools for its build environment, allowing it to be built in a variety of environments.
OpenRTM-aist has been tested and confirmed to work on the following distributions.
It should be possible to build and use OpenRTM-aist on other versions of Linux/UNIX.
OpenRTM-aist-1.0.0 depends on the folloowing environmental tools and libraries.
Install these dependencies according to their individual documentations. Installing them into standard locations such as /usr and /usr/local will make compiling OpenRTM-aist easier.
Download the OpenRTM-aist source code from the download page.
Extract the source code from the OpenRTM-aist-X.X.X.tar.gz file into a suitable location.
$ tar xvzf OpenRTM-aist-X.X.X.tar.gz $ cd OpenRTM-aist-X.X.X
OpenRTM-aist uses autotools for building. As with any autotools package, use autoconf and automake to prepare for building.
$ ./configure --prefix=/usr [options]
The usable options are listed in the help:
$ ./configure --help
Confirm that configure has completed successfully. Once it has, issue the make command.
$ make
When the make command has completed without any errors, the header files, libraries, utilities, etc. can be installed.
$ su # make install
This completes the build and installation procedure.
The OpenRTM-aist source code is stored in a publicly-available Subversion repository. This source code can be checked out and built.
The source in the repository does not include a configure script or any Makefile.in files. These must be generated using the following tools.
Since tools such as etc are necessary, it installs in advance. Ubuntu and others can use these bulk installation script mentioned above when installing these necessary tools.
By running pkg_install_ubuntu.sh in Ubuntu as follows, you can install tools for developers who develop the OpenRTM-aist body (including automake etc.) at once.
# pkg_install_ubuntu.sh -l c++ -c
Checkout the source from the repository as below.
$ svn co http://www.openrtp.jp/openrtm/svn/OpenRTM-aist/trunk/OpenRTM-aist A OpenRTM-aist/include A OpenRTM-aist/include/rtm A OpenRTM-aist/AUTHORS A OpenRTM-aist/src A OpenRTM-aist/src/ext A OpenRTM-aist/src/ext/artlinux ... A OpenRTM-aist/examples/Templates/PanTilt.xml A OpenRTM-aist/INSTALL.jp U OpenRTM-aist Checked out revision 2009.
Enter the directory created during the checkout procedure.
$ ls OpenRTM-aist $ cd OpenRTM-aist $ ls AUTHORS Makefile.am acinclude.m4 examples/ win32/ COPYING.LIB NEWS build/ include/ COPYRIGHT* README configure.ac openrtm.m4 ChangeLog README.jp docs/ src/ INSTALL.jp TUTORIAL.jp etc/ utils/
There is a shell script named "autogen" in the build directory. Execute this script. Execution may take several minutes.
$ls build/autogen build/autogen* $ sh build/autogen Setting up environment to generate configure script. ------------------------------------------------------------ Searching Autotools ------------------------------------------------------------ autoconf was found in /usr/local/bin/autoconf. autoheader was found in /usr/local/bin/autoheader. autom4te was found in /usr/local/bin/autom4te. autoreconf was found in /usr/local/bin/autoreconf. autoupdate was found in /usr/local/bin/autoupdates. automake was found in /usr/local/bin/automake-1.9. aclocal was found in /usr/local/bin/aclocal-1.9. libtool was found in /usr/local/bin/libtool. libtoolize was found in /usr/local/bin/libtoolize. ------------------------------------------------------------ Searching libtool.m4 ------------------------------------------------------------ file was found: /usr/local/share/aclocal/libtool.m4 Copying libtool.m4 from /usr/local/share/aclocal/libtool.m4 ------------------------------------------------------------ Doing autoreconf ------------------------------------------------------------ autoreconf-2.62: Entering directory `.' autoreconf-2.62: configure.ac: not using Gettext autoreconf-2.62: running: /usr/local/bin/aclocal-1.9 --force autoreconf-2.62: configure.ac: tracing autoreconf-2.62: configure.ac: adding subdirectory src/lib/coil to autoreconf autoreconf-2.62: Entering directory `src/lib/coil' autoreconf-2.62: running: /usr/local/bin/libtoolize --copy --force You should update your `aclocal.m4' by running aclocal. autoreconf-2.62: running: /usr/local/bin/autoconf --force autoreconf-2.62: running: /usr/local/bin/autoheader --force autoreconf-2.62: running: /usr/local/bin/automake-1.9 --add-missing --copy --force-missing configure.ac: installing `./install-sh' configure.ac: installing `./missing' ace/coil/Makefile.am: installing `./depcomp' Makefile.am: installing `./INSTALL' autoreconf-2.62: Leaving directory `src/lib/coil' You should update your `aclocal.m4' by running aclocal. configure.ac: installing `./install-sh' configure.ac: installing `./missing' examples/AutoTest/Makefile.am: installing `./depcomp' Makefile.am: installing `./INSTALL' autoreconf-2.62: Leaving directory `.' done $
The autogen script will create a configure script in the OpenRTM-aist directory. Execute this script and run the make command to build the source.
$ ls -l configure -rwxr-xr-x 1 n-ando n-ando 812893 Jul 6 05:56 configure* $ ./configure --prefix=/usr $ make
The "make dist" command can be used to create a distributable source package, such as those provided by openrtm.org. This includes making a source package suitable for building on Windows. In order to make a distribution package, some additional tools are necessary, such as doxygen, latex, and qkc.
$ make dist (Wait several minutes.) $ ls -l OpenRTM-aist* -rw-r--r-- 1 n-ando n-ando 9266837 Apr 7 09:53 OpenRTM-aist-1.0.0-win32.zip -rw-r--r-- 1 n-ando n-ando 4831099 Apr 7 09:53 OpenRTM-aist-1.0.0.tar.bz2 -rw-r--r-- 1 n-ando n-ando 7258796 Apr 7 09:53 OpenRTM-aist-1.0.0.tar.gz $
The following source packages are created:
(G)When developing an RTC with multithread (/MT) and multithreading debug (/MTd) specified in the runtime library in Visual Studio, if the executable file of /MT, /MTd links with another DLL and processes it, heap It may end abnormally due to destruction or the like. If you want to specify multithreading (/MT) and multithreading debugging (/MTd), create a static library of OpenRTM-aist as follows.
Please obtain the OpenRTM-aist source code from the following.
Please download to appropriate place after downloading. In this example, place it in the following position.
C:\openrtm_work\OpenRTM-aist
Please obtain binary package of omniORB from the following. Please select the one appropriate for the version of Visual Studio.
After downloading, please create and expand a folder named omniORB in the OpenRTM-aist folder.
C:\openrtm_work\OpenRTM-aist\omniORB
/MT, /MTd Edits various files for building.
Edit the following batch file called build.bat.
C:\openrtm_work\OpenRTM-aist\build.bat
Please change the following places as appropriate depending on the environment.
set RTM_ROOT=%~dp0 set COIL_ROOT=%RTM_ROOT%\coil set OMNI_ROOT=%RTM_ROOT%\omniORB if not DEFINED ARCH set ARCH=x86 if not DEFINED VC_VERSION set VC_VERSION=12 if not DEFINED PYTHON_DIR set PYTHON_DIR=c:\python27 if not DEFINED RTM_VERSION set RTM_VERSION=1.1.2 if not DEFINED OMNI_VERSION set OMNI_VERSION=4.1.7 if not DEFINED OMNITHREAD_VERSION set OMNITHREAD_VERSION=3.4
Edit the following libRTC_vc12.vcxproj, libcoil_vc12.vcxproj, libRTCSkel_vc12.vcxproj project file. Please edit libRTC_vc11.vcxproj, libcoil_vc11.vcxproj, libRTCSkel_vc11.vcxproj etc. according to the version of Visual Studio.
First, change the runtime library. Change MultiThreadedDebugDLL to MultiThreadedDebug as shown below. Whether editing is different depending on whether it is 32 bit or 64 bit, there is no problem even if both are changed.
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
Likewise, change MultiThreadedDLL to MultiThreaded.
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
Then change it to generate a static library instead of a dynamic library. Since libRTCSkel_vc12.vcxproj originally generates a static library, there is no need to change it.
Please change DynamicLibrary to StaticLibrary.
<ConfigurationType>DynamicLibrary</ConfigurationType>
<ConfigurationType>StaticLibrary</ConfigurationType>
Also change the output file name accordingly.
<OutputFile>$(OutDir)\RTC$(rtm_dllver).dll</OutputFile>
<OutputFile>$(OutDir)\RTC$(rtm_dllver).lib</OutputFile>
<OutputFile>$(OutDir)\RTC$(rtm_dllver)d.dll</OutputFile>
<OutputFile>$(OutDir)\RTC$(rtm_dllver)d.lib</OutputFile>
<OutputFile>$(OutDir)\coil$(coil_dllver).dll</OutputFile>
<OutputFile>$(OutDir)\coil$(coil_dllver).dll</OutputFile>
<OutputFile>$(OutDir)\coil$(coil_dllver)d.dll</OutputFile>
<OutputFile>$(OutDir)\coil$(coil_dllver)d.dll</OutputFile>
Also change the command to copy the file.
<Command>copy "$(OutDir)\\$(TargetName).lib" "$(SolutionDir)bin\\RTC$(rtm_dllver)d.lib"
copy "$(OutDir)\\RTC$(rtm_dllver)d.dll" "$(SolutionDir)bin\\"
</Command>
<Command>copy "$(OutDir)\\$(TargetName).lib" "$(SolutionDir)bin\\RTC$(rtm_dllver)d.lib"
</Command>
<Command>copy "$(OutDir)\\$(TargetName).lib" "$(SolutionDir)bin\\RTC$(rtm_dllver).lib"
copy "$(OutDir)\\RTC$(rtm_dllver).dll" "$(SolutionDir)bin\\"
</Command>
<Command>copy "$(OutDir)\\$(TargetName).lib" "$(SolutionDir)bin\\RTC$(rtm_dllver).lib"
;</Command>
<Command>copy "$(OutDir)\\$(TargetName).lib" "$(SolutionDir)bin\\coil$(coil_dllver)d.lib"
copy "$(OutDir)\\coil$(coil_dllver)d.dll" "$(SolutionDir)bin\\"
</Command>
<Command>copy "$(OutDir)\\$(TargetName).lib" "$(SolutionDir)bin\\coil$(coil_dllver)d.lib"
</Command>
<Command>copy "$(OutDir)\\$(TargetName).lib" "$(SolutionDir)bin\\coil$(coil_dllver).lib"
copy "$(OutDir)\\coil$(coil_dllver).dll" "$(SolutionDir)bin\\"
</Command>
<Command>copy "$(OutDir)\\$(TargetName).lib" "$(SolutionDir)bin\\coil$(coil_dllver).lib"
</Command>
Because errors occur in OpenRTM-aist-1.1.2 and omniORB-4.1.7, please add RTM_OMNIORB_41 to PreprocessorDefinitions of libRTC_vc12.vcxproj. It is unnecessary in OpenRTM-aist-1.2.0 or omniORB-4.2.1.
<PreprocessorDefinitions>LIBRARY_EXPORTS;WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>LIBRARY_EXPORTS;WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE;RTM_OMNIORB_41;%(PreprocessorDefinitions)</PreprocessorDefinitions>
Change omniORB's linked library. Please edit the following file called rtm_config.props.
C:\openrtm_work\OpenRTM-aist\rtm_config.props
Change the following parts.
<omni_lib>omniORB$(omni_dllver)_rt.lib;omniDynamic$(omni_dllver)_rt.lib;omnithread$(omnithread_dllver)_rt.lib</omni_lib> <omni_libd>omniORB$(omni_dllver)_rtd.lib;omniDynamic$(omni_dllver)_rtd.lib;omnithread$(omnithread_dllver)_rtd.lib</omni_libd>
<omni_lib>omniORB4.lib;omniDynamic4.lib;omnithread.lib</omni_lib> <omni_libd>omniORB4d.lib;omniDynamic4d.lib;omnithreadd.lib</omni_libd>
When you start build.bat, it starts the build. When finished, check that the following files are generated in the bin folder.
A lot of errors are generated by compiling sample components, rtcd, rtcprof, but ignore it as it is not necessary if you build your own RTC.
Because the library name to be linked by omniORB has changed and it is necessary to add a library to be newly linked, edit the following file.
set(OMNIORB_LIBRARIES optimized;omniORB417_rt; optimized;omniDynamic417_rt; optimized;omnithread34_rt; debug;omniORB417_rtd; debug;omniDynamic417_rtd; debug;omnithread34_rtd)
set(OMNIORB_LIBRARIES optimized;omniORB4; optimized;omniDynamic4; optimized;omnithread; debug;omniORB4d; debug;omniDynamic4d; debug;omnithreadd)
set(OPENRTM_LIBRARIES optimized;RTC112_vc12; optimized;coil112_vc12; optimized;omniORB4_rt; optimized;omniDynamic4_rt; optimized;omnithread4_rt; optimized;advapi32; optimized;ws2_32; optimized;mswsock; debug;RTC112_vc12d; debug;coil112_vc12d; debug;omniORB4_rtd; debug;omniDynamic4_rtd; debug;omnithread4_rtd; debug;advapi32; debug;ws2_32; debug;mswsock)
set(OPENRTM_LIBRARIES optimized;RTC112_vc12; optimized;coil112_vc12; optimized;omniORB4; optimized;omniDynamic4; optimized;omnithread; optimized;advapi32; optimized;ws2_32; optimized;mswsock; optimized;libRTCSkel; optimized;rpcrt4; debug;RTC112_vc12d; debug;coil112_vc12d; debug;omniORB4d; debug;omniDynamic4d; debug;omnithreadd; debug;advapi32; debug;ws2_32; debug;mswsock; debug;libRTCSkeld; debug;rpcrt4)
Please note that this file will be overwritten if you build OpenRTM - aist again.
Next, set /MT, /MTd and edit the RTC file you want to build. Edit CMakeLists.txt in the src folder. By adding the following description, set the runtime library to /MT, /MTd.
set(CMAKE_CXX_FLAGS_RELEASE "/MT") set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
Next, set the OpenRTM-aist and omniORB to be used for the build to the one that was built previously and build RTC. From the command prompt, enter the following command to set the variable.
set RTM_ROOT=C:\openrtm_work\OpenRTM-aist set VC_VERSION=12 set OMNI_ROOT=C:\openrtm_work\OpenRTM-aist\omniORB set OpenRTM_DIR=C:\openrtm_work\OpenRTM-aist\cmake
Please change accordingly depending on the version of Visual Studio etc. Finally it is done by building with the following command.
cmake . cmake --build . --config Debug
If the /MT executable file is linked with some sort of DLL, the following error message may be displayed.
Expression: _pFirstBlock == pHead
Or releasing the memory allocated on the executable file side on the DLL side.
__declspec(dllexport) void deleteData(char* v) { delete v; }
void deleteData(char* v); int main(void) { char *v = new char[1000]; deleteData(v); }
This seems that when /MT, /MTd is specified in the runtime library, heap destruction may occur because the heap area is created separately in the executable file and the DLL. However, it does not occur reliably, for example if you put a print statement before executing the deleteData function, it will not happen why. In this case, since it falls at a place not related at all afterwards, it becomes very difficult to identify the cause.
On the other hand, if /MD, /MDd is specified in the runtime library, this problem does not occur because the heap area is shared.
Basically, you should use /MD, /MDd for the runtime library because it is impossible to check and fix where abnormality occurs in OpenRTM-aist or omniORB.
If you really want to set /MT, /MTd in the runtime library, create a static library using the above method.
Although RTC specified by /MT, /MTd can be operated by the above method, omniORB and coil are linked to a library named advapi32.dll, and advapi32.dll is /MD's runtime library ( MSVCRT), we do not know what will happen here.
Please install TortoiseSVN from the following.
Please obtain the OpenRTM-aist source code from the following.
Please obtain the already built omniORB from the following.
Move to the checked out folder (OpenRTM - aist) and execute the following command.
python convert_character_code.py ./ win32 utf_8_sig mkdir src\lib\coil\common\coil move src\lib\coil\common\*.* src\lib\coil\common\coil copy build\yat.py utils\rtm-skelwrapper mkdir build_omni cd build_omni cmake -DOMNI_VERSION=42 -DOMNI_MINOR=2 -DOMNITHREAD_VERSION=40 -DORB_ROOT=C:/workspace/omniORB-4.2.2-win64-vc15 -DCORBA=omniORB -G "Visual Studio 15 2017 Win64" .. cmake --build . --config Release
Variable name | Meaning | Value that can be set |
OMNI_VERSION | omniORB version | 40, 41, 42 |
ORB_ROOT | OmniORB expanded path | |
CORBA | CORBA library | omniORB |
Please install TortoiseSVN from the following.
Please obtain the OpenRTM-aist source code from the following.
Please download ACE + TAO.zip from below.
Build ACE and TAO in Visual Studio. Change ace/config-win32.h in the folder where ACE + TAO.zip has been expanded to ace/config.h. Next, open the ACE_wrappers_vc12.sln (or ACE_wrappers_vc14.sln, ACE_wrappers_vs2017.sln) in Visual Studio and build it with the following environment variables set.
Move to the checked out folder (OpenRTM-aist) and execute the following command.
python convert_character_code.py ./ win32 utf_8_sig mkdir src\lib\coil\common\coil move src\lib\coil\common\*.* src\lib\coil\common\coil copy build\yat.py utils\rtm-skelwrapper mkdir build_tao cd build_tao cmake -DORB_ROOT=C:/workspace/ACE_wrappers -DCORBA=TAO -G "Visual Studio 15 2017 Win64" .. set PATH=%PATH%;C:\workspace\ACE_wrappers\lib; cmake --build . --config Release
Built-in binary files for omniORB's Windows 10 IoT are currently not distributed, so you need to build them yourself. Cygwin installation is required.
Get source code of omniORB.
Please expand omniORB - 4.2.2.tar.bz2 to a suitable place.
First apply the patch for ARM + Windows. Please obtain a patch from below.
Execute the following command on Cygwin.
patch -p1 -d omniORB-4.2.2 < omniORB-4.2.2-windows-iot.patch
Edit mk/platforms/arm_win32_vs_14.mk in the folder where you expanded omniORB-4.2.2.tar.bz2. If the version of Visual Studio you use is different, please select the one that is appropriate. Specify the Python directory as follows.
PYTHON = /cygdrive/c/Python27/python
Next, edit config/config.mk. Specify the corresponding mk file as follows. Please correspond as appropriate when the version of Visual Studio is different.
platform = arm_win32_vs_14
For cross compiling, prepare executable files such as idl compiler which can operate in the development environment. Please obtain the binary of omniORB which was built for x86 from the following.
Please copy the contents of bin / x86_win32 in the folder where you unzipped the zip file to bin/x86_win32 in the folder where you expanded omniORB - 4.2.2.tar.bz2.
Move to the directory where omniORB-4.2.2.tar.bz2 is expanded and execute the following command.
set PATH=C:\cygwin64\bin;%PATH%; call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_arm cd src make export
This will create an executable file in bin / ARM_win32 and a library in lib / ARM_win32. For vcvarsall.bat, please use the version that is appropriate for the version of Visual Studio. For Visual Studio 2017 it will be C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat.
The build of OpenRTM-aist is almost the same as usual. Please specify the compiler for ARM as cmake's option Visual Studio 14 2015 ARM.
python convert_character_code.py ./ win32 utf_8_sig mkdir src\lib\coil\common\coil move src\lib\coil\common\*.* src\lib\coil\common\coil copy build\yat.py utils\rtm-skelwrapper mkdir build_omni cd build_omni cmake -DOMNI_VERSION=42 -DOMNI_MINOR=2 -DOMNITHREAD_VERSION=40 -DORB_ROOT=C:/workspace/omniORB-4.2.2 -DCORBA=omniORB -G "Visual Studio 14 2015 ARM" .. cmake --build . --config Release
You can not build it unless ARM compiler is installed in Visual Studio. If you do not have an ARM compiler installed, please start Visual Studio Installer and install Visual Studio C ++ Compiler and Library for ARM.
svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/ cd OpenRTM-aist/ mkdir src/lib/coil/common/coil cp src/lib/coil/common/*.* src/lib/coil/common/coil/ cp build/yat.py utils/rtm-skelwrapper/ mkdir build_linux cd build_linux/ cmake -DOMNI_VERSION=41 -DCORBA=omniORB .. make
Variable name | Meaning | Value that can be set |
OMNI_VERSION | omniORB version | 40, 41, 42 |
CORBA | CORBA library | omniORB |
First of all build and install ACE + TAO with the following command.
sudo apt-get install gperf export ACE_ROOT=${PWD}/ACE_wrappers/build/linux export TAO_ROOT=${ACE_ROOT}/TAO export LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib export INSTALL_PREFIX=/home/openrtm/ace_install wget http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.4.5.tar.gz tar xf ACE+TAO-6.4.5.tar.gz cd ACE_wrappers mkdir -p build/linux ./bin/create_ace_build build/linux echo '#include "ace/config-linux.h"' > build/linux/ace/config.h echo 'include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU' > build/linux/include/makeinclude/platform_macros.GNU cd build/linux make make install cd TAO make make install
Build OpenRTM-aist with the following command.
svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/ cd OpenRTM-aist/ mkdir src/lib/coil/common/coil cp src/lib/coil/common/*.* src/lib/coil/common/coil/ cp build/yat.py utils/rtm-skelwrapper/ mkdir build_tao cd build_tao cmake -DORB_ROOT=$ACE_ROOT -DCORBA=TAO .. make
It is necessary to specify the home directory of Wind River Workbench in advance. Please set the directory where Wind River Workbench is installed to the variable WIND_HOME.
export WIND_HOME=/home/openrtm/WindRiver
It is necessary to build omniORB before building OpenRTM-aist.
Get source code of omniORB.
Execute the build with the following command.
wget https://jaist.dl.sourceforge.net/project/omniorb/omniORB/omniORB-4.2.2/omniORB-4.2.2.tar.bz2 tar xf omniORB-4.2.2.tar.bz2 wget http://svn.openrtm.org/omniORB/trunk/vxworks/omniORB-4.2.2-vxworks.patch patch -p1 -d omniORB-4.2.2 < omniORB-4.2.2-vxworks.patch cd omniORB-4.2.2 mkdir build cd build ../configure make cd .. sed -i '1s/^/platform = ${VXWORKS_PLATFORM}\n/' config/config.mk cd src make export
However, please be sure to enter VXWORKS_PLATFORM according to your operating environment.
VXWORKS_PLATFORM | CPU | VxWorks version | Implementation method |
powerpc_vxWorks_kernel_6.6 | PowerPC | 6.6 | Kernel module |
powerpc_vxWorks_RTP_6.6 | PowerPC | 6.6 | RTP |
powerpc_vxWorks_kernel_6.9 | PowerPC | 6.9 | kernel module |
powerpc_vxWorks_RTP_6.9 | PowerPC | 6.9 | RTP |
simlinux_vxWorks_kernel_6.6 | simulator on Linux | 6.6 | kernel module |
simpentium_vxWorks_RTP_6.6 | Simulator on Linux | 6.6 | RTP |
simlinux_vxWorks_kernel_6.9 | simulator on Linux | 6.9 | kernel module |
simpentium_vxWorks_RTP_6.9 | Simulator on Linux | 6.9 | RTP |
Please enter the following command.
svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/ cd OpenRTM-aist/ mkdir src/lib/coil/common/coil cp src/lib/coil/common/*.* src/lib/coil/common/coil/ cp build/yat.py utils/rtm-skelwrapper/ mkdir build_vxworks cd build_vxworks/ cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DVX_VERSION=${VX_VERSION} -DORB_ROOT=${ORB_ROOT} -DOMNI_VERSION=42 -DCORBA=omniORB -DVX_CPU_FAMILY=${ARCH} .. make
TOoolCHAIN_FILE | ../Toolchain-vxworks6.6-Linux.cmake, for VxWorks 6.6 (kernel module, PowerPC), ../ Toolchain-vxworks6.cmake |
VX_VERSION | vxworks-6.6 or vxworks-6.9 |
ORB_ROOT | omniORB directory (eg /home/openrtm/omniORB-4.2.2) |
VX_CPU_FAMILY | ppc (PowerPC), simlinux (kernel module, simulator), simpentium (RTP, simulator) |
For RTP, you need to add -DRTP=ON to the cmake command.
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DVX_VERSION=${VX_VERSION} -DORB_ROOT=${ORB_ROOT} -DOMNI_VERSION=42 -DCORBA=omniORB -DVX_CPU_FAMILY=${ARCH} -DRTP=ON .. make
Currently the corresponding environment is VxWorks 6.6, PowerPC only.
Please enter the following command.
svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/ cd OpenRTM-aist/ mkdir src/lib/coil/common/coil cp src/lib/coil/common/*.* src/lib/coil/common/coil/ cp build/yat.py utils/rtm-skelwrapper/ mkdir build_vxworks cd build_vxworks/ cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DORB_ROOT=${ORB_ROOT} -DCORBA=ORBexpress .. make
Please make the following settings for TOOLCHAIN_FILE, ORB_ROOT.
TOOLCHAIN_FILE | For kernel module../Toolchain-vxworks6.6-Linux.cmake, for RTP ../Toolchain-vxworks6.cmake |
ORB_ROOT | ORBexpress directory (ex:/home/openrtm/OIS/ORBexpress/RT_2.8.4_PATCH_KC1) |
Once the installer has completed successfully, OpenRTM-aist can be tested using the included sample components. These are typically stored in one of the following locations:
We will use the SimpleIO components to check that OpenRTM-aist has built and installed correctly.
This set contains the ConsoleInComp and ConsoleOutComp components. ConsoleInComp receives numbers as input from the console and sends them over an OutPort. ConsoleOutComp receives numbers via an InPort and prints them to the console. They use this very simple I/O to illustrate the basics of RT Components. Connect the OutPort of ConsoleInComp to the InPort of ConsoleOutComp and activate them.
The explanation below assumes OpenRTM-aist has been installed using the MSI package and the sample components are available in the Start Menu. Right-clicking on the OpenRTM-aist entry in the Start Menu and selecting "Open" will make accessing these more convenient.
First, a name server that the components can register on must be started. Start it using the shortcut in the Start Menu at [OpenRTM-aist 1.1] > [tools] > [Start Naming Service].
A console like the following will open.
Sometimes the name server console does not open. There are several possible causes for this, described below.
If using the MSI package provided by openrtm.org and selecting a custom install, it is possible to install OpenRTM-aist without installing omniORB. This is also a possibility if installing OpenRTM-aist manually. Check that omniORB is installed.
The "Start Naming Service" shortcut executes a batch file located at %RTM_ROOT%\bin\rtm-naming.bat to start the name server. It uses the OMNI_ROOT environment variable to locate the omniNames.exe executable. When installed using the standard installer, OpenRTM-aist will set this variable correctly. It may not, for some reason, have been set. If you installed OpenRTM-aist manually, it will not be set. Confirm that the variable has been set and is pointing to the correct location. From the control panel, select "System" >> "Advanced system settings" >> "Environment variables" and check the variable is in one of the lists.
If your user name contains two-byte characters, omniNames.exe may fail to start because it cannot create the log file folder. In this case, setting the TEMP environment variable to a location that does not include two-byte characters typically corrects the problem. For example, create a directory such as C:\temp and change TEMP to point to this folder. Then, edit rtm-naming.bat and add the following lines to the top.
set cosnames="omninames" set orb="omniORB" set port=%1 rem set OMNIORB_USEHOSTNAME=localhost set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32 set TEMP=C:\temp
In rare cases, the host name or address settings of the machine may be incorrect, causing the name server to start incorrectly. Informing omniNames.exe of the correct IP can resolve this problem. Set the OMNIORB_USEHOSTNAME environment variable in the following way (the example assumes the host's IP is 192.168.0.11):
set cosnames="omninames" set orb="omniORB" set port=%1 set OMNIORB_USEHOSTNAME=192.168.0.11 set PATH=%PATH%;%OMNI_ROOT%\bin\x86_win32
After starting the name server, start some suitable components. The OpenRTM-aist start menu folder contains a sub-folder called "Examples," which contains many components as shown below.
Start the ConsoleInComp.exe and ConsoleOutComp.exe executables, causing two consoles to open.
Sometimes the component consoles do not open. There are several possible causes for this, described below.
There may be an error in the rtc.conf file, preventing the components from starting. Confirm the contents of the rtc.conf file in the Start Menu folder, called "rtc.conf for examples." For example, the corba.endpoint/corba.endpoints settings should match the host address of the current computer.
Try creating a minimal rtc.conf, as below.
corba.nameservers: localhost
If the libraries are not correctly installed or the settings are incorrect, it can cause a runtime error. Try completely uninstalling OpenRTM-aist and re-installing it.
RTSystemEditor can be started from the Start Menu: "OpenRTM-aist" >> "C++" >> "Tools" >> "RTSystemEditor."
Connect to the name server and browse the registered components. You can connect to a name server using the Name Service View on the left side of RTSystemEditor. Click the plug icon to connect to a name server and enter its address (localhost or localhost:2809) in the dialog box. The default port for omniNames is 2809.
The name server running on localhost will appear in the Name Service View. Open the tree branches by clicking the arrows to find the two components you started.
Open a system editor using the new system editor button in the toolbar . The editor will open in the central pane. Drag the components from the name service view into the editor.
The OutPort of ConsoleIn0 is displayed on its right-hand side . Drag from this to the InPort on the ConsoleOut0 component to connect these data ports. The connection dialog will be displayed. Click "OK" to accept the defaults and connect the components.
A line indicating the connection will appear between the two ports. Next, click the "Activate All" button in the toolbar. This will activate all components in the editor at once. Active components will appear green.
After connecting the ports of ConsoleInComp and ConsoleOutComp, the terminal for ConsoleInComp will display:
Please input number:
Enter a number and press enter. This number should fit within a short int. Look at the ConsoleOutComp terminal. The number you entered should have been printed out. If this is the case, OpenRTM-aist is functioning correctly.
If the following message appears and RTSystemEditorRCP (RTSE) does not start up, you need to install the 32-bit Java operating environment (JRE) or Java development environment (JDK). If you select JRE for change installation, it will be installed. To uninstall or change the program in the control panel, right click on OpenRTM - aist and select "Change". For JRE selection on the installer screen, OpenRTM-aist in 10 minutes! page.
Other sample components are included in the installed OpenRTM-aist. They can all be used in the same way as the above example.
ConsoleInComp.exe | Receive numbers from the console and send them over an OutPort. Connect it to ConsoleOutComp.exe to use. |
ConsoleOutComp.exe | Receive numbers over an InPort and print them in a console. Connect it to ConsoleInComp.exe to use. |
SequenceInComp.exe | A component to output various simple data types (short, long, float, double, and sequences). Connect it to SequenceOutComp.exe to use. |
SequenceOutComp.exe | Display various simple data types received over an InPort. Connect it to SequenceInComp.exe to use. |
MyServiceProviderComp.exe | Provides a simple service, MyService. Connect it to MyServiceConsumerComp.exe to use. |
MyServiceConsumerComp.exe | Consumes a simple service, MyService. Connect it to MyServiceProviderComp.exe to use. |
ConfigSampleComp.exe | Sample demonstrating configuration parameters. Modify the configuration parameters in RTSystemEditor or with rtconf to see the effect. |
USBCameraAcquireComp.exe | Connect to a USB camera and acquire images, sending them over an OutPort. Use it with USBCameraMonitor.exe. |
USBCameraMonitor.exe | Receive images over an InPort and display them on screen. Use it with USBCameraAquire.exe. |
Once the installer has completed successfully, OpenRTM-aist can be tested using the included sample components. These are typically stored in one of the following locations:
If you built from source, then "make install" will place the components in a share/OpenRTM-aist/examples directory below your install prefix. You can also find them in the source tree, at OpenRTM-aist/examples/<sample component set>
We will use the SimpleIO components to check that OpenRTM-aist has built and installed correctly.
This set contains the ConsoleInComp and ConsoleOutComp components. ConsoleInComp receives numbers as input from the console and sends them over an OutPort. ConsoleOutComp receives numbers via an InPort and prints them to the console. They use this very simple I/O to illustrate the basics of RT Components. Connect the OutPort of ConsoleInComp to the InPort of ConsoleOutComp and activate them.
For the sake of simplicity, the explanation will be described assuming that the sample is under /usr/share/openrtm-1.1/example.
First, a name server that the components can register on must be started. If omniORB was installed as a package in Linux, it will often add the name server as a system service. You can check if this is the case on your system using the ps command:
$ ps ax | grep omni 1550 ? Sl 0:00 /usr/bin/omniNames -errlog /var/log/omniorb4-nameserver.log 18418 pts/2 S+ 0:00 grep --color=auto omni
If omniNames is not executing, the command will produce something like this (or no output at all):
$ ps ax | grep omni 18418 pts/2 S+ 0:00 grep --color=auto omni
To start omniNames manually, use the rtm-naming command:
$ rtm-naming Starting omniORB omniNames: ubuntu910:9876 Thu Dec 3 18:52:14 2009: Starting omniNames for the first time. Wrote initial log file. Read log file successfully. Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000007400000001010200100000003139322e3136382e3130302e31323500942600000b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000004e8a174b01000fef Checkpointing Phase 1: Prepare. Checkpointing Phase 2: Commit. Checkpointing completed.
An RTC configuration file, rtc.conf, must be created for the test. First, make a suitable working directory. This example will create a directory called RTCwork below the home directory. Change to this directory and create a file called "rtc.conf".
$ cd ~/RTCwork $ vi rtc.conf
Add the following lines to this file. Note that you cannot use the rtc.conf in share/OpenRTM-aist/examples/ for this example.
corba.nameservers: localhost naming.formats: %h.host_cxt/%n.rtc logger.enable: NO example.ConsoleOut.config_file: consout.conf example.ConsoleIn.config_file: consin.conf
If your system is configured to use IPv6, using "localhost" may not function correctly. In that case, use "127.0.0.1" instead.
Open a new terminal and start ConsoleInComp, making sure it uses the rtc.conf you created.
$ /usr/share/OpenRTM-aist/examples/ConsoleInComp -f rtc.conf Creating a component: "ConsoleIn"....succeed. ================================================= Component Profile ------------------------------------------------- InstanceID: ConsoleIn0 Implementation: ConsoleIn Description: Console input component Version: 1.0 Maker: Noriaki Ando, AIST Category: example Other properties ================================================= ================================================= Port0 (name): out ------------------------------------------------- - properties - port.port_type: DataOutPort dataport.data_type: TimedLong dataport.subscription_type: flush,new,periodic dataport.dataflow_type: push dataport.interface_type: corba_cdr -------------------------------------------------
$ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleInComp -f ~/RTCwork/rtc.conf
In the same way, start ConsoleOutComp.
$ /usr/share/OpenRTM-aist/examps/ConsoleOutComp -f rtc.conf succeed. ================================================= Component Profile ------------------------------------------------- InstanceID: ConsoleOut0 Implementation: ConsoleOut Description: Console output component Version: 1.0 Maker: Noriaki Ando, AIST Category: example Other properties ================================================= ================================================= Port0 (name): in ------------------------------------------------- - properties - port.port_type: DataInPort dataport.data_type: TimedLong dataport.subscription_type: Any dataport.dataflow_type: push,pull dataport.interface_type: corba_cdr -------------------------------------------------
If using the samples directly from a source directory:
$ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleOutComp -f ~rtc.conf
You can use RTSystemEditor to connect the two components and activate them. Download the all-in-one Eclipse package from here and extract it.
RTSystemEditor requires Java Development Kit 6. Install it according to the instructions below, or use an equivalent such as OpenJDK as provided by your distribution. Refer to this page for details on starting RTSystemEditor.
Connect to the name server and browse the registered components. You can connect to a name server using the Name Service View on the left side of RTSystemEditor. Click the plug icon to connect to a name server and enter its address (localhost or localhost:2809) in the dialog box. The default port for omniNames is 2809.
Drag the RT Components registered on the name server into the system editor. In the name service view, select the ConsoleIn0 and ConsoleOut0 items and drag them into the editor in the middle. Now click and drag between the small boxes at the side of each component, dragging from one component to the other and releasing. The connection dialog will appear. Accept it with all defaults to make a connection between the components.
Click the green "Play" button in the toolbar to activate all components in the system editor.
After connecting the ports of ConsoleInComp and ConsoleOutComp, the terminal for ConsoleInComp will display:
Please input number:
Enter a number and press enter. This number should fit within a short int. Look at the ConsoleOutComp terminal. The number you entered should have been printed out. If this is the case, OpenRTM-aist is functioning correctly.
OpenRTM-aist uses the system environment of the same name for both 32-bit version and 64-bit version. Also added to PATH to pass through. Therefore, installing both 32-bit version and 64-bit version or uninstalling one of them may require rewriting the system environment variables.
In such a case, activate this tool and click the [Confirm] button to correct it to the correct system environment variable.
(G)The log of this tool is output to the destination shown on the startup screen. Since it is overwriting every time, it can check just the last execution content. & br;
You can start it from the start menu after installation. You can also start by searching with VCVerChanger.
From start to OpenRTM-aist xxx (since 1.2.0) | VCVerChanger |
To run this tool, mfc dll is required. To execute the tool without installing this dll separately, two kinds of executable files are prepared. Please download it according to your version of Visual Studio.
Visual Studio 2008, 2010, 2012 | OpenRTMEnvTool_vc10.exe |
Visual Studio 2013, 2015 | OpenRTMEnvTool_vc12.exe |
Packages and installers for the Python edition of OpenRTM-aist are provided for many operating systems and distributions to allow easy installation. OpenRTM-aist can also be installed by downloading and compiling the source directly.
The following pages describe installing the Python edition of OpenRTM-aist in various environments.
Openrtm.org provides an MSI package for installing the Python edition of OpenRTM-aist, its prerequisites such as omniORBpy, and the RTSystemEditor tool all at once on Windows.
Download the msi package from download site of openrtm.org. The msi package contains tools such as omniORBpy and RTSystemEditor that are required, but Python needs to be installed in advance. From version 1.1.2, all 3 languages (C++, Java, Python) + tools (Eclipse + rtshell) are bundled with one Windows installer. We recommend that you uninstall the older version in advance. Also, please see the notation of deficit notation in download site.
For the procedure, OpenRTM-aist in 10 minutes! page.
The installer performs the following tasks.
RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\ RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ RTM_VC_VERSION=vc12 RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ OMNI_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\ OpenCV_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\ OpenRTM_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\cmake\
C:\Program Files (x86)\OpenRTM-aist\1.1.2\bin\vc12\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\bin\x86_win32\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\x86\vc12\bin\
We provide a script to check the setting of the installation environment. We will explain how to use the script and what you can check on the following page.
- Installation checking script
The file is installed with the following structure.
Executing script to check the above setting of the installation environment saves the directory where Python is installed by the tree command and the OpenRTM-aist directory structure under Program Files to the log file As you do, you can check the details.
<python_install_dir> + omniORB dll, various commands + rtcd, rtcprofile etc. OpenRTM-aist related commands | + Lib | + site-packages | + OpenRTM_aist: OpenRTM-aist Python module | + RTM_IDL: IDL file | | + omniORB related Python module
<install_dir> + OpenRTM-aist + 1.x.x :Old version runtime + <version> + bin: dll, lib, various commands + cmake: OpenRTMConfig.cmake + coil: coil header file + Components + CXX: + Examples: C ++ sample components + OpenCV: OpenCV C ++ Sample Component + Java: Java sample component + Python: Python sample component + etc: rtc.conf sample + ext: ComponentObserverConsumer + jar: + jre: OpenJDK JRE + omniORB + OpenCV + rtm: OpenRTM-aist header file + idl: OpenRTM-aist header file... + util + OpenRTP: + RTSystemEditor: + rtc-template:
When installation is finished, proceed to operation check.
(G)** What is windows_installer_test.bat
(G)This is a script to check the Windows environment settings where OpenRTM-aist is installed. It was created to check the OpenRTM-aist 1.1.2 version installation environment, but it can also be used in environments where previous versions are installed.
(G)The result is output to the log file just by executing the script by double-clicking, and the following contents can be confirmed.
(G)You can download from the following location.
(G) windows_installer_test.bat | http://svn.openrtm.org/openrtm-msi-buildtool/trunk/openrtm_msi/test_scripts/windows_installer_test.bat |
(G)Double-click the downloaded windows_installer_test.bat file. The command prompt screen will be displayed during execution, but it will disappear when it is finished.
(G)The installed directory structure is written to the log file using the tree command. & br; (G)If the Cygwin tree command is installed in the environment, adjust the following settings at the beginning of the script to the environment. If% CYGWIN_DIR% \ bin \ tree.exe does not exist, use the standard Windows tree command.
(G)When the Cygwin tree command is installed, the log “yymmdd-hhmmss_'Python directory'-dir.tree” of the installation directory structure of OpenRTM-aist-Python and rtshell becomes compact. This is because you can specify how many levels down the directory in the output specification. (G)Since the standard tree command for Windows cannot specify the hierarchy, all the structures from the top of the Python directory where OpenRTM-aist-Python is installed are targeted. Therefore, only the directory name is output to the log.
set CYGWIN_DIR=C:\Cygwin64
(G)All execution results are output to the log file. The output destination is under the log folder (created automatically if there is none) in the same directory as the script.
(G)You can use this script by running it on a USB memory and checking the results on another PC.
(G) Log file name | Description |
(G)yymmdd-hhmmss.log | Main log file |
(G)yymmdd-hhmmss_pfile.tree | This is output when C: \ Program Files \ OpenRTM-aist exists. You can check the OpenRTM-aist directory structure using the tree command. & br; Even if the 64-bit version of OpenRTM-aist has already been uninstalled, this log file will be output if the directory remains because there are files such as rtc ***. log. The |
(G)yymmdd-hhmmss_pfile_x86.tree | This is output when C: \ Program Files (x86) \ OpenRTM-aist exists. You can check the OpenRTM-aist directory structure using the tree command. & br; Even if the 32-bit version of OpenRTM-aist has already been uninstalled, this log file may be output for the same reason as the 64-bit version. |
(G) yymmdd-hhmmss_'Python directory'-dir.tree | This is output when OpenRTM-aist-Python is installed. You can check the Python directory structure (G)where OpenRTM-aist-Python and rtshell are installed using the tree command. & br; If the installation destination is C: \ Python27, the log file name will be yymmdd-hhmmss_Python27-dir.tree. |
(G)The directory existence of “C: \ Program Files \ OpenRTM-aist” and “C: \ Program Files (x86) \ OpenRTM-aist” is checked. Even if OpenRTM-aist has already been uninstalled, the directory will remain if files (rtc ***. Log, etc.) generated after installation exist. Even if the directory is “exist!”, If C ++, Python, Java Examples are “not installed”, this case can be considered. Check the tree file.
*-*-*-*-*-*-* check OpenRTM-aist installed directory *-*-*-*-*-*-* [[check]] "C:\Program Files\OpenRTM-aist" directory --- not exist! [[check]] "C:\Program Files (x86)\OpenRTM-aist" directory --- exist! --- RTM_VERSION = 1.1.2 Result ⇒ log\20160906-141617_pfile_x86.tree --- C++ Examples (1.1.2) ⇒ installed --- Python Examples (1.1.2) ⇒ installed --- Java Examples (1.1.2) ⇒ installed
*-*-*-*-*-*-* check OpenRTM-aist installed directory *-*-*-*-*-*-* [[check]] "C:\Program Files\OpenRTM-aist" directory --- not exist! [[check]] "C:\Program Files (x86)\OpenRTM-aist" directory --- exist! --- RTM_VERSION = 1.1 Result ⇒ log\20160906-133745_pfile_x86.tree --- C++ Examples (1.1) ⇒ installed --- Python Examples (1.1) ⇒ installed --- Java Examples (1.1) ⇒ not installed
*-*-*-*-*-*-* check OpenRTM-aist installed directory *-*-*-*-*-*-* [[check]] "C:\Program Files\OpenRTM-aist" directory --- exist! --- RTM_VERSION = 1.1.2 Result ⇒ log\20160907-104846_pfile.tree --- C++ Examples (1.1.2) ⇒ installed --- Python Examples (1.1.2) ⇒ installed --- Java Examples (1.1.2) ⇒ installed --- This PC is 32bit OS.
*-*-*-*-*-*-* check system environment variables *-*-*-*-*-*-* RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\ RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ RTM_VC_VERSION=vc12 RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ OMNI_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\ OpenCV_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\ OpenRTM_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\cmake\
(G) Environment variable RTM_BASE is not defined (G) RTM_ROOT = C: \ Program Files (x86) \ OpenRTM-aist\1.1\ (G) RTM_JAVA_ROOT = C: \ Program Files \ OpenRTM-aist\1.1\
OMNI_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1\omniORB\4.1.7_vc10\ OpenCV_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1\OpenCV2.4.9\
*-*-*-*-*-*-* check Path *-*-*-*-*-*-* C:\Program Files (x86)\OpenRTM-aist\1.1.2\bin\vc12\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\bin\x86_win32\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\x86\vc12\bin\
*-*-*-*-*-*-* check Path *-*-*-*-*-*-* C:\distribution\opencv3.0.0\build\x86\vc10\bin C:\Program Files (x86)\OpenRTM-aist\1.1\bin\ C:\Program Files (x86)\OpenRTM-aist\1.1\omniORB\4.1.7_vc10\bin\x86_win32\ C:\Program Files (x86)\OpenRTM-aist\1.1\OpenCV2.4.9\x86\vc10\bin
*-*-*-*-*-*-* check Python installed directory *-*-*-*-*-*-* C:\Python27\ ----OpenRTM-aist-Python installed. C:\Python27\ ----rtshell installed. C:\Python27_x64\ ----OpenRTM-aist-Python not installed. C:\Python27_x64\ ----rtshell installed. C:\Python35_x64\ ----OpenRTM-aist-Python not installed. C:\Python35_x64\ ----rtshell not installed. C:\Python35\ ----OpenRTM-aist-Python not installed. C:\Python35\ ----rtshell not installed.
*-*-*-*-*-*-* check OpenRTM-aist-Python installed directory *-*-*-*-*-*-* Result ⇒ log\20160906-141617_Python27-dir.tree
*-*-*-*-*-*-* check OpenRTM-aist-Python installed directory *-*-*-*-*-*-* Result ⇒ log\20160906-171616_Python26-dir.tree Result ⇒ log\20160906-171616_Python27-dir.tree
*-*-*-*-*-*-* check Custom installed lists *-*-*-*-*-*-* [1] C++ : Runtime Environment [2] C++ : Development Environment [3] C++ : Examples RTC [4] C++ : OpenCV RTC [5] OpenCV [6] Python : Examples RTC [7] Java : Runtime Environment [8] Java : Examples RTC [9] Tools : OpenRTP [10] Tools : RTSystemEditorRCP [11] Tools : JRE [12] OpenRTM-aist old Runtime : 1.0.0 [x86 only] [13] OpenRTM-aist old Runtime : 1.1.0 [14] OpenRTM-aist old Runtime : 1.1.1 [15] IDL
(G) List of folder paths (G) Volume serial number is 9CF9-3755
C:\PROGRAM FILES (X86)\OPENRTM-AIST ├─1.0.0 │ └─vc9 │ └─bin │ coil.dll : └─1.1.2 ├─bin │ │ cmakeconfgen.py
deb packages for installing the Python edition of OpenRTM-aist on Debian GNU Linux and Ubuntu Linux are available. The supported Debian/Ubuntu versions are listed on the download page. The Debian/Ubuntu versions may change without notice.
There are two methods available for installing:
Download the pkg_install_python_ubuntu.sh or pkg_install_python_debian.sh install script provided on the download page of openrtm.org and execute it with root permissions. This script will install the necessary dependencies using apt-get.
Installing all the packages needed for development with OpenRTM-aist takes some work. For new users, using the install script is recommended. However, this will install all packages used by OpenRTM-aist, even though you may not need them. Expert users should consider installing manually using apt-get or synaptic.
Follow these steps to use the install script.
> wget [pkg_install_python_???.sh download URL] > su # sh pkg_install1_python_ubuntu.sh // Answer "y" or "Y" to the questions to proceed.
Openrtm.org provides a package repository for use with apt-get. This is not included in the default package repository, so it must be added to the apt-get settings by hand. Add one of the following lines to the file "/etc/apt/sources.list" (root permissions will be required):
> su # vi /etc/apt/sources.list # Edit "sources.list"
deb http://www.openrtm.org/pub/Linux/ubuntu/ (code name) main
deb http://www.openrtm.org/pub/Linux/debian/ (code name) main
"(code name)" is the code name of your version of Debian or Ubuntu Linux. It must be one of the following.
version | code name |
Debian GNU Linux | |
Debian 7.0 | wheezy |
Debian 8.0 | jessie |
Debian 9.0 | stretch |
Ubuntu | |
Ubuntu 14.04 | trusty |
Ubuntu 16.04 | xenial |
Ubuntu 16.10 | yakkety |
Ubuntu 17.04 | zesty |
Next, run these commands to install OpenRTM-aist.
> su # apt-get update # apt-get install python # apt-get install omniORB-servers omniORBpy omniORBpy-devel omniORBpy-standarda # apt-get install OpenRTM-aist-Python OpenRTM-aist-Python-example
Answer "y" or "Y" to the questions to proceed.
It is possible to freeze OpenRTM-aist at the installed version. To do so, edit the file "/etc/apt/preferences" and append the following lines (this example is for version 1.0):
Package: OpenRTM-aist-Python Pin: version 1.0.*
For more details, see http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html#s-pin.
Check the install was successful using the following command.
$ dpkg -l 'openrtm*' Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==========================-============================================================================================== ri openrtm-aist-python 1.0.0-release0 OpenRTM-aist, RT-Middleware distributed by AIST ri openrtm-aist-python-exampl 1.0.0-release0 OpenRTM-aist, RT-Middleware distributed by AIST
The packages contain the following files.
OpenRTM-aist-Python includes the Python modules and several commands.
/usr/bin/rtcprof_python /usr/bin/rtcd_python
/usr/lib/python<version>/dist-packages/OpenRTM_aist/examples/rtc.conf.sample
/usr/lib/python<version>/dist-packages/OpenRTM_aist/*
/usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtcprof /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtcd /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtc-template /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtm-naming
openrtm-aist-python-example contains sample components.
/usr/share/OpenRTM-aist/examples/python/SimpleIO/ /usr/share/OpenRTM-aist/examples/python/SimpleService/ ...
When installation is finished, proceed to operation check.
An RPM package for installing the Python edition of OpenRTM-aist on Fedora Linux is available. The supported Fedora Linux versions are listed on the download page. The Fedora Linux versions may change without notice.
There are two methods available for installing:
Download the pkg_install_python_fedora.sh install script provided on the download page of openrtm.org and execute it with root permissions. This script will install the necessary dependencies using apt-get.
Installing all the packages needed for development with OpenRTM-aist takes some work. For new users, using the install script is recommended. However, this will install all packages used by OpenRTM-aist, even though you may not need them. Expert users should consider installing manually using yum.
Follow these steps to use the install script.
> wget [pkg_install_python_fedora.sh download URL] > su # sh pkg_install1_python_fedora.sh // Answer "y" or "Y" to the questions to proceed.
Openrtm.org provides a package repository for use with apt-get. This is not included in the default package repository, so it must be added to the apt-get settings by hand. Create a file called /etc/yum.repos.d/openrtm.repo (root permissions will be required), and add the following lines to it.
[openrtm] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://www.openrtm.org/pub/Linux/Fedora/releases/$releasever/Fedora/$basearch/os/Packages enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
After making the file above, execute these commands to install with yum. Answer y to the questions to proceed.
> su # yum install python # yum install omniORB-servers omniORBpy omniORBpy-devel omniORBpy-standard # yum install OpenRTM-aist-Python OpenRTM-aist-Python-example
Check the install was successful using the following command.
# rpm -qa | grep OpenRTM-aist-Python OpenRTM-aist-Python-example-1.0.0-RELEASE.fcx.i386 OpenRTM-aist-Python-1.0.0-RELEASE0.fcx.i386
The packages contain the following files.
OpenRTM-aist-Python includes the Python modules and several commands.
/usr/bin/rtcprof_python /usr/bin/rtcd_python
/usr/lib/python<version>/dist-packages/OpenRTM_aist/examples/rtc.conf.sample
/usr/lib/python<version>/dist-packages/OpenRTM_aist/*
/usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtcprof /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtcd /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtc-template /usr/lib/python<version>/dist-packages/OpenRTM_aist/utils/rtm-naming
OpenRTM-aist-Python-example contains sample components.
/usr/share/OpenRTM-aist/examples/python/SimpleIO/ /usr/share/OpenRTM-aist/examples/python/SimpleService/ ...
When installation is finished, proceed to operation check.
RPM packages for installing the Python edition of OpenRTM-aist on Vine Linux are available. The supported Vine Linux versions are listed on the download page. The Vine Linux versions may change without notice.
There are two methods available for installing:
Download the pkg_install_python_vine.sh install script provided on the download page of openrtm.org and execute it with root permissions. This script will install the necessary dependencies using apt-get.
Installing all the packages needed for development with OpenRTM-aist takes some work. For new users, using the install script is recommended. However, this will install all packages used by OpenRTM-aist, even though you may not need them. Expert users should consider installing manually using apt-get or synaptic.
Follow these steps to use the install script.
> wget [pkg_install_python_vine.sh download URL] > su # sh pkg_install1_python_vine.sh // Answer "y" or "Y" to the questions to proceed.
Openrtm.org provides a package repository for use with apt-get. This is not included in the default package repository, so it must be added to the apt-get settings by hand. Add the following line to the file /etc/apt/sources.list (root permissions will be required):
rpm http://www.openrtm.org/pub/Linux/Vine/apt x.x/$(ARCH) main
Replace x.x with your Vine Linux version. For example, use 5.0 for Vine 5.0:
rpm http://www.openrtm.org/pub/Linux/Vine/apt 5.0/$(ARCH) main
Next, run these commands to install OpenRTM-aist.
> su # apt-get update # apt-get install python # apt-get install omniORB-servers omniORBpy omniORBpy-devel omniORBpy-standarda # apt-get install OpenRTM-aist-Python OpenRTM-aist-Python-example
Answer y or Y to the questions to proceed. You can replace the apt-get command with the synaptic command.
Check the install was successful using the following command.
# rpm -qa | grep OpenRTM-aist-Python OpenRTM-aist-Python-example-1.0.0-RELEASE.vlXX OpenRTM-aist-Python-1.0.0-RELEASE0.vlXX
The packages contain the following files.
OpenRTM-aist-Python includes the Python modules and several commands.
/usr/bin/rtcprof_python /usr/bin/rtcd_python
/usr/lib/python<version>/site-packages/OpenRTM_aist/examples/rtc.conf.sample
/usr/lib/python<version>/site-packages/OpenRTM_aist/*
/usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtcprof /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtcd /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtc-template /usr/lib/python<version>/site-packages/OpenRTM_aist/utils/rtm-naming
OpenRTM-aist-Python-example contains sample components.
/usr/share/OpenRTM-aist/examples/python/SimpleIO/ /usr/share/OpenRTM-aist/examples/python/SimpleService/ ...
When installation is finished, proceed to operation check.
For those who wish to install from a source package, it is possible to build OpenRTM-aist-python manually.
The OpenRTM-aist (Python version) source package for Windows is distributed separately from the source for Linux. The contents of the source code are exactly the same but the following parts are different.
Original is source code of subversion repository, from its source code, on Linux,
Two types,
On Windows,
It is configured to create only one type of.
The necessary tools and libraries for building are:
Python 2.7 is required. Please obtain the latest version from the following site and install it.
When launching the installer, there are some parts to select in the wizard, You can install by default.
The omniORBpy library is necessary to build the Python edition of OpenRTM-aist. omniORBpy can be obtained from the link below. Source packages and binaries are available. However, openrtm.org provides a pre-built binary installer that may be more convenient.
When you unzip the ZIP file, the directory tree shown below should be expanded. Please place the files under each directory in the Python directory as indicated below. The version of omniORBpy is described as x.y, and the version of Python as X.Y.
+ omniPRBpy-x.y + bin + x86_win32 -> both exe and dll go directly under C:\PythonXY + doc -> may be deleted + examples -> may be deleted + idl -> may be deleted but it may be placed under C:\PythonXY\Lib\site-packages\omniORB\idl + lib + python -> directly below C:\PythonXY\Lib\site-packages directory and files + x86_win32 -> .pyd directly under C:\PythonXY\Lib\site-packages
Download a source package, named OpenRTM-aist-Python-X.X.X.zip, and extract it in a suitable directory.
Start a command prompt and change to the directory where you extracted the source code. Execute the following commands.
> OpenRTM-aist-Python-X.X.X > python setup.py build
Once everything has built successfully, execute the following command to install it.
> python setup.py install
This completes the installation of OpenRTM-aist.
For distributions that do not yet have a pre-built package available, or for users who wish to alter the OpenRTM-aist source themselves, it is possible to build OpenRTM-aist from source.
The Python edition of OpenRTM-aist uses the distutils module to build, allowing it to be built in a variety of environments.
OpenRTM-aist-Python has been tested and confirmed to work on the following distributions.
It should be possible to build and use OpenRTM-aist-Python on other versions of Linux/UNIX.
OpenRTM-aist-Python-1.0.0 depends on the folloowing environmental tools and libraries.
Install these dependencies according to their individual documentations. Installing them into standard locations such as /usr and /usr/local will make compiling OpenRTM-aist-Python easier.
Download the OpenRTM-aist-Python source code from the download page.
Extract the source code from the OpenRTM-aist-Python-X.X.X.tar.gz file into a suitable location.
$ tar xvzf OpenRTM-aist-Python-X.X.X.tar.gz $ cd OpenRTM-aist-Python-X.X.X
OpenRTM-aist uses autotools for building. It can be built in the same way as any other distutils-based package.
$ python setup.py build [options]
The usable options are listed in the help:
$ python setup.py --help
When the build completes successfully, use this command to install:
$ su # python setup.py install
This completes the installation.
The OpenRTM-aist-Python source code is stored in a publicly-available Subversion repository. This source code can be checked out and built.
Checkout the source from the repository as below.
$ svn co http://www.openrtp.jp/openrtm/svn/OpenRTM-aist-Python/trunk/OpenRTM-aist-Python A OpenRTM-aist-Python/OpenRTM_aist A OpenRTM-aist-Python/OpenRTM_aist/CorbaPort.py A OpenRTM-aist-Python/OpenRTM_aist/__init__.py A OpenRTM-aist-Python/OpenRTM_aist/Guard.py A OpenRTM-aist-Python/OpenRTM_aist/RTM_IDL A OpenRTM-aist-Python/OpenRTM_aist/RTM_IDL/RTC.idl A OpenRTM-aist-Python/OpenRTM_aist/RTM_IDL/Manager.idl ... A OpenRTM-aist-Python/installer/WixUI_es-es.wxl A OpenRTM-aist-Python/installer/WixUI_fr-fr.wxl A OpenRTM-aist-Python/installer/WixUI_de-de.wxl A OpenRTM-aist-Python/installer/WixUI_cs-cz.wxl A OpenRTM-aist-Python/installer/WixUI_da-dk.wxl Checked out revision 349.
After checking out, a directory called OpenRTM-aist-Python will have been created. Change to this directory.
$ ls OpenRTM-aist-Python $ cd OpenRTM-aist-Python $ ls MANIFEST.in OpenRTM-aist.pth README setup.py MANIFEST_examples.in OpenRTM_aist/ installer/
Use setup.py to build and install.
$ python setup.py build
By executing the command shown below, a source package such as those available at openrtm.org can be created. In order to make a distribution package, some additional tools are necessary, such as doxygen, latex, and qkc.
$ python setup.py sdist
$ ls -l dist/OpenRTM-aist-Python-* -rw-rw-r-- 1 openrtm openrtm 2721202 2月 24 16:43 OpenRTM-aist-Python-1.1.0.tar.gz -rw-rw-r-- 1 openrtm openrtm 4686452 2月 24 16:43 OpenRTM-aist-Python-1.1.0.zip
The following packages are created:
Once the installer has completed successfully, OpenRTM-aist can be tested using the included sample components. These are typically stored in one of the following locations:
We will use the SimpleIO components to check that OpenRTM-aist has built and installed correctly.
This set contains the ConsoleInComp and ConsoleOutComp components. ConsoleInComp receives numbers as input from the console and sends them over an OutPort. ConsoleOutComp receives numbers via an InPort and prints them to the console. They use this very simple I/O to illustrate the basics of RT Components. Connect the OutPort of ConsoleInComp to the InPort of ConsoleOutComp and activate them.
The explanation below assumes OpenRTM-aist-python has been installed using the MSI package and the sample components are available in the Start Menu. Right-clicking on the OpenRTM-aist entry in the Start Menu and selecting "Open" will make accessing these more convenient.
First, a name server that the components can register on must be started. Start it using the shortcut in the Start Menu at [OpenRTM-aist 1.1] > [Tools] > [Start Naming Service].
A console like the following will open.
There are cases where the name server console screen does not open. In this case, there are several causes as below, so investigate the cause and take appropriate action.
The msi installer provided by openrtm.org contains omniORBpy, but if you select Custom installation you can also install OpenRTM - aist - Python without installing omniORBpy.
Also, if installing manually, omniORBpy may not be included, so please make sure omniORBpy is installed.
The file to start the name server is C:\Program Files (x86)\OpenRTM-aist\1.1\bin\rtm-naming.py. (When installing with 32 bit version msi)
Opening the console screen in this directory and running python rtm-naming.py will start up the name server, but if you can not start by double clicking rtm-naming.py, please check the python you are installing.
If you install both 32-bit and 64-bit Python, it seems that the one you installed earlier can be associated with a py file, so installing Python with the same architecture as the OpenRTM-aist-Python installer may be fixed first I do not.
In rare cases, the host name or address settings of the machine may be incorrect, causing the name server to start incorrectly. Informing omniNames.exe of the correct IP can resolve this problem. Set the OMNIORB_USEHOSTNAME environment variable in the following way (the example assumes the host's IP is 192.168.0.11):
Variable name: OMNIORB_USEHOSTNAME Variable value: 192.168.0.11
After starting the name server, start some suitable components. The OpenRTM-aist-Python start menu folder contains a sub-folder called "Examples," which contains many components as shown below.
Start ConsoleIn.py and ConsoleOut.py, causing two consoles to open.
Sometimes the component consoles do not open. There are several possible causes for this, described below.
There may be an error in the rtc.conf file, preventing the components from starting. Confirm the contents of the rtc.conf file in C:\Program Files\OpenRTM-aist\1.0\examples\Python\SimpleIO. For example, the corba.endpoint/corba.endpoints settings should match the host address of the current computer.
Try creating a minimal rtc.conf, as below.
corba.nameservers: localhost
RTSystemEditor can be started from the Start Menu: [OpenRTM-aist] > [Tools] > [RTSystemEditor].
Connect to the name server and browse the registered components. You can connect to a name server using the Name Service View on the left side of RTSystemEditor. Click the plug icon to connect to a name server and enter its address (localhost or localhost:2809) in the dialog box. The default port for omniNames is 2809.
The name server running on localhost will appear in the Name Service View. Open the tree branches by clicking the arrows to find the two components you started.
Open a system editor using the new system editor button in the toolbar . The editor will open in the central pane. Drag the components from the name service view into the editor.
The OutPort of ConsoleIn0 is displayed on its right-hand side . Drag from this to the InPort on the ConsoleOut0 component to connect these data ports. The connection dialog will be displayed. Click "OK" to accept the defaults and connect the components.
A line indicating the connection will appear between the two ports. Next, click the [Activate All] button in the toolbar. This will activate all components in the editor at once. Active components will appear green.
After connecting the ports of ConsoleInComp and ConsoleOutComp, the terminal for ConsoleInComp will display:
Please input number:
Enter a number and press enter. This number should fit within a short int. Look at the ConsoleOutComp terminal. The number you entered should have been printed out. If this is the case, OpenRTM-aist is functioning correctly.
Other sample components are included in the installed OpenRTM-aist-Python. They can all be used in the same way as the above example.
ConsoleIn.py | Receive numbers from the console and send them over an OutPort. Connect it to ConsoleOut.py to use. |
ConsoleOut.py | Receive numbers over an InPort and print them in a console. Connect it to ConsoleIn.py to use. |
SequenceIn.py | A component to output various simple data types (short, long, float, double, and sequences). Connect it to SequenceOut.py to use. |
SequenceOut.py | Display various simple data types received over an InPort. Connect it to SequenceIn.py to use. |
MyServiceProvider.py | Provides a simple service, MyService. Connect it to MyServiceConsumer.py to use. |
MyServiceConsumer.py | Consumes a simple service, MyService. Connect it to MyServiceProvider.py to use. |
ConfigSample.py | Sample demonstrating configuration parameters. Modify the configuration parameters in RTSystemEditor or with rtconf to see the effect. |
TkMobileRobotSimulator.py | Simple mobile robot simulator. Receive velocities via an InPort, provide position via an OutPort. |
NXTRTC.py | LEGO MindStorms interface component. Command velocities via an InPort, receive infra-red sensor information and odometry via an OutPort. |
AutoControl.py | Calculate velocities for a mobile robot. Receive robot odometry information via an InPort, calculate the speed and provide it via an OutPort. |
Composite.py | Sample composite component. Combines the Motor, Controller and Sensor components into a single composite component. |
Motor.py | Sample component for the composite component sample. |
Controller.py | Sample component for the composite component sample. |
Sensor.py | Sample component for the composite component sample. |
Slider.py | Sample GUI component using Tk. Provides the value of sliders over an OutPort. |
TkMotorComp.py | Sample GUI component using Tk. Displays the values received via an InPort in the GUI. |
TkLRFViewer.py | Sample GUI component using Tk. Draws laser data in the GUI. |
TkJoystickComp.py | Sample GUI component using Tk. Provides a virtual joystick. |
Once the installer has completed successfully, OpenRTM-aist-Python can be tested using the included sample components. These are typically stored in one of the following locations:
If you built from source, they can also be found in the source directory:
We will use the SimpleIO components to check that OpenRTM-aist has built and installed correctly.
This set contains the ConsoleInComp and ConsoleOutComp components. ConsoleInComp receives numbers as input from the console and sends them over an OutPort. ConsoleOutComp receives numbers via an InPort and prints them to the console. They use this very simple I/O to illustrate the basics of RT Components. Connect the OutPort of ConsoleInComp to the InPort of ConsoleOutComp and activate them.
The explanation below assumes the sample components are in /usr/share/openrtm-1.1/example/python.
First, a name server that the components can register on must be started. If omniORBpy was installed as a package in Linux, it will often add the name server as a system service. You can check if this is the case on your system using the ps command:
$ ps ax | grep omni 1550 ? Sl 0:00 /usr/bin/omniNames -errlog /var/log/omniorb4-nameserver.log 18418 pts/2 S+ 0:00 grep --color=auto omni
If omniNames is not executing, the command will produce something like this (or no output at all):
$ ps ax | grep omni 18418 pts/2 S+ 0:00 grep --color=auto omni
To start omniNames manually, use the rtm-naming command:
$ rtm-naming Starting omniORB omniNames: ubuntu910:2809 Thu Dec 3 18:52:14 2009: Starting omniNames for the first time. Wrote initial log file. Read log file successfully. Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000007400000001010200100000003139322e3136382e3130302e31323500942600000b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000004e8a174b01000fef Checkpointing Phase 1: Prepare. Checkpointing Phase 2: Commit. Checkpointing completed.
An RTC configuration file, rtc.conf, must be created for the test. First, make a suitable working directory. This example will create a directory called RTCwork below the home directory. Change to this directory and create a file called "rtc.conf".
$ cd ~/RTCwork $ vi rtc.conf
Add the following lines to this file. Note that you cannot use the rtc.conf in share/OpenRTM-aist/examples/ for this example.
corba.nameservers: localhost naming.formats: %h.host_cxt/%n.rtc logger.enable: NO example.ConsoleOut.config_file: consout.conf example.ConsoleIn.config_file: consin.conf
If your system is configured to use IPv6, using localhost may not function correctly. In that case, use 127.0.0.1 instead.
Open a new terminal and start ConsoleInComp, making sure it uses the rtc.conf you created.
$ python /usr/share/OpenRTM-aist/examples/python/SimpleIO/ConsoleIn.py -f ~/RTCwork/rtc.conf comp_args: ConsoleIn
If using the samples directly from a source directory:
$ python <source_dir>/OpenRTM_aist/examples/SimpleIO/ConsoleIn.py -f ~/RTCwork/rtc.conf
In the same way, start ConsoleOutComp.
$ python /usr/share/OpenRTM-aist/examps/python/SimpleIO/ConsoleOut.py -f ~/RTCwork/rtc.conf comp_args: ConsoleOut
If using the samples directly from a source directory:
$ python <source_dir>/OpenRTM_aist/examples/SimpleIO/ConsoleOut.py -f ~/RTCwork/rtc.conf
You can use RTSystemEditor to connect the two components and activate them. Download the all-in-one Eclipse package from here and extract it.
RTSystemEditor requires Java Development Kit 6. Install it according to the instructions below, or use an equivalent such as OpenJDK as provided by your distribution. Refer to this page for details on starting RTSystemEditor.
Please start RTSystemEditor referring to the page of here.
Connect to the name server and browse the registered components. You can connect to a name server using the Name Service View on the left side of RTSystemEditor. Click the plug icon to connect to a name server and enter its address (localhost or localhost:2809) in the dialog box. The default port for omniNames is 2809.
Drag the RT Components registered on the name server into the system editor. In the name service view, select the ConsoleIn0 and ConsoleOut0 items and drag them into the editor in the middle. Now click and drag between the small boxes at the side of each component, dragging from one component to the other and releasing. The connection dialog will appear. Accept it with all defaults to make a connection between the components.
Click the green [Play] button in the toolbar to activate all components in the system editor.
After connecting the ports of ConsoleInComp and ConsoleOutComp, the terminal for ConsoleInComp will display:
Please input number:
Enter a number and press enter. This number should fit within a short int. Look at the ConsoleOutComp terminal. The number you entered should have been printed out. If this is the case, OpenRTM-aist is functioning correctly.
Packages and installers for the Java edition of OpenRTM-aist are provided for many operating systems and distributions to allow easy installation. OpenRTM-aist-Java can also be installed by downloading and compiling the source directly.
The following pages describe installing the Java edition of OpenRTM-aist in various environments.
(G)openrtm.org offers msi (Microsoft Windows Installer) package for Windows. Tools such as RTSystemEditor can also be installed at the same time by using the msi package.
Download msi package from openrtm.org download site. The msi package contains the necessary tools such as RTSystemEditor, but you need to install the JDK in advance.
From version 1.1.2, all 3 languages (C++, Java, Python) + tools (Eclipse + rtshell) are bundled with one Windows installer. We recommend that you uninstall the older version in advance. Also, please read the notation of deficit notation in download site.
JDK 8 is recommended for OpenRTM-aist-Java-1.1.2 operation.
When you download the downloaded file, the installation will start. On the way, you will be asked for permission and installation location, so please set according to your environment. The following installation explanation images are those of JDK 7.
Click the [Next] button.
Click the [Next] button.
Click the [Next] button.
Click the [Close] button.
Display the command prompt window ( [Start] > [Programs] > [Accessories] > [Command Prompt] )
> java - version
Enter. Once installed Java version is displayed, installation is completed.
For the procedure, OpenRTM-aist in 10 minutes! page.
The installer performs the following tasks.
RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\ RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ RTM_VC_VERSION=vc12 RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ OMNI_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\ OpenCV_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\ OpenRTM_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\cmake\
C:\Program Files (x86)\OpenRTM-aist\1.1.2\bin\vc12\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\bin\x86_win32\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\x86\vc12\bin\
We provide a script to check the setting of the installation environment. We will explain how to use the script and what you can check on the following page.
The file is installed with the following structure. & br; If you execute script to check the setting of the above installation environment, the OpenRTM-aist directory structure by the tree command is saved in the log file, so you can check the details .
<install_dir> + OpenRTM-aist + 1.x.x :Old version runtime + <version> + bin: dll, lib, Various commands + cmake: OpenRTMConfig.cmake + coil: coil header file + Components + CXX: + Examples: C++ Sample component + OpenCV: OpenCV のC++ Sample component + Java: Java Sample component + Python: Python Sample component + etc: rtc.conf sample + ext: ComponentObserverConsumer + jar: OpenRTM-aist And necessary jar files + jre: OpenJDK JRE + omniORB + OpenCV + rtm: OpenRTM-aist header file + idl: OpenRTM-aist IDL file + util + OpenRTP: + RTSystemEditor: + rtc-template:
OpenJDK 7 or oracleJDK 7
The install process has three steps:
Java commands such as -java, javac will work → Java installationRefer to the JDK installation hints for tips on installing Java on various distributions. The Java installer must be executed as a superuser.
※ When installing Java on Fedora Core, be aware of the following issues:
→ ''FAQ:'' Installing Java on Fedora Core
→ ''FAQ:'' Q. An error appears in RTSystemEditor NameService View on Fedora Core
In a terminal, execute this command to test Java. If the Java version is displayed, the installation is complete.
$ java -version
java version "1.7.0_75" OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1) OpenJDK Client VM (build 24.75-b04, mixed mode, sharing)
Download the jar file and samples from here. Extract the zip file into a suitable location. The extracted location does not matter, but do not change the directory structure*. The "jar" directory in the extracted location must be added to the RTM_JAVA_ROOT environment variable.
The environment variables should be changed in a file appropriate to your shell. For example, users of the bash shell should edit ".bashrc" in their home directory, while users of the csh shell should edit ".cshrc" in their home directory. If you wish to change the variable system-wide, edit the files in /etc/profile. Note that changing the variables for an individual user or system wide will affect how the GUI tools such as Eclipse should be started. See here for more information.
For example, if the bash shell is in use and OpenRTM-aist-Java has been extracted to /usr/lib, the following line can be appended to .bashrc:
export RTM_JAVA_ROOT=/usr/lib/OpenRTM-aist/<version>
To make this change active in the current shell, execute:
source ~/.bashrc
or open a new shell.
+--<install_dir> +--OpenRTM-aist +--<version> +--jar +--examples +--JavaDoc +--JavaDocEn
OpenRTM-aist-Java jar file and other necessary jar files.
Sample class files and shell scripts to launch them.
examples/RTMExamples/SeqIO/SeqIn.class examples/RTMExamples/SeqIO/view/SeqView.class examples/RTMExamples/SeqIO/view/RootPane.class examples/RTMExamples/SeqIO/view/SeqViewApp.class ...
examples/AutoTestIn.sh examples/AutoTestOut.sh examples/Composite.sh examples/ConfigSample.sh examples/Connector.sh examples/ConsoleIn.sh examples/ConsoleOut.sh examples/ExtConnector.sh examples/ExtConsoleIn.sh examples/ExtConsoleOut.sh examples/GUIIn.sh examples/MyServiceConsumer.sh examples/MyServiceProvider.sh examples/SeqIn.sh examples/SeqOut.sh examples/SinCosOut.sh examples/rtcd_java.sh examples/start-orbd.sh
examples/RTMExamples/SeqIO/SeqInImpl.java examples/RTMExamples/SeqIO/SeqOut.java examples/RTMExamples/SeqIO/view/RootPane.java examples/RTMExamples/SeqIO/view/SeqView.java ...
Contains the class reference as Javadoc HTML (Japanese).
Contains the class reference as Javadoc HTML (English).
Let's proceed to the confirmation so far operation check (Linux version).
For uses who require more flexibility, or wish to alter and use the source, OpenRTM-aist-Java can be installed from source.
OpenRTM-aist-Java provides a build environment for Eclipse.
Building OpenRTM-aist-Java requires the following libraries.
Install these dependencies according to their individual documentations. Installing them into standard locations such as /usr and /usr/local will make compiling OpenRTM-aist-Python easier.
Download the OpenRTM-aist-Java source from here.
Extract the OpenRTM-aist-Java.X.X.X.tar.gz file into a suitable location.
$ tar xvzf OpenRTM-aist-Java-X.X.X.tar.gz
The diagrams in this section show Windows and Eclipse 3.4.2.
Start Eclipse and import the project into the workspace by selecting "Import" from the File menu.
Select "Import an existing project" and click "Next."
Select the folder with the extract files and click "Finish."
This will import the project into the current workspace.
Right click the build.xml file in the package explorer and select "Ant build" from the "Debug" menu.
From the displayed window, select "buildAllLinux" and click the "Debug" button.
The build will begin.
If the console window displays the above result, the build has completed.
The OpenRTM-aist-Python source code is stored in a publicly-available Subversion repository. This source code can be checked out and built.
The diagrams in this section show Windows and Eclipse 3.4.2.
Check out the source in Eclipse and import it into the workspace. The Import Selection window opens in File > Import. Select [Others] > [Check out project from SVN] and click the [Next] button to open the "Check out from SVN" window. Select "Generate new repository location" and click "Import project" Click the "Next" button. In 'Url' enter http://svn.openrtm.org/OpenRTM-aist-Java/trunk/ and click the Next button. The "Select Folder" window opens, so select "jp.go.aist.rtm.RTC" and click the "Finish" button.
Download the script file or batch file from the first time only ( http://svn.openrtm.org/OpenRTM-aist-Java/trunk/ ) and execute it.
These files Subclipse can not check out.
The required java source file is generated from the idl file.
There is an incompleteness in the current trunk, an error occurs in part of the TEST file etc. In addition, msi file is not generated on Windows.
The diagrams in this section show Windows and Eclipse 3.4.2.
Right click the build.xml file in the package explorer and select "Ant build" from the "Debug" menu.
From the displayed window, select "buildAllLinux" and click the "Debug" button.
The build will begin.
If the console window displays the above result, the build has completed.
Once the install has completed successfully, OpenRTM-aist-Java can be tested using the included sample components. These are typically stored in one of the following locations:
We will use the SimpleIO components to check that OpenRTM-aist has built and installed correctly.
This set contains the ConsoleInComp and ConsoleOutComp components. ConsoleInComp receives numbers as input from the console and sends them over an OutPort. ConsoleOutComp receives numbers via an InPort and prints them to the console. They use this very simple I/O to illustrate the basics of RT Components. Connect the OutPort of ConsoleInComp to the InPort of ConsoleOutComp and activate them.
The explanation below assumes OpenRTM-aist-Java has been installed using the MSI package and the sample components are available in the Start Menu. Right-clicking on the OpenRTM-aist entry in the Start Menu and selecting "Open" will make accessing these more convenient.
First, a name server that the components can register on must be started. Start it using the shortcut in the Start Menu at [OpenRTM-aist 1.1] > [Tools] > Start Naming Service.
A console like the following will open.
There are cases where the name server console screen does not open. In this case, there are several causes as below, so investigate the cause and take appropriate action.
"Start Java Naming Service" starts the name server (omniNames.exe) from the batch file in %RTM_ROOT%\bin\rtm-naming.bat. At this time, we use the environment variable OMNI_NAMES to refer to omniNames.exe. When installing OpenRTM-aist normally with the installer, the OMNI_ROOT environment variable is set automatically, but if the environment variable is invalid for some reason or you install it manually, the environment variable is set There is no thing.
After activating the name server, start the appropriate sample component. When you open [OpenRTM-aist1.1] > [Java] > [Components] > [Examples] in the start menu folder opened earlier, there are several components as shown in the figure.
Start ConsoleIn.py and ConsoleOut.py, causing two consoles to open.
Sometimes the component consoles do not open. There are several possible causes for this, described below.
There may be an error in the rtc.conf file, preventing the components from starting. Confirm the contents of the rtc.conf file "rtc.conf for examples" in the Start Menu. For example, the corba.endpoint/corba.endpoints settings should match the host address of the current computer.
Try creating a minimal rtc.conf, as below.
corba.nameservers: localhost
RTSystemEditor can be started from the Start Menu Folder: [OpenRTM-aist 1.1] > [Tools] > [RTSystemEditor].
Connect to the name server and browse the registered components. You can connect to a name server using the Name Service View on the left side of RTSystemEditor. Click the plug icon to connect to a name server and enter its address (localhost or localhost:2809) in the dialog box. The default port for omniNames and orbd is 2809.
The name server running on localhost will appear in the Name Service View. Open the tree branches by clicking the arrows to find the two components you started.
Open a system editor using the new system editor button in the toolbar . The editor will open in the central pane. Drag the components from the name service view into the editor.
The OutPort of ConsoleIn0 is displayed on its right-hand side . Drag from this to the InPort on the ConsoleOut0 component to connect these data ports. The connection dialog will be displayed. Click "OK" to accept the defaults and connect the components.
A line indicating the connection will appear between the two ports. Next, click the "Activate All" button in the toolbar. This will activate all components in the editor at once. Active components will appear green.
After connecting the ports of ConsoleInComp and ConsoleOutComp, the terminal for ConsoleInComp will display:
Please input number:
Enter a number and press enter. This number should fit within a short int. Look at the ConsoleOutComp terminal. The number you entered should have been printed out. If this is the case, OpenRTM-aist-Java is functioning correctly.
Other sample components are included in the installed OpenRTM-aist-Java. They can all be used in the same way as the above example.
ConsoleInComp.bat | Receive numbers from the console and send them over an OutPort. Connect it to ConsoleOutComp.exe to use. |
ConsoleOutComp.bat | Receive numbers over an InPort and print them in a console. Connect it to ConsoleInComp.exe to use. |
SequenceInComp.bat | A component to output various simple data types (short, long, float, double, and sequences). Connect it to SequenceOutComp.exe to use. |
SequenceOutComp.bat | Display various simple data types received over an InPort. Connect it to SequenceInComp.exe to use. |
MyServiceProviderComp.bat | Provides a simple service, MyService. Connect it to MyServiceConsumerComp.exe to use. |
MyServiceConsumerComp.bat | Consumes a simple service, MyService. Connect it to MyServiceProviderComp.exe to use. |
ConfigSampleComp.bat | Sample demonstrating configuration parameters. Modify the configuration parameters in RTSystemEditor or with rtconf to see the effect. |
Once the install has completed successfully, OpenRTM-aist-Java can be tested using the included sample components. These are typically stored in the following location:
If you built from source, they can also be found in the source directory:
We will use the SimpleIO components to check that OpenRTM-aist-Java has built and installed correctly.
This set contains the ConsoleInComp and ConsoleOutComp components. ConsoleInComp receives numbers as input from the console and sends them over an OutPort. ConsoleOutComp receives numbers via an InPort and prints them to the console. They use this very simple I/O to illustrate the basics of RT Components. Connect the OutPort of ConsoleInComp to the InPort of ConsoleOutComp and activate them.
The explanation below assumes the sample components are in /usr/share/OpenRTM-aist/examples/python.
First, a name server that the components can register on must be started. OpenRTM-aist-Java provides a shell script to start orbd, the Java CORBA naming service. If omniORB was installed as a package in Linux, it will often add the name server as a system service. This can be used instead of orbd. You can check if this is the case on your system using the ps command:
$ ps ax | grep omni 1550 ? Sl 0:00 /usr/bin/omniNames -errlog /var/log/omniorb4-nameserver.log 18418 pts/2 S+ 0:00 grep --color=auto omni
If omniNames is not executing, the command will produce something like this (or no output at all):
$ ps ax | grep omni 18418 pts/2 S+ 0:00 grep --color=auto omni
To start omniNames manually, use the start-orbd.sh command (found in OpenRTM-aist/1.0/examples):
$ sh /home/openrtm/OpenRTM-aist/1.0/examples/start-orbd.sh Starting Java CORBA naming service (orbd).
orbd is a blocking program, not a daemon.
If IPv6 is configured on the system, the host name localhost may not function properly. In that case, replace localhost with 127.0.0.1.
Open a new terminal and start ConsoleInComp.
$ sh /home/openrtm/OpenRTM-aist/1.0/examples/ConsoleInComp Creating a component: "ConsoleIn".... succeed. ================================================= Component Profile ------------------------------------------------- InstanceID: ConsoleIn0 Implementation: ConsoleIn Description: Console input component Version: 1.0 Maker: Noriaki Ando, AIST Category: example Other properties ================================================= ================================================= Port0 (name): ConsoleIn0.out ------------------------------------------------- - properties - port.port_type:DataOutPort dataport.data_type:TimedLong dataport.subscription_type:new, flush, periodic dataport.dataflow_type:push,pull dataport.interface_type:corba_cdr -------------------------------------------------
In the same way, start ConsoleOutComp.
$ sh /home/openrtm/OpenRTM-aist/1.0/examples/ConsoleOutComp Creating a component: "ConsoleOut".... succeed. ================================================= Component Profile ------------------------------------------------- InstanceID: ConsoleOut0 Implementation: ConsoleOut Description: Console output component Version: 1.0 Maker: Noriaki Ando, AIST Category: example Other properties ================================================= ================================================= Port0 (name): ConsoleOut0.in ------------------------------------------------- - properties - port.port_type:DataInPort dataport.data_type:TimedLong dataport.subscription_type:Any dataport.dataflow_type:push,pull dataport.interface_type:corba_cdr -------------------------------------------------
You can use RTSystemEditor to connect the two components and activate them. Download the all-in-one Eclipse package from here and extract it.
RTSystemEditor requires Java Development Kit 7. Install it according to the instructions below, or use an equivalent such as OpenJDK as provided by your distribution. Refer to this page for details on starting RTSystemEditor.
Connect to the name server and browse the registered components. You can connect to a name server using the Name Service View on the left side of RTSystemEditor. Click the plug icon to connect to a name server and enter its address (localhost or localhost:2809) in the dialog box. The default port for omniNames and orbd is 2809.
Drag the RT Components registered on the name server into the system editor. In the name service view, select the ConsoleIn0 and ConsoleOut0 items and drag them into the editor in the middle. Now click and drag between the small boxes at the side of each component, dragging from one component to the other and releasing. The connection dialog will appear. Accept it with all defaults to make a connection between the components.
Click the green "Play" button in the toolbar to activate all components in the system editor.
After connecting the ports of ConsoleInComp and ConsoleOutComp, the terminal for ConsoleInComp will display:
Please input number:
Enter a number and press enter. This number should fit within a short int. Look at the ConsoleOutComp terminal. The number you entered should have been printed out. If this is the case, OpenRTM-aist is functioning correctly.
It can be installed with apt-get.
$ sudo apt-get install openjdk-7-jdk
Confirmation of JDK
$ java -version java version "1.7.0_75" OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1) OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
Here, when the version is displayed for "1.6.0_xx", change it to use JDK 7. This switching is done with the update-alternatives command.
$ sudo update-alternatives --config java alternative java (provides /usr/bin/java) has 2 choices. Option path priority status ------------------------------------------------------------------------------------- * 0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 auto mode 1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode 2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode Press Enter to keep the current selection [*], otherwise press the key of the choice: 2
Add the repository and install oracleJDK7.
$ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-jdk7-installer
Confirmation of JDK
$ java -version java version "1.7.0_76" Java(TM) SE Runtime Environment (build 1.7.0_76-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)
If you also have OpenJDK installed, you can check the selection status below.
$ update-alternatives --config java alternative java (provides /usr/bin/java) has 2 choices. Option path priority status ------------------------------------------------------------------------------------- * 0 /usr/lib/jvm/java-7-oracle/jre/bin/java 1072 auto mode 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 1072 manual mode Press Enter to keep the current selection [*], otherwise press the key of the choice:
For the procedure, refer to Ubuntu 14.04 above. It can be set by the same procedure.
Follow the instructions on the right to install. https://wiki.debian.org/JavaPackage
Add the following sentence to the end of /etc/apt/sources.list.
deb http://http.debian.net/debian/ wheezy main contrib
Install the required java-package to install the JDK.
# apt-get update # apt-get install java-package
Download the JDK (here jdk-7u75-linux-x64.tar.gz) from the oracle site.
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Generate and install the deb package.
$ make-jpkg jdk-7u75-linux-x64.tar.gz $ ls oracle-j2sdk1.7_1.7.0+update75_amd64.deb # dpkg -i oracle-j2sdk1.7_1.7.0+update75_amd64.deb
Select oracleJDK.
# update-alternatives --config java alternative java (provides /usr/bin/java) has 3 choices. Alternative java (provides /usr/bin/java) has 3 choices. Option path priority status ------------------------------------------------------------------------------------- 0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 auto mode 1 /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/java 317 manual mode 2 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode * 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode Press Enter to keep the current selection [*], otherwise press the number of the choice: 1
Confirmation of JDK
$ java -version java version "1.7.0_75" Java(TM) SE Runtime Environment (build 1.7.0_75-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
Add the wheezy repository to the end of /etc/apt/sources.list.
# vi /etc/apt/sources.list deb http://ftp.jp.debian.org/debian/ wheezy main
Since it was added only for the installation of openjdk 7, the priority is the sqeeze version, so create a local file in / etc / apt / apt.conf.d and write the following.
# vi /etc/apt/apt.conf.d/local APT::Default-Release "squeeze";
On the other hand, the priority of the package included in wheezy is kept to a minimum. In the squeeze environment, we want to avoid having to upgrade major libraries unnecessarily.
Create a wheezy file in /etc/apt/preferences.d and write the following.
# vi /etc/apt/preferences.d/wheezy Package: * Pin: release n=wheezy Pin-Priority: 10
For priority, 100 is allocated to the package being installed, 500 is allocated to the package not installed, so specify a value smaller than 100.
# apt-get update # apt-get install -t wheezy openjdk-7-jdk
Select OpenJDK 7.
# update-alternatives --config java alternative java (provides /usr/bin/java) has 3 choices. Option path priority status ------------------------------------------------------------------------------------- * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 1 /usr/bin/gij-4.7 1047 manual mode 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode Press Enter to keep the current selection [*], otherwise press the number of the choice: 3
Confirmation of JDK
# java -version java version "1.7.0_03" OpenJDK Runtime Environment (IcedTea7 2.1.7) (7u3-2.1.7-1) OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)
Debian 6.0 does not support java-package, so install it with update-alternatives.
Download the JDK (here jdk-7u75-linux-x64.tar.gz) from the oracle site.
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Unzip it and move the generated directory jdk1.7.0_75 to /usr/lib.
# tar xvzf jdk-7u75-linux-x64.tar.gz # mv jdk1.7.0_75 /usr/lib/jvm/jdk1.7.0-oracle
Install with the update-alternatives command. At this time, the priority is specified, but here it is 1.
# update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0-oracle/bin/java" 1 # update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0-oracle/bin/javac" 1
Select oracleJDK.
# update-alternatives --config java There are four choices in alternative java (providing /usr/bin/java). Option path priority status ------------------------------------------------------------------------------------- 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 1 /usr/bin/gij-4.7 1047 manual mode 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode * 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode 4 /usr/lib/jvm/jdk1.7.0-oracle/bin/java 1 manual mode Press Enter to hold the current selection [*], otherwise press the number of the choice: 4
Confirmation of JDK
$ java -version java version "1.7.0_75" Java(TM) SE Runtime Environment (build 1.7.0_75-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
It is already installed.
$ java -version java version "1.7.0_75" OpenJDK Runtime Environment (fedora-2.5.4.2.fc20-x86_64 u75-b13) OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
Download the JDK (jdk-7u75-linux-x64.rpm in this case) from the oracle site.
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Installation
# rpm -ivh jdk-7u75-linux-x64.rpm
Confirm installation destination
# ls -l /usr/java/ lrwxrwxrwx. 1 root root 16 3月 17 10:47 default -> /usr/java/latest drwxr-xr-x. 8 root root 4096 3月 17 10:46 jdk1.7.0_75 lrwxrwxrwx. 1 root root 21 3月 17 10:47 latest -> /usr/java/jdk1.7.0_75
Register oracleJDK to alternatives. At this time, if you use the /usr/java/latest path from the installation above, you can see that it does not depend on the JDK version number.
Before registering, check the Java settings.
# update-alternatives --display java java - The status is manual. The link now points to /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java. /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java - Priority item 170075 Slave keytool: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/keytool Slave orbd: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/orbd Slave pack200: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/pack200 Slave rmid: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/rmid Slave rmiregistry: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/rmiregistry Slave servertool: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/servertool Slave tnameserv: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/tnameserv Slave unpack200: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/unpack200 Slave jre_exports: /usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64 Slave jre: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre Slave java.1.gz: /usr/share/man/man1/java-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz Slave keytool.1.gz: /usr/share/man/man1/keytool-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz Slave orbd.1.gz: /usr/share/man/man1/orbd-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz Slave pack200.1.gz: /usr/share/man/man1/pack200-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz Slave rmid.1.gz: /usr/share/man/man1/rmid-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz Slave rmiregistry.1.gz: /usr/share/man/man1/rmiregistry-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz Slave servertool.1.gz: /usr/share/man/man1/servertool-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz Slave tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz Slave unpack200.1.gz: /usr/share/man/man1/unpack200-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
The above result shows that orbd is registered as a slave. When invoking the name server, the path must be passed to orbd. The slave specifies what you want to switch with java installed with update-alternatives - install. Therefore, when registering oracleJDK to alternatives, we also specify with --slave option.
Also, the priority item 170075 is priority. update-alternatives --install Specify the priority when running. Since the version of OpenJDK 7 and orcleJDK 7 is the same this time, we will specify 170075 as the priority when registering oracleJDK 7.
For these reasons, register with the following settings.
# update-alternatives --install /usr/bin/java java /usr/java/latest/bin/java 170075 --slave /usr/bin/javac javac /usr/java/latest/bin/javac --slave /usr/bin/javaws javaws /usr/java/latest/bin/javaws --slave /usr/bin/keytool keytool /usr/java/latest/bin/keytool --slave /usr/bin/orbd orbd /usr/java/latest/bin/orbd --slave /usr/bin/pack200 pack200 /usr/java/latest/bin/pack200 --slave /usr/bin/rmid rmid /usr/java/latest/bin/rmid --slave /usr/bin/rmiregistry rmiregistry /usr/java/latest/bin/rmiregistry --slave /usr/bin/servertool servertool /usr/java/latest/bin/servertool --slave /usr/bin/tnameserv tnameserv /usr/java/latest/bin/tnameserv --slave /usr/bin/unpack200 unpack200 /usr/java/latest/bin/unpack200
Select oracleJDK.
# update-alternatives --config java There are 2 programs and provide 'java'. Selection command ----------------------------------------------- *+ 1 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java 2 /usr/java/latest/bin/java Press Enter to hold the current selection [+] or enter the selection number: 2
Confirmation of JDK
# java -version java version "1.7.0_75" Java(TM) SE Runtime Environment (build 1.7.0_75-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
The characteristics of Eclipse include:
And so on. Judging that these Eclipse features are useful for constructing an integrated development environment for robot, we chose Eclipse as a platform for tools of RT middleware.
To use RTCBuilder and RTSystemEditor you need to install Eclipse. Regarding the installation method of Eclipse,Etc. will be helpful.
After downloading please install according to the instructions of the installer.
JDK installation:
⇒ Java Development Kit 7
reference: → cool! Simple way to apply Oracle's Java (JRE) to Eclipse in a UNIX environment
$ su # vi /etc/apt/source.list This line is added. → deb http://jp.archive.ubuntu.com/ubuntu/ jaunty main restricted # apt-get update # apt-get install xulrunner-1.9 # dpkg -l |grep xulrunner-1.9 ii xulrunner-1.9 1.9.0.8+nobinonly-0ubuntu2 XUL + XPCOM application runner ii xulrunner-1.9.1 1.9.1.7+nobinonly-0ubuntu0.9.10.1 XUL + XPCOM application runner ii xulrunner-1.9.1-gnome-support 1.9.1.7+nobinonly-0ubuntu0.9.10.1 Support for GNOME in xulrunner-1.9.1 applica 1.9.1 and 1.9 live together. # exit $ export GDK_NATIVE_WINDOWS=1 $ ./eclipse
#/bin/sh export GDK_NATIVE_WINDOWS=1 ./eclipse -vmargs -Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.9.1.8/xulrunner
Terminate Eclipse once after installation.
RTCBuilder is a template generator tool for RT Components. It generates custom templates based on user-configured parameters. RTCBuilder operates on top of Eclipse and interacts seamlessly and intuitively with other Eclipse plugins. Although RTCBuilder can be used even if RTSystemEditor is not installed, if it is, RTCBuilder's menus will be integrated with those of RTSystemEditor. This document is written assuming RTSystemEditor is installed.
Function | Overview |
RTC Profile Editor | Edit the RTC specification based profile, data port definitions, service port definitions, configuration parameter definitions, and other profile extensions. |
Build view | Graphically display the RT Component being edited, including its data ports, service ports, service interfaces. |
Repository view | Display information on a selected RT Repository. |
The following must be installed for RTCBuilder to function.
Software | Remarks |
Java Development Kit 6 | Note: Java1.5 (5.0) is not suitable. |
Eclipse version 3.4.2 or above http://www.eclipse.org/downloads/index.php http://archive.eclipse.org/eclipse/downloads/index.php |
Eclipse itself |
Eclipse EMF version 2.2 or above (SDO, XSD included) | Eclipse plugin required by RTC Builder Note: be sure to use versions that match your Eclipse version. |
Eclipse GEF version 3.2 or above (Draw2D included) | Eclipse plugin required by RTC Builder Note: be sure to use versions that match your Eclipse version. |
If you will be generating components for C++ or Python, you will need the following as well:
Software | Remarks |
Eclipse CDT | C++ development environment |
Pydev for Eclipse | Python development environment |
Download the RTCBuilder plugin and copy the jar files into the Eclipse plugin directory. This is a directory called plugin below the'eclipse directory in the location you extracted the Eclipse archive to. Start Eclipse and select [Open Perspective] > [Other] from the Window menu. The perspective selection dialog will be displayed.
Select RTC Builder from the list to open its perspective.
Click the [Open New RTC Builder Editor] button in the toolbar, or select [Open New Builder Editor] from the File menu to begin editing a new component.RTSystemEditor is one of the OpenRTM-aist development tools. It allows RT Components to be manipulated in real-time using a graphical interface. It is implemented as a plugin for the Eclipse IDE, allowing seamless operation from within Eclipse and integration with existing plugins.
The functions offered by RTSystemEditor are given below.
Function | Overview |
Display and edit component configurations | The configuration profiles of the selected component is displayed in the Configuration View, and can be edited there. |
Change component behaviour | Select components and change their behaviour (active state, etc). |
Combine components | Retrieve components from a repository or load them from the file system and combine them together into a system using the System Editor. |
Save and open systems | Save the contents of the System Editor and load it again at a later date. |
Restore systems | Use saved System Editor states to restore a system of connected RT Components. |
The following must be installed for RTSystemEditor to function.
Software | Remarks |
Java Development Kit 6 | Note: Java1.5 (5.0) is not suitable. |
Eclipse 3.4.2 | Eclipse itself |
Eclipse EMF 2.2.4 EMF+SDO Runtime and XSD Runtime | Eclipse plugin required by RT System Editor |
Eclipse GEF 3.2.2 | Eclipse plugin required by RT System Editor |
Because RTSystemEditor is an Eclipse plugin, it requires Eclipse to be installed. Eclipse is written in Java, so it in turn requires a Java environment to be set up before it can be installed (such as the JDK).
Start Eclipse and select Open Perspective->Other from the Window menu. The perspective selection dialog will be displayed.
Select RTSystemEditor from the list to open its perspective.
If RTSystemEditor is not available in the list of perspectives, check that EMF, GEF and XSD are all correctly installed, and that the RTSystemEditor plugin is in the correct directory.
After confirming that RTSystemEditor starts, restart Eclipse using the same workspace. RTSystemEditor should be displayed as it was when you exited Eclipse.
reference:''FAQ:'' How to start EclipseThis page describes the debugging procedure of RTSystemEditor and RTCBuilder.
RTSystemEditor, RTCBuilder will work as eclipse plugin. Please download eclipse from the following site. At that time please select Ultimate Full Edision for package. Standard Edition requires plug-in development environment to be installed manually.
Since you need JRE 1.8 or higher, please obtain and install the latest version of JDK installer from below.
Please check out below from TortoiseSVN etc.
Please execute eclipse.exe.
Set up the JRE to use.
In the JRE path (eg C:\Program Files (x86)\Java\jdk1.8.0_131\jre), Select "Add" → "Standard VM" under "Window" → "Settings" → "Java" → "Installed JRE" and add a check
Since the compiler compliance level may be set to 1.6 in the initial state, please set the compiler compliance level to 1.8 with "Window" → "Setting" → "Java" → "compiler".
RT System Editor, RTC Builder into eclipse of development environment. Select "File" → "Import" → "Plug-in Development" → "Plug-in and Fragment", then press "Next".
Please turn on "Directory" of "Import destination", set the directory where rtmtools was checked out, and proceed to the next.
Please select "Add all" and press the completion button.
Compile the IDL file. In the package explorer, start by right clicking "buildForClient" of jp.go.aist.rtm.toolscommon project and choosing "Execute" → "Ant build".
Double-click "Execution" → "External Tools" → "Configure External Tool" → "Ant Build" and select "Common" tab → "Encode" to Other "MS932" please.
Depending on the environment, the classpath may not be set correctly. In that case, since ClassNotFoundException exception occurs at debugging, please correct all plugin.xml that exists in rtmtools. Double click on plugin.xml in Package Explorer and add "." To "Classpath" from "Runtime" tab. (It can be added to "Bundle-ClassPath" of "MANIFEST.MF")
That's all there is to it.
Debugging starts with "Debug" → "Eclipse application" from the button of the upper bug mark.