Dockerによる RT ミドルウェア開発・検証環境の提供

Dockerによる RT ミドルウェア開発・検証環境の提供

投稿者: 
root

概要・特徴

  • 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部分の様々な組み合わせをコンテナイメージ化しました.

basic2.png

OpenRTM on Docker 利用例

異なるバージョンの RTM 間での接続を検証したり,特定OSバージョンでしか動作しないRTCを同一PCで簡単にテストできます.

仕様

  • 言語: -
  • OS: Windows/Linux/Mac OSX
  • RTミドルウェア:OpenRTM-aist-1.1.1/1.1.2

ソースコードおよびマニュアル

ライセンス

MIT License https://github.com/takahasi/docker-openrtm/blob/master/LICENSE

問合先(メールアドレス): 
takahashi.saburo<at>aist.go.jp
Project Information
OS: 
Windows
Linux
FreeBSD
MacOSX
言語: 
N/A
OpenRTM ver.: 
1.1
Average: 
5
Average: 5 (2 votes)
最終更新日時: 
木, 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などでも同じようなフレームワークで使えるようになると利便性もかなり上がると思います。 今後も開発が継続されることを期待します。

ダウンロード

最新バージョン

初めての方へ

Windows msi(インストーラ) パッケージ (サンプルの実行ができます。)

C++,Python,Java,
Toolsを含む
1.2.0-RELEASE

RTコンポーネントを開発するためには開発環境のインストールが必要です。詳細はダウンロードページ

統計

Webサイト統計
ユーザ数:1761
プロジェクト統計
RTコンポーネント292
RTミドルウエア23
ツール20
文書・仕様書1

旧Webサイト

OpenRTM.org旧Webサイト

OpenHRP3

動力学シミュレータ

Choreonoid

モーションエディタ/シミュレータ

OpenHRI

対話制御コンポーネント群

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

VirCA

遠隔空間同士を接続し、実験を行うことが可能な仮想空間プラットホーム