• 検索結果がありません。

NEDO次世代ロボット知能化技術開発プロジェクト

N/A
N/A
Protected

Academic year: 2021

シェア "NEDO次世代ロボット知能化技術開発プロジェクト"

Copied!
17
0
0

読み込み中.... (全文を見る)

全文

(1)

NEDO 次世代ロボット知能化技術開発プロジェクト

音声対話システムマニュアル(別冊)

1.0 版

独立行政法人産業技術総合研究所

株式会社セック

(2)

改版履歴

版数 改版日 改版内容 備考

1.0 2012/02/29 初版作成

(3)

目次 1 総則 ... 1 1.1. 目的 ...1 1.2. 適用範囲 ...1 1.3. 関連文書等 ...1 1.3.1. 適用文書...1 1.3.2. 関連文書...1 1.3.3. 参考文書...1 1.4. 定義 ...2 1.4.1. 用語...2 1.4.2. 座標系...2 1.5. ライセンス ...2 2 システム構成 ... 3 2.1. システム概要...3 2.2. 使用条件 ...3 2.3. ハードウェア仕様...3 3 コンポーネント仕様(SOARRTC) ... 4 3.1. インタフェース仕様 ...4 3.1.1. データポート...4 3.1.2. サービスポート...4 3.1.3. コンフィギュレーション...4 3.1.4. 設定ファイル...4 3.1.5. その他ファイル...4 3.2. プロダクションルール...5 3.2.1. 基本文法...5 3.2.2. メモリイメージ...5 3.3. 実行(基本操作)...6 3.3.1. コンポーネントの起動...6 3.3.2. SoarDebuggerへの接続 ...6 3.3.3. スクリプトの実行...7 4 使用例... 8 -ii-

(4)

-iii- 4.1. 使用例一覧 ...8 4.2. HELLOWORLD...8 4.2.1. スクリプト...8 4.2.2. 実行...9 4.3. 最大値取得 ... 10 4.3.1. スクリプト... 10 4.3.2. 実行... 11 4.4. 最大値取得と割り込み対応 ... 12 4.4.1. スクリプト... 12 4.4.2. 実行... 13 表目次 表 1-1 適用文書一覧 ...1 表 1-2 関連文書一覧 ...1 表 1-3 参考文書一覧 ...1 表 1-4 音声対話システム 用語一覧 ...2 表 2-1 動作環境 ...3 表 3-1 SoarRTC:インポート一覧 ...4 表 3-2 SoarRTC:アウトポート一覧 ...4 表 4-1 Soarシステム 使用例一覧 ...8 表 4-2 SamplePatternGeneratorRTCのダウンロードURL ... 11 図目次 図 2-1 イメージ ...3 図 3-1 init-Sore直後のメモリイメージ ...5 図 4-1 Hello Wordのメモリイメージ ...9

(5)

1 総則 1.1. 目的 本書は、音声対話システムの別冊として、OpenHRI に含まれる SoarRTC の使用方法につい て、記述した文書である。 1.2. 適用範囲 本書は、OpenHRI に含まれる SoarRTC を用いたシステムに対して適用する。 1.3. 関連文書等 1.3.1. 適用文書 本書の適用文書を表 1-1に示す。 表 1-1 適用文書一覧 No 文書名 版数 発行元 1 コミュニケーション知能コンポーネント共通規格 第1 版 NEDO 次世代ロボット知能化技 術開発プロジェクト・コミュニケー ション知能SWG 1.3.2. 関連文書 表 1-2 関連文書一覧 No 文書名 版数 発行元 1 音声処理モジュール群マニュアル 1.0 独立行政法人産業技術総合研究所 株式会社セック 2 音声対話システムマニュアル 1.0 独立行政法人産業技術総合研究所 株式会社セック

3 The Soar User’s Manual 9.1 John E. Laird and Clare Bates Congdon

User interface sections by Karen J. Coulter

Electrical Engineering and Computer Science Department University of Michigan

4 The Soar 9 Tutorial August

27, 2008 John E. Laird University of Michigan 1.3.3. 参考文書 表 1-3 参考文書一覧 No 文書名 版数 発行元

1 【Web】OpenHRI Webサイト(http://openhri.net/) - 独立行政法人産業技術総合研究所

(6)

1.4. 定義 1.4.1. 用語 表 1-4 音声対話システム 用語一覧 No 用語 説明 1 AIST 独立行政法人産業技術総合研究所(産総研) 2 RTM RT ミドルウェア 3 RTC RT コンポーネント 4 OpenHRI 産総研にて開発された音声認識・音声合成・対話制御など、ロボット のコミュニケーション機能の実現に必要な各要素を実現するコンポ ーネント群 5 Soar プロダクションシステムエンジン 1.4.2. 座標系 音声対話システムでは、座標は取り扱わない。 1.5. ライセンス

OpenHRI のライセンスは、Eclipse Public License (EPL)である。 http://www.eclipse.org/legal/epl-v10.html

EPL は、コードの改変や再配布、営利利用を許可するオープンソースライセンスであるが、 場合によっては改変内容をライセンス元に開示する必要がある。

OpenHRI が内部で用いている Julius や Open JTalk などのそれぞれのソフトウェアについて は、各々のライセンスに従う。

なお、本書は、クリエイティブ・コモンズ 表示 2.1 ライセンス

(http://creativecommons.org/licenses/by-sa/2.1/jp/)の下に提供される。

(7)

2 システム構成 2.1. システム概要 Soar はプロダクションシステムエンジンである。プロダクションシステムは、人工知能を実 現するための処理系のひとつで、振る舞いの規則である条件部(IF)とアクション部(Then) から構成される。 プロダクションルールの記述に従ってメモリ上に格納されたデータを更新し、推論(これまで の検索を考慮し、次の行動を決定)することにより、徐々にゴールに近い状態を取るよう検索を 繰り返していく。 推論の深さ浅さを自由にコントロールできるため、ルールの記述次第では人間と同様の経験に よる推論や投機的な推論も実現可能となる。 図 2-1 イメージ 2.2. 使用条件 システムの動作環境を表 2-1に示す。 表 2-1 動作環境 No. 要求環境 備考 1 Linux Ubuntu 10.04 以上を推奨 2 OS Windows WindowsXP 3 ミドルウェア OpenRTM-aist 1.0.0-RELEASE (Python) 4 RT-SystemEditor RTC の操作に必要となる 5 ツール

Soar Java Debugger Soar の操作に必要となる

2.3. ハードウェア仕様 SoarRTC は特定のハードウェアに依存するものではない。 問題空間:システムがりうる状態の集合 ゴール ACB CBA CAB ABC BCA BAC -3-

(8)

3 コンポーネント仕様(SoarRTC) 3.1. インタフェース仕様 3.1.1. データポート (1) インポート SoarRTCで定義するインポートについて表 3-2に記述する。 SoarRTC では、インポート接続時に新たなインポートが増設される。ポート名は、inport0、 inport1、inport2・・・inportn(n:数値) となる。

表 3-1 SoarRTC:インポート一覧

№ ポート名 型 インタフェース型 説明

1 inport0 Any,TimedString RTC Soar への入力データ。接続時に増設 される。

(2) アウトポート

SoarRTCで定義するアウトポートについて表 3-2に記述する。

SoarRTC では、アウトポート(outport で始まるポート)が接続時に新たなアウトポートが 増設される。ポート名は、outport0、outport1、outport2・・・outportn(n:数値) となる。

表 3-2 SoarRTC:アウトポート一覧 № ポート名 型 インタフェース型 説明 1 command TimedStroutg RTC コマンドデータ。 2 outport0 Any,TimedStroutg RTC 出力データ。接続時に増設される。 3.1.2. サービスポート SoarRTC はサービスポートを定義しない。 3.1.3. コンフィギュレーション SoarRTC はコンフィギュレーションを定義しない。 3.1.4. 設定ファイル SoarRTC 独自の設定ファイルはない。rtc.conf のみ使用する。 3.1.5. その他ファイル SoarRTC は、プロダクションルール(スクリプト)に従って動作する。プロダクションルー ルを記載したスクリプトファイル名の拡張子は、.soar となる。 -4-

(9)

-5- 3.2. プロダクションルール 3.2.1. 基本文法 Soar のプロダクションルールの基本文法をエラー! 参照元が見つかりません。に示す。 リスト 3-1 Soar スクリプト(基本文法) sp {ルール*名前 (条件) (条件) … --> # 条件部とアクション部の境界 (アクション) (アクション) … } 3.2.2. メモリイメージ 図 3-1 init-Sore 直後のメモリイメージ 凡例 S1 1 I1 ^superst t nil ^type ^input-link 識別子 値 ^属性 I2 I3 state ^io ^output-link

(10)

3.3. 実行(基本操作) SoarRTC を動作させる場合の基本操作について記述する。 3.3.1. コンポーネントの起動 (1) Ubuntu 1. ネームサーバを起動する。 2. RTSystemEditor を起動する。 3. SoarRTC を起動する。 4. SoarDebugger を起動する。 リスト 3-2 soarRTC とsoardebuggerの起動 $ soarrtc $ soardebugger (2) Windows 1. ネームサーバを起動する。 2. RTSystemEditor を起動する。 3. SoarRTC を起動する。 [スタートメニュー] -[OpenHRI]-[dialogmanager] -[SoarRTC]を起動する。 4. SoarDebugger を起動する。 SoarSuite を解凍したフォルダ内の SoarJavaDebugger.bat を起動する。 3.3.2. SoarDebuggerへの接続

1. SoarDebugger のメニューの[Kernel]-[Connect to remote Soar]を選択する。

2. 警告画面が表示されるが、「OK」を押下する。

(11)

・ IP アドレス:127.0.0.1 ・ ポート番号:12121(デフォルトのまま) 3.3.3. スクリプトの実行 1. 「Inist-Soar」を押下する。 2. 「Source」を押下する。 ファイル選択ダイアログが表示されるので、スクリプトファイルを選択する。 3. 「Run」を押下する。 -7-

(12)

4 使用例

4.1. 使用例一覧

対話制御コンポーネントを利用した音声対話システムのサービスを表 4-1に記述する。 表 4-1 Soarシステム 使用例一覧

No 名称 説明

1 Hellow World 「HelloWorld」を SoarDebugger の画面へ出力する。

2 最大値取得 入力ポートより入力された値の中から最大値を出力する。 3 最大値取得と割り込み対応 入力ポートより入力された値の中から最大値を出力し、割り込み があった場合に「Emergency」と音声で伝える。 4.2. HelloWorld 「HelloWorld」を SoarDebugger の画面へ出力する。 4.2.1. スクリプト リスト 4-1は、HellowWorldのスクリプト例である。本例では、 "propose*hello-world"と"apply*hello-world"の2つのプロダクションルールで構成される。 リスト 4-1 Soarスクリプト(hello.soar) sp {propose*hello-world # “hello-world”proposeフェーズ

(state <s> ^type state) # メモリ<s>のtypeの値がstateである場合(初期状態) -->

(<s> ^operator <o> +) # メモリ<s>直下に

(<o> ^name hello-world) # hello-worldという名前のオペレータを登録する。 }

sp {apply*hello-world #“hello-world”applyフェーズ (state <s> ^operator <o>) # メモリ<s>直下に

(<o> ^name hello-world) # hello-worldという名前のオペレータがある場合 -->

(write |Hello World|) # 「Hello World」を出力する。文字列は"|"で囲む。

(halt) # 停止する。 } s o ^type state hello-world ^operator ^name -8-

(13)

4.2.2. 実行

「3.3実行(基本操作) 」に従い、実行する。

←スクリプトによる出力

図 4-2 Hello Word実行後のSoar Debugger画面

(14)

-10- 4.3. 最大値取得 RT コンポーネントと接続し、各入力ポートより入力された値の中から最大値を取得し、出力 する。 4.3.1. スクリプト 最大値取得のスクリプト例をエラー! 参照元が見つかりません。に示す。 本例では、以下の4つのプロダクションルールで構成される。 ・ propose*print-value:入力データを取得するためのルール ・ propose*remove*old-print-value:同一 RTC の同一ポートからの最新値を取得するための ルール ・ elaborate*bigger-value:ソート機能を実現するためのルール ・ apply*print-value:コンソールへの出力するためのルール リスト 4-2 Soar スクリプト(maxvalue.soar) sp {propose*print-value # “print-value”proposeフェーズ (state <s> ^io.input-link.data <d>) # 入力データの

(<d> ^dataType |RTC.TimedLong| # データ型がRTC.TimedLongである場合 ^data <v>

^time <t> ^component <c> ^port <p>) -->

(<s> ^operator <o> +) # メモリ<s>直下の<o>に次のオペレータを登録する (<o> ^name print-value # 名前:print-value

^data <v> # データ:入力データの値(数値) ^time <t> # 時間:入力データの時刻情報 ^component <c> # コンポーネント:入力元RTC名 ^port <p>) # ポート:入力元RTCの出力ポート名 } sp {propose*remove*old-print-value # “remove*old-print-value”proposeフェーズ (state <s> ^operator <o1> # メモリ<s>直下の

^operator <o2>) # オペレータについて (<o1> ^name print-value # 名前がprint-value ^component <c>

^port <p> ^time <t1>) (<o2> ^name print-value

^component <c> # コンポーネント名が<o1><o2>で同じ ^port <p> # ポート名が<o1><o2>で同じ ^time < <t1>) # 時刻情報が<o1>より古い場合 -->

(<s> ^operator <o2> -) # 時刻情報が古い方(<o2>)を削除する }

sp {elaborate*bigger-value # “bigger-value”elaborateフェーズ (state <s> ^operator <o1> + # メモリ<s>直下の

^operator <o2> +) # print-valueという名前のオペレータについて (<o1> ^name print-value

^data <v1>)

(<o2> ^name print-value

^data < <v1>) # データの値が<o1>より小さい場合 -->

(15)

-11-

sp {apply*print-value #“print-value”applyフェーズ (state <s> ^operator <o>) # メモリ<s>直下の

(<o> ^name print-value # print-valueという名前のオペレータがある場合 ^data <v>

^component <c> ^port <p>) -->

(write |Max value | <v> |, Component | <c> |, Port | <p>) # 「Max value」最大値(最優先のprint-valueオペレータの値) # 「Component」最大値の入力元RTC名 # 「Port」最大値の入力元RTCのポート名 を出力する。 } 4.3.2. 実行 plePatternGeneratorRTC りダウンロードし、ファイルを展開する。 ウンロードURL (1) Sam (a) 取得 表 4-2のURLよ 表 4-2 SamplePatternGeneratorRTCのダ ダウンロードファイル https://github.com/yosuke/XableRTC/zipball/master (b) 起動 に示すコマンドを実行する。 PatternGeneratorRTCの起動 $ cd [SamplePatternGeneratorRTCの展開フォルダ] 【Ubuntu】 リスト 4-3 リスト 4-3 Sample $ python SamplePatternGeneratorRTC Window】 ernGeneratorRTC.py をダブルクリックする。 ) コンポーネントの起動 、実行する。 plePatternGeneratorRTC の適当な数の 出 【 SamplePatt (2 「3.3実行(基本操作) 」に従い スクリプト実行前に、RTSystemEditor にて、Sam 力ポートとSoarRTC の入力ポートを接続し、アクティベートしておくこと。

(16)

4.4. 最大値取得と割り込み対応 RT コンポーネントと接続し、各入力ポートより入力された値の中から最大値を取得し、出力 する。データ内容が「emergency」であった場合、最優先で処理を行う。 4.4.1. スクリプト 割り込み対応のスクリプト例をに示す。 本例では、以下の3つのプロダクションルールで構成される。 ・ propose*emergency: 入力データを取得し、emergency データのを最優先処理するためのルール ・ propose*remove*old-emergency: 同一 RTC の同一ポートからのデータが最優先であることを確認するためのルール ・ apply*print-emergency: コンソールおよびコマンドポートへ出力するためのルール リスト 4-4 Soarスクリプト(emergency.soar) sp {propose*emergency # “emergency”proposeフェーズ (state <s> ^io.input-link.data <d>) # 入力データの

(<d> ^dataType |RTC.TimedString| # データ型がRTC.TimedString ^data emergency # データ内容がemergencyである場合 ^time <t>

^component <c> ^port <p>) -->

(<s> ^operator <o> + >) # メモリ<s>の<o>に最優先でオペレータを登録する。 (<o> ^name emergency # 名前:emergency

^data |Emergency| # データ:"Emergency" ^time <t> # 時間:入力データの時刻情報 ^component <c> # コンポーネント:入力元RTC名 ^port <p>) # ポート:入力元RTCの出力ポート名 } sp {propose*remove*old-emergency # “remove*old-emergenc”proposeフェーズ (state <s> ^io.input-link.data <d> # 入力データと ^operator <o>) # オペレータについて (<d> ^dataType |RTC.TimedString| # データ型がRTC.TimedString

^data <> emergency # データ内容がemergencyでない場合で ^time <t>

^component <c> ^port <p>)

(<o> ^name emergency # emergencyという名前のオペレータの ^time < <t> # 時間が入力データよりも古い場合 ^component <c> ^port <p>) --> (<s> ^operator <o> -) # オペレータから当該データを削除する } sp {apply*print-emergency #“print-emergency”applyフェーズ (state <s> ^operator <o>

^io.output-link <ol>) # emergencyという名前のオペレータがある場合 (<o> ^name emergency)

-->

(write |Emergency!!!|) #「Emergency!!!」と出力する

(<ol> ^rtcout <o> ) # 出力ポートに オペレータ内容を出力する }

(17)

-13- 「3.3実行(基本操作) 」に従い、実行する。 スクリプト実行前に以下のコンポーネントを起動し、RTSystemEditor にて、各 RTC を接続 し、アクティベートしておくこと。 ・ SoreRTC ・ SamplePatternGeneratorRTC ・ FestivalRTC ・ PortAudioOutput/PulseAudioOutput

表   4-1  Soarシステム  使用例一覧
図  4-2  Hello Word実行後のSoar Debugger画面

参照

関連したドキュメント

Saito, “ Electrochemical Properties of Carbon Materials and Perovskite-type Oxide Electrocatalysts for Air Electrodes of Lithium-Air Batteries”, International Meeting on

工場設備の計測装置(燃料ガス発熱量計)と表示装置(新たに設置した燃料ガス 発熱量計)における燃料ガス発熱量を比較した結果を図 4-2-1-5 に示す。図

お客様が CD-ROM

*2 施術の開始日から 60 日の間に 1

1年次 2年次 3年次 3年次 4年次. A学部入学

人間は科学技術を発達させ、より大きな力を獲得してきました。しかし、現代の科学技術によっても、自然の世界は人間にとって未知なことが

積を示す.図の赤い領域が引っ張りを与える部分である.具体的には,給水ポ ンプを,内圧を受ける薄肉円筒 ( 肉厚 28mm)

機関室監視強化の技術開発,および⾼度なセ キュリティー技術を適用した陸上監視システム の開発を⾏う...