Build process of OpenRTM-aist(C++) by using CMake

(G)Windows + omniORB

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

(G)Windows + TAO

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

(G)Windows 10 IoT + omniORB

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.



arm1.png


(G)Ubuntu + omniORB

 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

(G)Ubuntu + TAO

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

(G)VxWorks + omniORB

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.

(G)omniORB

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

(G)OpenRTM-aist

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
However, make the following settings for TOOLCHAIN_FILE, VX_VERSION, ORB_ROOT, ARCH.

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

(G)VxWorks + ORBexpress

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)

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK