Translations of this page:

SEATユーザマニュアル

コマンドラインオプション

SEATを起動する前に、まずJuliusを以下のコマンドラインによって起動してください。


Juliusのインストールとセットアップについてはjuliushowtoを参照してください。

次にSEATを


の形式で起動します。

例1


スクリプトファイルconfig.xmlを読み込んで起動します。

例2


スクリプトファイルは任意の数に分けて読み込むことが可能です。 この例ではアダプタ定義部adaptor.xmlと2つのスクリプトファイルscript1.xmlとscript2.xmlを読み込んで起動します。

アダプタ定義

SEATは、アダプタを定義することによって、OpenRTMやソケット通信を利用して外部モジュールと連携することができます。アダプタ定義の例を示します。


以下、個々の定義について解説します。

Juliusアダプタ


以下のオプションが指定可能です。

host Juliusを立ち上げたホストのIPアドレス 必須
port Juliusとの通信に利用するポート 必須
code Juliusとの通信に利用する文字コード 任意(デフォルト”EUC-JP”)

Juliusのモジュールモードでの起動についてはjuliushowtoを参照してください。

OpenRTM,ソケットアダプタ


以下のオプションが指定可能です。

name アダプタを区別するID 必須
type アダプタの種類 任意(デフォルト”socket”)
host ソケットサーバを立ち上げたホストのIPアドレス type==“socket”の場合必須
port ソケットサーバとの通信に利用するポート type==“socket”の場合必須
code 各アダプタの通信に利用する文字コード 任意(デフォルト”無変換”)

typeには、”socket”以外にも”rtcout”が指定でき、その場合、OpenRTMを用いた出力ポートが生成されます。 type==“rtcout”で生成されたポートは、RTSystemEditorなどのGUIを使って、容易に他モジュールに接続することができます。

状態定義

スクリプトは、複数の状態からなります。 状態の中にはルールを書きます。 ルールの条件部が真となるとルールのコマンド部が起動します。

スクリプトの例


このスクリプトでは、”main”と”robotcontrol”の2つの状態が定義されています。 main状態で「ロボット操作モードへ変更」という入力を受けるとrobotcontrol状態へ移行します。 robotcontrol状態で「一歩前に進んで」という入力を受けると、ロボット操作サーバへ一歩前へ進むコマンドを送信します。

オプションの説明


オプションは以下のものがあります。

name 状態を区別するID 必須
dict この状態で利用する文法モデル 必須

文法モデルは、上のスクリプト例の場合:

[SEATを起動したフォルダ]/juliusdict/main.jgram
[SEATを起動したフォルダ]/juliusdict/robotcontrol.jgram

のファイルが読み込まれます。

Juliusの文法モデルの作成についてはjuliushowtoを参照してください。

nameが以下の値の場合、特殊な制御が行われる。

name=“all” 状態の遷移によらずルールと辞書が全ての状態で有効になる
name=“start” 起動時に最初に選択される状態

ルール定義

オプションの説明


オプションは以下のものがあります。

phrase ルールの一致条件 最低一つは必須
command ルールが一致した場合に実行されるコマンド 任意
statetransition 状態を遷移させるコマンド 任意

phrase, commandともに複数指定することができます。phraseはどれか一致すると真になるOR条件で判定されます。ルールが一致すると複数指定されたコマンドはすべて実行されます。

phraseの指定には以下の形式が利用できます。

[subphrase] subphraseがあってもなくても一致する
(subphrase1|subphrase2) subphrase1かsubphrase2のどちらかがあった場合に一致する

*例1*

一歩前に進んで[ください]

「一歩前に進んで」「一歩前に進んでください」のどちらにも一致します。

*例2*

(一歩前|二歩前|三歩前)に進んで

「一歩前に進んで」「二歩前に進んで」「三歩前に進んで」のどちらにも一致します。

多入力機能の説明

keyタグには以下のオプションを指定することができます。(バージョン1.1.0以上で有効)

source コマンドを受信するアダプタのID 必須

sourceから受信したコマンドがphraseに一致するか判断します。

例えば以下のように使うことができます。

*例1*


説明:ポート11000で接続したsocket1から入力「hello」があった場合、socket2に対して「recieved hello from socket1」と出力、ポート12000で接続したsocket2から入力「hello」があった場合、socket1に対して「recieved hello from socket2」と出力します。

*例2*


説明:音声入力「ハロー」と、標準入力からのキー入力「hello」のどちらにも一致して、標準出力に「hello!」と出力します。(”stdin”“stdout”はSEATにデフォルトで用意されたアダプタです)

コマンド定義

オプションの説明


オプションは以下のものがあります。

host コマンドを送信するアダプタのID 必須

[command]で指定される内容が、hostで指定されるサーバに対して送信されます。

状態遷移コマンド定義

オプションの説明


オプションは以下のものがあります。

name 遷移する状態のID 必須

pushdown automatonの説明

statetransitionタグには以下のオプションを指定することができます。(バージョン1.1.0以上で有効)

func “push”か”pop” 任意

func=“push”と指定した場合、現在の状態を保存し、[name]で指定される状態に遷移します。 func=“pop”と指定した場合、前回pushによって保存された状態に戻ります。

例えば以下のように使うことができます。

*例*


解説:AかBの選択を入力しその選択を確認します。状態”confirm”はサブルーチンのようにして、状態”handleA”と状態”handleB”から呼ばれます。(アダプタ”loopback”はSEATにディフォルトで用意されています)

seat/document.txt · 最終更新: 2013/01/26 16:01 (外部編集)
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0