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.
The procedure for installing OpenRTM-aist using the MSI installer is described on the following page.
RTC development requires installation of CMake, Doxygen, and Visual Studio.
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 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 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.
The installer does the following:
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\
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\
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\
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\
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
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.
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.
How to create a new Microsoft account
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].
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.
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.
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
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
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
openrtm-aist contains runtime libraries and commands.
/usr/bin/fluent-bit /usr/bin/rtcd /usr/bin/rtcprof /usr/bin/rtm-config /usr /bin/rtm-naming
/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
/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
/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
/lib/systemd/system/fluent-bit.service /usr/lib/libfluent-bit.so
/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
/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 contains commands and headers necessary for development.
/usr/bin/coil-config /usr/bin/rtc-template /usr/bin/rtm-skelwrapper
/usr/share/doc/openrtm-aist-dev/changelog.Debian.gz /usr/share/doc/openrtm-aist-dev/changelog.gz /usr/share/doc/openrtm-a
/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
/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
/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 includes sample stand alone RTCs, sample loadable RTCs, and the source code.
/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
/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/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
/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 includes Japanese/English class reference, IDL interface definition files.
/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
/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
/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
/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
/usr/share/doc/openrtm-aist-doc/changelog.Debian.gz /usr/share/doc/openrtm-aist-doc/changelog.gz /usr/share/doc/openrtm-aist-doc/copyright
/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
/usr/share/doc/openrtm-aist-idl/changelog.Debian.gz /usr/share/doc/openrtm-aist-idl/changelog.gz /usr/share/doc/openrtm-aist-idl/copyright
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
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.
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:
Using Windows is relatively easier than using Linux or Mac OS. Then if you are a beginner, using Windows is recommended.
$ 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.
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.
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
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.
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".
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
Each package contains the following.
openrtm-aist includes commands and run-time libraries.
/usr/bin/rtcd /usr/bin/rtcprof /usr/bin/rtm-config /usr/bin/rtm-naming
/usr/share/doc/openrtm-aist/changelog.gz /usr/share/doc/openrtm-aist/README.Debian /usr/share/doc/openrtm-aist/README /usr/share/doc/openrtm-aist/README.jp /usr/share/doc/openrtm-aist/copyright /usr/share/doc/openrtm-aist/changelog.Debian.gz
/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
/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
/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 includes commands and header files that are required for RT system development.
/usr/bin/coil-config /usr/bin/rtc-template /usr/bin/rtm-skelwrapper
/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
/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
/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
/etc/profile.d/openrtm-aist-idl.sh
/usr/share/doc/openrtm-aist-idl/changelog.Debian.gz /usr/share/doc/openrtm-aist-idl/changelog.gz /usr/share/doc/openrtm-aist-idl/copyright
/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 includes sample stand-alone RTCs, sample loadable RTCs, and the source code.
/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
/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
/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
/usr/share/doc/openrtm-aist-example/changelog.Debian.gz /usr/share/doc/openrtm-aist-example/changelog.gz /usr/share/doc/openrtm-aist-example/copyright
/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
/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 include the Japanese/English class reference and IDL interface definition reference.
/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
/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
/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
/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
/usr/share/doc/openrtm-aist-doc/changelog.Debian.gz /usr/share/doc/openrtm-aist-doc/changelog.gz /usr/share/doc/openrtm-aist-doc/copyright
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.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.
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
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
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
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
The contents of each package are as follows (for 64-bit Fedora)
openrtm-aist includes run-time libraries and commands.
/etc/rtc.conf.sample
/usr/bin/rtcd /usr/bin/rtcprof /usr/bin/rtm-config /usr/bin/rtm-naming
/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-dev includes commands and header files that are used for RT system development.
/usr/bin/coil-config /usr/bin/rtc-template /usr/bin/rtm-skelwrapper
/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
/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
/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 includes Japanese/English class references and IDL 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
/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
/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
/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 inclues sample stand-alone RTCs, loadable RTCs and the source code.
/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
/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
/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
/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
Installing OpenRtp installs too many files to show here. If you want to know the files, type in:
$ rpm -ql OpenRTP
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.
Use the following procedure to check that OpenRTM-aist is correctly built/installed using the sample component set 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.
Follow the steps below to start the RTSystemEditor and the name server.
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.
Here, double-click "ConsoleIn.bat" and "ConsoleOut.bat" respectively to start two components.
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.
A few seconds after startup, two console screens as shown below will open.
If a component does not start, there are several possible causes.
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
Open the System Editor screen (System Diagram) for editing the system. Click the [Open New System Editor] button 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 onto the system diagram view in the center.
You can see an OutPort where data is output to and is shown on the right side of the ConsoleIn0 component and an InPort
where data is input from and is shown on the left side of the ConsoleOut0 component like the following figure.
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.
A connecting line appears between the two components. Next, click the [All Activate] button in the top menu of the editor to activate these components. When activated, the component turns green.
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.
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 |
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.
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.
If you build and install it yourself, $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleInComp
If you build/install yourself, $ <source_dir>/OpenRTM-aist/examples/SimpleIO/ConsoleOutComp
This is the end of the basic operation check of the component.
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.
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).
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,
Is to be made.
The environment and libraries required for the build are as follows.
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.
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).
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 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).
The directory below SSL_ROOT must have the following structure.
<SSL_ROOT> + bin | + scripts | + x86_win32 + lib | + engines-1_1 + include | + openssl
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.)
First, download the source code OpenRTM-aist-1.2.X-win32.zip and extract it to an appropriate directory.
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.
After the above preparations are completed, build. Run build.bat to automatically start the build.
If everything builds correctly, do the following to complete the installation:
This completes the installation of OpenRTM-aist.
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.
OpenRTM-aist (C++ version) provides a build environment using autotools, so it can be built in various environments.
OpenRTM-aist has been confirmed to build it on the following Linux distributions:
On the other general Linux environments, you may be able to built OpenRTM-aist. (However, it is not confirmed)
The following development tools and the libraries are required to build OpenRTM-aist-1.2.x from the source.
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 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: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
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
$ sudo make install
This completes the build and installation from the source code.
OpenRTM-aist makes the github repository used for development publicly available. You can also build using the source code cloned from the repository.
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
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.
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/
$ 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
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
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 $