Dockerによる RT ミドルウェア開発・検証環境の提供
Dockerによる RT ミドルウェア開発・検証環境の提供
投稿日時:
月, 2017-10-30 15:56
概要・特徴
- OpenRTM-aist を仮想コンテナ環境OpenRTM on Dockerとして配布(DockerHubにて公開中)
- インストール不要で様々なバージョンのOpenRTM-aist を試すことが出来る
- 導入を支援するスクリプトや利用シーンに合わせたサンプルコード,ドキュメントを作成
- OpenRTM on Dockerを利用することで,さらなる応用が期待される
- テスト自動化への応用
- RTコンポーネントのリリースパッケージとしての利用
OpenRTM on Docker 開発の動機
OpenRTM-aistをもっと簡単に使いたい!高品質なRTコンポーネント(RTC)を開発する場合、汎用性や後方互換製に配慮する必要があります。
そのためには、OSのバージョンやRTミドルウェアのバージョン、開発PCにインストールされているさまざまなライブラリとの依存関係を疎にする必要があります。
この作業、特に開発環境を整備することが非常に大変で、開発コストの増加に繋がります。
そこで、RTミドルウェアを含むさまざまなライブラリの組み合わせをDockerイメージとして提供することで、開発環境構築コストを低減できると考えました。
OpenRTM on Docker アーキテクチャ
Dockerを利用しRTMとOS部分の様々な組み合わせをコンテナイメージ化しました.
OpenRTM on Docker 利用例
異なるバージョンの RTM 間での接続を検証したり,特定OSバージョンでしか動作しないRTCを同一PCで簡単にテストできます.
仕様
- 言語: -
- OS: Windows/Linux/Mac OSX
- RTミドルウェア:OpenRTM-aist-1.1.1/1.1.2
ソースコードおよびマニュアル
- マニュアル: http://openrtm-on-docker.readthedocs.io/ja/latest/
- ソースコード
- OpenRTM on Docker Tools: https://github.com/takahasi/docker-openrtm-tools
- OpenRTM on Docker Dockerfile: https://github.com/takahasi/docker-openrtm
- OpenRTM on Docker DockerHub: https://hub.docker.com/r/takahasi/docker-openrtm/
ライセンス
MIT License https://github.com/takahasi/docker-openrtm/blob/master/LICENSE
問合先(メールアドレス):
takahashi.saburo<at>aist.go.jp
最終更新日時:
木, 2018-05-31 11:42
コメント
Dockerを使って様々なパッケージでテストできるのはよいと思いますが、ロボットや入力装置などPCに接続された機器を含んだテストの場合にはどうすればいいのでしょうか?(例えばLeepMotionなど) また、現在はLinuxのみのようですが、DockerはWindows Serverでも動作するものがあると思います。Azureなどのサービスを利用すればWindowsのバイナリでも同じような環境を構築することは可能なのでしょうか?
コメントありがとうございます.
1点目の質問の件ですが,Docker コンテナ内からデバイスファイルを共有する仕組みを利用できるオプションを追加してあります."-d" オプションで "/dev/ttyUSB0" などを指定すると,コンテナ内からもデバイスにアクセスできます.ただし,Windows,MacOSX にはまだ対応していません. そのため,現状ではMacOSX,Windows で動作させる際はコンテナ外部にプロクシー用のRTCを別途準備する必要があります. Docker コミュニティでは Windows でもデバイス制御できるように修正を行っているようですので,Docker が対応次第, OpenRTM on Docker でも動作確認やツールオプションの追加をする予定です.
マニュアルにも反映していますので,http://openrtm-on-docker.readthedocs.io/ja/latest/#device を参照ください.
2点目の質問ですが,仰る通りでWindows Server系コンテナも Docker for Windowsではサポートされています. ただ,現状 CUI から OpenRTM-aist のサイレントインストールが安定して成功しないため, OpenRTM on Docker コンテナとしてサポートできていません. インストーラ自体を改修するか,chocolaty などのパッケージシステム越しにインストールすることができないか検討している段階でした. 既存のRTCにはWindows固有のライブラリを利用するケースも多く存在すると感じているので,何かしらの方法で解決する予定です.
マニュアルにも反映していますので http://openrtm-on-docker.readthedocs.io/ja/latest/#os を参照ください.
ご回答ありがとうございます。デバイスファイルを指定できるのですね。また、WindowsやmacOSなどでも同じようなフレームワークで使えるようになると利便性もかなり上がると思います。 今後も開発が継続されることを期待します。