raspberry pi osへのインストール
#contents
対応バージョン
現在パッケージが用意されている Raspberry Pi OS のバージョンは
- Bookworm (64bit)
です。
SDカードの準備
OSイメージの書き込みは、公式サイトでダウンロードできるツール、Raspberry Pi Imager を使うのが便利です。
https://www.raspberrypi.com/software/
下記を選択してダウンロード、書き込みが可能です。
- ベースのDebian GNU/Linuxのバージョン (最新 / Legacy)
- GUI の有無 (Desktop / Lite)
- システムアーキテクチャー (32-bit / 64-bit)
2.1系での変更点
新しく SSM通信機能 をインストールできるようになりました。
SSMライブラリを静的リンクしているので、別途SSMをインストール必要はありません。openrtm2-ssm-tpのdebパッケージで下記がインストールされます。
usr/
├── bin
│ ├── killssm
│ ├── lsssm
│ ├── psssm
│ ├── ssm-advance-player
│ ├── ssm-coordinator
│ ├── ssm-date
│ ├── ssm-graph
│ ├── ssm-logger
│ ├── ssm-monitor
│ ├── ssm-player
│ ├── ssm-proxy
│ ├── ssm-transporter
│ └── topssm
├── etc
│ └── transport
│ └── rtc.ssm.conf
└── share
└── openrtm-2.1
└── transport
└── SSMTransport.so
この機能は次の項で説明している「一括インストールスクリプト」をオプション無しで実行した場合はインストールされません。
オプションとして「-l c++ –ssm」と指定するとインストールできます。 –help で確認できます。
一括インストールスクリプト
2.1系のインストールは、下記をシェルプロンプトに貼り付けて実行してください。 C++版、 Python版、 Java版、 rtshell、JDK8 がインストールされます。 スクリプトはローカルに保存されません。
※Javaの複数バージョンがインストールされても、Java8 使用に切り替わっています。
$ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_raspbian.sh)
この実行により以下のパッケージがインストールされます。
$ dpkg -l | grep openrt
ii openrtm2:arm64 2.1.0-0 arm64 OpenRTM-aist, RT-Middleware distributed by AIST
ii openrtm2-dev:arm64 2.1.0-0 arm64 OpenRTM-aist headers for development
ii openrtm2-doc 2.1.0-0 all Documentation for openrtm2
ii openrtm2-example:arm64 2.1.0-0 arm64 OpenRTM-aist examples
ii openrtm2-idl:arm64 2.1.0-0 arm64 OpenRTM-aist idls for development
ii openrtm2-java:arm64 2.1.0-0 arm64 OpenRTM-aist, RT-Middleware distributed by AIST
ii openrtm2-java-example:arm64 2.1.0-0 arm64 OpenRTM-aist-Java examples
ii openrtm2-naming:arm64 2.1.0-0 arm64 OpenRTM-aist name server launcher
ii openrtm2-python3 2.1.0-0 arm64 OpenRTM-aist, RT-Middleware distributed by AIST
ii openrtm2-python3-example 2.1.0-0 arm64 OpenRTM-aist-Python examples
デフォルトのpipバージョン利用で、 rtshellのインストールに失敗します。
インストールスクリプトが表示している黄文字のメッセージに従い、 /etc/pip.conf へ(存在しなければ 新規作成して)下記を追記して下さい。
$ vi /etc/pip.conf
[global]
break-system-packages = true
上記設定後に再度インストールスクリプトを実行するとrtshellをインストールできます。
$ pip3 list | grep aist
OpenRTM-aist-Python 2.1.0
rtctree-aist 4.2.5
rtshell-aist 4.2.10
rtsprofile-aist 4.1.6
オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。 help は下記で確認できます。
$ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_raspbian.sh) --help
パッケージの詳細
各パッケージの内容は以下の通りです。
openrtm2
openrtm-aistにはランタイムライブラリとコマンド群が含まれています。
- コマンド
/usr/bin/openrtmNames /usr/bin/rtcd2 /usr/bin/rtcprof2 /usr/bin/rtm2-config - 設定ファイルサンプル
/usr/etc/rtc.conf.sample2 /usr/etc/rtc.names.ssl.conf /usr/etc/ssl/rtc.ssl.conf /usr/lib/aarch64-linux-gnu/pkgconfig/openrtm2.pc - ライブラリなど
/usr/lib/aarch64-linux-gnu/libRTC2.a /usr/lib/aarch64-linux-gnu/libRTC2.so.2.1.0 中略 /usr/lib/aarch64-linux-gnu/librtmCamera2.so /usr/lib/aarch64-linux-gnu/librtmManipulator2.so 中略 /usr/lib/aarch64-linux-gnu/openrtm-2.1/ec/LogicalTimeTriggeredEC.so /usr/lib/aarch64-linux-gnu/openrtm-2.1/local_service/FileNameservice.so /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/ComponentObserverConsumer.so /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/ExtendedFsmServiceProvider.so /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/LoggerConsumer.so /usr/lib/aarch64-linux-gnu/openrtm-2.1/ssl/SSLTransport.so 中略 /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/LoggerConsumer.so
openrtm2-dev
開発に必要なコマンド群とヘッダが含まれています。
- コマンド
/usr/bin/rtm2-skelwrapper - ヘッダ
/usr/include/coil-2.1/coil/Affinity.h /usr/include/coil-2.1/coil/Async.h 中略 /usr/include/openrtm-2.1/rtm/BufferBase.h /usr/include/openrtm-2.1/rtm/BufferStatus.h 中略 /usr/include/openrtm-2.1/rtm/config_rtc.h /usr/include/openrtm-2.1/rtm/idl/BasicDataType.hh /usr/include/openrtm-2.1/rtm/idl/BasicDataTypeSkel.h 中略 /usr/include/openrtm-2.1/rtm/idl/SharedMemoryStub.h /usr/include/openrtm-2.1/rtm/version.h - ライブラリ・その他
/usr/lib/aarch64-linux-gnu/cmake/openrtm-2.1/OpenRTMConfig.cmake /usr/lib/aarch64-linux-gnu/cmake/openrtm-2.1/OpenRTMConfigVersion.cmake /usr/share/openrtm-2.1/py_helper/skel_wrapper.py /usr/share/openrtm-2.1/py_helper/yat.py
openrtm2-idl
- idlファイルなど
/usr/include/openrtm-2.1/rtm/idl/BasicDataType.idl /usr/include/openrtm-2.1/rtm/idl/CameraCommonInterface.idl 中略 /usr/include/openrtm-2.1/rtm/idl/SharedMemory.idl /usr/share/openrtm-2.1/idl/BasicDataType.idl /usr/share/openrtm-2.1/idl/CameraCommonInterface.idl 中略 /usr/share/openrtm-2.1/idl/SharedMemory.idl
openrtm2-example
openrtm-aist-exampleにはスタンドアロンRTC、ローダブルRTCそれぞれのサンプルと、サンプルRTCのソースが含まれています。
- サンプル(スタンドアロンRTC)
/usr/share/openrtm-2.1/components/c++/examples/CompositeComp /usr/share/openrtm-2.1/components/c++/examples/ConfigSampleComp 中略 /usr/share/openrtm-2.1/components/c++/examples/rtc.conf - サンプル(ローダブルRTC)
/usr/share/openrtm-2.1/components/c++/examples/rtc/ConfigSample.so /usr/share/openrtm-2.1/components/c++/examples/rtc/ConsoleIn.so 中略 /usr/share/openrtm-2.1/components/c++/examples/rtc/Throughput.so
openrtm2-doc
openrtm-aist-docには、日本語と英語のクラスリファレンス、IDLインターフェース定義リファレンスが含まれています。
- クラスリファレンス
/usr/share/openrtm-2.1/doc/c++/ClassReference/html/BufferBase_8h.html /usr/share/openrtm-2.1/doc/c++/ClassReference/html/BufferBase_8h__dep__incl.map 中略 /usr/share/openrtm-2.1/doc/c++/ClassReference/html/structSDOPackage_1_1Organization__impl_1_1sdo__id.html - IDLリファレンス
/usr/share/openrtm-2.1/doc/idl/IDLReference/html/BasicDataType_8idl.html /usr/share/openrtm-2.1/doc/idl/IDLReference/html/BasicDataType_8idl_dep_incl.map 中略 /usr/share/openrtm-2.1/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html - クラスリファレンス(英語)
/usr/share/openrtm-2.1/doc/c++/ClassReference-en/html/BufferBase_8h.html /usr/share/openrtm-2.1/doc/c++/ClassReference-en/html/BufferBase_8h__dep__incl.map 中略 /usr/share/openrtm-2.1/doc/C++/ClassReference-en/html/version_8h_source.html - IDLリファレンス(英語)
/usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/BasicDataType_8idl.html /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.map 中略 /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html
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.1/components/python3/__init__.py
/usr/share/openrtm-2.1/components/python3/component.conf
/usr/share/openrtm-2.1/components/python3/rtcd.conf
/usr/share/openrtm-2.1/components/python3/AutoControl/*
/usr/share/openrtm-2.1/components/python3/AutoTest/*
/usr/share/openrtm-2.1/components/python3/CSPSample/*
/usr/share/openrtm-2.1/components/python3/CSPSelectSample/*
/usr/share/openrtm-2.1/components/python3/CSPStaticFsmSample/*
/usr/share/openrtm-2.1/components/python3/Composite/*
/usr/share/openrtm-2.1/components/python3/ConfigSample/*
/usr/share/openrtm-2.1/components/python3/ExtTrigger/*
/usr/share/openrtm-2.1/components/python3/MobileRobotCanvas/*
/usr/share/openrtm-2.1/components/python3/SeqIO/*
/usr/share/openrtm-2.1/components/python3/Serializer/*
/usr/share/openrtm-2.1/components/python3/SimpleIO/*
/usr/share/openrtm-2.1/components/python3/SimpleService/*
/usr/share/openrtm-2.1/components/python3/Slider_and_Motor/*
/usr/share/openrtm-2.1/components/python3/Throughput/*
/usr/share/openrtm-2.1/components/python3/TkJoyStick/
/usr/share/openrtm-2.1/components/python3/TkLRFViewer/*
openrtm2-java
/usr/bin/rtcd2_java
/usr/bin/rtcprof2_java
/usr/share/openrtm-2.1/jar/License.txt
/usr/share/openrtm-2.1/jar/LogicalTimeTriggeredEC.jar
/usr/share/openrtm-2.1/jar/NameserviceFile.jar
/usr/share/openrtm-2.1/jar/OpenRTM-aist-2.1.0.jar
/usr/share/openrtm-2.1/jar/commons-cli-1.1.jar
/usr/share/openrtm-2.1/jar/jna-4.2.2.jar
/usr/share/openrtm-2.1/jar/jna-platform-4.2.2.jar
/usr/share/openrtm-2.1/jar/rtcd.jar
/usr/share/openrtm-2.1/jar/rtcprof.jar
openrtm2-java-example
/usr/share/openrtm-2.1/components/java/*
/usr/share/openrtm-2.1/components/java/RTMExamples/AutoTest/*
/usr/share/openrtm-2.1/components/java/RTMExamples/Composite/*
/usr/share/openrtm-2.1/components/java/RTMExamples/ConfigSample/*
/usr/share/openrtm-2.1/components/java/RTMExamples/ExtTrigger/*
/usr/share/openrtm-2.1/components/java/RTMExamples/Fsm/*
/usr/share/openrtm-2.1/components/java/RTMExamples/GUIIn/*
/usr/share/openrtm-2.1/components/java/RTMExamples/MyService.idl
/usr/share/openrtm-2.1/components/java/RTMExamples/SeqIO/*
/usr/share/openrtm-2.1/components/java/RTMExamples/SimpleIO/*
/usr/share/openrtm-2.1/components/java/RTMExamples/SimpleService/*
/usr/share/openrtm-2.1/components/java/RTMExamples/SinCosOut/*
/usr/share/openrtm-2.1/components/java/RTMExamples/StaticFsm/*
/usr/share/openrtm-2.1/components/java/RTMExamples/Throughput/*
/usr/share/openrtm-2.1/components/java/RTMExamples/TopicTest/*