Installation on VxWorks

(G)VxWorks

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.

(G)Wind River Workbench

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.

(G)Environment

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

  • tclsh
  • cmake
  • subversion

Please install with the following command.

 sudo apt-get install tclsh cmake subversion

It is necessary only when using ORBexpress.

(G)Build

Build is executed by command line operation. From Workbench, right click on Project Explore and launch the command line shell from Open Development Shell .


command-line.png


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.

(G)Setting environment variables

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}

(G)Build omniORB

When omniORB is used, it is necessary to build omniORB source code. If omniORB is not used, proceed to the next step.

(G)Get source code

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

(G)Correction patch application

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

(G)Build IDL compiler etc.

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 ..

(G)Cross compiling

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.

(G)Build OpenRTM-aist

(G)Obtain source code

Please obtain the source code with the following command.

 svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/

(G)Compilation

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.

(G)Operation check

When the build is completed, please confirm the operation by the following procedure.

Download

latest Releases

For Begginers

Windows msi(installer) package (only trying samples)

C++,Python,Java,
Toolsを含む
1.2.1-RELEASE

Development environment is required for RT-Component development. See download page for details.

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