Install OpenRTM-aist (C++ Version) 1.2

The C ++ language version of OpenRTM-aist comes with installation packages and installers. It can be easily installed on many operating systems and distributions. You can also download the source code and build it for your environment. This section describes how to install and check the operation of the C ++ language version of OpenRTM-aist in each environment.

Install on Windows

Install OpenRTM-aist

The procedure for installing OpenRTM-aist using the MSI installer is described on the following page.

Installation of software required for development

RTC development requires installation of CMake, Doxygen, and Visual Studio.

Visual Studio

It is necessary not only for developing the C ++ version, but also for building the installer when creating the Python version and Java version of the RTC. Install it by downloading from the link, or obtain and install Visual Studio 2010/2012/2013/2015/2017/2019 separately.

Python

Python is used not only for developing the Python language version of RTC, but also for various tools of OpenRTM-aist, so it must be installed. As of November 2020, support is provided for Python 3.6, 3.8, 3.7, 3.9 (released in October 2020), but OpenRTM-aist supports 3.6 to 3.8. We recommend that you install the latest version.

CMake

CMake is required to automatically generate the files required for build (Visual Studio project file, Makefile on Linux, etc.) in various environments such as Windows and Linux. During the installation, you will be asked what to do with system PATH as [Install Options], it is recommended that you select Add CMake to the system PATH for all users. (Our validation is done with this setting)

Doxygen & Graphviz

Doxygen is a tool that automatically generates documents from comments such as source code. Graphviz is a tool required to generate diagrams such as class diagrams when generating documents with Doxygen. In OpenRTM-aist, various design information can be entered in RTCBuilder when designing RTC, and they are output as comments in the source code. By processing this with Doxygen, you can generate a beautiful RTC document.

During the installation, you will be asked what to do with system PATH as [Install Options], it is recommended that you select Add CMake to the system PATH for all users. Download and execute the Windows version binary executable file from the web page.

After installation, run dot -v at the command prompt and check that the plugin information is displayed.

 >dot -v
 dot - graphviz version 2.44.1 (20200629.0846)
 libdir = "C:\Program Files\Graphviz 2.44.1\bin"
 Activated plugin library: gvplugin_dot_layout.dll
 Using layout: dot:dot_layout
 Activated plugin library: gvplugin_core.dll
 Using render: dot:core
 Using device: dot:dot:core
 The plugin configuration file:
        C:\Program Files\Graphviz 2.44.1\bin\config6
                was successfully loaded.
    render      :  cairo dot dot_json fig gdiplus json json0 map mp pic ps svg tk vml xdot xdot_json
    layout      :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device      :  bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gif gv imap imap_np ismap jpe jpeg jpg 
                      json json0 metafile mp pdf pic plain plain-ext png ps ps2 svg tif tiff tk vml xdot xdot1.2 xdot1.4 xdot_json
    loadimage   :  (lib) bmp eps gif jpe jpeg jpg png ps svg

If the following is displayed, open a command prompt as an administrator, execute dot -c and then dot -v, and the above will be displayed.

 >dot -v
 dot - graphviz version 2.44.1 (20200629.0846)
 There is no layout engine support for "dot"
 Perhaps "dot -c" needs to be run (with installer's privileges) to register the plugins?

To open a command prompt as an administrator, type cmd in the Windows 10 search window, right-click Command Prompt in the search results and select Run as administrator.

What the installer does

The installer does the following:

  • Copy various files under the installation directory (C:\Program Files by default)
  • Create OpenRTM-aist folder under start menu and set various shortcuts
  • Set environment variables
    • Settings when using 64-bit MSI
       RTM_BASE=C:\Program Files\OpenRTM-aist\ 
       RTM_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\ 
       RTM_VC_VERSION=//This contains the text that specifies the version of VC according to the user specified Visual Studio
       RTM_JAVA_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\ 
       OMNI_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.3_% RTM_VC_VERSION%\ 
       OpenCV_DIR=C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\ 
       OpenRTM_DIR=C:\Program Files\OpenRTM-aist\1.2.1\cmake\ 
      • Additional setting to PATH (setting when using 64-bit MSI)
         C:\Program Files\OpenRTM-aist\1.2.1\bin\% RTM_VC_VERSION%\ 
         C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.1_% RTM_VC_VERSION%\bin\x86_win32\ 
         C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\% RTM_VC_VERSION%\bin\ 
  • Setting when using 32bit MSI
     RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\ 
     RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.2.1\ 
     RTM_VC_VERSION=// This contains the text that specifies the version of VC according to the user specified Visual Studio
     RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.2.1\ 
     OMNI_ROOT=C:\Program Files\OpenRTM-aist\1.2.1\omniORB\4.2.3_% RTM_VC_VERSION%\ 
     OpenCV_DIR=C:\Program Files\OpenRTM-aist\1.2.1\OpenCV3.4\ 
     OpenRTM_DIR=C:\Program Files\OpenRTM-aist\1.2.1\cmake\ 
      • Additional setting to PATH
         C:\Program Files (x86)\OpenRTM-aist\1.2.1\bin\% RTM_VC_VERSION%\ 
         C:\Program Files (x86)\OpenRTM-aist\1.2.1\omniORB\4.2.3_% RTM_VC_VERSION%\bin\x86_win32\ 
         C:\Program Files (x86)\OpenRTM-aist\1.2.1\OpenCV3.4\x86\% RTM_VC_VERSION%\bin\ 

Files to be installed

The files are installed in the following structure.

 <install_dir>
   + OpenRTM-aist
      + 1.x.x  :Old version run time
      + 1.2.1
         + bin: dll、lib and commands
         + cmake: OpenRTMConfig.cmake
         + coil: coil header files
         + Components
            + C++
               + Examples: C++ sample components
               + OpenCV: OpenCV C++ sample components
            + Java: Java sample components
            + Python: Python sample components
         + etc: rtc.conf sample file
         + jar: jar files
         + jre: OpenJDK JRE
         + omniORB
         + OpenCV3.4
         + rtm: OpenRTM-aist header files
            + ext: files for extension modules
            + idl: OpenRTM-aist IDL files
         + util
            + ExcelControlpy: Python base RTCs for Microsoft Office
            + OpenRTP: RTCBuilder and RTSystemEditor
            + PowerPointControlpy: RTCs for Microsoft Office PowerPoint
            + python_dist: common library files for python base tools
            + RTCDT: A tool to support to develop Python base RTC. 
            + rtc-template: An old tool to provide slimier function as RTCBuilder
            + RTSystemEditor: Files for standalone RTSystemEditor (RCP)
            + VCVerChanger: A tool to specify the version of using Visual Studio
            + WordContrlpy: Python base RTCs for Microsoft Office Word

Install Visual Studio

Install Visual Studio Community 2019

Get installer

Get the installer for Visual Studio Community 2019 from the following page

Click on the [Free Download] button below labeled [Community] to begin downloading the installer.

vs_install1_en.png

Run installer

When the download is completed, open the downloaded file and execute it. Follow the instructions and the following screen will be displayed. Check the box for [Desktop development with C++] and click the [Install] button.

vs_install2_en.png

Confirm installation

vs_install3_en.png
When the installation is completed, a screen prompting you to sign in will be displayed. You can use it for 30 days without signing in. Please refer to the following about the Microsoft account.

How to create a new Microsoft account

Check if C++ compiler is installed

Make sure that the desktop development function by C++ is installed.

There is no problem if you can create a Visual C++ project.

First, click [Create New Project].

vs_install4_en.png

At this time, if there is an
[empty project
start from scratch with C++ for Windows, Provides no starting files.],
there is no problem in installation.

If it is not installed, click
[Install more tools and features] under label Not finding what you're looking for? to launch the installer and install the C++ desktop development feature.

vs_install5_en.png
 

Install on Ubuntu/Debian

ubuntu_logo2.png

The C++ version of OpenRTM-aist provides deb packages that can be used on Ubuntu and Debian GNU Linux. You can check the distribution version of the OS supported by each release on the download page. Please note that supported versions and support for Ubuntu/Debian GNU Linux are subject to change without notice.

Bulk installation script

Download the installation script "pkg_install_ubuntu.sh" or "pkg_install_debian.sh" provided by openrtm.org from the specified URL and execute it with root authority. This script installs necessary packages sequentially using apt-get.

By specifying the option, it is possible to install the packages required for your purpose.

For details on how to download the batch installation script, detailed installation methods, and the types of options that can be specified, see the Bulk Installation Script page.
※If the latest version is "1.2.2", you can install "1.2.1" by option and downgrade from "1.2.2" to "1.2.1".

To install OpenRTM-aist C++ version, download the bulk installation script, move to the download destination directory, and type in:

For Ubuntu

 $ sudo sh pkg_install_ubuntu.sh -l c++ --yes

After getting root privileges with su for Debian

 # sh pkg_install_debian.sh -l c++ --yes

Install OpenRTP

RTCBuilder and RTSystemEditor are used for general RT system development on Ubuntu/Debian environment. In that case, OpenRTP is required. To install OpenRTP using the bulk installation script in Ubuntu, in the directory where pkg_install_ubuntu.sh is located, type in:

$ sudo sh pkg_install_ubuntu.sh -l openrtp --yes

On Debian, get root privileges with su and then type in:

 # sh pkg_install_debian.sh -l openrtp --yes

Install JDK8

To run OpenRTP (RTSystemEditor and RTCBuilder), a Java environment equivalent to JDK8 is required. (In some OS cases, JDK8 is installed in the default environment. On Ubuntu 18.04, JDK11 is installed, so JDK8 must be installed.) For information to obtain and install JDK8, refer to the following.

Confirm installation

Check the installation.

 $ dpkg -l 'openrt *'
 Desired=Unknown/Install/Remove/Purge/Hold
 | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
 |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
 ||/ Name                      Version           Architecture      Description
 +++-=========================-=================-=================-=========================================
 ii  openrtm-aist:amd64        1.2.1-0           amd64             OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm-aist-dev:amd64    1.2.1-0           amd64             OpenRTM-aist headers for development
 ii  openrtm-aist-doc          1.2.1-0           all               Documentation for openrtm-aist
 ii  openrtm-aist-example:amd6 1.2.1-0           amd64             OpenRTM-aist examples
 ii  openrtm-aist-idl:amd64    1.2.1-0           amd64             OpenRTM-aist idls for development
 ii  openrtp:amd64             1.2.1-0           amd64             OpenRTP, Open RT Platform distributed by AIST

Package details

The contents of each package are as follows.

openrtm-aist

openrtm-aist contains runtime libraries and commands.

  • Command
     /usr/bin/fluent-bit
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr /bin/rtm-naming
  • License etc.
     /usr/share/doc/openrtm-aist/README
     /usr/share/doc/openrtm-aist/README.Debian
     /usr/share/doc/openrtm-aist/README.jp
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
     /usr/share/doc/openrtm-aist/changelog.gz
     /usr/share/doc/openrtm-aist/copyright
  • Sample configuration file
     /usr/etc/fluent-bit/fluent-bit.conf
     /usr/etc/fluent-bit/parsers.conf
     /usr/etc/rtc.conf.sample
     /usr/lib/x86_64-linux-gnu/pkgconfig/openrtm-aist.pc
  • Header etc.
     /usr/include/fluent-bit.h
     /usr/include/fluent-bit/flb_api.h
     /usr/include/fluent-bit/flb_bits.h
     ...
     /usr/include/fluent-bit/flb_worker.h
  • Libraries, etc.
     /lib/systemd/system/fluent-bit.service
     /usr/lib/libfluent-bit.so
    • 32bit
       /usr/lib/i386-linux-gnu/libRTC-1.2.1.so
       /usr/lib/i386-linux-gnu/libRTC.a
       ...
       /usr/lib/i386-linux-gnu/librtmManipulator.so.0.0.0
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/FileNameservice.la
       /usr/lib/i386-linux-gnu/openrtm-1.2/ec/FileNameservice.so
       ...
        /usr/lib/i386-linux-gnu/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
       /usr/lib/i386-linux-gnu/openrtm-1.2/logger/FluentBit.la
       ...
       /usr/lib/i386-linux-gnu/openrtm-1.2/logger/FluentBit.so.0.0.0
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
       ...
       /usr/lib/i386-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
       /usr/lib/i386-linux-gnu/libRTC-X.X.X.so
       /usr/lib/i386-linux-gnu/libRTC.a
       ...
       /usr/lib/i386-linux-gnu/librtmManipulator.so.X.X.X
  • 64 bit
     /usr/lib/x86_64-linux-gnu/libRTC-1.2.1.so
     /usr/lib/x86_64-linux-gnu/libRTC.a
     ...
     /usr/lib/x86_64-linux-gnu/librtmManipulator.so.0.0.0
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.la
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/FileNameservice.so
     ...
      /usr/lib/x86_64-linux-gnu/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/logger/FluentBit.la
     ...
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/logger/FluentBit.so.0.0.0
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.a
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.la
     ...
     /usr/lib/x86_64-linux-gnu/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
     /usr/lib/x86_64-linux-gnu/libRTC-X.X.X.so
     /usr/lib/x86_64-linux-gnu/libRTC.a
     ...
     /usr/lib/x86_64-linux-gnu/librtmManipulator.so.X.X.X

openrtm-aist-dev

openrtm-aist-dev contains commands and headers necessary for development.

  • Command
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • License etc.
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-a
     
  • Header files
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     ...
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     ...
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterfaceDynSK.cc
     ...
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     ...
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataTypeDynSK.cc
     ...
     /usr/include/openrtm-1.2/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     ...
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     ...
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     ...
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     ...
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
  • Libraries and others
    • 32bit
       /usr/lib/i386-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helper/README_gen.py
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helpver/cxx_gen.py
       ...
       /usr/lib/i386-linux-gnu/openrtm-1.2/py_helpver/yat.py
       /usr/lib/i386-linux-gnu/pkgconfig/libcoil.pc
       
    • 64bit
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/README_gen.py
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/cxx_gen.py
       ...
       /usr/lib/x86_64-linux-gnu/openrtm-1.2/py_helper/yat.py
       /usr/lib/x86_64-linux-gnu/pkgconfig/libcoil.pc

openrtm-aist-example

openrtm-aist-example includes sample stand alone RTCs, sample loadable RTCs, and the source code.

  • Sample (Stand alone RTC)
     /usr/share/openrtm-1.2/components/c++/examples/Composite
     /usr/share/openrtm-1.2/components/c++/examples/ConfigSampleComp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/rtc.conf
  • Sample (Loadable RTC)
     /usr/share/openrtm-1.2/Components/C++/examples/rtc/ConfigSample.a
     /usr/share/openrtm-1.2/Components/C++/examples/rtc/ConfigSample.la
     ...
     /usr/share/openrtm-1.2/Components/C++/examples/rtc/Throughput.so.X.X.X
  • Sample (Source code)
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Composite.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Controller.cpp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/ConfigSample.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/ConfigSample.h
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/ConnectorComp.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/ConsoleIn.cpp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/Makefile.SeqIn
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/Makefile.SeqOut
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/ConnectorComp.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/ConsoleIn.cpp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/Makefile.MyServiceConsumer
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/Makefile.MyServiceProvider 
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/CMakeLists.txt
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/Throughput.cpp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/templates/AIO.xml
     /usr/share/openrtm-1.2/components/c++/examples/templates/ActArray.xml
     ... 
     /usr/share/openrtm-1.2/components/c++/examples/templates/VelocityControl3D.xml
  • License etc.
     /usr/share/doc/openrtm-aist-example/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-example/changelog.gz
     /usr/share/doc/openrtm-aist-example/copyright

openrtm-aist-doc

openrtm-aist-doc includes Japanese/English class reference, IDL interface definition files.

  • Class Reference (Japanese)
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/Affinity_8h.html
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/Affinity_8h_dep_incl.map
     ...
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/version_8h_source.html
  • IDL Reference (Japanese)
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl_dep_incl.map
     ...
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • Class Reference (English)
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/Affinity_8h.html
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/Affinity_8h_dep_incl.map
     ...
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/version_8h_source.html
  • IDL Reference (English)
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl_dep_incl.map
     ...
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html
  • License etc.
     /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-doc/changelog.gz
     /usr/share/doc/openrtm-aist-doc/copyright

openrtm-aist-idl

  • idl files etc.
     /etc/profile.d/openrtm-aist-idl.sh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-1.2/rtm/idl/CameraCommonInterface.idl
     ...
     /usr/include/openrtm-1.2/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-1.2/idl/BasicDataType.idl
     /usr/share/openrtm-1.2/idl/CameraCommonInterface.idl
     ...
     /usr/share/openrtm-1.2/idl/SharedMemory.idl
  • Lincense etc.
     /usr/share/doc/openrtm-aist-idl/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-idl/changelog.gz
     /usr/share/doc/openrtm-aist-idl/copyright

openrtp

In openrtp installation, since so many files are installed, the listing is not made. Depend on your needs, use the following command.

 $ dpkg -L openrtp

Install on Raspbian

 margin = 10

OpenRTM-aist for C ++ is provided with deb packages for Raspbianl for Raspberry Pi. Please note that support for Raspbian and its versions are subject to change or suspension without notice.

Supported version

The version of Raspbian for which packages are currently available is
  • Buster

SD card preparation

Download OS Image

Download the Rasbian image (the image ”Raspbian Buster with desktop and recommended software” is recommended but you can select another image if necessary) from the link below, unzip and write to SD card. The capacity of the SD card should be more than 4GB.

Write to SD card

Please refer to RPi Easy SD Card Setup for how to write to SD card. The link shows several options. Here's an overview of some of them:

For Windows

Using Windows is relatively easier than using Linux or Mac OS. Then if you are a beginner, using Windows is recommended.

For Linux and Mac OS

  • Write using the dd command as follows.

 $ sudo dd of=/dev/<device file of SD card> if=<image file downloaded and decompressed> bs=4M status=progress
 $ sudo sync

Writing to an SD card with the above command requires a fairly long time. (Several minutes to ten several minutes). To find the device file name of the SD card, type in:

 $ df -h

And find out which device is the SD card from the displayed device size. For example, if you are using a 16GB SD card that currently has Rasbian installed, one device will appear as a 14GB device and that device will appear as /dev/sdf7. Other devices that differ only in the last number, such as /dev/sdf5 and /dev/sdf6, are displayed too. These are the device names used for the SD card. Umount all of these devices as follows:

 $ umount /dev/sdf5
 $ umount /dev/sdf6
 $ umount /dev/sdf7

After that, execute the above dd command. The device file name in the case is /dev/sdf.

Install OpenRTM-aist (C++)

There are two installation methods.
  • Use the bulk installation script provided by openrtm.org
  • Use apt-get or synaptic package manager

How to use the bulk installation script

Download the installation script "pkg_install_raspbian.sh" provided by openrtm.org from the download page and execute it with root privileges. This script installs necessary packages sequentially with apt-get.

It is very convenient because it installs all the packages required to develop and execute OpenRTM-aist. Recommended for those who install OpenRTM-aist for the first time.

After downloading the bulk installation script, with root privilege go to the downloaded directory and type in:

 $ sudo sh pkg_install_raspbian.sh -l c ++ --yes

For details on how to download the batch installation script, detailed installation methods, and the types of options that can be specified, refer to the Bulk installation script page.

How to use apt-get

Edit source.list

openrtm.org provides a package repository that can be used from apt-get. However, it is not included in the default package repository, so you need to change the settings of apt-get. To do so, edit /etc/apt/sources.list and add the following line:

 deb http://www.openrtm.org/pub/Linux/raspbian/ buster main

Installation with apt-get

Follow the steps below to install. On the way, you will be asked for some responses, so please complete while typing 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 the installed version of OpenRTM-aist as a specific version, edit /etc/apt/preferences and add the following line. (In this example, the version is fixed to 1.1 series.)

 Package: OpenRTM-aist  Pin: version 1.1. *

For more information http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.ja.html#s-pin Please refer to.

Install rtshell

Since rtshell is a set of python programs, then you need to install OpenRTM-ais-Python to use rtshell. Then please follow the instruction Install on Raspbian page under "Install OpenRTM-aist (Python Version) 1.2".

Confirm installation

To check the installation:

 $ dpkg -l 'openrt *'
 Desired=Unknown/Install/Remove/Purge/Hold
 | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
 |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
 ||/ Name                      Version           Architecture      Description
 +++-=========================-=================-=================-=========================================
 ii  openrtm-aist:amd64        1.2.1-0           amd64             OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm-aist-dev:amd64    1.2.1-0           amd64             OpenRTM-aist headers for development
 ii  openrtm-aist-doc          1.2.1-0           all               Documentation for openrtm-aist
 ii  openrtm-aist-example:amd6 1.2.1-0           amd64             OpenRTM-aist examples
 ii  openrtm-aist-idl:amd64    1.2.1-0           amd64             OpenRTM-aist idls for development
 ii  openrtp:amd64             1.2.1-0           amd64             OpenRTP, Open RT Platform distributed by AIST

The package details

Each package contains the following.

openrtm-aist

openrtm-aist includes commands and run-time libraries.

  • Commands
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
  • Lincense etc.
     /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/copyright
     /usr/share/doc/openrtm-aist/changelog.Debian.gz
  • Configuration sample files
     /usr/etc/rtc.conf.sample
     /usr/lib/arm-linux-gnueabihf/pkgconfig/openrtm-aist.pc
     /usr/etc/fluent-bit/fluent-bit.conf
     /usr/etc/fluent-bit/parsers.conf
  • Libraries
     /usr/lib/arm-linux-gnueabihf/libRTC-1.2.1.so
     /usr/lib/arm-linux-gnueabihf/libRTC.a
     ...
     /usr/lib/arm-linux-gnueabihf/librtmManipulator.so.0.0.0
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/ec/FileNameservice.la
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/ec/FileNameservice.so
     ...
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/logger/FluentBit.la
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/logger/FluentBit.so
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/logger/FluentBit.so.0
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/logger/FluentBit.so.0.0.0
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/sdo/LoggerConsumer.a
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/sdo/LoggerConsumer.la
     ...
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
     /usr/lib/libfluent-bit.so
  • Header files
     /usr/include/fluent-bit/flb_api.h
     /usr/include/fluent-bit/flb_bits.h
     ...
     /usr/include/fluent-bit/flb_worker.h
     /usr/include/fluent-bit.h

openrtm-aist-dev

openrtm-aist-dev includes commands and header files that are required for RT system development.

  • Commands
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • Lincense etc.
     /usr/share/doc/README
     /usr/share/doc/README.Debian
     /usr/share/doc/README.jp
     /usr/share/doc/openrtm-aist-dev/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-dev/changelog.gz
     /usr/share/doc/openrtm-aist-dev/copyright
  • Header files
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     ...
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     ...
     /usr/include/openrtm-1.2/rtm/config_rtc.h
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterfaceDynSK.cc
     ...
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     ...
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataTypeDynSK.cc
     ...
     /usr/include/openrtm-1.2/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-1.2/rtm/version.h
     /usr/include/openrtm-1.2/rtm/version.txt
  • Libraries and others
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/cmake/OpenRTMConfig.cmake
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/py_helper/README_gen.py
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/py_helpver/cxx_gen.py
     ...
     /usr/lib/arm-linux-gnueabihf/openrtm-1.2/py_helpver/yat.py
     /usr/lib/arm-linux-gnueabihf/pkgconfig/libcoil.pc

openrtm-aist-idl

  • Script file
     /etc/profile.d/openrtm-aist-idl.sh
  • Lincense etc.
     /usr/share/doc/openrtm-aist-idl/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-idl/changelog.gz
     /usr/share/doc/openrtm-aist-idl/copyright
  • idl files
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-1.2/rtm/idl/CameraCommonInterface.idl
     ...
     /usr/include/openrtm-1.2/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-1.2/idl/BasicDataType.idl
     /usr/share/openrtm-1.2/idl/CameraCommonInterface.idl
     /usr/share/openrtm-1.2/idl/DataPort.idl
     ...
     /usr/share/openrtm-1.2/idl/SharedMemory.idl

openrtm-aist-example

openrtm-aist-example includes sample stand-alone RTCs, sample loadable RTCs, and the source code.

  • Sample (stand-alone RTC)
     /usr/share/openrtm-1.2/components/c++/examples/ConsoleOutComp
     /usr/share/openrtm-1.2/components/c++/examples/ConsoleInComp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/consout.conf
     /usr/share/openrtm-1.2/components/c++/examples/rtc.composite.linux.conf
     /usr/share/openrtm-1.2/components/c++/examples/rtc.conf
  • Sample (source code)
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/README.Motor
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Makefile.Sensor
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Motor.cpp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/rtc.conf
     /usr/share/openrtm-1.2/Components/c++/examples/src/Throughput/run.sh
     /usr/share/openrtm-1.2/Componnets/c++/examples/templates/AIO.xml
     /usr/share/openrtm-1.2/Components/c++/examples/templates/ActArray.xml
     ...
     /usr/share/openrtm-1.2/Components/c++/examples/templates/VelocityControl3D.xml
     
  • Sample (loadable RTC)
     /usr/share/openrtm-1.2/components/c++/examples/rtc/ConfigSample.a
     /usr/share/openrtm-1.2/components/c++/examples/rtc/ConfigSample.la
     ...
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Throughput.so.X.X.X
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Cofig.sample.so
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Cofig.sample.so.X
     ...
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Troughput.so.X
  • Lincense etc.
     /usr/share/doc/openrtm-aist-example/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-example/changelog.gz
     /usr/share/doc/openrtm-aist-example/copyright

openrtm-aist-idl

  • idl file etc.
     /etc/profile.d/openrtm-aist-idl.sh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-1.2/rtm/idl/CameraCommonInterface.idl
     ...
     /usr/include/openrtm-1.2/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-1.2/idl/BasicDataType.idl
     /usr/share/openrtm-1.2/idl/CameraCommonInterface.idl
     ...
     /usr/share/openrtm-1.2/idl/SharedMemory.idl
  • License etc.
     /usr/share/doc/openrtm-aist-idl/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-idl/changelog.gz
     /usr/share/doc/openrtm-aist-idl/copyright

openrtm-aist-doc

openrtm-aist-doc include the Japanese/English class reference and IDL interface definition reference.

  • Class Reference (Japanese)
     /usr/share/openrtm-1.2/doc/c++/ClassReference/html/Affinity_8h.html
     /usr/share/openrtm-1.2/doc/c++/ClassReference/html/Affinity_8h__dep__incl.dot
     ...
     /usr/share/openrtm-1.2/doc/c++/ClassReference/html/version_8h_source.html
  • IDL Reference (Japanes)
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl__dep__incl.dot
     ...
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • Class Reference (English)
     /usr/share/openrtm-1.2/doc/c++/ClassReference-en/html/Affinity_8h.html
     /usr/share/openrtm-1.2/doc/c++/ClassReference-en/html/Affinity_8h__dep__incl.dot
     ...
     /usr/share/openrtm-1.2/doc/c++/ClassReference-en/html/version_8h_source.html
  • IDL Reference (English)
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.dot
     ...
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html
  • Lincesne etc.
     /usr/share/doc/openrtm-aist-doc/changelog.Debian.gz
     /usr/share/doc/openrtm-aist-doc/changelog.gz
     /usr/share/doc/openrtm-aist-doc/copyright

Install on Fedora

Currently, OpenRTM-aist 1.2 is not fully compatible with Fedora. Therefore, use the information on this page as reference information only.

OpenRTM-aist for C++ is provided with an RPM package that can be used on Fedora Linux. The supported Fedora Linux versions can be checked from the download page. Please note that support for Fedora Linux and its versions are subject to change or suspension without notice.

There are two main types of installation methods for Fedora Linux.
  • Use the bulk installation script provided by openrtm.org
  • Use yum package manager

Bulk installation script

Download the installation script "pkg_install_fedora.sh" provided by openrtm.org from the download page and execute it with root privileges. This script installs necessary packages sequentially using yum.

It is very convenient because it installs all the packages required to develop and execute OpenRTM-aist. By specifying the option, you can install the package according to the purpose, so it is recommended for those who install OpenRTM-aist for the first time and those who compile the source.

After downloading the bulk installation script, move to the download destination directory, type in:

 $ sudo sh pkg_install_fedora.sh -l c++ --yes

Please refer to the Bulk installation script page for information on downloading the bulk installation script, detailed installation methods, and types of options that can be specified.

Install OpenRTP

RTCBuilder and RTSystemEditor are used for general Fedora environment development. In that case, OpenRTP is required. Please install OpenRTP using a bulk installation script. In Fedora, at the directory where pkg_install_fedora.sh is located, type in:

 $ sudo sh pkg_install_fedora.sh -l openrtp --yes

Install JDK8

To run OpenRTP (RTSystemEditor and RTCBuilder), a Java environment equivalent to JDK8 is required. At present, in the Fedora environment, the bulk installation script installs OpenJDK8 from the Fedora rpm repository. If you want to install another JDK8, please refer to the link below.

Using yum

Create /etc/yum.repos.d/openrtm.repo

openrtm.org provides a package repository available from yum. However, it is not included in the default package repository, so you need to change the setting of yum.

Create a file /etc/yum.repos.d/openrtm.repo that contains the following settings. The creation usually requires root privileges.

 [openrtm]
 name=Fedora $releasever - $basearch
 failovermethod=priority
 baseurl=http://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
/etc/yum.repos.d/openrtm.repo

Installation by yum

After creating openrtm.repo, install it according to the following procedure. On the way, you will be asked for some responses, so complete by typing y.

 $ sudo yum install gcc-c++ python
 $ sudo yum install omniORB omniORB-devel omniORB-doc omniORB-servers omniORB-utils
 $ sudo yum install OpenRTM-aist OpenRTM-aist-devel OpenRTM-aist-doc OpenRTM-aist-example OpenRTP

Confirm installation

Finally, confirm the installation with the following command.

 $ rpm -qa|grep OpenRT*
 OpenRTM-aist-1.2.0-0.fc29.x86_64
 OpenRTM-aist-devel-1.2.0-0.fc29.x86_64
 OpenRTM-aist-example-1.2.0-0.fc29.x86_64
 OpenRTM-aist-doc-1.2.0-0.fc29.x86_64
 OpenRTP-1.2.0-1.fc29.x86_64 

Package details

The contents of each package are as follows (for 64-bit Fedora)

OpenRTM-aist

openrtm-aist includes run-time libraries and commands.

  • Sample configuration file
     /etc/rtc.conf.sample
  • Commands
     /usr/bin/rtcd
     /usr/bin/rtcprof
     /usr/bin/rtm-config
     /usr/bin/rtm-naming
  • Libraries
     /usr/lib64/libRTC-1.2.0.so
     /usr/lib64/libRTC.a
     /usr/lib64/libRTC.la
     ...
     /usr/lib64/librtmManipulator.so.0.0.0
     /usr/lib64/openrtm-1.2/ec/FileNameservice.la
     /usr/lib64/openrtm-1.2/ec/FileNameservice.so
     ...
     /usr/lib64/openrtm-1.2/ec/RTPreemptEC.so.0.0.0
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.a
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.la
     ...
     /usr/lib64/openrtm-1.2/sdo/LoggerConsumer.so.0.0.0
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.la
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so.0
     /usr/lib64/openrtm-1.2/ssl/SSLTransport.so.0.0.0

OpenRTM-aist-devel

openrtm-aist-dev includes commands and header files that are used for RT system development.

  • Commands
     /usr/bin/coil-config
     /usr/bin/rtc-template
     /usr/bin/rtm-skelwrapper
  • Header Files
     /usr/include/coil-1.2/coil/Affinity.h
     /usr/include/coil-1.2/coil/Allocator.h
     ...
     /usr/include/coil-1.2/coil/stringutil.h
     /usr/include/openrtm-1.2/rtm/BufferBase.h
     /usr/include/openrtm-1.2/rtm/BufferStatus.h
     ...
     /usr/include/openrtm-1.2/rtm/version.txt
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.hh
     /usr/include/openrtm-1.2/rtm/ext/CameraCommonInterface.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/ManipulatorCommonInterface_MiddleStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/ArtExecutionContext.h
     /usr/include/openrtm-1.2/rtm/ext/ec/artlinux/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredEC.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/LogicalTimeTriggeredECStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/RTPreemptEC.h
     /usr/include/openrtm-1.2/rtm/ext/ec/rtpreempt/rtc.conf.sample
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file
     /usr/include/openrtm-1.2/rtm/ext/local_service/nameservice_file/FileNameservice.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/FluentBit.h
     /usr/include/openrtm-1.2/rtm/ext/logger/fluentbit_stream/fluentbit.conf
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/Logger.idl
     ...
     /usr/include/openrtm-1.2/rtm/ext/sdo/logger/LoggerStub.h
  • IDL files and stab skeleton files
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverConsumer.h
     ...
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/ComponentObserverStub.h
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.hh
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredEC.idl
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/ec/logical_time/idl/LogicalTimeTriggeredECSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.hh
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserver.idl
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverDynSK.cc
     /usr/include/openrtm-1.2/rtm/ext/sdo/observer/idl/ComponentObserverSK.cc
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-1.2/rtm/idl/BasicDataType.idl
     ...
     /usr/include/openrtm-1.2/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/AIO.idl
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/ActArray.idl
     ...
     /usr/include/openrtm-1.2/rtm/idl/device_interfaces/Ranger.idl
     
  • Libraries etc.
     /usr/lib64/openrtm-1.2/cmake/OpenRTMConfig.cmake
     /usr/lib64/openrtm-1.2/py_helper/README_gen.py
     /usr/lib64/openrtm-1.2/py_helper/cxx_gen.py
     ...
     /usr/lib64/openrtm-1.2/py_helper/yat.py
     /usr/lib64/pkgconfig/libcoil.pc
     /usr/lib64/pkgconfig/openrtm-aist.pc

OpenRTM-aist-doc

openrtm-aist-doc includes Japanese/English class references and IDL references.

  • Class references
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/Affinity-8h.html
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/Affinity_8h__dep__incl.map
     ...
     /usr/share/openrtm-1.2/doc/C++/ClassReference/html/version_8h_source.html
  • IDL references
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/BasicDataType_8idl__dep__incl.map
     ...
     /usr/share/openrtm-1.2/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • Class references (English)
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/Affinity-8h.html
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/Affinity_8h__dep__incl.map
     ...
     /usr/share/openrtm-1.2/doc/C++/ClassReference-en/html/version_8h_source.html
  • IDL references (English)
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.map
     ...
     /usr/share/openrtm-1.2/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html

OpenRTM-aist-example

openrtm-aist-example inclues sample stand-alone RTCs, loadable RTCs and the source code.

  • Sample stand-alone RTCs
     /usr/share/openrtm-1.2/components/c++/examples/Composite
     /usr/share/openrtm-1.2/components/c++/examples/ConfigSampleComp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/ThroughputComp
     /usr/share/openrtm-1.2/components/c++/examples/component.conf
     /usr/share/openrtm-1.2/components/c++/examples/composite.conf
     ...
     /usr/share/openrtm-1.2/components/c++/examples/rtc.conf
  • Sample loadable RTCs
     /usr/share/openrtm-1.2/components/c++/examples/rtc/ConfigSample.a
     /usr/share/openrtm-1.2/components/c++/examples/rtc/ConfigSample.la
     /usr/share/openrtm-1.2/components/c++/examples/rtc/Throughput.so.0.0.0
  • Source code
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Composite.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/Controller.cpp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/Composite/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/ConfigSample.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/ConfigSample.h
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/ConfigSample/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/ConnectorComp.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/ConsoleIn.cpp
     ...k
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/ExtTrigger/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/Makefile.SeqIn
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/Makefile.SeqOut
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/SeqIO/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/ConnectorComp.cpp
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/ConsoleIn.cpp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleIO/run.sh
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/Makefile.MyServiceConsumer
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/Makefile.MyServiceProvider 
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/SimpleService/rtc.conf
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/CMakeLists.txt
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/Throughput.cpp
     ...
     /usr/share/openrtm-1.2/components/c++/examples/src/Throughput/run.sh
  • Templates
     /usr/share/openrtm-1.2/components/c++/examples/templates/AIO.xml
     /usr/share/openrtm-1.2/components/c++/examples/templates/ActArray.xml
     ...
     /usr/share/openrtm-1.2/components/c++/examples/templates/VelocityControl3D.xml

OpenRTP

Installing OpenRtp installs too many files to show here. If you want to know the files, type in:

 $ rpm -ql  OpenRTP

Operation Check (On Windows)

Location of sample components

After successful installation or build, test the operation with the included sample. The sample is usually at the following location for the 64-bit version.

  • c:\Program Files\OpenRTM-aist\1.2.x\Components\C ++\Examples
  • OpenRTM-aist\examples (when building from source)

Use the following procedure to check that OpenRTM-aist is correctly built/installed using the sample component set SimpleIO.

Operation check using sample (SimpleIO)

This is a sample set consisting of the RT-Components ConsoleIn and ConsoleOut. ConsoleIn is a component that outputs the numerical value input from the console to the OutPort, and ConsoleOutComp is a component that displays the numerical value input from the InPort on the console. These are RTC samples to show a simple I/O (input/output) use. It works by connecting the OutPort of ConsoleIn's OutPort to the InPort of ConsoleOut's InPort and activating these two components.

The following explanation assumes that various programs are started from the start menu in an environment where OpenRTM-aist is installed with the MSI installer.

Start RTSystemEditor and name server

Follow the steps below to start the RTSystemEditor and the name server.

Start sample component

After starting the name server, start the appropriate sample component.

For Windows 10, type "C++_Examples" in the bottom right corner [Tyepe here to search], find the directory for the examples and open it.

rtm7_en.png
Confirm name server startup

rtm8_en.png
Sample component directory

Here, double-click "ConsoleIn.bat" and "ConsoleOut.bat" respectively to start two components.

Warning from Windows Defender

When trying to launch the sample component, Windows Defender Firewall may display a Windows Security Alert dialog. Check [Private network (home network, company network, etc.) (R)] and uncheck [Public network (airport, coffee shop, etc.) (not recommended) (U)] and then click [Allow access (A)]. This screen may be different from Windows 10 (build 1903), and may not be displayed depending on the settings. If it is displayed, make the same settings and close the dialog.

  • Double-click "ConsoleIn.bat" and "ConsoleOut.bat" respectively to start two components. A few seconds after startup, two console screens as shown below will open.

Screen after starting sample component

A few seconds after startup, two console screens as shown below will open.

rtm9.png
ConsoleIn and ConsoleOut components

If the component does not start

If a component does not start, there are several possible causes.

Console screen opens and disappears immediately

If the environment variables RTM_VC_VERSION , OMNI_ROOT and RTM_ROOT are not set, the RTC will fail to start. When installing with the MSI installer, restarting the OS may solve the problem.

Also, there may be a case where there is a problem with the setting of rtc.conf and it cannot be started. Open [rtc.conf] in VCxx (VC14 when using Visual Studio 2019) under the folder searched using `` C ++ _ Example '' above and check the settings. For example, if the settings such as corba.endpoint/corba.endpoints are mismatched with the IP address of the currently running PC host, CORBA will terminate abnormally.

Please rewrite rtc.conf with the following contents (minimum setting) and try.

 corba.nameservers: localhost

Exit with a runtime error
Runtime errors may occur due to improperly installed or configured libraries, etc. In that case, please try the following method.
  • Try restarting
  • Uninstalling all of OpenRTM-aist and installing it again may improve the situation.

Place the components on the system diagram

  • Click [>] next to [localhost] in the tree view of the RTSystemEditor, and click [>] next to the icon_db.png icon. You may see the two components icons in the above step.
    rtm10.png
    ConsoleIn and ConsoleOut components

Open the System Editor screen (System Diagram) for editing the system. Click the [Open New System Editor] button icon_open_editor_ja.png at the top to open the system editor (System Diagram) in the center pane. From the name service view on the left, drag and drop the components (two) indicated by the icon-rtce.png icon onto the system diagram view in the center.

rtm11_en.png
Place component in editor

Connection and activation

You can see an OutPort rtse_outport_icon.png where data is output to and is shown on the right side of the ConsoleIn0 component and an InPort rtse_inport_icon.png where data is input from and is shown on the left side of the ConsoleOut0 component like the following figure.

rtm13.png
Data port connection

Connect the InPort and the OutPort (these are called "data port"). If you drag and drop from the OutPort to the InPort (or from the InPort to the OutPort), a dialog as shown below appears. Click the [OK] button with the default settings.

rtm12_en.png
Data port connection dialog

A connecting line appears between the two components. Next, click the [All Activate] button rtm14.png in the top menu of the editor to activate these components. When activated, the component turns green.

rtm15.png
Activated component

When the component is activated, the ConsoleIn component will display on the console

 Please input number:

The prompt is displayed. Enter an appropriate number (within the range of short int: 32767 or less) and press the Enter key. Then, the entered value is displayed on the ConsoleOut side console screen. You can see that the data has been transferred from the ConsoleIn component to the ConsoleOut component.

This is the end of the basic operation check of the component.

Other samples

The installer also comes with some sample components. These components can also be tested by double-clicking on them, then connecting and activating the ports using RTSystemEditor.

Below are a list and a brief description of the attached component startup batch files.

ConsoleIn.bat Launch ConsoleIn component which outputs the numerical value input from console to OutPort. Used by connecting to ConsoleOut.
ConsoleOut.bat Launch ConsoleOut component which displays the numerical value entered in InPort on the console. Used by connecting to ConsoleIn.
SeqIn.bat Invokes SequenceIn component which outputs random numbers (Short, Long, Float, Double and their sequence types). Used by connecting to SequenceOutComponent.
SeqOut.bat Invokes SequenceOut component which displays the numbers (Short, Long, Float, Double and their sequence type) input to InPort. Used by connecting to SequenceInComponent.
MyServiceProviderComp.bat Launch MyServiceProvider componennt that provides a service of type MyService. Use by connecting to MyServiceConsumer.
MyServiceConsumerComp.bat Start the MyServiceConsumer component that provides a service of type MyService. Use by connecting to MyServiceProvider.
ConfigSample.bat Launch sample ConfigSample component. This is a sample to understand the behavior of Configuration by changing Configuration from RtcLink.
Composite.bat Launch the composite component creation sample PeriodicECSharedComponent component. It combines three sub-components: Sensor, Controller and Motor. Used with components such as ConsoleIn

Operation Check (On Linux)

After successful installation, test the operation with the attached sample. Samples are usually located at:
  • /usr/share/openrtm-1.2/components/c++/examples
If you build from source,
  • <source_dir>/OpenRTM-aist/examples/<sample component set name>

Using a sample component set SimpleIO, you can check if the install/build is made correctly. If you built OpenRTM-aist from the source code, the executable file of the components should be placed under the directory of this component set name, but if you installed it by using the bulk installation script, SimpleIO components are placed with the other components in the "example" directory. In the case of the script based installation, understand that SimpleIO set means two components ConsoleInComp and ConsoleOutComp.

Sample component set SimpleIO

This is a sample set consisting of the RT components ConsoleInComp and ConsoleOutComp. ConsoleInComp is a component that outputs numerical values ​​input from the console through OutPort, and ConsoleOutComp is a component that displays numerical values ​​input into InPort on the console. These are samples to illustrate the simplest I/O (input/output). It works by configuring a connection from ConsoleInComp's OutPort to ConsoleOutComp's InPort and activating these two components.

For the sake of simplicity, the examples are described below as being under /usr/share/openrtm-1.2/components/c++/examples.

Testing with samples

RTSystemEditor, start name server

Follow the steps below to start the RTSystemEditor and name server.

Launch ConsoleInComp

  • Start Terminal and start ConsoleInComp.  $ /usr/share/openrtm-1.2/components/c++/examples/ConsoleInComp

If you build and install it yourself,  $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleInComp

Launching ConsoleOutComp

  • Start another terminal and start ConsoleOutComp.  $ /usr/share/openrtm-1.2/components/c++/examples/ConsoleOutComp

If you build/install yourself,  $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleOutComp

Placement on the editor screen

  • Click [>] next to [local host] in the tree view of the RTSystemEditor, and click [>] next to the icon icon_db.png, and the two components started earlier will be registered. You can see
    rtm10l.png
    ConsoleIn and ConsoleOut components
  • Open the editor for editing the system. Click the [Open New System Editor] button icon_open_editor.png at the top to display the editor screen in the center pane.
  • Drag and drop the 2 components indicated by the icon-rtce.png icon in the name service view on the left to the editor screen in the center.
    rtm11l_en.png
    Place component in editor

Connection and activation

  • There are OutPort rtse_outport_icon.png where data is output to the right of ConsoleIn0 component and InPort & ref(rtse_inport_icon.png); where data is input to the left of ConsoleOut0 component. Connect these InPort/OutPort (collectively called data ports).
    rtm13l.png
    Data port connection
  • If you drag and drop from OutPort to InPort (or from InPort to OutPort), a dialog as shown below appears. Click the [OK] button with the default settings.
    rtm12l_en.png
    Data port connection dialog
  • A connecting line appears between the two components. Next, click the [All Activate] button rtm14.png in the top menu of the editor to activate these components. When activated, the component turns green.
    rtm15l.png
    Activated component
  • When the components are activated, on the ConsoleIn component side console, the following prompt should be displayed:  Please input number:
  • Enter an appropriate number (within the range of short int: 32767 or less) and press the Enter key.
  • Then, on the ConsoleOut side, the entered numerical value is displayed, and you can see that the data has been transferred from the ConsoleIn component to the ConsoleOut component.

This is the end of the basic operation check of the component.

Build from the source code (On Windows)

If you want to modify OpenRTM-aist itself and use it on Windows, you can build the OpenRTM-aist Windows source package yourself. This section describes how to get the source code from the download page or repository and build OpenRTM-aist in a Windows environment.

Building OpenRTM-aist in a Windows environment requires various knowledge of software development in a Windows environment, such as building a built environment and creating an installer. The following description assumes that you have the basic knowledge for such program development and batch file creation on the Windows environment.

Windows source code

The OpenRTM-aist (C++ version) source package for Windows is distributed separately from the source package for Linux. The basic contents of the source code are the same but the files that depend on the built environment are different (for example, the Visual Studio project file in the Windows environment exists only in the Windows source package).

Generate source package

The source code package for Windows is It can be obtained from the link below but if you want to get the latest source code under development, you need to get it from GitHub's OpenRTM/OpenRTM-aist project, as shown in the figure on Linux,

  • Source code distribution package for Linux/Unix
  • Source code distribution package for Windows

Is to be made.

src-conversion_en.png
Generate OpenRTM-aist source package

Built environment

The environment and libraries required for the build are as follows.

  • Visual C ++/Visual Studio
  • omniORB

Visual C ++/Visual Studio

To build the binaries for Windows, Visual Studio (C ++) development environment is required. Supported Visual Studios are Visual Studio 2010, 2012, 2013, 2015, 2017 and 2019. (Currently, build support for 2019 is not yet available.)

Visual Studio Community is a free integrated development environment provided by Microsoft and supports software development using various languages ​​such as C ++, C #, F #, Java, and Python. The Community version has almost the same features as the paid Professional version but is only available to individual developers, university officials, non-profit workers, open-source developers, and commercial companies with 5 or fewer developers. See Microsoft documentation for details on license terms.

You can get Visual Studio 2019 below.

When installing Visual Studio 2017, select "Desktop development with C ++" and then select "Windows 8.1 SDK and UCRT SDK" in "Installation details" to install.

omniORB

OpenRTM-aist build requires the library of omniORB 4.2.3 (as of May 17, 2019). A pre-built binary package provided by openrtm.org is available at the link below. Download the one that is appropriate for your environment and extract it to an appropriate location (C:\workspace\omniORB in the following description).

Environment variable: OMNI_ROOT

The directory below the directory set in OMNI_ROOT must have the following structure.

 <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
  + include
  | + COS
  | + omniORB4
  | + omnithread
  | + omniVms

OpenSSL

OpenSSL 1.1.0 (as of May 17, 2019) library is required to build OpenRTM-aist. A pre-built binary package provided by openrtm.org is available at the link below. Download the one that is appropriate for your environment and extract it to an appropriate location (C:\workspace\OpenSSL in the following description).

Environment variable: SSL_ROOT

The directory below SSL_ROOT must have the following structure.

 <SSL_ROOT>
  + bin
  | + scripts
  | + x86_win32
  + lib
  | + engines-1_1
  + include
  | + openssl

Python

Python 2.7, 3.6, or 3.7 is required because some Python scripts are used during the build. (Currently, 2.7 is required, 3.7 causes an error) Obtain the latest version from the following site and install it.

When you launch the installer, you will be presented with choices during the installation process. Choose the default items to install. (Other than the default selection is possible, but in that case, please choose with sufficient understanding.)

Get source package

First, download the source code OpenRTM-aist-1.2.X-win32.zip and extract it to an appropriate directory.

Modify batch file

When you execute build.bat, the build starts. Before that, change the environment variables "OMNI_ROOT" and "SSL_ROOT" in the batch file according to your environment.

 set OMNI_ROOT=C:\workspace\omniORB-4.2.3-win64-vc141
 set SSL_ROOT=C:\workspace\OpenSSL\build

Also set the following environment variables in the patch file so that they are set according to the environment.

 set VC_VERSION=141
 set ARCH=x86_64
 set PYTHON_DIR=C:\python27
 set OMNI_VERSION=4.2.3
 set OMNITHREAD_VERSION=4.1

The above settings are for the 64-bit version of OpenRTM-aist and are examples when Visual Studio 2017, Python 2.7 and OmniORB 4.2.3 are used. Here, VC_VERSION specifies the corresponding Visual C ++ version. (Please refer to the following.)

Visual Studio 2010 10
Visual Studio 2012 11
Visual Studio 2013 12
Visual Studio 2015 14
Visual Studio 2017 141
Visual Studio 2019 142

(the number 14x might be changed to some value when Visual Studio 2019 is supported.)

For ARCH, specify x86 when creating a 32-bit binary, and specify x86_64 when creating a 64-bit binary. Specify the path where Python is installed in PYTHON_DIR.

Set the corresponding version of omniORB and omniThread in OMNI_VERSION and OMNITHREAD_VERSION. The version of OmniThread can be confirmed by right-clicking the file of omnithreadXXXX.dll in Explorer, selecting Properties, and clicking the Details tab. The first digit to the right of the period must be the number before the next period. (For example, if 4.1.24.1.0 is displayed, change it to 4.1.)

If you use Visual Studio other than Community version, you need to execute vcvarsall.bat in advance.

When writing code for 64-bit Intel or AMD processors in Visual Studio 2017

 call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

Please execute it.

Build

After the above preparations are completed, build. Run build.bat to automatically start the build.

Install

If everything builds correctly, do the following to complete the installation:

  • Set environment variable RTM_ROOT: Set the directory where the OpenRTM-aist files created after the build are placed in the environment variable RTM_ROOT.
  • Pass the path to the DLL: Copy the DLL to the path, or add% RTM_ROOT% \ bin to the PATH environment variable.

This completes the installation of OpenRTM-aist.

Build from the source code (On Linux)

If you want to use OpenRTM-aist by changing or rebuilding the source of OpenRTM-aist on a UNIX environment or a cross-development environment where no package is available, you can build from the source. This section describes how to get the source from the download page or repository and build OpenRTM-aist on Linux.

Build from the distribution source

OpenRTM-aist (C++ version) provides a build environment using autotools, so it can be built in various environments.

Supported OS and distribution

OpenRTM-aist has been confirmed to build it on the following Linux distributions:

  • Fedora (Limited versions only)
  • Debian (Limited versions only)
  • Ubuntu
  • Raspbian

On the other general Linux environments, you may be able to built OpenRTM-aist. (However, it is not confirmed)

Required tools and libraries

The following development tools and the libraries are required to build OpenRTM-aist-1.2.x from the source.

  • gcc/g++ version3 or later: Required for compilation
  • omniORB-4.x or higher: Required for building OpenRTM-aist
  • uuid library: libuuid (since Linux environment does not provide uuid generation function by default)
  • python: required to use build tools
  • boost: may be required when compiling extension modules
  • openssl: Required to use the secure communication function by OpenSSL

Please install according to the documentation of each library. If these are installed under standard directories (/usr, /usr/local, etc.), the subsequent compilation of OpenRTM-aist can be performed relatively easily.

For certain distributions such as Ubuntu and Fedora, there is a script "pkg_install_<OS name>.sh" that installs dependent libraries and OpenRTM packages that install necessary tools. The link below describes how to get it and command-line options.

By executing this script with the -c option, you can install the core (OpenRTM-aist itself) development tools. Run it or make you install the necessary tools separately.

Download the source

Download the OpenRTM-aist source. The source code can be downloaded by adding the version number tag to the URL https://github.com/OpenRTM/OpenRTM-aist/releases:

The version 1.2.1 source code can be found at:

Source code development

First, unpack the source code OpenRTM-aist-X.X.X.tar.gz into an appropriate directory.

 $ wget https://github.com/OpenRTM/OpenRTM-aist/releases/tag/v1.2.1/OpenRTM-aist-1.2.1.tar.gz
 $ tar xvzf OpenRTM-aist-1.2.1.tar.gz
 $ cd OpenRTM-aist-1.2.1

Build

OpenRTM-aist uses autoconf and automake to build packages. The source code packages that can be downloaded using the above methods are those that have been configured using those tools in advance.

 $ ./configure --prefix=/usr --enable-fluentd=no --enable-observer=yes --enable-ssl=yes [options]

You may not need to specify [options], but if you want to make special settings, the options available in [options] are shown by:

 $ ./configure --help

make

  • Make sure that the configure has completed successfully. Make it when done normally.
     $ make
  • After the build is completed successfully, install the header files, libraries, and utility commands.
     $ sudo make install

This completes the build and installation from the source code.

Build using the source code on GitHub repository

OpenRTM-aist makes the github repository used for development publicly available. You can also build using the source code cloned from the repository.

Required tools

The source code checked out of the repository does not contain a configure script or Makefile.in. To generate these, you need to install the following tools in advance:
  • automake
  • libtool
  • autoconf

To install these necessary tools and libraries such as OmniORB, you can use the Bulk installation script described above on Ubuntu and others. We recommend that you run this script in advance.

On Ubuntu, execute the package installation script pkg_install_ubuntu.sh recommended above as follows, to develop OpenRTM-aist itself (including build from the source) (including automake) It can be installed together.

 $ sudo sh pkg_install_ubuntu.sh -l c ++ -c

Source clone from GitHub repository

Clone the source from the repository. If "git" is not installed, install it in advance. Then, type-in:

 $ git clone -b svn/RELENG_1_2 https://github.com/OpenRTM/OpenRTM-aist
 Cloning into 'OpenRTM-aist' ...
 remote: Enumerating objects: 24, done.
 remote: Counting objects: 100% (24/24), done.
 remote: Compressing objects: 100% (24/24), done.
 remote: Total 42092 (delta 14), reused 2 (delta 0), pack-reused 42068
 Receiving objects: 100% (42092/42092), 10.41 MiB | 8.36 MiB/s, done.
 Resolving deltas: 100% (31578/31578), done.

Run autogen

After cloning, a directory called OpenRTM-aist should have been created. Enter that directory.

 $ ls
 OpenRTM-aist
 $ cd OpenRTM-aist
 $ ls
 $ 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/

Make sure there is a shell script autogen under the build directory and execute this script. Execution can take up to several minutes.
 
 $ ls build/autogen
 build/autogen
 $ sh build/autogen
 
 Setting up the 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: Entering directory `.'
 autoreconf: configure.ac: not using Gettext
 autoreconf: running: /usr/bin/aclocal --force  
 autoreconf: configure.ac: tracing
 autoreconf: configure.ac: adding subdirectory src/lib/coil to autoreconf 
 autoreconf: Entering directory `src/lib/coil'
 autoreconf: running: /usr/bin/libtoolize --copy --force
 libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'.
 libtoolize: copying file './ltmain.sh'
 libtoolize: You should add the contents of the following files to 'aclocal.m4':
 libtoolize:   '/usr/share/aclocal/libtool.m4'
 libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
 libtoolize: and rerunning libtoolize and aclocal.
 libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. 
 autoreconf: running: /usr/bin/autoconf --force
 autoreconf: running: /usr/bin/autoheader --force
 autoreconf: running: /usr/bin/automake --add-missing --copy --force-missing
 configure.ac:64: installing './compile'
 configure.ac:63: installing './config.guess'
 configure.ac:63: installing './config.sub'
 configure.ac:23: installing './install-sh'
 configure.ac:23: installing './missing'
 Makefile.am: installing './INSTALL'
 ace/coil/Makefile.am: installing './depcomp'
 tests/AsyncInvoker/Makefile.am:29: warning: source file '../TestRunner.cpp' is in a subdirectory,
 tests/AsyncInvoker/Makefile.am:29: but option 'subdir-objects' is disabled
 .
 .
 .
 src/lib/rtm/tests/SystemLogger/Makefile.am:45: but option 'subdir-objects' is disabled
 autoreconf: Leaving directory `.'
 done
 

configure & build

By executing autogen, there is "configure" in the OpenRTM-aist directory. From this point, the build is done by "configure & make" along with a standard build procedure from the source code.

 $ ls -l configure
 -rwxr-xr-x  1 n-ando  n-ando  812893 Jul  6 05:56 configure*
 $  ./configure --prefix=/usr --enable-fluentd=no --enable-observer=yes --enable-ssl=yes
 $ make

make dist

By "make dist", you can create source package like which is distributed at openrtm.org. "make dist" also produces a source code package for Windows. Please note that "make dist" requires additional tools - doxgen, latex, and qkc, etc.

 $ make dist
 it takes several minutes
 $ ls -l OpenRTM-aist*
 -rw-r--r--  1 n-ando  n-ando  9266837 Apr  7 09:53 OpenRTM-aist-1.2.1-win32.zip
 -rw-r--r--  1 n-ando  n-ando  4831099 Apr  7 09:53 OpenRTM-aist-1.2.1.tar.bz2
 -rw-r--r--  1 n-ando  n-ando  7258796 Apr  7 09:53 OpenRTM-aist-1.2.1.tar.gz
 $

The generated source packages are followings:
  • OpenRTM-aist-1.2.1-win32.zip: The source code for Windows
  • OpenRTM-aist-1.2.1.tar.gz: The general-purpose source code (gzip compression)
  • OpenRTM-aist-1.2.1.tar.bz2: The general-purpose source code (bzip compression)