以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態によるロボット1の全体構成
図1及び図2において、1は全体として本実施の形態によるロボットを示し、胴体部ユニット2の上部に首部3を介して頭部ユニット4が連結されると共に、当該胴体部ユニット2の上部左右両側面にそれぞれ腕部ユニット5A、5Bが連結され、かつ当該胴体部ユニット2の下部に一対の脚部ユニット6A、6Bが連結されることにより構成されている。
この場合、首部3は、図3に示すように、首関節ピッチ軸10回り、首関節ヨー軸11回り及び首関節ピッチ軸12回りの自由度を有する首関節機構部13により保持されている。また頭部ユニット4は、この首部3の先端部に図3のように首部ロール軸14回りの自由度をもって取り付けられている。これによりこのロボット1においては、頭部ユニット4を前後、左右及び斜めの所望方向に向かせることができるようになされている。
また各腕部ユニット5Aは、図1及び図2において明らかなように、上腕部ブロック15、前腕部ブロック16及び手先部ブロック17の3つのブロックから構成され、上腕部ブロック15の上端部が図3のように肩ピッチ軸18回り及び肩ロール軸19回りの自由度を有する肩関節機構部20を介して胴体部ユニット2に連結されている。
このとき前腕部ブロック16は、図3のように上腕部ブロック15に上腕ヨー軸21回りの自由度をもって連結されている。また手先部ブロック17は、図3のように前腕部ブロック16に手首ヨー軸22回りの自由度をもって連結されている。さらに前腕部ブロック16には、肘ピッチ軸23回りの自由度を有する肘関節機構部24が設けられている。
これによりロボット1においては、これら腕部ユニット5A、5Bを全体としてほぼ人間の腕部と同様の自由度をもって動かすことができ、かくして片手を上げた挨拶や腕部ユニット5A、5Bを振り回すダンスなどの当該腕部ユニット5A、5Bを用いた各種行動を行い得るようになされている。
さらに手先部ブロック17の先端部には、5本の指部25がそれぞれ屈曲及び伸長自在に取り付けられており、これによりこれら指部を使って物を摘んだり、把持することができるようになされている。
他方、各脚部ユニット6A、6Bは、図1及び図2において明らかなように、大腿部ブロック30、脛部ブロック31及び足平部ブロック32の3つのブロックから構成され、大腿部ブロック30の上端部が図3のように股関節ヨー軸33回り、股関節ロール軸34回り及び股関節ピッチ軸35回りの自由度を有する股関節機構部36を介して胴体部ユニット2に連結されている。
このとき大腿部ブロック30及び脛部ブロック31は、図3のように脛ピッチ軸37回りの自由度を有する膝関節機構部38を介して連結されると共に、脛ブロック31及び足平ブロック32は、図3のように足首ピッチ軸39回り及び足首ロール軸40回りの自由度を有する足首関節機構部41を介して連結されている。
これによりロボット1においては、これら脚部ユニット6A、6Bを人間の脚部とほぼ同様の自由度をもって動かすことができ、かくして歩行やボールを蹴るなどの脚部ユニット6A、6Bを用いた各種行動を行い得るようになされている。
さらに胴体部ユニット2の後側上部には、首部3を囲むようにグリップハンドル2Aが設けられており、ユーザが当該グリップハンドル2Aを把持して持ち上げることにより、ロボット1全体を持ち上げることができるようになされている。
なおこのロボット1の場合、各股関節機構部36は、図3のように体幹ロール軸42回り及び体幹ピッチ軸43回りの自由度を有する腰関節機構部44により支持されており、これにより胴体部ユニット2を前後、左右方向に自在に傾かせることもできるようになされている。
ここでロボット1においては、上述のように頭部ユニット4、各腕部ユニット5A、5B、各脚部ユニット6A、6B及び胴体部ユニット2を動かすための動力源として、図4に示すように、首関節機構部13及び肩関節機構部20等の各関節機構部を含む各自由度を有する部位に、それぞれその自由度数分のアクチュエータA1〜A17が配設されている。
また胴体部ユニット2には、当該ロボット1全体の動作制御を司るメイン制御部50と、電源回路及び通信回路などの周辺回路51と、バッテリ52(図5)となどが収納されると共に、各構成ユニット(胴体部ユニット2、頭部ユニット4、各腕部ユニット5A、5B及び各脚部ユニット6A、6B)内には、それぞれメイン制御部50と電気的に接続されたサブ制御部53A〜53Dが収納されている。
さらに頭部ユニット4には、図5に示すように、このロボット1の「目」として機能する一対のCCD(Charge Coupled Device)カメラ60A、60B及び「耳」として機能するマイクロホン61などの各種外部センサと、「口」として機能するスピーカ62となどがそれぞれ所定位置に配設されている。また各脚部ユニット6A、6Bにおける足平部ブロック32の裏面等の各所定部位には外部センサとしてのタッチセンサ63が配設されている。
さらに胴体部ユニット2内には、バッテリセンサ64及び加速度センサ65などの各種内部センサが配設されると共に、各構成ユニット内には、それぞれ各アクチュエータA1〜A17にそれぞれ対応させて、対応するアクチュエータA1〜A17の出力軸の回転角度を検出する内部センサとしてのポテンショメータP1〜P17が設けられている。
そして各CCDカメラ60A、60Bは、周囲の状況を撮像し、得られた画像信号S1Aをサブ制御部53B(図5において図示せず)を介してメイン制御部50に送出する一方、マイクロホン61は、各種外部音を集音し、かくして得られた音声信号S1Bをサブ制御部53Bを介してメイン制御部50に送出する。また各タッチセンサ63は、ユーザからの物理的な働きかけや、外部との物理的な接触を検出し、検出結果を圧力検出信号S1Cとして対応するサブ制御部53A〜53D(図5において図示せず)を介してメイン制御部50に送出する。
さらにバッテリセンサ64は、バッテリ52のエネルギ残量を所定周期で検出し、検出結果をバッテリ残量信号S2Aとしてメイン制御部50に送出する一方、加速度センサ65は、3軸(x軸、y軸及びz軸)の加速度を所定周期で検出し、検出結果を加速度検出信号S2Bとしてメイン制御部50に送出する。また各ポテンショメータP1〜P17は、対応するアクチュエータA1〜A17の出力軸の回転角度を検出し、検出結果を所定周期で角度検出信号S2C1〜S2C17として対応するサブ制御部53A〜53Dを介してメイン制御部50に送出する。
メイン制御部50は、CCDカメラ60A、60B、マイクロホン61及び各タッチセンサ63等の各種外部センサからそれぞれ供給される画像信号S1A、音声信号S1B及び圧力検出信号S1C等の外部センサ信号と、バッテリセンサ64、加速度センサ65及び各ポテンショメータP1〜P17等の各種内部センサからそれぞれ供給されるエネルギ残量信号S2A、加速度検出信号S2B及び各角度検出信号S2C1〜S2C17等の内部センサ信号とに基づいて、ロボット1の外部及び内部の状況や、ユーザの物理的な働きかけの有無等を判断する。
そしてメイン制御部50は、この判断結果と、予め内部メモリ50Aに格納されている制御プログラムと、そのとき装填されている外部メモリ66に格納されている各種制御パラメータとなどに基づいて続くロボット1の行動を決定し、当該決定結果に基づく制御コマンドを対応するサブ制御部53A〜53D(図4)に送出する。
この結果、この制御コマンドに基づき、そのサブ制御部53A〜53Dの制御のもとに、対応するアクチュエータA1〜A17が駆動され、かくして頭部ユニット4を上下左右に揺動させたり、腕部ユニット5A、5Bを上に上げたり、歩行するなどの各種行動がロボット1により発現される。
このようにしてこのロボット1においては、外部及び内部の状況等に基づいて自律的に行動することができるようになされている。
(2)音声動作指令機能に関するメイン制御部50の処理
次にこのロボット1に搭載された音声動作指令機能について説明する。このロボット1には、マイクロホン61から得られる音声信号S1Bに基づくユーザからの発話音声のうち、ロボット1に対する指令音声を認識して、当該指令音声に対応する動作をロボットに発現させ得る音声動作指令機能が搭載されている。そしてこの音声動作指令機能は、メイン制御部50における各種処理により実現されている。
ここで、かかる音声動作指令機能に関するメイン制御部50の処理内容を機能的に分類すると、図6に示すように、音声指令文生成部70、音声指令文解析部71及び音声指令情報変換部72に分けることができる。
音声指令文生成部70は、マイクロホン61(図5)から得られる音声信号S1Bに基づく音声を、所定の音声認識処理により文字情報でなる音声指令文に置き換えた後、当該音声指令文を音声指令文情報D1として音声指令文解析部71に送出する。
この場合、音声認識処理として、例えば隠れマルコフ・モデル(HMM:Hidden Markov Model)などのアルゴリズムが適用される。この隠れマルコフ・モデルは、音素や単語の内部での特徴の時間的な変化を幾つかの状態で表現して、その状態間の遷移と各状態でのスペクトル特徴量の様子とを確率的にモデル化したものである。隠れマルコフ・モデルは、音声信号S1Bの変動を確率的に取り扱うため、いわゆるDP(Dynamic Programming)マッチング法と比較して入力音声の揺らぎなどを好適に表現することができる。
音声指令文解析部71は、入力された音声指令文情報D1に基づく音声指令文から文節単位で順次音声指令語を抽出した後、当該各音声指令語を、音声指令解析テーブル73を用いた所定の解析処理を行い、その結果得られる所定の言語フォーマットでなる音声指令情報D2を音声指定情報変換部72に送出する。
この音声指令解析テーブル73は、音声指令文から抽出された複数の音声指令語と、当該各音声指令語に対応して設定された音声指令タグとの対応関係が記述された第1の変換テーブル73Aと、複数の音声指令タグと、当該各音声指令タグに対応する音声指令コマンド及び音声指令パラメータとの対応関係が記述された第2の変換テーブル73Bとからなる。
実際にまず音声指令文解析部71は、音声指令文から順次抽出された複数の音声指令語を、音声指令解析テーブル73のうち第1の変換テーブル73Aを用いて、当該各音声指令語の最長語との一致性から、それぞれ対応する音声指令タグに変換する。
この第1の変換テーブル73Aにおいて、図7に示すように、各音声指令タグには、同一の指令内容で複数通りの音声指令語が対応付けられている。具体的には、動詞の語尾、名詞に付加された助詞、前後左右の方向、速度や程度を表す言い回し、歩数や距離、回数等の度合いなどが、音声指令語としてそれぞれ複数種類ある場合でも、同一の指令内容に相当するものとして、同一の音声指令タグに対応付けられるように設定されている。このうち歩数や距離、回数等の度合いには、当該度合いを表す文言の前後に数字を表す文言が入るが、当該数字を含めて指令内容が認識されるように設定されている。
例えば「前に3歩進め」という音声指令文の場合には、音声指令文解析部71は、図8(A)に示すように、当該音声指令文を「前に」、「3歩」及び「進め」という音声指令語列に分割した後、「SPTag_Fore」、「SPTag_Step(3)」及び「SPTag_GoOn」という音声指令タグ列に変換する。
その際、音声指令タグ「SPTag_Step(3)」は、最後尾に「3」と数字が付加されているが、これは検出された音声指令語に数字が含まれている場合には、その数字を音声指令タグのサブ情報として付帯するルールに基づくものである。
続いて音声指令文解析部71は、これら複数の音声指令タグからなる音声指令タグ列を、音声指令解析テーブル73のうち第2の変換テーブル73Bを用いて、順次当該各音声指令タグに対応する音声指令コマンド又は音声指令パラメータに分類する。
この第2の変換テーブル73Bにおいて、図9(A)に示すように、各音声指令コマンドには、ユーザによる音声指令のうちロボット1の基本動作に相当する指令内容を表す音声指令タグが対応付けられている。また図9(B)に示すように、各音声指令パラメータには、ユーザによる音声指令のうち上述の基本動作以外のものに相当する指令内容を表す音声指令タグが対応付けられている。
音声指令コマンドには、同一の基本動作で単数又は複数通りの音声指令タグが対応付けられている。具体的には、「進む」の意味を表す「SPTag_GoOn」と「歩く」の意味を表す「SPTag_Walk」とが、同一の音声指令コマンドである「SPCom_Walk」に対応付けられるようになされている。
また音声指令パラメータである「SPPrm_Direction」、「SPPrm_Distance」、「SPPrm_Time」、「SPPrm_Speed」、「SPPrm_Repetition」及び「SPPrm_Angle」は、それぞれ「方向」、「距離」、「時間」、「速度」、「回数」及び「角度」といったロボット1の具体的な動作を指定するためのパラメータとしての代表的なカテゴリが割り当てられており、当該動作ごとに単数又は複数通りの音声指令タグが対応付けられている。
具体的には、「前後左右」の意味を表す「SPTag_Fore」、「SPTag_Back」、「SPTag_Left」及び「SPTag_Right」が、同一の音声指令パラメータである「SPPrm_Direction」に対応付けられるようになされている。また音声指令パラメータには、サブ情報として、初期の基準値となるデフォルト値や動作の範囲となる変化幅が予め数値設定されており、さらに当該デフォルト値及び変化幅を直接その値とする絶対値「absolute」か、現在の状態との比較において値を付加する相対値「relative」が予め設定されている。
本実施の形態の場合、音声指令タグから音声指令パラメータへの変換において、音声指令タグ自体にサブ情報が付加されていない場合には、音声指令解析テーブル73のうち第2の変換テーブル73Bに記述されているデフォルト値をサブ情報として採用するようになされている。
音声指令文解析部71は、音声指令タグ列を音声指令コマンド又は音声指令パラメータに分類した後、さらにこのうち音声指令パラメータには元の音声指令タグ及びこれに付随するサブ情報を付加して、これらを音声指令情報D2として音声指令情報変換部72に送出する。
音声指令情報変換部72は、入力される音声指令情報D2について、音声動作指令対応テーブル74を用いて、当該音声指令情報D2を構成する音声指令コマンド及び音声指令パラメータの組み合わせに応じた所定の判断処理を行い、その結果得られる所定の言語フォーマットでなる動作指令情報D3を各種対応するサブ制御部53A〜53D(図4)に送出する。
この音声動作指令対応テーブル74には、図10に示すように、ロボット1の各種動作ごとに動作指令コマンド及び動作指令パラメータの組み合わせが予め設定されており、当該組み合わせに対応する音声指令コマンド音声指令パラメータの組み合わせとの対応関係が記述されている。具体的にはロボット1の各種動作として、歩行(前方に1歩、後方に1歩又は横方向に1歩)、首振り及び旋回等が挙げられる。
実際に音声指令情報変換部72は、音声指令情報D2を構成する複数の音声指令コマンド及び音声指令パラメータについて、音声動作指令対応テーブル74を用いて、ロボット1の各種動作ごとに設定された動作指令コマンド及び動作指令パラメータの組み合わせとの一致性に基づいて、所定数の音声指令コマンド及び音声指令パラメータの組み合わせを判断する。
この音声動作指令対応テーブル74において、音声指令コマンド及び音声指令パラメータの組み合わせのうち、複数の音声指令パラメータが存在する場合には、必ず必要な動作指令パラメータであるかを表す「must」又は必ずしも必要でない動作指令パラメータであるかを表す「option」を任意に設定できるようになされている。また実際にロボット1の動作を実行するにあたって、人間らしさの表現及び安全性の確保を考慮して、動作指令パラメータに最大値を数値設定し得るようになされている。
さらに音声指令情報D2によって音声指令コマンド及び音声指令パラメータの組み合わせのうち、対応する動作指令コマンド及び動作指令パラメータの組み合わせが複数存在することにより、ロボット1の動作に複数の候補が存在する場合には、その全ての音声指令情報D2に組み込まれる。
そしてこれら複数の候補について、予めロボット1の動作に優先順位を設定しておくことにより、当該優先順位に対応する音声指令コマンド及び音声指令パラメータの組み合わせに優先度を数値設定し得るようになされている。
さらに音声指令情報変換部72は、上述の音声動作指令対応テーブル74に加えて、前回生成した動作指令情報D3を記憶する実行履歴情報記憶部75を用いて、再度の動作要求があったときに実行履歴情報記憶部75から対応する動作指令情報D3を履歴情報(以下、これを実行履歴情報と呼ぶ)として読み出すことにより、再度の動作を補完し得るようになされている。
音声指令情報変換部72は、次に受け取った音声指令情報D2が音声指令パラメータのみで音声指令コマンドが含まれていない場合でも、実行履歴情報記憶部75から読み出した実行履歴情報のうち対応する音声指令パラメータとの一致性に基づいて、不足している音声動作コマンドや他の音声動作パラメータを当該実行履歴情報から補うことにより、動作指令情報D3を補完し得る。
このようにメイン制御部50においては、音声動作指令機能を実行することにより、マイクロホン61から得られる音声信号S1Bからユーザの発話音声のうちの指令音声を認識した後、当該指令音声を予め設定された各種コマンド及びパラメータに変換しながら、ロボット1が実行可能な動作を絞り込んで決定することができる。
上述の図8(A)に示すように、「前に3歩進め」という音声指令文が変換された音声指令タグ列「SPTag_Fore」、「SPTag_Step(3)」及び「SPTag_GoOn」については、音声指令文解析部71は、音声指令解析テーブル73のうち第2の変換テーブル73Bを用いて、かかる音声指令タグ列のうち音声指令タグ「SPTag_Fore」を音声指令パラメータ「SPPrm_Direction(SPTag_Fore(0))」及び「SPPrm_Angle(SPTag_Fore(0))」に変換すると共に、音声指令タグ「SPTag_Step(3)」を音声指令パラメータ「SPPrm_Repetition(SPTag_Fore(3))」に変換し、音声指令タグ「SPTag_GoOn」を音声指令コマンド「SPCom_Walk」に変換するようにして音声指令情報D2を得る。
ここで、音声指令情報D2において、音声指令タグ「SPTag_Fore」に対応する音声指令パラメータ「SPPrm_Direction(SPTag_Fore(0))」及び「SPPrm_Angle(SPTag_Fore(0))」には、「SPTag_Fore」に0というサブ情報が付加されているが、このサブ情報は、上述した図9(B)におけるデフォルト値が採用されたことによるものである。
この後、図8(B)に示すように、音声指令情報変換部72において、音声指令情報D2が音声指令コマンド「SPCom_Walk」と、音声指令パラメータ「SPPrm_Direction(SPTag_Fore(0))」及び「SPPrm_Repetition(SPTag_Step(0))」との組み合わせでなることから、音声動作指令対応テーブル74を用いて、当該組み合わせに一致する動作指令コマンド及び動作指令パラメータの組み合わせを判断すると、動作指令コマンド「MTCom_WalkForeStep」と、動作指令パラメータ「MTPrm_Direction(0)」及び「MTPrm_Repetition(3)」との組み合わせでなる動作指令情報D3を得る。
以上のようにして、メイン制御部50では、入力された指令音声を動作指令情報D3に変換した後に対応するサブ制御部53A〜53D(図4)に送出することにより、当該サブ制御部53A〜53Dの制御の下に、前方に3歩歩行するなどの適切な行動がロボット1において発現させることができる。
(3)音声動作指令機能における具体例
メイン制御部50は、上述した音声動作指令機能について、「前に3歩進め」といった基本的な指令音声に対する変換以外にも、以下に述べるような種々の音声指令を動作指令情報D3に変換することができる。
(3−1)最大値による動作指令パラメータの調整を行う場合
例えば「右を向け」という音声指令文の場合には、音声指令文解析部71は、図11(A)に示すように、当該音声指令文を「右を」及び「向け」という音声指令語列に分割した後、「SPTag_Right」及び「SPTag_Turn」という音声指令タグ列に変換する。続いて音声指令文解析部71は、音声指令解析テーブル73のうち第2の変換テーブル73Bを用いて、かかる音声指令タグ列のうち音声指令タグ「SPTag_Right」を音声指令パラメータ「SPPrm_Direction(SPTag_Right(25))」及び「SPPrm_Angle(SPTag_Right(10))」に変換すると共に、音声指令タグ「SPTag_Turn」を音声指令コマンド「SPCom_Turn(SPTag_Turn)」に変換するようにして音声指令情報D2を得る。
ここで、音声指令情報D2において、音声指令タグ「SPTag_Right」に対応する音声指令パラメータ「SPPrm_Direction(SPTag_Right(25))」及び「SPPrm_Angle(SPTag_Right(10))」には、「SPTag_Right」に「25」及び「10」というサブ情報が付加されているが、このサブ情報は、上述した図9(B)におけるデフォルト値が採用されたことによるものである。
この後、図11(B)に示すように、音声指令情報変換部72において、音声指令情報D2が音声指令コマンド「SPCom_Turn」と、音声指令パラメータ「SPPrm_Direction(SPTag_Right(25))」及び「SPPrm_Angle(SPTag_Right(10))」との組み合わせでなることから、音声動作指令対応テーブル74を用いて、当該組み合わせに一致する動作指令コマンド及び動作指令パラメータの組み合わせを判断すると、動作指令コマンド「MTCom_MoveHeadYaw」と、動作指令パラメータ「MTPrm_Angle(36)」との組み合わせでなる動作指令情報D3を得る。
その際、上述した図10に示すように動作指令パラメータに設定された最大値が「360」であることから、音声指令パラメータ「SPPrm_Angle(SPTag_Right (10))」のサブ情報である「10」から、動作指令パラメータ「MTPrm_Angle(36)」のサブ情報は、「36(=10×360/100)」ように、人間らしさの表現及び安全性の確保を考慮して設定された最大値を考慮した数値に自動的に調整することができる。
(3−2)優先度により動作指令情報の選択を行う場合
例えば「左を向け」という音声指令文の場合には、音声指令文解析部71は、図12(A)に示すように、当該音声指令文を「左を」及び「向け」という音声指令語列に分割した後、「SPTag_Left」と「SPTag_Turn」及び「SPTag_TurnRound」という音声指令タグ列に変換する。
続いて音声指令文解析部71は、音声指令解析テーブル73のうち第2の変換テーブル73Bを用いて、かかる音声指令タグ列のうち音声指令タグ「SPTag_Left」を音声指令パラメータ「SPPrm_Direction(SPTag_Left(-25))」及び「SPPrm_Angle(SPTag_Left(-10))」に変換すると共に、音声指令タグ「SPTag_Turn」及び「SPTag_TurnRound」を音声指令コマンド「SPCom_Turn(SPTag_Turn)」及び「SPCom_Turn(SPTag_TurnRound)」に変換するようにして音声指令情報D2を得る。
ここで、音声指令情報D2において、音声指令タグ「SPTag_Left」に対応する音声指令パラメータ「SPPrm_Direction(SPTag_Left(-25))」及び「SPPrm_Angle(SPTag_Left(-10))」には、「SPTag_Left」に「-25」及び「-10」というサブ情報が付加されているが、このサブ情報は、上述した図10(B)におけるデフォルト値が採用されたことによるものである。
この後、図12(B)に示すように、音声指令情報変換部72において、音声指令情報D2が音声指令コマンド「SPCom_Turn」及び「SPCom_TurnRound」と、音声指令パラメータ「SPPrm_Direction(SPTag_Right (25))」及び「SPPrm_Angle(SPTag_Right (10))」との組み合わせでなることから、音声動作指令対応テーブル74を用いて、当該組み合わせに一致する動作指令コマンド及び動作指令パラメータの組み合わせを判断する。
このとき音声指令コマンドには「SPCom_Turn」及び「SPCom_TurnRound」と2種類存在するため、動作指令コマンドも「MTCom_MoveHeadYaw」及び「MTCom_WalkStepYaw」の2種類となる。このため予め設定された優先度に基づいて音声指令コマンド「SPCom_Turn」に対応する動作指令コマンド「MTCom_MoveHeadYaw」が選択される。この結果、動作コマンド「MTCom_MoveHeadYaw」と、動作指令パラメータ「MTPrm_Angle(36)」との組み合わせでなる動作指令情報D3が得られる。
このように複数の動作指令コマンドが存在する場合には予め設定しておいて優先度に従って、特定の動作指令コマンドを選択するようにして、ユーザが好ましいと思う方の動作をロボット1に発現させることができる。
(3−3)実行履歴情報を用いる場合
例えばユーザが「前に3歩進め」という指令音声を発した後に、続いて「もう1歩」という指令音声を発した場合には、当該「前に3歩進め」の音声指令文に基づく動作指令情報D3の変換は、上述した図8(A)及び(B)と対応する図13(A)及び(B)に示す通りである。
この「もう一歩」という音声指令語について、音声指令解析部71は、図13(C)に示すように、「SPTag_Step」という音声指令タグに変換する。続いて音声指令解析部71は、音声指令解析テーブル73のうち第2の変換テーブル73Bを用いて、かかる音声指令タグ「SPTag_Step」を音声指令パラメータ「SPPrm_Repetition(SPTag_Step(1))」に変換するようにして音声指令情報D2を得る。
この後、図13(D)に示すように、音声指令情報変換部72において、音声指令情報D2が音声指令パラメータのみからなり音声指令コマンドを含んでいないことから、実行履歴情報記憶部75を用いて、対応する動作指令情報D3を実行履歴情報として読み出して、当該動作指令情報D3を構成する音声指令パラメータ「SPPrm_Repetition(SPTag_Step(1))」との一致性に基づいて、不足している音声指令コマンドや他の音声指令パラメータを当該実行履歴情報から補完することにより、動作指令コマンド「MTCom_WalkForeStep」と、動作指令パラメータ「MTPrm_Direction(0)」及び「MTPrm_Repetition(3)」との組み合わせでなる動作指令情報D3を得ることができる。
このようにユーザが「前に3歩進め」という指令音声を発した後で、さらに「もう一歩」という指令音声を発したときでも、当該「前に3歩進め」に応じた動作指令情報D3を「もう一歩」に応じた動作指令情報D3に反映させることができる。
(3−4)実行履歴情報の動作指令パラメータを調整して用いる場合
例えばユーザが「右を向け」という指令音声を発した後に、続いて「もうちょっと」という音声指令を発した場合には、当該「右を向け」の音声指令文に基づく動作指令情報D3の変換は、上述した図11(A)及び(B)と対応する図14(A)及び(B)に示す通りである。
この「もうちょっと」という音声指令語について、音声指令解析部71は、図14(C)に示すように、「SPTag_LittleMore」という音声指令タグに変換する。続いて音声指令解析部71は、音声指令解析テーブル73のうち第2の変換テーブル73Bを用いて、かかる音声指令タグ「SPTag_LittleMore」を音声指令パラメータ「SPCom_LittleMore(SPTag_LittleMore)」に変換するようにして音声指令情報D2を得る。
この後、図14(D)に示すように、音声指令情報変換部72において、音声指令情報D2が音声指令パラメータのみからなり音声指令コマンドを含んでいないことから、実行履歴情報記憶部75を用いて、対応する動作指令情報D3を実行履歴情報として読み出して、当該動作指令情報D3を構成する音声指令コマンドや他の音声指令パラメータを当該実行履歴情報から補完することにより、動作指令コマンド「MTCom_MoveHeadYaw」と、動作指令パラメータ「MTPrm_Angle(54)」との組み合わせでなる動作指令情報D3を得ることができる。
その際、上述した図9(B)において音声指令パラメータ「SPPrm_Angle(SPTag_ Right (10,5))」には、相対値「relative」であること、デフォルト値が「10」及び変化幅が「5」と設定されており、これが実行履歴情報として得られることから、当該デフォルト値に変化幅を加算した値「15」が動作指令パラメータ「MTPrm_Angle(SPPrm_Angle(SPTag_
Right (15))のサブ情報として得られる。
この結果、上述した図10に示すように動作指令パラメータに設定された最大値が「360」であることから、音声指令パラメータ「SPPrm_Angle(SPTag_Right (15))」のサブ情報である「15」から、動作指令パラメータ「MTPrm_Angle(54)」のサブ情報は、「54(=15×360/100)」ように、人間らしさの表現及び安全性の確保を考慮して設定された最大値を考慮した数値に自動的に調整することができる。
このようにユーザが「右を向け」という指令音声を発した後で、さらに「もうちょっと」という指令音声を発したときでも、当該「右を向け」に応じた動作指令情報D3を「もうちょっと」という表現に対応した所望のルールに基づいて動作指令パラメータを調整することにより、当該動作指令情報D3に反映させることができる。
(4)音声動作指令処理手順
上述の音声動作指令機能に関するメイン制御部50の処理は、図15に示す音声動作指令処理手順RT1として統括的に表され、メイン制御部50は、当該処理手順RT1をステップSP0から開始することにより、ユーザが発した指令音声を、その指令音声の種類やロボット1に対する設定内容を反映させながら、動作指令情報D3に変換することができる。
メイン制御部50は、ステップSP1において、マイクロホン61を介して得られるユーザの発話内容から指令音声に対応する音声指令文を抽出した後、ステップSP2に進んで当該音声指令文を構成する複数の音声指令語が、所定のテーブル変換処理によって音声指令タグ列に変換可能か否かを判断する。
このステップSP2において肯定結果が得られると、メイン制御部50は、音声指令文を構成する各音声指令語を音声指令タグ列にテーブル変換した後、ステップSP4に進む一方、否定結果が得られると、そのままステップSP14に進んで当該音声動作指令処理手順RT1を終了する。
続いてステップSP4において、メイン制御部50は、音声指令タグ列を所定のテーブル変換処理によって、順次当該各音声指令タグに対応する音声指令コマンド又は音声指令パラメータに変換可能か否かを判断する。
このステップSP4において肯定結果が得られると、メイン制御部50は、ステップSP5に進んで、音声指令タグ列を音声指令情報D2にテーブル変換した後、ステップSP6に進む一方、否定結果が得られると、そのままステップSP14に進んで当該音声指令動作処理手順RT1を終了する。
このステップSP6において、メイン制御部50は、音声指令情報D2に基づいて、当該音声指令情報D2に音声指令コマンドが含まれているか否かを判断することにより、実行履歴情報を必要としているか否かを判断する。
このステップSP6において否定結果が得られると、メイン制御部50は、音声指令情報D2を動作指令情報D3に変換可能か否かを判断し、肯定結果が得られたときにはステップSP8に進む一方、否定結果が得られたときにはそのままステップSP14に進んで当該音声動作指令処理手順RT1を終了する。
続いてステップSP8において、メイン制御部50は、音声指令情報D2を動作指令情報D3に変換した後、ステップSP10に進んで、当該動作指令情報D3に複数の動作指令コマンドが存在するか否かを判断する。
このステップSP10において否定結果が得られると、このことは動作指令情報D3に基づく動作指令コマンドに複数の候補が存在することを表しており、このときメイン制御部50は、ステップSP11に進んで、予め設定されている優先度に基づいて1つの動作指令コマンドに基づく動作指令情報D3を選択した後、ステップSP12に進む。
一方ステップSP10において肯定結果が得られると、このことは動作指令情報D3に基づく動作指令コマンドが単一であることを表しており、メイン制御部50は、ステップSP12に進む。
このステップSP12において、メイン制御部50は、必要に応じて動作指令情報D3に基づく動作指令パラメータを調整した後、ステップSP13に進んで、当該動作指令情報D3を対応するサブ制御部53A〜53D(図4)に供給することにより、当該サブ制御部53A〜53Dの制御の下にロボット1に適切な行動を発現させた後、ステップSP14に進んで、当該音声動作指令処理手順RT1を終了する。
これに対して上述したステップSP6において肯定結果が得られると、このことは音声指令情報D2に音声指令コマンドが含まれていないことを表しており、このときメイン制御部50は、実行履歴情報を必要としていると判断してステップSP15に進む。
このステップSP15において、メイン制御部50は、実行履歴情報が対応する動作指令情報D3を補完することができるか否かを判断し、肯定結果が得られた場合にはステップSP16に進んで、音声指令情報D2を実行履歴情報を用いた補完を行うようにして動作指令情報D3に変換した後、ステップSP13に進む。これに対してステップSP15において否定結果が得られると、メイン制御部50は、ステップSP14に進んで、当該音声動作指令処理手順RT1を終了する。
(5)本実施の形態による動作及び効果
以上の構成において、ロボット1では、メイン制御部50の制御の下に音声動作指令機能を実行することにより、ユーザが発した指令音声を表す音声指令文を音声指令タグ列に変換して、当該音声指令タグ列を音声指令コマンド及び音声指令パラメータに分類した後、当該音声指令コマンド及び音声指令パラメータの組み合わせの一致性に応じて判断した動作指令コマンド及び動作指令パラメータに基づいて、当該ロボット1が実行可能な動作を絞り込んで決定する。
従って、このロボット1は、ユーザからの音声指令が複雑な動作を要求する内容であっても、当該音声指令に応じた単純な動作以上の複雑な動作を発展させて実行することができる。
これに加えてロボット1では、メイン制御部50により音声動作指令機能を実行する際に、ロボット1の動作に対応する関節機構の可動範囲に最大値を設定しておき、音声指令に応じた動作を決定する際に、当該最大値を考慮して調整するようにしたことより、ロボット1の動作に人間らしい表現及び安全性の確保を反映させることができる。
さらにこのロボット1では、当該ロボット1の動作に複数の候補が存在する場合には、予め設定しておいた優先度に従って最優先の動作を選択することにより、ユーザが好ましいと思う方の動作をロボット1に発現させることができる。
さらにこのロボット1では、ユーザが指令音声を発した後に続いて当該指令音声と同じ動作内容で歩数や距離、回数等の度合いを表す指令音声を発した場合には、先の指令音声に応じた動作指令情報D3を実行履歴情報として保存しておき、当該実行履歴情報を用いて同じ動作のまま、次の指令音声に含まれる各種の度合いを反映させることができる。
この場合このロボット1では、ユーザが先の指令音声に続いて発した指令音声が不明確な度合いを表している場合には、当該度合いの表現に対応した所望のルールに基づいて動作に反映させる度合いを調整するようにしたことにより、より一層ユーザが意図した動作を発現することができる。
またユーザの発話内容から指令音声を表す音声指令文を抽出するようにしたことにより、予め設定された特定の指令語の集まりに限らず自由な発話内容で済むことから、ユーザは従来のような特定の指令語群を予め覚えておく手間がかからないといった利便性を得ることができる。
以上の構成によれば、ロボット1が、ユーザが発した指令音声を表す音声指令文を音声指令タグ列に変換して、当該音声指令タグ列を音声指令コマンド及び音声指令パラメータに分類した後、当該音声指令コマンド及び音声指令パラメータの組み合わせの一致性に応じて判断した動作指令コマンド及び動作指令パラメータに基づいて、当該ロボット1が実行可能な動作を絞り込んで決定するようにしたことにより、ユーザからの音声指令が複雑な動作を要求する内容であっても、当該音声指令に応じた単純な動作以上の複雑な動作を発展させて実行することができ、ユーザがロボット1に対する親近感を向上させることができ、かくして一段とエンターテインメント性の高いロボット1を実現できる。
(6)他の実施の形態
なお上述の実施の形態においては、本発明を図1〜図5のように構成されたヒューマノイド型のロボット1に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の装置に広く適用することができる。
また上述の実施の形態においては、ユーザの発話から指令音声を認識して、当該指令音声に応じた単数又は複数の音声指令語に変換する音声認識手段として、図6に示すメイン制御部50の機能ブロックのうちの音声指令文生成部70を適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のものに広く適用するようにしても良い。
さらに上述の実施の形態においては、音声指令文生成部(音声認識手段)70により変換された各音声指令語を解析して、当該解析結果に基づいて、ロボット1の基本動作ごとに設定された指令内容を表す音声指令コマンド及び当該音声指令コマンドに属する音声指令パラメータを生成する音声指令解析手段として、図6に示すメイン制御部50の機能ブロックのうちの音声指令文解析部71及び音声指令解析テーブル73を適用するようにした場合について述べたが、本発明はこれに限らず、テーブル変換処理以外にも種々の構成からなる音声指令解析手段に広く適用するようにしても良い。
この場合、本実施の形態では、音声指令解析テーブル73を第1及び第2の変換テーブル73A、73Bの2段階に分けた場合について述べたが、このようなテーブル変換処理を1段階でも3段階以上でも自由に設定するようにしても良い。
さらに上述の実施の形態においては、音声指令文解析部71及び音声指令解析テーブル73(音声指令解析手段)により生成された音声指令コマンド及び音声指令パラメータの組み合わせに基づいて、ロボット1の基本動作を表す動作指令コマンド及び動作指令パラメータの組み合わせを決定する動作指令決定手段として、図6に示すメイン制御部50の機能ブロックのうちの音声指令情報変換部72及び音声動作指令対応テーブル74を適用するようにした場合について述べたが、本発明はこれに限らず、テーブル変換処理以外にも種々の構成からなる動作指令決定手段に広く適用するようにしても良い。
さらに上述の実施の形態においては、音声指令情報変換部72及び音声動作指令対応テーブル74(動作指令決定手段)により決定された動作指令コマンド及び動作指令パラメータの組み合わせに応じた動作を発現させる動作発現手段として、図4に示すサブ制御部53A〜53Dを適用するようにした場合について述べたが、本発明はこれに限らず、ロボット1の動作を発現させることができれば、この他種々の構成からなる動作発現手段に広く適用するようにしても良い。
さらに上述の実施の形態においては、音声指令文解析部71及び音声指令解析テーブル73(音声指令解析手段)は、ロボット1の動作に対応する関節機構の可動範囲に基づいて、音声指令パラメータに最大値を設定しておき、音声指令情報変換部72及び音声動作指令対応テーブル74(動作指令決定手段)は、動作指令パラメータを音声指令パラメータの最大値に基づいて調整するようにしたが、要は、ロボット1が音声指令に応じた動作を決定する際に、ロボット1の動作に人間らしい表現及び安全性の確保を反映させることができれば、最大値以外にも種々の値を任意に設定するようにしても良い。
さらに上述の実施の形態においては、音声指令文解析部71及び音声指令解析テーブル73(音声指令解析手段)は、各音声指令コマンドに優先度を設定しておき、音声指令情報変換部72及び音声動作指令対応テーブル74(動作指令決定手段)は、音声指令解析手段から複数の音声指令コマンドが与えられたとき、当該各音声指令コマンドのうち優先度の高い音声指令コマンドを選択するようにしたが、要は、ロボット1の動作に複数の候補が存在する場合にユーザが好ましいと思う方の動作をロボット1に発現させることができれば、この他種々の方法を適用するようにしても良い。
さらに上述の実施の形態においては、音声指令情報変換部72及び音声動作指令対応テーブル74(動作指令決定手段)により決定された動作指令コマンド及び動作指令パラメータの組み合わせを実行履歴情報(履歴情報)として記憶する履歴情報記憶手段として、図6に示すメイン制御部50の機能ブロックのうちの実行履歴情報記憶部75を適用し、音声指令情報変換部72及び音声動作指令対応テーブル74(動作指令決定手段)は、音声指令文解析部71及び音声指令解析テーブル73(音声指令解析手段)から音声指令パラメータのみが得られた場合、実行履歴情報記憶部(履歴情報記憶手段)75から音声指令パラメータに対応する実行履歴情報(履歴情報)を読み出して、音声指令パラメータに応じて決定した動作指令パラメータ以外を当該実行履歴情報(履歴情報)によって補完するようにした場合について述べたが、本発明はこれに限らず、要は、ユーザが指令音声を発した後に続いて当該指令音声と同じ動作内容で歩数や距離、回数等の度合いを表す指令音声を発した場合に、同じ動作のまま次の指令音声に含まれる各種の度合いを反映させることができれば、この他種々の方法を適用するようにしても良い。
さらに上述の実施の形態においては、音声指令文解析部71及び音声指令解析テーブル73(音声指令解析手段)は、ロボット1の動作に対応する関節機構の可動範囲に基づいて、音声指令パラメータに最大値を設定しておき、音声指令情報変換部72及び音声動作指令対応テーブル74(動作指令決定手段)は、履歴情報によって動作指令パラメータを補完する際に、当該動作指令パラメータを音声指令パラメータの最大値に基づいて調整するようにしたが、要は、ユーザが先の指令音声に続いて発した指令音声が不明確な度合いを表している場合には、当該度合いの表現に対応した所望のルールに基づいて動作に反映させる度合いを調整することができれば、この他種々の方法を適用するようにしても良い。
1……ロボット、2……胴体部ユニット、3……首部、4……頭部ユニット、5A、5B……腕部ユニット、6A、6B……脚部ユニット、13……首関節機構部、20……肩関節機構部、24……肘関節 、32……足平部ブロック、36……股関節機構部、38……膝関節機構部、41……足首関節機構部、50……メイン制御部、53A〜53D……サブ制御部、70……音声指令文生成部、71……音声指令文解析部、72……音声指令情報変換部、73……音声指令解析テーブル、73A……第1の変換テーブル、73B……第2の変換テーブル、74……音声動作指令対応テーブル、75……実行履歴情報記憶部、A1〜A17……アクチュエータ、RT1……音声動作指令処理手順。