コマンドの多くは、ネームサーバーで動作しているコンポーネントとマネージャーをファイルシステムのように扱えるようにしてあります。ディレクトリに入ったり、コンポーネントをcatのようにで読んだり、アクティブさせたり、ポートを接続できます。ほかのコマンドはRTシステムを管理するためのRTSProfileファイルに関連して使用されます。
すべてのコマンドはRTCツリー上で起動します。RTCツリーとは、ネームサーバー上のコンテキスト、コンポーネント、マネージャなどをファイルシステムに見立てて扱うことができる仕組みです。通常のファイルシステムと同じように扱うことができます。
ネームサーバーはルートディレクトリ"/"直下のサブディレクトリとして扱われます。その下にはファイルやサブディレクトリが存在します。サブディレクトリはネームサーバー上のネーミングコンテクストに対応します。ファイルはコンポーネントとマネージャーに対応します。
ツリーを構築するためのネームサーバーを与える方法は2通りあります。一つはrtshellコマンドに渡したネームサーバーへの相対パスです。これは現在の作業ディレクトリからの相対パスです。また絶対パス指定して場合はルート直下のディレクトリがネームサーバーがあるホスト名(IPアドレスの場合もあり)です。
もう一つはRTCTREE_NAMESERVERS環境変数です。ネームサーバーのホストアドレスをセミコロンで区切り、リストを渡すこともできます。複数のネームサーバーがあるホストを指定した場合はそれぞれのホストがルート直下に見えるようになります。
Bashシェルを使う方はrtshell付属のコンプリーションスクリプトによってrtshellのコマンド入力の補完ができるようになり使いやすくできます。スクリプトは/usr/local/lib/pythonX.Y/dist-packages/rtshellにインストールされます。以下のコマンドでロードしてください:
$ source /usr/local/lib/pythonX.Y/dist-packages/rtshell/bash_completion
また上記の行を~/.bashrcというファイルに追加すればターミナル起動時に自動的にロードされます。
$ rtcwd /localhost/[TAB] $ rtcwd /localhost/ubuntu.host_cxt/
$ rtcwd /localhost/ubuntu.host_cxt/[TAB][TAB] /localhost/ubuntu.host_cxt/ConfigSample0.rtc /localhost/ubuntu.host_cxt/ConsoleIn0.rtc /localhost/ubuntu.host_cxt/ConsoleOut0.rtc /localhost/ubuntu.host_cxt/manager.mgr/
$ rtcwd localhost/ubuntu.host_cxt/[ENTER]
$ rtconf ConfigSample0.rtc set [TAB] double_param0 int_param0 str_param0 vector_param0 double_param1 int_param1 str_param1
$ rtcon ConsoleIn0.rtc:[TAB] $ rtcon ConsoleIn0.rtc:out
rtshell はパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)
利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_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>.<new_port_name>#<formatter>
/localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer
新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定します。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します。) 作られたポートはcomp0.rtcのinputというポートに接続されます。
<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:
/localhost/blurg.host_cxt/comp0.rtc:input#a_printer
<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:
/localhost/blurg.host_cxt/comp0.rtc:input.stuff
一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。
$ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com
成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。
デバッグ情報とエラーはstderrに出力されます。
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
概要
コマンドの多くは、ネームサーバーで動作しているコンポーネントとマネージャーをファイルシステムのように扱えるようにしてあります。ディレクトリに入ったり、コンポーネントをcatのようにで読んだり、アクティブさせたり、ポートを接続できます。ほかのコマンドはRTシステムを管理するためのRTSProfileファイルに関連して使用されます。
コマンド
RTCツリー
すべてのコマンドはRTCツリー上で起動します。RTCツリーとは、ネームサーバー上のコンテキスト、コンポーネント、マネージャなどをファイルシステムに見立てて扱うことができる仕組みです。通常のファイルシステムと同じように扱うことができます。
ネームサーバーはルートディレクトリ"/"直下のサブディレクトリとして扱われます。その下にはファイルやサブディレクトリが存在します。サブディレクトリはネームサーバー上のネーミングコンテクストに対応します。ファイルはコンポーネントとマネージャーに対応します。
ツリーを構築するためのネームサーバーを与える方法は2通りあります。一つはrtshellコマンドに渡したネームサーバーへの相対パスです。これは現在の作業ディレクトリからの相対パスです。また絶対パス指定して場合はルート直下のディレクトリがネームサーバーがあるホスト名(IPアドレスの場合もあり)です。
もう一つはRTCTREE_NAMESERVERS環境変数です。ネームサーバーのホストアドレスをセミコロンで区切り、リストを渡すこともできます。複数のネームサーバーがあるホストを指定した場合はそれぞれのホストがルート直下に見えるようになります。
シェルコンプリーション
Bashシェルを使う方はrtshell付属のコンプリーションスクリプトによってrtshellのコマンド入力の補完ができるようになり使いやすくできます。スクリプトは/usr/local/lib/pythonX.Y/dist-packages/rtshellにインストールされます。以下のコマンドでロードしてください:
また上記の行を~/.bashrcというファイルに追加すればターミナル起動時に自動的にロードされます。
コンプリーション(補完)の例:
システムの要件
パス
rtshell はパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)
利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_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というポートを意味します。
新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:
例:
新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定します。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します。) 作られたポートはcomp0.rtcのinputというポートに接続されます。
<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:
<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:
環境変数
一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。
返り値
成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。
デバッグ情報とエラーはstderrに出力されます。