Linuxへのインストール

インストール

ubuntu_logo2.png

OpenRTM-aistは、UbuntuやDebian GNU Linuxにおいて利用可能なdebパッケージが提供されています。

2.0 は現在、Ubuntu 18.04, 20.04 (各amd64, arm64)に対応しています。 Ubuntu/Debian GNU Linuxへのサポートバージョンや対応の有無は、予告なしに変更されることがありますので、あらかじめご了承ください。

2.0系での変更点

C++と OpenRTP は 1.2系と2.0系の共存が可能となりました。 この対応で、インストールに関しては下記が変更となっています。

  • 2.0系のdebパッケージ名を変更しました
  • Python と Java は1.2系と2.0系の共存はできません
    • 一括インストールスクリプトを使用すれば、インストール済みの異なるバージョンを自動でアンインストールします
  • 1.2系と2.0系の一括インストールスクリプトを分けました
    • 1.2系のインストール : pkg_install_ubuntu.sh
    • 2.0系のインストール : openrtm2_install_ubuntu.sh

また、インストールスクリプト(1.2系、2.0系どちらも)は、ダウンロードからインストールまでの一括処理に対応しました。

一括インストールスクリプト

2.0系のインストールは、下記をシェルプロンプトに貼り付けて実行してください。 C++版、 Python版、 Java版、 OpenRTP(amd64のみ)、 rtshell、JDK8 がインストールされます。 スクリプトはローカルに保存されません。
※スクリプトの実行で、Javaの複数バージョンがインストールされても、Java8 使用に切り替わっています

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh)

この実行により以下のパッケージがインストールされます。

 $ dpkg -l | grep openrt
 ii  openrtm2:amd64                          2.0.0-0                  amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-dev:amd64                    2.0.0-0                  amd64        OpenRTM-aist headers for development
 ii  openrtm2-doc                               2.0.0-0                  all               Documentation for openrtm2
 ii  openrtm2-example:amd64             2.0.0-0                  amd64        OpenRTM-aist examples
 ii  openrtm2-idl:amd64                      2.0.0-0                  amd64        OpenRTM-aist idls for development
 ii  openrtm2-java:amd64                   2.0.0-0                  amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-java-doc                        2.0.0-0                  all               Documentation for openrtm2-java
 ii  openrtm2-java-example:amd64      2.0.0-0                  amd64        OpenRTM-aist-Java examples
 ii  openrtm2-python3                         2.0.0-0                  amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-python3-doc                   2.0.0-0                  all               Documentation for openrtm2-python3
 ii  openrtm2-python3-example            2.0.0-0                  amd64        OpenRTM-aist-Python examples
 ii  openrtp2:amd64                            2.0.0-0                  amd64        OpenRTP, Open RT Platform distributed by AIST

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。 help は下記で確認できます。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh) --help

インストールされるパッケージの詳しい内容は「OpenRTM-aist-2.0 debパッケージの詳しい内容 」で確認できます。

ROS用パッケージのインストール

2.0系ではROS通信機能用パッケージをインストールできます。(ROS用、ROS2用)
ここでは、ROS, ROS2 の両方をインストールしている環境へのパッケージインストール方法を説明します。

help に記載しているように、ROSパッケージインストールオプションは以下で対応しています。
[-e ros|ros2|all] [--ros|--ros2]

すでにインストールスクリプトをオプション無しで実行済みで、追加でROS, ROS2用パッケージを追加インストールする場合は、「-l c++ -e all」で可能です。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh) -l c++ -e all

最初からROS, ROS2用パッケージも加えてすべてインストールしたい場合は、「 -l all -e all」で可能です。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh) -l all -e all

インストールされたパッケージを確認します。

 $ dpkg -l | grep openrt
 ii  openrtm2:amd64                          2.0.0-0       amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-dev:amd64                    2.0.0-0       amd64        OpenRTM-aist headers for development
 ii  openrtm2-doc                               2.0.0-0       all               Documentation for openrtm2
 ii  openrtm2-example:amd64             2.0.0-0       amd64        OpenRTM-aist examples
 ii  openrtm2-idl:amd64                      2.0.0-0       amd64        OpenRTM-aist idls for development
 ii  openrtm2-java:amd64                   2.0.0-0       amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-java-doc                        2.0.0-0       all               Documentation for openrtm2-java
 ii  openrtm2-java-example:amd64      2.0.0-0      amd64        OpenRTM-aist-Java examples
 ii  openrtm2-python3                         2.0.0-0      amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-python3-doc                   2.0.0-0      all               Documentation for openrtm2-python3
 ii  openrtm2-python3-example            2.0.0-0      amd64        OpenRTM-aist-Python examples
 ii  openrtm2-ros-tp:amd64                 2.0.0-0      amd64        OpenRTM-aist extension ROS package
 ii  openrtm2-ros2-tp:amd64               2.0.0-0      amd64        OpenRTM-aist extension ROS2 package
 ii  openrtp2:amd64                            2.0.0-0      amd64        OpenRTP, Open RT Platform distributed by AIST

1.2系インストール環境への2.0系インストール

1.2系のインストールスクリプトも、URL指定で実行可能となっています。スクリプトをオプション無しで全パッケージインストールします。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/pkg_install_ubuntu.sh)

インストールされたパッケージを確認します。

 $ dpkg -l | grep openrt
 ii  openrtm-aist:amd64                         1.2.2-0
 ii  openrtm-aist-dev:amd64                   1.2.2-0
 ii  openrtm-aist-doc                              1.2.2-0
 ii  openrtm-aist-example:amd64            1.2.2-0
 ii  openrtm-aist-idl:amd64                     1.2.2-0
 ii  openrtm-aist-java:amd64                  1.2.2-0
 ii  openrtm-aist-java-doc                       1.2.2-0
 ii  openrtm-aist-java-example:amd64     1.2.2-0
 ii  openrtm-aist-python3                        1.2.2-0
 ii  openrtm-aist-python3-doc                  1.2.2-0
 ii  openrtm-aist-python3-example           1.2.2-0
 ii  openrtp:amd64                                  1.2.2-4

続けて2.0系をインストールすると、c++とopenrtpは1.2系、2.0系が共存しますが、javaとpythonは2.0系のみがインストールされている状態になります。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh)

スクリプト実行中、1.2系のjavaとpythonパッケージのアンインストールについて、「Do you want to continue? [Y/n] 」と聞かれますので、Enterキーを押してください。
インストールされたパッケージを確認します。

 $ dpkg -l | grep openrt
 ii  openrtm-aist:amd64                         1.2.2-0
 ii  openrtm-aist-dev:amd64                   1.2.2-0
 ii  openrtm-aist-doc                              1.2.2-0
 ii  openrtm-aist-example:amd64            1.2.2-0
 ii  openrtm-aist-idl:amd64                     1.2.2-0
 ii  openrtm2:amd64                              2.0.0-0
 ii  openrtm2-dev:amd64                        2.0.0-0
 ii  openrtm2-doc                                   2.0.0-0
 ii  openrtm2-example:amd64                 2.0.0-0
 ii  openrtm2-idl:amd64                          2.0.0-0
 ii  openrtm2-java:amd64                        2.0.0-0
 ii  openrtm2-java-doc                             2.0.0-0
 ii  openrtm2-java-example:amd64           2.0.0-0
 ii  openrtm2-python3                              2.0.0-0
 ii  openrtm2-python3-doc                       2.0.0-0
 ii  openrtm2-python3-example                2.0.0-0
 ii  openrtp:amd64                                  1.2.2-4
 ii  openrtp2:amd64                                2.0.0-0

これに伴い、rtshellもインストールし直されます。

 $ pip3 list | grep aist
 OpenRTM-aist-Python    2.0.0
 rtctree-aist           4.2.3
 rtshell-aist           4.2.9
 rtsprofile-aist        4.1.5

2.0系インストール環境への1.2系インストール

c++とopenrtpは1.2系、2.0系が共存しますが、javaとpythonは1.2系のみがインストールされている状態になります。

 $ dpkg -l | grep openrt
 ii  openrtm-aist:amd64                        1.2.2-0
 ii  openrtm-aist-dev:amd64                 1.2.2-0
 ii  openrtm-aist-doc                             1.2.2-0
 ii  openrtm-aist-example:amd64           1.2.2-0
 ii  openrtm-aist-idl:amd64                    1.2.2-0
 ii  openrtm-aist-java:amd64                 1.2.2-0
 ii  openrtm-aist-java-doc                      1.2.2-0
 ii  openrtm-aist-java-example:amd64    1.2.2-0
 ii  openrtm-aist-python3                       1.2.2-0
 ii  openrtm-aist-python3-doc                 1.2.2-0
 ii  openrtm-aist-python3-example          1.2.2-0
 ii  openrtm2:amd64                             2.0.0-0
 ii  openrtm2-dev:amd64                       2.0.0-0
 ii  openrtm2-doc                                  2.0.0-0
 ii  openrtm2-example:amd64                2.0.0-0
 ii  openrtm2-idl:amd64                         2.0.0-0
 ii  openrtp:amd64                                1.2.2-4
 ii  openrtp2:amd64                             2.0.0-0

rtshellも OpenRTM-aist-Python1.2.2 に対してインストールし直されます。

 $ pip3 list | grep aist
 OpenRTM-aist-Python    1.2.2
 rtctree-aist           4.2.3
 rtshell-aist           4.2.9
 rtsprofile-aist        4.1.5

動作確認

サンプルコンポーネントを実行する

インストールが正常に終了したら、付属のサンプルコンポーネントで動作を確認できます。 サンプルコンポーネントのインストール先は以下です。

 /usr/share/openrtm-2.0/components/c++/examples
 /usr/share/openrtm-2.0/components/python3/
 /usr/share/openrtm-2.0/components/java

RTCの操作、RTシステムの構築を行うためのツールOpenRTPを起動します。

  • OpenRTM-aist 2.0系は、openrtp2 コマンドで起動します

 $ openrtp2

OpenRTM-aist 1.2系では openrtp コマンドで起動します。コマンド名は異なりますが、起動手順、使い方は 1.2系と変更ありませんので、詳細は以下のページをご覧ください。

※OpenRTPは1.2系と2.0系の共存が可能です。このため、openrtp と openrtp2 の両方を実行することは可能です。

付属のサンプルコンポーネントについては、以下のページでWindows版の一覧を記載しています。コンポーネントの動作についてはWindows版・Linux版に違いはございません。 Linux環境でのサンプルコンポーネントの実行手順について、もう少し詳しく知りたい場合は、以下の1.2系の解説ページをご覧ください。コンポーネントのパスを読み替えていただければ実行手順は2.0系も同じです。

OpenCVサンプルコンポーネントのインストール

OpenCVのC++サンプルコンポーネントはインストール用debパッケージを提供しておりません。ソースからdebパッケージを生成するスクリプトを提供しておりますのでビルド・インストールしてください。

OpenCV4.5.4のインストール例

バージョン4.5.4のOpenCV本体と拡張モジュール群(opencv_contrib)を合わせてビルド・インストールする例です。

  • まず、/etc/apt/sources.listの以下の deb-src 行をコメントインしておきます。

 $ sudo vi /etc/apt/sources.list
      :
 deb-src http://jp.archive.ubuntu.com/ubuntu/ *** universe
    or
 deb-src http://us.archive.ubuntu.com/ubuntu/ *** universe

  • 下記コマンドの実行でOpenCVのインストールが完了します。

 sudo apt build-dep opencv
 wget https://github.com/opencv/opencv/archive/refs/tags/4.5.4.tar.gz -O opencv-4.5.4.tar.gz
 tar xvzf opencv-4.5.4.tar.gz
 wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.4.tar.gz -O opencv_contrib-4.5.4.tar.gz
 tar xvzf opencv_contrib-4.5.4.tar.gz
 cd opencv-4.5.4
 mkdir build
 cd build
 cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.4/modules -DBUILD_opencv_java=OFF ..
 make -j$(nproc)
 sudo make install
 sudo ldconfig

OpenCVサンプルコンポーネントのビルド手順

ソースのImageProcessingを取得してビルドし、debパッケージを生成します。

 git clone https://github.com/OpenRTM/ImageProcessing
 cd ImageProcessing/opencv
 mkdir build
 cd build
 cmake ..
 ./build_linux_package.sh

これで、imageprocessing_2.0.0_amd64.deb が生成されますのでインストールします。

 sudo dpkg -i imageprocessing_2.0.0_amd64.deb
 ls /usr/share/openrtm-2.0/components/c++/opencv-rtcs/
 Affine                       CameraViewer     Edge         Histogram         ImageSubtraction  Perspective        Scale                 Template
 BackGroundSubtractionSimple  Chromakey        Findcontour  Hough             ObjectTracking    RockPaperScissors  Sepia                 Translate
 Binarization                 DilationErosion  Flip         ImageCalibration  OpenCVCamera      Rotate             SubtractCaptureImage  rtc.conf

各サンプルディレクトリ下に実行ファイル(***Comp)がインストールされていますので、実行してみてください。

1.2系と2.0系が共存している環境でのCMake時の注意点

C++のサンプルコンポーネントは、概ねCMakeでビルドできるように再生成しました。
ここでは ConsoleIn を例にとって説明します。

1.2系と2.0系の共存環境では、OpenRTMConfig.cmake が下記の2か所にインストールされています。このため、先に見つけたOpenRTMConfig.cmakeが使用されます。

 /usr/lib/x86_64-linux-gnu/openrtm-2.0/cmake/OpenRTMConfig.cmake
 /usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake

この環境で、ConsoleIn のcmakeを実行してみます。

 git clone https://github.com/OpenRTM/OpenRTM-aist
 cd OpenRTM-aist/examples/ConsoleIn/
 mkdir build
 cd build
 cmake ..
      :
 -- OpenRTMConfig.cmake 2.0.0 found.

2.0系の OpenRTMConfig.cmake では、バージョン番号を出力するようにしました。 1.2系ではバージョン番号は出力されません。
1.2系でビルドしたい場合は、cmakeのオプションで、OpenRTM_DIRを次のように指定します。

 cmake -DOpenRTM_DIR=/usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake ..
    :
 -- OpenRTMConfig.cmake found.

ソースからのビルド

OpenRTM-aist本体のソースを変更して利用したい場合には、OpenRTM-aistのソースコードを取得してビルドできます。

Dockerでのビルド

Dockerfileを使い、OpenRTM-aistソースビルドに必要な最小限のライブラリだけをインストールした環境でビルドを行う手順を紹介します。
docker build コマンドで Dockerイメージを生成するのですが、毎回まっさらな環境でビルドできるのでお勧めです。

初めてDockerを使う場合は、以下のようにインストールしてください。Ubuntuのデスクトップ環境であれば docker.io パッケージが提供されていると思います。

 sudo apt install docker.io

  • 参考:docker.io パッケージの提供が無い場合のインストール
    • 手動で、DockerのGPGキーを取得して、リポジトリ情報を書き込んで、docker-ceをインストールする流れになります
    • QEMU上にubuntu-20.04-server-cloudimg-arm64.imgで aarch64 環境を構築した時は、以下の手順でインストールしました
       sudo apt install apt-transport-https ca-certificates curl software-properties-common
       curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
       sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
       sudo apt update
       sudo apt install docker-ce

C++ソースのビルド

OpenRTM-aist 2.0系のソースには、Ubuntu18.04、20.04、22.04用のDockerfileが含まれています。

 OpenRTM-aist/scripts/ubuntu_1804/Dockerfile
 OpenRTM-aist/scripts/ubuntu_2004/Dockerfile
 OpenRTM-aist/scripts/ubuntu_2204/Dockerfile

ビルド手順は以下となります。 Ubuntu20.04用のビルド例です。 
ここではGitHubから最新のOpenRTM-aistソースを取得していますが、修正を加えたソースのビルドでも同様の手順で行えます。

 git clone https://github.com/OpenRTM/OpenRTM-aist
 sudo docker build -t test -f OpenRTM-aist/scripts/ubuntu_2004/Dockerfile .

エラーなくビルドが終了したら、-tオプションで指定した test という名前のDockerイメージが生成されていることを確認できます。

 sudo docker images
 REPOSITORY       TAG           IMAGE ID          CREATED           SIZE
 test                    latest         0bc00f471b64   27 seconds ago   1.52GB

ソースを修正しながらビルドが通るまで繰り返すと、 <none> というイメージが多数生成されます。 docker rmi で IMAGE ID を指定して削除できますが、まとめて削除したい場合は下記コマンド実行が便利です。

 sudo docker rmi $(sudo docker images -f dangling=true -q)

Dockerイメージ「openrtm/devel-rtm」について

ソースビルドで使用した Dockerfile の1行目は、Ubuntu18.04用、20.04用、22.04用でそれぞれの以下のようになっており、Dockerハブにアップロードされているこの名前のイメージを使用します。

 FROM openrtm/devel-rtm:ubuntu18.04
 FROM openrtm/devel-rtm:ubuntu20.04
 FROM openrtm/devel-rtm:ubuntu22.04

これらのイメージは、下記 Docierfile.devel-rtm から生成したものです。fluent-bitと、ROS、ROS2がインストールされています。
  • Ubuntu18.04用:dashing、melodic
  • Ubuntu20.04用:foxy、noetic
  • Ubuntu22.04用:humble

 OpenRTM-aist/scripts/ubuntu_1804/Dockerfile.devel-rtm
 OpenRTM-aist/scripts/ubuntu_2004/Dockerfile.devel-rtm
 OpenRTM-aist/scripts/ubuntu_2204/Dockerfile.devel-rtm

Dockerでdebパッケージ生成まで一括処理するスクリプト

ここで紹介するスクリプトは、OpenRTM-aistのリリース用debパッケージ作成時に利用しているものです。
OpenRTM-aistソースを変更してインストールしたい場合、debパッケージで手軽に試せます。

このスクリプトは、Dockerでソースビルドからdebパッケージ生成まで行い、成果物であるdebパッケージをDockerコンテナからホスト側へコピーする処理までを一括で行います。

Ubuntu20.04用のdebパッケージを作成する場合の手順は以下となります。

 git clone https://github.com/n-kawauchi/RTM-src-pkgs-docker-build
 cd RTM-src-pkgs-docker-build/ubuntu_2004/
 sh build-cxx.sh
 ls -l
 drwxr-xr-x  2 root    root    4096 Jun 30 15:53 cxx-deb-pkgs/

成果物のdebパッケージは cxx-deb-pkgs 下に出力されています。所有者がrootになっていますので、実行ユーザに変更しておいた方がアクセスしやすいです。
ROSがインストールされたDockerイメージを使用しているので、ROS向けのパッケージ(openrtm2-ros*-tp)も生成されます。

 ls cxx-deb-pkgs/
 openrtm2-dev_2.0.0-0_amd64.deb         openrtm2-ros-tp_2.0.0-0_amd64.deb     openrtm2_2.0.0-0_amd64.buildinfo
 openrtm2-doc_2.0.0-0_all.deb                openrtm2-ros2-tp_2.0.0-0_amd64.deb   openrtm2_2.0.0-0_amd64.changes
 openrtm2-example_2.0.0-0_amd64.deb  openrtm2_2.0.0-0.dsc                            openrtm2_2.0.0-0_amd64.deb
 openrtm2-idl_2.0.0-0_amd64.deb           openrtm2_2.0.0-0.tar.gz

(※)このスクリプトを amd64 環境で実行すれば amd64 用debパッケージが生成され、aarch64 環境で実行すれば arm64 用debパッケージが生成されます。

OpenRTM-aistソースを変更してインストールしたい場合、build-cxx.sh スクリプトの以下の部分をコメントアウトし、build-cxx.sh と同じディレクトリにOpenRTM-aistソースを配置して実行してください。

 #----- OpenRTM-aist
 echo "${password}" | sudo -S rm -rf ${TARGET}-*
 #rm -rf OpenRTM-aist    <-- コメントアウト
 #git clone https://github.com/OpenRTM/OpenRTM-aist    <-- コメントアウト

Pythonソースのビルド

OpenRTM-aist-Python ソースには Dockerfile は含まれておりません。OpenRTM-aist-Pythonのリリース用debパッケージ作成時に下記Dockerfileを利用しています。

C++ソースビルドと同様に、Dockerでソースビルドからdebパッケージ生成まで行い、成果物であるdebパッケージをDockerコンテナからホスト側へコピーする処理までを一括で行うスクリプトを紹介します。

Ubuntu20.04用のdebパッケージを作成する場合の手順は以下となります。

 git clone https://github.com/n-kawauchi/RTM-src-pkgs-docker-build
 cd RTM-src-pkgs-docker-build/ubuntu_2004/
 sh build-python.sh

成果物のdebパッケージはpython-deb-pkgs下に、ソースパッケージはpython-src-pkgs下に出力されます。

 ls python-deb-pkgs/
 openrtm2-python3-doc_2.0.0-0_all.deb 
 openrtm2-python3-example_2.0.0-0_amd64.deb  openrtm2-python3_2.0.0-0_amd64.changes
 openrtm2-python3_2.0.0-0.dsc                           openrtm2-python3_2.0.0-0_amd64.deb

 ls python-src-pkgs/
 OpenRTM-aist-Python-2.0.0.tar.gz  OpenRTM-aist-Python-2.0.0.zip  

OpenRTM-aist-Pythonソースを変更してインストールしたい場合、build-python.sh スクリプトの以下の部分をコメントアウトし、build-python.sh、Dockerfile-python-debと同じディレクトリにOpenRTM-aist-Pythonソースを配置して実行してください。

 #----- OpenRTM-aist-Python
 echo "${password}" | sudo -S rm -rf ${TARGET}-*
 #-------- コメントアウト ここから
 #rm -rf OpenRTM-aist-Python
 #git clone https://github.com/OpenRTM/OpenRTM-aist-Python
 #cd OpenRTM-aist-Python
 #git checkout ${BRANCH}
 #cd -
 #-------- コメントアウト ここまで

Javaソースのビルド

OpenRTM-aist-Java ソースには Dockerfile は含まれておりません。OpenRTM-aist-Javaのリリース用debパッケージ作成時に下記Dockerfileを利用しています。

C++ソースビルドと同様に、Dockerでソースビルドからdebパッケージ生成まで行い、成果物であるdebパッケージをDockerコンテナからホスト側へコピーする処理までを一括で行うスクリプトを紹介します。

Ubuntu20.04用のdebパッケージを作成する場合の手順は以下となります。

 git clone https://github.com/n-kawauchi/RTM-src-pkgs-docker-build
 cd RTM-src-pkgs-docker-build/ubuntu_2004/
 sh build-java.sh

成果物のdebパッケージはjava-deb-pkgs下に、ソースパッケージはjava-src-pkgs下に出力されます。

 ls java-deb-pkgs/
 openrtm2-java-doc_2.0.0-0_all.deb        openrtm2-java_2.0.0-0_amd64.buildinfo
 openrtm2-java-example_2.0.0-0_amd64.deb  openrtm2-java_2.0.0-0_amd64.changes
 openrtm2-java_2.0.0-0.dsc                openrtm2-java_2.0.0-0_amd64.deb

 ls java-src-pkgs/
 OpenRTM-aist-Java-2.0.0-jar.zip  OpenRTM-aist-Java-2.0.0.zip
 OpenRTM-aist-Java-2.0.0.tar.gz  
OpenRTM-aist-Javaソースを変更してインストールしたい場合、build-java.sh スクリプトの以下の部分をコメントアウトし、build-java.sh、Dockerfile-java-debと同じディレクトリにOpenRTM-aist-Javaソースを配置して実行してください。

 #----- OpenRTM-aist-Java
 echo "${password}" | sudo -S rm -rf ${TARGET}-*
 #-------- コメントアウト ここから
 #rm -rf OpenRTM-aist-Java
 #git clone https://github.com/OpenRTM/OpenRTM-aist-Java
 #cd OpenRTM-aist-Java
 #git checkout ${BRANCH}
 #cd -
 #-------- コメントアウト ここまで

OpenRTM-aist-2.0 debパッケージの詳しい内容

OpenRTM-2.0 debパッケージの詳しい内容

各パッケージの内容は以下の通りです。

openrtm2

openrtm2 にはランタイムライブラリとコマンド群が含まれています。

  • コマンド
     /usr/bin/rtcd2
     /usr/bin/rtcprof2
     /usr/bin/rtm2-config
     /usr/bin/rtm2-naming
  • 設定ファイルサンプル
     /usr/etc/logger/rtc.fluentbit_stream.conf
     /usr/etc/rtc.conf.sample2
     /usr/etc/rtc.names.ssl.conf
     /usr/etc/ssl/rtc.ssl.conf
     /usr/lib/x86_64-linux-gnu/pkgconfig/openrtm2.pc
  • ライブラリなど
     /usr/lib/x86_64-linux-gnu/libRTC2.a
     /usr/lib/x86_64-linux-gnu/libRTC2.so.2.0.0
     中略
     /usr/lib/x86_64-linux-gnu/librtmCamera2.so
     /usr/lib/x86_64-linux-gnu/librtmManipulator2.so
     中略
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/ec/LogicalTimeTriggeredEC.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/local_service/FileNameservice.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/logger/FluentBit.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/sdo/ComponentObserverConsumer.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/sdo/ExtendedFsmServiceProvider.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/sdo/LoggerConsumer.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/ssl/SSLTransport.so

openrtm2-dev

openrtm2-devには、開発に必要なコマンド群とヘッダが含まれています。

  • コマンド
     /usr/bin/rtm2-skelwrapper
  • ヘッダなど
     /usr/include/coil-2.0/coil/Affinity.h
     /usr/include/coil-2.0/coil/Async.h
     中略
     /usr/include/openrtm-2.0/rtm/BufferBase.h
     /usr/include/openrtm-2.0/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-2.0/rtm/config_rtc.h
     /usr/include/openrtm-2.0/rtm/ext/FastRTPSMessageInfo.h
     /usr/include/openrtm-2.0/rtm/ext/ROSMessageInfo.h
     /usr/include/openrtm-2.0/rtm/idl/BasicDataType.hh 
     /usr/include/openrtm-2.0/rtm/idl/BasicDataTypeSkel.h
     中略
     /usr/include/openrtm-2.0/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-2.0/rtm/version.h
  • ライブラリ・その他
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/cmake/OpenRTMConfig.cmake
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/cmake/OpenRTMConfigVersion.cmake
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/py_helper/skel_wrapper.py
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/py_helper/yat.py

openrtm2-example

openrtm2-example にはスタンドアロン RTC、ローダブル RTC それぞれのサンプルが含まれています。

  • サンプル(スタンドアロンRTC)
     /usr/share/openrtm-2.0/components/c++/examples/CompositeComp
     /usr/share/openrtm-2.0/components/c++/examples/ConfigSampleComp
     中略
     /usr/share/openrtm-2.0/components/c++/examples/rtc.conf
  • サンプル(ローダブルRTC)
     /usr/share/openrtm-2.0/components/c++/examples/rtc/ConfigSample.so
     /usr/share/openrtm-2.0/components/c++/examples/rtc/ConsoleIn.so
     中略
     /usr/share/openrtm-2.0/components/c++/examples/rtc/Throughput.so

openrtm2-ros-tp

ROS通信機能ライブラリがインストールされます。

 /usr/lib/x86_64-linux-gnu/openrtm-2.0/transport/ROSTransport.so

openrtm2-ros2-tp

ROS2通信機能ライブラリがインストールされます。

 /usr/lib/x86_64-linux-gnu/openrtm-2.0/transport/FastRTPSTransport.so
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/transport/ROS2Transport.so

openrtm2-doc

openrtm2-doc には、日本語と英語のクラスリファレンス、IDL インターフェース定義リファレンスが含まれています。

  • クラスリファレンス
     /usr/share/openrtm-2.0/doc/c++/ClassReference/html/BufferBase_8h.html
     /usr/share/openrtm-2.0/doc/c++/ClassReference/html/BufferBase_8h__dep__incl.map
     中略
     /usr/share/openrtm-2.0/doc/c++/ClassReference/html/structSDOPackage_1_1Organization__impl_1_1sdo__id.html
  • IDL リファレンス
     /usr/share/openrtm-2.0/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-2.0/doc/idl/IDLReference/html/BasicDataType_8idl_dep_incl.map
     中略
     /usr/share/openrtm-2.0/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-2.0/doc/c++/ClassReference-en/html/BufferBase_8h.html
     /usr/share/openrtm-2.0/doc/c++/ClassReference-en/html/BufferBase_8h__dep__incl.map
     中略
     /usr/share/openrtm-2.0/doc/C++/ClassReference-en/html/version_8h_source.html
  • IDL リファレンス(英語)
     /usr/share/openrtm-2.0/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-2.0/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.map
     中略
     /usr/share/openrtm-2.0/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html

openrtm2-idl

  • idlファイルなど
     /etc/profile.d/openrtm2-idl.sh
     /usr/include/openrtm-2.0/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-2.0/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-2.0/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-2.0/idl/BasicDataType.idl
     /usr/share/openrtm-2.0/idl/CameraCommonInterface.idl
     中略
     /usr/share/openrtm-2.0/idl/SharedMemory.idl

openrtm2-python3

  • コマンド
     /usr/bin/rtcd2_python3
     /usr/bin/rtcprof2_python3
  • OpenRTM-aist 本体の Python モジュール
     /usr/lib/python3/dist-packages/OpenRTM_aist/* 
  • OpenRTM-aist用Python検索パスファイル
     /usr/lib/python3/dist-packages/OpenRTM-aist.pth 
  • ユーティリティ
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/__init__.py
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtc-template/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcd/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcprof/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtm-naming/*

openrtm2-python3-example

 /usr/share/openrtm-2.0/components/python3/__init__.py
 /usr/share/openrtm-2.0/components/python3/component.conf
 /usr/share/openrtm-2.0/components/python3/rtcd.conf
 /usr/share/openrtm-2.0/components/python3/AutoControl/*
 /usr/share/openrtm-2.0/components/python3/AutoTest/*
 /usr/share/openrtm-2.0/components/python3/CSPSample/*
 /usr/share/openrtm-2.0/components/python3/CSPSelectSample/*
 /usr/share/openrtm-2.0/components/python3/CSPStaticFsmSample/*
 /usr/share/openrtm-2.0/components/python3/Composite/*
 /usr/share/openrtm-2.0/components/python3/ConfigSample/*
 /usr/share/openrtm-2.0/components/python3/ExtTrigger/*
 /usr/share/openrtm-2.0/components/python3/MobileRobotCanvas/*
 /usr/share/openrtm-2.0/components/python3/SeqIO/*
 /usr/share/openrtm-2.0/components/python3/Serializer/*
 /usr/share/openrtm-2.0/components/python3/SimpleIO/*
 /usr/share/openrtm-2.0/components/python3/SimpleService/*
 /usr/share/openrtm-2.0/components/python3/Slider_and_Motor/*
 /usr/share/openrtm-2.0/components/python3/Throughput/*
 /usr/share/openrtm-2.0/components/python3/TkJoyStick/
 /usr/share/openrtm-2.0/components/python3/TkLRFViewer/*

openrtm2-python3-doc

英語・日本語のクラスリファレンスをインストールします。

  • クラスリファレンス
     /usr/share/openrtm-2.0/doc/python3/ClassReference-en/html/_async_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-en/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_async_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_buffer_base_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_buffer_status_8py.html
     以下略

openrtm2-java

 /etc/profile.d/openrtm-java.sh
 /usr/bin/rtcd2_java
 /usr/bin/rtcprof2_java
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/License.txt
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/LogicalTimeTriggeredEC.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/NameserviceFile.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/OpenRTM-aist-2.0.0.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/commons-cli-1.1.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/jna-4.2.2.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/jna-platform-4.2.2.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/rtcd.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/rtcprof.jar

openrtm2-java-example

Java版サンプルRTC、Classファイル、ソースファイル、起動スクリプト

 /usr/share/openrtm-2.0/components/java/* 
 /usr/share/openrtm-2.0/components/java/RTMExamples/AutoTest/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/Composite/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/ConfigSample/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/ExtTrigger/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/Fsm/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/GUIIn/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/GUIIn/control/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/GUIIn/model/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/GUIIn/view/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/MyService.idl
 /usr/share/openrtm-2.0/components/java/RTMExamples/SeqIO/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/SeqIO/view/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/SimpleIO/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/SimpleService/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/SinCosOut/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/StaticFsm/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/Throughput/*
 /usr/share/openrtm-2.0/components/java/RTMExamples/TopicTest/*

openrtm2-java-doc

openrtm2-java-doc には、日本語と英語のクラスリファレンスが含まれています。

 /usr/share/openrtm-2.0/doc/java/JavaDoc/OpenRTM/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/OpenRTM/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/RTC/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/RTC/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/RTM/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/RTM/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/_SDOPackage/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/_SDOPackage/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/Version.html
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/class-use
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/OpenRTM/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/OpenRTM/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/RTC/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/RTC/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/RTM/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/RTM/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/_SDOPackage/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/_SDOPackage/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/index-files/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/class-use/Logbuf.html
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/*

openrtp2

openrtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて

 $ dpkg -L openrtp2
と入力して各自での確認をしてください。