rtshell(CUIツール)

イントロダクション

RTShell は、ネームサーバー上に登録されている RTコンポーネントをシェルから管理することができるツールです。 コンポーネントを activate/deactivate/reset したり、ポートの接続を行うことができます。 RTシステムを管理することもできます。

このツールは、リソースの少ないシステム、GUI が利用できない環境(特に、コンポーネントを管理する他のPCとネットワークがつながっていない環境等)、あるいは RTSystemEditor がどうしても利用できない場合等に有効です。 コマンドラインの利用に精通している人にとっては特に便利なツールです。

このソフトウエアは NEDO (独立行政法人 新エネルギー・産業技術総合開発機構) の次世代ロボット知能化技術開発プロジェクトの支援により、独立行政法人産業技術総合研究所によって開発されています。 管理番号H23PRO-1214。

This software is licensed under the GNU Lesser General Public License version 3 (LGPL3). See LICENSE.txt.

必要条件

  • RTCTree が必要となります。
  • RTSProfile が必要となります。
  • Python 2.7 が必要となります。
  • rtprint、rtinject および rtlog は OpenRTM-Python-1.0.0 以上が必要となります。
  • omniORB-py 4.x 以上が必要となります。
  • ソースからのインストールの場合は、ドキュメントをコンパイルするために Sphinx が必要となります。

pip によりインストールする場合は、RTCTree と RTSProfile は自動的にインストールされます。

インストール

インストールはいくつかの方法が利用可能です。

  • (好ましい方法)pip を利用して PyPi からインストールする。
    1. 必要にお応じて pip をインストールします。 https://pip.pypa.io/en/latest/installing/ に参照してください。
    2. pip を実行します。
       $ pip install rtshell
    3. 以下のコマンドを実効し、インストール後のアクションを行います。
       $ rtshell_post_install
    4. Windows上では、必要に応じて環境変数を設定します。通常デフォルトで設定されていますが、設定されていない場合は自分で設定する必要があります。 Python スクリプトのディレクトリーが PATH 環境変数に設定されていることを確認してください。通常、これらは C:\Python27\Scripts\ です(Pythonが C:\Python27\ にインストールされた場合)。
    5. リポジトリまたはソースアーカイブからダウンロード後、適当なディレクトリーで解凍し、インストールする。
    6. ソースを展開します。
       $ cd /home/blurgle/src/
       $ tar -xvzf rtshell.tar.gz
    7. setup.pyを実行します。
       $ python setup.py install
    8. 以下のコマンドを実効し、インストール後のアクションを行います。
       $ rtshell_post_install
    9. Windows上では、必要に応じて環境変数を設定します。通常デフォルトで設定されていますが、設定されていない場合は自分で設定する必要があります。 Python スクリプトのディレクトリーが PATH 環境変数に設定されていることを確認してください。通常、これらは C:\Python27\Scripts\ です(Pythonが C:\Python27\ にインストールされた場合)。 Windows上では、インストーラープログラムを利用してインストールすることが可能です。

リポジトリ

最新版のソースは github で Git のリポジトリにあります(URL: http://github.com/gbiggs/rtshell )。 「Download source」をクリックしてダウンロードをすることができます。「git clone」を使うこともできます。パッチを送りたかったら、この方法をおすすめします:

  $ git clone git://github.com/gbiggs/rtshell.git

ドキュメント

ドキュメントはマンページとして提供します(Windows の場合は HTML に提供します)。${prefix}/share/man にインストールされます。 このパスを $MANPATH という環境変数に追加する必要です。例えば、RTShell は /home/blurgle にインストールされた場合、以下の行を .bashrc に追加してください。:

 export MANPATH=/home/blurgle/share/man:${MANPATH}

テストの実効

コマンドのテストはソースダイレクトリーから実効することができます:

 ~/src/rtshell $ ./test/test_cmds.py ~/share/OpenRTM-aist/examples/rtcs/

変数は RTC のモジュールを持つダイレクトリーです。Motor、Controller および Sensor のモジュールが必要です。

一つのコマンドのテストだけを実効するの場合、そのテストの名を変数に追加してください。:

 $ ./test/test_cmds.py ~/share/OpenRTM-aist/examples/rtcs/ rtactTests

rtctreeモジュール

Unbalanced tokens, check your syntax

rtsprofileモジュール

rtsprofile は Python で RTSProfile 仕様を利用するためのライブラリです。

概要

rtsprofile は RTシステムプロファイル(RTSProfile)の仕様のインタフェースライブラリです。 この仕様は完全な RTシステムを記述し、システムを復元することや管理することができます。XML も YAML を利用可能です。

このソフトウエアは NEDO (独立行政法人 新エネルギー・産業技術総合開発機構) の次世代ロボット知能化技術開発プロジェクトの支援により、独立行政法人産業技術総合研究所によって開発されています。

必要条件

  • Python 2.5 以下では存在しない機能を使うので、Python 2.6 以上が必要となります。
  • Ubuntu 9.04 を使っていたら、手動で Python 2.6 をインストールする必要があります。Ubuntu 9.04 以上をおすすめします。

インストール

インストールはいくつかの方法が利用可能です。

  • リポジトリ(参照:以下のリポジトリ)またはソースアーカイブからダウンロード後、適当なディレクトリーで解凍し、インストールする:
    1. ソースを展開する。
       $ cd /home/blurgle/src/
       $ tar -xvzf rtsprofile-2.0.0-tar.gz
    2. setup.pyを実行する。
       $ python setup.py install
    3. 必要に応じて、環境変数を設定します。これはデフォルトで設定されていますが、設定されていない場合は自分で設定する必要があります。 Windows上では、Python の site-packages ディレクトリーが PYTHONPATH 環境変数に、Python スクリプトのディレクトリーが PATH 環境変数に設定されていることを確認してください。 通常、これらは C:\Python26\Lib\site-packages\C:\Python26\Scripts\ です(PythonがC:\Python26\にインストールされた場合)。
  • Windows ではインストーラーの使用を推奨します。setup.py を利用すれば結果より容易に設定することができます。ただし、環境によってはさらに環境変数の設定が必要な場合があります。

使い方

ライブラリは RtsProfle のクラスを提供します。このクラスのインスタンスを作った後、RTSProfile のファイルを渡すことで完全な RTシステムプロファイルが作られます。 もしくは、手動で既存の RTシステムの RTシステムプロファイルを作成し、ファイル名を渡し、そのファイルに RTSProfile を保存します。

クラスの情報は Python の property でアクセスします。メソッドではありません。

API の詳細は Doxygen で構成されたドキュメンテーションを参照してください。

テストの実行

ソースにサンプルファイルとテストのスクリプトが含めています。以下のようなコマンドで実行が可能です。

 $ python test/test.py ./test/rtsystem.xml
 $ python test/test.py ./test/rtsystem.yaml

PYTHONPATH の値によって、テストはインストールされた rtsprofile を使う可能性はあります。

API naming conventions

rtsprofile は Python の標準スタイルに従います。PEP8に参照してください。

最も重要な点は、プライベートな内部 API 関数はアンダースコア(「_」)で始まることです。アンダースコアで始まる関数はクラス外から証すべきではありません。 もし使用した場合には、未定義の振る舞いを引き起こす可能性があります。アンダースコアで始まらず、docstring がある関数だけを使ってください。

より詳細なドキュメンテーションとサンプル

より詳細なドキュメンテーションは Doxygen で記述されたドキュメンテーションを参照してください。

サンプルはrtsshellのソースに参照してください。

リポジトリ

最新版のソースはgithubでGitのリポジトリにあります。「Download source」をクリックしてダウンロードをすることができます。 「git clone」を使うこともできます。パッチを送るなら、この方法がおすすめします。

 $ git clone git://github.com/gbiggs/rtsprofile.git

Changelog

2.0

  • Message Sending の情報の解析を修正しました。
  • PrecedingCondition のタイムアウトのデータ型を整数にしました。
  • YAML フォーマットを使えるようにしました。
  • テストを追加しました。
  • Preceding Conditions のデフォルトを"SYNC"に変更しました。
  • バグフィクス