Upload
openrtm
View
673
Download
0
Embed Size (px)
Citation preview
統合知能研究グループ
組込み用Linuxボード,BeagleBone Black
における RT ミドルウェアの
動作と開発支援ツール
・村上 青児(筑波大/産総研) ・ 安藤 慶昭(産総研) ・ 関山 守(産総研) ・ 鍛冶 良作(産総研) ・ 谷川 民生(産総研) ・ 神徳 徹雄(産総研)
統合知能研究グループ
概要
•最近のLinuxボード事情
•小型Linuxボードで開発を行なう際の問題点の抽出
•解決方法の提案とその効果
• まとめ
統合知能研究グループ
最近のLinuxボード事情
• 近年安価で通常のLinux (uCLinuxなどの組込みでは無い)が動作するボードが続々と発売されている。
• クロスコンパイルが不要(ボード上でのコンパイルが可能)
• 通常(RTC-Lite、miniRTC等ではない)のOpenRTM-aistが実行可能。
AriaG25 BeagleBone Black Raspberry Pi ODROID-XU
引用:http://www.hardkernel.com
しかし
PC上での開発とまったく同じというわけにはいかない
統合知能研究グループ
BeagleBone Black
CPU Coretex-A8 1GHz
RAM 512MB
OS AngstromLinux
価格 $45
IO A/D×7
PWM×6
タイマ×4
シリアル×4
CAN SPI I2C
組み込みLinuxボードでRTM・RTCを
簡単に開発・利用できる仕組みを構築する
• ターゲット:BeagleBone Black
–多様なIO
–十分なスペック
• 組み込みボード特有の問題
– CPU・ディスクの速度
–マイナーなOS
–運用時の問題
–ヘッドレスシステム
統合知能研究グループ
小型Linuxボードの開発フロー
• 開発するまでに煩雑な手順や機材が多く、ハードルが高く感じる。
• BeagleBone Blackを使ってこの開発フローを検討、問題点を抽出した。
2.組み込みボードをネットワークに接続して起動する.
5.必要な環境設定を行う(Avahiのインストールなど).
3.画面に接続した状態でIPアドレスを調べる.
4.別の端末からssh経由でログインする.
6.OpenRTM-aistやomniORBのインストール.
7.RTコンポーネントの開発・デバッグ・実行
1.組み込みボードにモニタ・キーボードを繋ぐ.
煩雑で難しい!
統合知能研究グループ
理想的だと考えられる開発フロー
• 手順2~5を自動的に行える仕組みを考える。
• 必要な周辺機器も最小限にするため、ヘッドレスシステムで開発できることを考える。
簡単になった! この状態でCOM接続、SSH接続が出来る
開発がしやすいボード
2.別端末からssh経由でログイン.
4.OpenRTM等をパッケージでインストールする.
3.必要な設定を行う.
5.RTコンポーネントの開発・デバッグ・実行
1.組み込みボードをネットワークに接続して起動する.
統合知能研究グループ
RT コンポーネント開発・運用環境の構築
1. BeagleBone Finderの作成
– ヘッドレス運用時の問題を解決
2. RTミドルウェアのバイナリをパッケージ形式で提供する
– OpenRTM-aistのコンパイルの負担を軽減
3. RTミドルウェアの自動起動の仕組みを作る
–実運用時の枠組みを提供
• 実験としてKobukiコンポーネントを自動起動させ、BeagleBone Blackから操作を行った。
統合知能研究グループ
1.BeagleBone Finder
BeagleBone Finderの動作
• ARPプロトコルによりネットワーク上のMACアドレスとそのIPアドレスのリストを作成
• MACアドレスからBeagleBoneのIPアドレスのを取得
– BeagleBone BlackのベンダID:
C8:A0:30:*:*:*
BeagleBone Finderを実行し、IPアドレスの取得を行えた
SSHによるログインが可能に
→ヘッドレスシステムの実現
ネットワーク上のBeagleBoneを検索するツール
ルーター
母艦PC BeagleBone Black
LAN接続
IP BBF実行
統合知能研究グループ
2.RTMをパッケージ形式でインストール
• RTM実行に必要なパッケージのコンパイル
– 約4時間を要する
• バイナリパッケージを提供することで、ユーザーの負担を大幅に軽減できる。
RTMソースコード
RTMバイナリ
RTM実行可能
数時間にわたる
コンパイル!
インストール
RTMバイナリ
RTM実行可能
インストール
サーバーにある
RTMバイナリ
ダウンロード
オリジナルの手法 改善された方法
http://openrtm.org/pub/Linux/Angstrom/armv7l/omniorb.opk
http://openrtm.org/pub/Linux/Angstrom/armv7l/openrtm-aist.opk
Angstrom Linuxのパッケージ管理システム:opkg
opkgの作成スクリプトも公開予定
omniORB/OpenRTM-
aistのパッケージを
作成・公開
パッケージの公開場所
統合知能研究グループ
3.RTMの自動起動
• 開発者がシステムを起動するまでも無く、電源を入れるだけで
RTミドルウェアおよび、狙ったRTコンポーネントが自動的に起動する仕組みを構築。
→問題としてAngstrom Linuxに自動起動を行うrc.localが
存在しない
• 独自にrc.localを作成し、init.dからコールする仕組みを作成。
→自動起動が行え、RTMを起動する
際の手順を一気に省くことに成功。
この一連の流れを以下にまとめた。
http://openrtm.org/pub/Linux/Angstrom/armv7l/setuprtm.sh
センサ1 センサ2
センサ4 センサ3
モニタリング
運用が非常に楽になった!
統合知能研究グループ
実験:Kobukiを使って検証
• BeagleBone Blackで自動起動させたkobuki用RTコンポーネントとwindowsで起動させた仮想ジョイスティック、TKJoystickを接続して、動作確認を行った。
• また、開発における煩雑さの低減に効果があったかの検証を行った。
OpenRTM-aistのインストールから、Kobukiコンポーネントを立ち上げて実際に動かすまで約5分程度で出来た。
統合知能研究グループ
まとめ
• BeagleBone Finder、パッケージの配布、実行ファイルの自動起動を行なう仕組みの提供、この三つを整えたことで、数時間に及ぶ環境構築を数分まで短縮。
• 開発者の敷居を大幅に下げ、実際の運用を見据えた開発が出来るようになった。
• 本論文で発表したBeagleBone Finder、パッケージ、自動起動スクリプトや、その使い方は以下のサイトに掲載。今後充実させていく予定。 http://www.openrtm.org/openrtm/ja/node/5420
統合知能研究グループ
今後の課題
• 今後の課題として、BeagleBone Blackには非常に多くのIO
ピンがあるため、開発者がこれをなるべくストレスを感じずに使えるような仕組みを提供していく。
• BeagleBone Blackを使ったRTミドルウェアの開発手順を充実させる。
統合知能研究グループ
ご清聴ありがとうございました
統合知能研究グループ
BeagleBone Blackの開発プロセス公開場所