記事を読みながらRTミドルウエアの世界に入門しましょう.
RTミドルウェア概要
RTミドルウエアとは,ロボットをアクチュエータやセンサなどの機能単位に分割し,それらの組合せでロボットシステムを構成する手法の国際標準仕様の集まりです.ここではRTミドルウエアについて解説します.
RTミドルウエアとは
RTミドルウェアってなんだろう.説明を試みますが,たぶんやってみるのが一番だと思います.ざっと読んでみて,すぐにOpenRTM-aistを触ってみましょう.それからまた読みなおして,「なるほど,そうだったのか」が分かりやすい道だと思います
OpenRTM-aistとは
OpenRTM-aistについて解説します.難しい用語も出てきますが,軽くさわりだけ話すので,「ふーん」くらいに思ってください.ここも飛ばしてもOKです.
こんな人こそRTミドルウエア
僕が大学の研究室でRTミドルウエアを使っていた理由を加えて,みなさんのモチベーションになればと思い書きました.すでにモチベーションがあるなら飛ばしてもOK.
よくある質問
RTミドルウエアに関する良くある質問です.
OpenRTM-aistのインストール
ここではOpenRTM-aistのインストールについて解説します.
RTミドルウエア「OpenRTM-aist C++」 開発環境構築編
OpenRTM-aistの開発環境をフリーで整備します.Windowsでの開発を前提にします.1.0バージョンに対応したインストールマニュアルを入れました.大分簡単になりました.
RTミドルウエア「OpenRTM-aist Java」 開発環境構築編
RTミドルウェアの開発環境をフリーで整備します.Java版です.C++よりも簡単にRTミドルウエアを体感出来ます.Windowsでの開発を前提にしますが,Javaの環境はOS依存性が低いです.
RTミドルウエア「OpenRTM-aist Python」 開発環境構築編
RTミドルウェアの開発環境をフリーで整備します.Python版です.C++よりも簡単にRTミドルウエアを体感出来ます.Windowsでの開発を前提にしますが,Pythonの環境はOSに依存性が低いです.
RTコンポーネント作成方法について
この3章を最初からやっていけば,RTコンポーネントはとりあえず開発できるようになります.
周期的にコンソールに文字出力
とりあえずスタンドアロンなRTコンポーネントを作ってみましょう.
コンフィギュレーション変数を利用
RTコンポーネントにコンフィグレーションを設定することで,コンポーネントの動作を調整することができます
コンポーネント間の通信(push型)
コンポーネント同士をつなげます.
コンポーネント間の通信(pull型)
コンポーネント同士をつなげます第2弾.
サービスポートを使った接続
サービスポートをつかってRTCを接続します.サービスポートは非常に便利な機能です.サービスポートを使えば,openやclose,resetのようなデータのやりとりを前提としないRTC間のコミュニケーションを実現できます.また,readのようにPULL型のサービスを提供できます.
DLL(ダイナミックリンクライブラリ)を使ったRTCの生成と制御
Win32 DLLとしてRTCをコンパイルします.またDLLを再利用する方法について,明示的利用,暗黙的利用の両面から例を挙げます.
RTミドルウエア用ツールの開発方法について
ここではRTコンポーネントの動作を調整したり,接続したりするツールの作り方.
コンポーネントのアクティブ化プログラム
コンポーネントをRT System Editorを使わないでアクティブ化できます.アクティブ化するためのツールの開発法になります.
コンフィギュレーションを変更するプログラム
RT System Editorを使わないでコンフィギュレーションを変更するプログラム.アクティブ化プログラムを改造してみます.
コンポーネント間の接続をするプログラム
コンポーネント間の接続も自動で行うプログラムを作成できます.
実際の運用にまつわるテクニック
さて,実際にRTCでシステム開発をする場合に知っておくと便利な機能などを紹介.
COMポートにアクセスするRTC作成
COMポートにアクセスするRTCを作って,実際のデバイスRTC開発について学びます.on_activateやon_deactivate,on_resetなどの使い方についても触れます.
RT Systemの設計論
ysugaなりにRTCを使ったシステム設計論を展開してみます.ようするにRTCへの切り分け方.これ通りにしろ,とは全く思いません.一つの考え方と思って下さい.むしろこの記事のコメント欄を使って,皆で議論したいくらい.
RTC Daemonを使ったRTCの制御
RTミドルウエアのバージョン1.0では,RTCの生成・制御をするManagerがCORBAオブジェクトとなりました.ネームサーバー上のManagerオブジェクトを使ってRTCの制御が可能です.これを利用したのがRTC Daemonです.非常に便利なツールなので使いこなしてほしい!
チップテクニック
WindowsFormとCLRマネージドコードを使ってグラフィカルインタフェースを追加
GUI(フォーム)を使えます.ボタンを追加して使いやすいインタフェースをRTコンポーネントに追加できます.チップテクニックです.ご参考になれば.