Author: | Geoffrey Biggs and contributors |
---|---|
Date: | 2010-10-24 |
Copyright: | EPL-1.0 |
Version: | 3.0 |
Manual section: | 1 |
Manual group: | User commands |
rtshellはRTコンポーネント、マネージャ及び全RTシステムを管理するツール を提供します。OpenRTM-aistとそれに準じているインタフェースを提供する 他のミドルウェアに対応しています。
コマンドの多くは、ネームサーバで動作しているコンポーネントとマネージャ ーをファイルシステムのように扱えるようにしてあります。 ディレクトリに入ったり、コンポーネントをcatのようにで読んだり、アクティブさせ たり、ポートを接続させたりすることができます。ほかのコマンドはRTシステムを 管理するためのRTSProfileファイルに関連して使用されます。
rtshellのコマンドは、何らかの都合により RTSystemEditor が使うことができない OpenRTM-aist のユーザ向きです。 システムリソースが少ない場合、GUIがない場合(特にネットワークにも接続できな い場合)、スクリプトを使いたい場合などに役に立ちます。コマンドラインを使用 するのになじみがあるユーザにとってはrtshellは非常に便利です。
- rtact
- RTコンポーネントをアクティブにする。
- rtcat
- RTコンポーネントのメタデータを表示する。
- rtcheck
- 起動中のRTシステムを保存されたRTSProfileと比べる。
- rtcomp
- コンポジットコンポーネントを作る。
- rtcon
- ポートを接続する。
- rtconf
- コンポーネントのコンフィグレーションを編集する。
- rtcryo
- 起動中のRTシステムをRTSProfileファイルに保存する。
- rtcwd
- 現在のワーキングダイレクトリを変更する。
- rtdeact
- コンポーネントをディアクティブにする。
- rtdel
- ネームサーバからオブジェクトを消す。
- rtdis
- ポートの接続を削除する。
- rtdoc
- RTコンポーネントのドキュメンテーションを表示する。
- rtexit
- RTコンポーネントを停止する。
- rtfind
- 起動中のRTコンポーネントやマネージャ等を探す。
- rtinject
- ポートにデータを送る。
- rtlog
- ポートが送るデータをログに保存して再生する。
- rtls
- ダイレクトリのオブジェクトをリストする。
- rtmgr
- マネジャーでRTコンポーネントを管理する。
- rtprint
- ポートが送るデータをターミナルに表示する。
- rtpwd
- 現在のワーキングダイレクトリを表示する。
- rtreset
- RTコンポーネントをリセットする。
- rtresurrect
- RTSProfileファイルに保存されたRTシステムを復元する。
- rtstart
- RTシステムを起動する。
- rtstodot
- 起動中のRTシステムをグラフで表示する。
- rtstop
- RTシステムを停止する。
- rtteardown
- RTシステムを削除する。
すべてのコマンドはRTCツリー上で起動します。RTCツリーとは、ネームサーバ上 のコンテキスト、コンポーネント、マネージャ等をファイルシステムに見立てて 扱うことができる仕組みです。通常のファイルシステムと同じように扱うことが できます。
ネームサーバはルートディレクトリ( / )からのサブディレクトリとして扱 われます。その下にはファイルとサブディレクトリが存在します。サブディレク トリはネームサーバ上のネーミングコンテクストに対応します。ファイルはコン ポーネントとマネージャーに対応します。
ツリーを構築するためのネームサーバを与える方法は2通りあります。一つはコマ ンドに渡したネームサーバへのパスです。これは現在のツリーの作業ディレクト リに追加され、最初の要素はネームサーバとして扱われます。
もう一つは RTCTREE_NAMESERVERS 環境変数です。ネームサーバアドレスをセミ コロンで区切り、リストを渡すこともできます。
Bash(バッシュ)シェルの使う方はrtshellに含めているコンプリーションスク リプトによってrtshellのコマンドをもっと使いやすくできます。スクリプトは ${prefix}/share/rtshell にインストールされます。以下のコマンドでロー ドしてください:
$ source bash_completion
以上のコマンドを ~/.bashrc というファイルに保存したら自動的にロードさ れます。
コンプリーションの例:
$ rtcwd [TAB] $ rtcwd localhost/ $ rtcwd localhost/[TAB] $ rtcwd localhost/kenroke.host_cxt/ $ rtcwd localhost/kenroke.host_cxt/[TAB][TAB] ConsoleIn0.rtc ConfigSample0.rtc manager.mgr Sensor0.rtc $ rtcwd localhost/kenroke.host_cxt/[ENTER] $ rtconf ConfigSample0.rtc set [TAB] double_param0 double_param1 int_param0 int_param1 str_param0 str_param1 vector_param0 $ rtcon Sensor0.rtc:[TAB] in out
rtshellは rtctree 3.0 が必要です。インストールされていない場合はコマン ドは起動しません。
RTSProfileを使うコマンドは rtsprofile 2.0 が必要です。インストールされ ていない場合はこのコマンドは起動しません。
rtshellは Python 2.6 が必要です。Python 3.0はまだテストされていないの で動かない可能性はあります。
rtinject 、 rtlog 及び rtprint は OpenRTM-python が必要です。
Ubuntu 9.04より古いUbuntuのバージョンの使う方は正しいPythonを手動でイン ストールする必要です。新しいUbuntuにアップグレードすることをお考えくださ い。10.04はLTSを提供します。
rtshell は パス でRTCツリーのオブジェクトを示します。パスは オブジェクトのアドレスです。ネームサーバとネームコンテクストは ダイレクトリで、マネージャとRTコンポーネントはファイルです。POSIXの cat 等のコマンドと同じように、コマンドに渡したパスはrtshellの ワーキングディレクトリに追加されます。rtshellの現在のワーキングディレクトリは RTCSH_CWD という環境変数に保存されて、 rtcwd というコマンドで 変更することができます。
利用できるパスはコマンド実行時のネームサーバによって変わります。 RTCSH_NAMESERVERS という環境変数の値に記録されたネームサーバとパスに 指定された ネームサーバを組み合わせて提供します。
例えば、 /localhost/comp0.rtc は localhost にあるネームサーバに登録 された comp0.rtc というRTコンポーネントを示します。 /localhost/manager/comp0.rtc は localhost にあるネームサーバの下の manager というディレクトリに登録された comp0.rtc というRT コンポーネントを示します。 ./comp0.rtc は現在のワーキングディレクトリ の中にある comp0.rtc というRTコンポーネントを示します。
RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って 示します。例えば、 /localhost/comp0.rtc:data は comp0.rtc というRTコンポーネントの data というポートを示します。
新しいポートを作るコマンドもあります。この場合、オプションをパスに追加 することができます。使えるオプションは作られるポートの名前とフォーマッタ です。指定方法は以下の通りです:
path:port.name#formatter
例:
/localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer
作られるポートの名前は stuff で、データは a_printer という関数で ターミナルに表示するように指定してます。( a_printer の関数はPythonが利 用可能な場所に存在する必要があります。普通はユーザがモジュールで提供します。) 作られたポートは comp0.rtc の input というポートに接続します。
「name」という部分は必須ではありません。書いていない場合は「.」文字も 書かないでください。例:
/localhost/blurg.host_cxt/comp0.rtc:input#a_printer
「formatter」という部分は必須ではありません。書いていない場合は「.」文字も 書かないでください。例:
/localhost/blurg.host_cxt/comp0.rtc:input.stuff
- RTCTREE_ORB_ARGS
- ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
- RTCTREE_NAMESERVERS
- RTCツリーを作る時に参照するネームサーバのアドレスです。アドレスをセミ コロンで区切ります。リストされたアドレスはすべてRTCツリーに追加して rtshellで見ることができるようになります。必須ではありません。
- RTSH_CWD
- rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。 設定しないでください。
普通、ユーザが設定する変数は RTCTREE_NAMESERVERS のみです。よく使うネ ームサーバを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンド は localhost 、 192.168.0.1:65346 および example.com にあるネーム サーバをいつもrtshellで利用できるようにします。
$ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com
成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。
デバグ情報とエラーは stderr に出します。
rtact (1), rtcat (1), rtcheck (1), rtcomp (1), rtcon (1), rtconf (1), rtcryo (1), rtcwd (1), rtdeact (1), rtdel (1), rtdis (1), rtexit (1), rtfind (1), rtinject (1), rtlog (1), rtls (1), rtmgr (1), rtprint (1), rtpwd (1), rtreset (1), rtresurrect (1), rtstart (1), rtstodot (1), rtstop (1), rtteardown (1)