(57)【要約】【課題】音源の方向を基準とする移動体の方向に関する情報と移動体の走行情報とだけを利用して移動体を高精度に制御する移動体制御装置を提供する。【解決手段】本発明による移動体制御装置は、移動体(40)の軌道上の二カ所（P1、P2）で、音源(44)の方向(50、52)を基準として移動体(40)の方向（θ1"、 θ2"）を推定し、その二カ所（P1、P2）間の走行距離(l)と、その二カ所（P1、P2）で推定された方向（θ1"、 θ2"）とを利用して音源(44)と移動体(40)と間の距離（l2）を決定する。【選択図】図３
2006221626.tif 000002
【特許請求の範囲】
【請求項１】
外部の音源の発する音を利用して移動体の走行を制御する装置であり、
前記移動体の走行情報を生成する走行情報生成部、
前記音源の方向を基準として前記移動体の方向（以下、推定方向という）を推定する方向推定部、及び、
前記走行情報と前記推定方向とを利用し、前記移動体の位置を決定する位置決定部、
を備える移動体制御装置。
【請求項２】
前記位置決定部により決定された前記移動体の位置に関する情報が前記移動体と前記音源との間の距離を含む、請求項１に記載の移動体制御装置。
【請求項３】
前記位置決定部が、前記移動体の軌道上の二点間の走行距離と、前記二点で得られた前記推定方向とを三角公式に代入し、前記移動体と前記音源との間の距離を決定する、請求項２に記載の移動体制御装置。
【請求項４】
前記推定方向を利用して前記移動体の目標の走行方向を決定する走行方向決定部、及び、
前記走行方向に向かって目標の走行距離だけ前記移動体を走行させる走行制御部、
をさらに備える、請求項１に記載の移動体制御装置。
【請求項５】
前記移動体制御装置が、
前記位置決定部により決定された前記移動体の位置に基づいて前記移動体と前記音源との間の距離を所定の閾値と比較する比較部、
をさらに備え、
前記走行方向決定部が前記比較部による比較結果に応じて前記走行方向を更新する、
請求項４に記載の移動体制御装置。
【請求項６】
前記走行制御部が、前記移動体の推定方向と位置とを利用し、前記移動体を前記音源に接近させる、請求項４に記載の移動体制御装置。
【請求項７】
前記移動体制御装置が、
所定の音を検出し、音検出信号として出力する音検出部、
をさらに備え、
前記方向推定部が前記音検出信号に応じて前記推定方向を推定する、
請求項１に記載の移動体制御装置。
【請求項８】
前記音検出部が、
検出された音に対応する音声信号からノイズを除去するノイズ除去部、
前記ノイズが除去された音声信号から所定のレベル以上の信号成分を抽出する成分抽出部、及び、
抽出された前記信号成分が前記所定の音であるか否かを検査し、その検査結果を前記音検出信号として出力する音認識部、
を備える、請求項７に記載の移動体制御装置。
【請求項９】
前記音検出部が、
検出された音のうち、所定の帯域成分を通過させる帯域通過フィルタ、
前記帯域成分の包絡線を検出する包絡線検出部、及び、
前記包絡線のレベルを所定の閾値レベルと比較し、その比較結果を前記音検出信号として出力するレベル比較部、
を備える、請求項７に記載の移動体制御装置。
【請求項１０】
前記音検出部が、
検出された音のうち、第１帯域成分を通過させる第１帯域通過フィルタ、
検出された音のうち、第２帯域成分を通過させる第２帯域通過フィルタ、
前記第１帯域成分の包絡線を検出する第１包絡線検出部、
前記第２帯域成分の包絡線を検出する第２包絡線検出部、
前記第１帯域成分の包絡線を第１閾値レベルと比較する第１レベル比較部、
前記第２帯域成分の包絡線を第２閾値レベルと比較する第２レベル比較部、及び、
前記第１レベル比較部と前記第２レベル比較部とによる比較結果を利用し、前記第１帯域成分と前記第２帯域成分とが交互に検出されるか否かを判断し、その判断結果を前記音検出信号として出力するレベル認識部、
を備える、請求項７に記載の移動体制御装置。
【請求項１１】
前記移動体制御装置が前記移動体を第１位置から第２位置を経由して連続的に走行させる場合、
前記位置決定部により決定された前記移動体の位置に関する情報が前記移動体と前記音源との間の距離を含み、
前記移動体制御装置が、
前記第２位置での前記移動体と前記音源との間の距離、または前記第２位置での前記移動体の推定方向の少なくともいずれかを、検出された前記音源の音のレベルの時間的変化と三角公式とを利用して修正する位置修正部、
をさらに備える、請求項７に記載の移動体制御装置。
【請求項１２】
前記移動体が前記第２位置より前記第１位置に近い第３位置に達した時点で前記方向推定部が前記推定方向を推定し始め、かつ前記移動体が前記第２位置に達した時点で前記位置決定部が前記移動体の位置を決定し終える場合、
前記位置修正部が、
検出された前記音源の音のレベルの時間的変化を利用し、前記第３位置と前記第２位置との間の前記移動体の軌道上から、前記方向推定部が前記推定方向を推定し終えた時点での前記移動体の位置（以下、実際位置という）を探す実際位置検出部、
前記実際位置から前記第２位置までの走行距離を計算し、計算された結果を距離誤差として出力する距離誤差計算部、
前記第１位置と前記第２位置との間の走行距離から前記距離誤差を減算した値、前記第１位置での前記推定方向、及び前記第２位置での前記推定方向、を三角公式に代入して前記実際位置と前記音源との間の距離を計算する距離計算部、
前記距離誤差、前記第２位置での前記推定方向、及び前記距離計算部により計算された前記実際位置と前記音源との間の距離に基づき、前記第２位置と前記音源との間の距離を補正する距離補正部、並びに、
前記距離補正部により補正された前記第２位置と前記音源との間の距離に対する、前記距離計算部により計算された前記実際位置と前記音源との間の距離の比率を利用し、前記第２位置での前記推定方向を補正する方向補正部、
を備える、請求項１１に記載の移動体制御装置。
【請求項１３】
前記移動体が前記第３位置から前記第２位置まで移動する間、前記実際位置検出部が、検出された前記音源の音のレベルを示す音声信号の電力をサンプリングし、
前記移動体が前記実際位置から前記第２位置まで移動する期間での前記音声信号の電力の積算値が、前記移動体が前記第３位置から前記第２位置まで移動する期間全体での前記音声信号の電力の積算値、の半分に相当する、という条件で前記実際位置検出部が前記実際位置を探す、
請求項１２に記載の移動体制御装置。
【請求項１４】
前記移動体が前記第３位置から前記第２位置まで移動する期間での前記電力のサンプル数全体に対する、前記移動体が前記実際位置から前記第２位置まで移動する期間での前記電力のサンプル数の割合と、前記第３位置から前記第２位置までの前記移動体の走行距離と、に基づき、前記距離誤差計算部が前記距離誤差を計算する、請求項１３に記載の移動体制御装置。
【請求項１５】
前記距離計算部が、前記第１位置と前記第２位置との間の走行距離l、前記距離誤差lN2、前記第１位置での前記推定方向θ1”、及び前記第２位置での前記推定方向θR”、に基づき、前記実際位置と前記音源との間の距離lRを次式(1)で計算し：
【数１】
2006221626.tif 000018
前記距離補正部が、前記距離誤差lN2、前記実際位置と前記音源との間の距離lR、及び前記第２位置での前記推定方向θR”、に基づき、前記第２位置と前記音源との間の距離l2を次式(2)で計算し：
【数２】
2006221626.tif 000019
前記方向補正部が、前記比率lR／l2と前記第２位置での前記推定方向θR”とに基づき、補正された前記第２位置での推定方向θ2”を次式(3)で計算する：
【数３】
2006221626.tif 000020
請求項１２に記載の移動体制御装置。
【請求項１６】
前記位置決定部が、前記走行情報を利用して前記移動体の位置を予測し、予測された前記移動体の位置（以下、予測位置という）を前記推定方向に基づいて補正し、補正された結果を前記移動体の位置として決定する、請求項１に記載の移動体制御装置。
【請求項１７】
前記位置決定部が、
前記予測位置から前記移動体の方向を予測し、予測方向として出力する方向予測部、
前記推定方向から前記予測方向を減算し、その減算結果を方向誤差値として出力する方向誤差生成部、
前記方向誤差値を利用して前記予測位置を補正し、前記移動体の位置として出力する位置補正部、
前記位置補正部の出力を所定時間遅延させる時間遅延部、及び、
前記時間遅延部により遅延された前記位置補正部の出力と前記走行情報とから前記予測位置を更新する位置予測部、
を備える、請求項１６に記載の移動体制御装置。
【請求項１８】
前記走行情報が、前記移動体の走行速度、角速度、及び走行距離のうち少なくともいずれかを含む、請求項１７に記載の移動体制御装置。
【請求項１９】
前記位置補正部が、前記走行情報と前記移動体の位置との間のヤコビアン、ノイズの共分散行列、及び前記推定方向と前記移動体の位置との間のヤコビアンに基づいてカルマン利得を求め、前記カルマン利得と前記方向誤差値との積を前記予測位置に加算して前記移動体の位置として決定する、請求項１７に記載の移動体制御装置。
【請求項２０】
前記移動体が複数のマイクを搭載し、前記音源の発する音を前記マイクにより多チャンネルの音声信号に変換する場合、
前記方向推定部が、
前記多チャンネルの音声信号と前記推定方向の予測値とを利用し、前記音声信号に対応する音のレベルを推定する音推定部、
推定された前記音のレベル（以下、音の推定レベルという）と前記推定方向の予測値とを利用し、前記音の推定レベルに対応する音声信号を予測する音予測部、
前記マイクから出力された音声信号と前記音予測部により予測された音声信号との間の差を音誤差値として出力する音誤差生成部、
前記音誤差値と前記音の推定レベルとを利用して前記推定方向の予測値を補正し、前記推定方向として出力する状態ベクトル補正部、
前記状態ベクトル補正部の出力を所定時間遅延させる時間遅延部、
前記時間遅延部により遅延させられた前記状態ベクトル補正部の出力から前記推定方向の予測値を更新する状態ベクトル予測部、
を備える、請求項１に記載の移動体制御装置。
【請求項２１】
前記音推定部が、前記音源の音の波長、前記複数のマイクの配置、及び前記推定方向の予測値とで定まるステアリングベクトル、を利用して前記音の推定レベルを計算し、
前記音予測部が、前記音の推定レベルと前記ステアリングベクトルとを利用して音声信号を予測し、
前記状態ベクトル補正部が、前記音声信号と前記推定方向との間のヤコビアン、及びノイズの共分散行列、に基づいてカルマン利得を求め、前記カルマン利得と前記音誤差値との積を前記推定方向の予測置に加算して前記推定方向として決定する、
請求項２０に記載の移動体制御装置。
【請求項２２】
外部の音源の発する音を利用して移動体の走行を制御する方法であり、
（a）前記音源の方向を基準として前記移動体の方向を推定するステップ、
（b）推定された方向（以下、推定方向という）を利用して移動体の目標の走行方向を決定するステップ、
（c）前記走行方向に向かって目標の走行距離だけ前記移動体を走行させるステップ、
（d）前記移動体の走行情報を求めるステップ、
（e）前記移動体が前記走行距離だけ走行したとき、前記推定方向を更新するステップ、及び、
（f）前記走行情報と前記推定方向とを利用し、前記移動体の位置を決定するステップ、
を有する、移動体制御方法。
【請求項２３】
前記移動体の位置に関する情報が前記移動体と前記音源との間の距離を含む、請求項２２に記載の移動体制御方法。
【請求項２４】
前記移動体と前記音源との間の距離、及び前記推定方向を利用し、前記移動体を前記音源に接近させるステップ、をさらに有する、請求項２３に記載の移動体制御方法。
【請求項２５】
前記移動体と前記音源との間の距離を所定の閾値と比較するステップ、及び、
前記移動体と前記音源との間の距離が前記閾値以上であるとき、前記推定方向を利用して前記走行方向を更新するステップ、
を更に有する、請求項２３に記載の移動体制御方法。
【請求項２６】
所定の音が検出されたか否かを判断し、前記所定の音が検出された場合に前記移動体の方向を推定する、請求項２２に記載の移動体制御方法。
【請求項２７】
前記移動体を第１位置から第２位置を経由して連続的に走行させる場合、
前記移動体の位置に関する情報が前記移動体と前記音源との間の距離を含み、
前記移動体制御方法が、
前記第２位置での前記移動体と前記音源との間の距離、または前記第２位置での前記移動体の推定方向の少なくともいずれかを、検出された前記音源の音のレベルの時間的変化と三角公式とを利用して修正するステップ、
をさらに有する、請求項２６に記載の移動体制御方法。
【請求項２８】
前記移動体が前記第２位置より前記第１位置に近い第３位置に達した時点で前記推定方向の推定が開始され、かつ前記移動体が前記第２位置に達した時点で前記移動体の位置が決定される場合、
前記第２位置での前記移動体と前記音源との間の距離、または前記第２位置での前記移動体の推定方向の少なくともいずれかを修正するステップが、
検出された前記音源の音のレベルの時間的変化を利用し、前記第３位置と前記第２位置との間の前記移動体の軌道上から、前記推定方向の推定を完了した時点での前記移動体の位置（以下、実際位置という）を探すステップ、
前記実際位置から前記第２位置までの走行距離を求め、求めた結果を距離誤差として出力するステップ、
前記第１位置と前記第２位置との間の走行距離から前記距離誤差を減算した値、前記第１位置での前記推定方向、及び前記第２位置での前記推定方向、を三角公式に代入して前記実際位置と前記音源との間の距離を求めるステップ、
前記距離誤差、前記第２位置での前記推定方向、及び前記実際位置と前記音源との間の距離に基づき、前記第２位置と前記音源との間の距離を補正するステップ、並びに、
補正された前記第２位置と前記音源との間の距離に対する、前記実際位置と前記音源との間の距離の比率を利用し、前記第２位置での前記推定方向を補正するステップ、
を含む、請求項２７に記載の移動体制御方法。
【請求項２９】
前記移動体の位置を決定するステップが、
前記走行情報を利用して前記移動体の位置を予測し、予測された前記移動体の位置を前記推定方向に基づいて補正し、補正された結果を前記移動体の位置として決定するステップ、
を含む、請求項２２に記載の移動体制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのような移動体に関し、特に、その移動体を制御する移動体制御装置及びその方法に関する。
【背景技術】
【０００２】
ロボットのような移動体を制御する装置は、例えば移動体に搭載されたカメラまたは多重マイクを通して得られる情報を、移動体の位置や走行の制御に利用する。例えば、移動体の周辺に存在する音源の位置を基準として移動体の方向が推定される。従来の移動体制御装置は特に、移動体の位置を把握するために同期信号を移動体に対して伝送する（例えば、特許文献１、２参照）。その他には、距離センサを利用する（例えば、特許文献３参照）。
【特許文献１】大韓民国特許公開第2004−0089883号公報
【特許文献２】大韓民国特許公開第2004−0060829号公報
【特許文献３】大韓民国特許公開第2000−0066728号公報
【非特許文献１】Xianxian  Zhang、Kazuya  Takeda、John  H．L．、Hansen、Toshiki  Maeno、「Audio−Visual  Speaker  Localization  for  Car  Navigation  System」、Inter．Conf．on  Spoken  Language  Processing、2004年
【非特許文献２】Yariv  Ephraim、David  Malah、「Speech  enhancement  using  a  minimum  mean  square  error  short−time  spectral  amplitude  estimator」、IEEE  Transactions  on  acoustics，speech  and  signal  processing、1984年12月、Vol．ASSP−32、No.6、p.1109−1121
【非特許文献３】Qi  Li、Jinsong  Zheng、Augustine  Tsai、Qiru  Zhou、「Robust  endpoint  detection  and  energy  normalization  for  real−time  speech  and  speaker  recognition」、IEEE  Transactions  on  speech  and  audio  processing、2002年3月、Vol．10、No.3、p.46−157
【非特許文献４】Greg  Welch、Gary  Bishop、「An  Introduction  to  the  Kalman  Filter」、Department  of  Computer  Science  University  of  North  Carolina  at  Chapel  Hill、2004年4月5日
【発明の開示】
【発明が解決しようとする課題】
【０００３】
移動体の動作を更に複雑化させ、または更に精密化させるには、移動体の制御を更に高精度に行うことが望ましい。しかし、移動体の方向の推定にカメラを利用する従来の移動体制御装置では、映像処理に必要な計算量の大きさが制御の更なる高精度化を阻んでいる。更に、照明や背景色の変化から受ける影響が大きいので、移動体の方向の測定精度を更に向上させることが困難である。
一方、移動体の位置を把握するために同期信号を利用する従来の移動体制御装置では、移動体と制御装置との間での同期を更に高精度に維持することが困難である。その他に、距離センサを利用する従来の移動体制御装置では、部品点数の更なる削減が困難である。
本発明の目的は、音源の方向を基準とする移動体の方向に関する情報と移動体の走行情報とだけを利用して移動体を更に高精度に制御可能である移動体制御装置及びその方法の提供にある。
【課題を解決するための手段】
【０００４】
本発明による移動体制御装置は、外部の音源の発する音を利用して移動体の走行を制御する装置であり、好ましくは、
移動体の走行情報を生成する走行情報生成部、
音源の方向を基準として移動体の方向を推定する方向推定部、及び、
移動体の走行情報と推定された方向とを利用し、移動体の位置を決定する位置決定部、を有する。
【０００５】
本発明による移動体制御方法は、本発明による上記の制御装置を利用して移動体を制御する方法であり、好ましくは、
音源の方向を基準として移動体の方向を推定するステップ、
移動体の推定方向を利用して移動体の目標の走行方向を決定するステップ、
その目標の走行方向に向かって目標の走行距離だけ移動体を走行させるステップ、
移動体の走行情報を求めるステップ、
移動体が目標の走行距離だけ走行したとき、その推定方向を更新するステップ、及び、
移動体の走行情報と推定方向とを利用し、移動体の位置を決定するステップ、を有する。
【発明の効果】
【０００６】
本発明による移動体制御装置及び方法は、従来の移動体制御装置や方法とは異なり、音源の方向を基準とする移動体の方向に関する情報と移動体の走行情報とだけから、その移動体の位置（特に、移動体と音源との間の距離）を決定できる。それにより、従来の移動体制御装置や方法とは異なり、同期信号や距離センサを用いることなく、音源にその移動体を接近させることが容易に実現される。特に、移動体を連続して走行させる場合、移動体と音源との間の距離や音源の方向を基準とする移動体の方向を補正しつつ、音源への接近を高精度に制御できる。このように、本発明による移動体制御装置及び方法では、従来の移動体制御装置や方法とは異なり、同期信号と距離センサとがいずれも不要である。従って、本発明による移動体制御装置及び方法は特に、カメラやレーザ等のセンサを搭載し難い移動体やＣＰＵパワーの比較的低い移動体（例えば、清掃ロボットや小さなおもちゃのロボット）の走行を制御するのに適している。特に、音源からの呼び出し音に応じて移動体をその音源に接近させることや、その上で音源に移動体をドッキングさせることが、同期信号や距離センサを用いなくても、容易である。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施形態について、添付した図面を参照しながら説明する。
本発明の実施形態による移動体制御装置は好ましくは小型のロボット40に搭載される（図４の(a)参照）。ここで、ロボット40は好ましくは、底部に備えられた駆動輪を使い、平面上を全方位に移動可能である。ロボット40は更に好ましくは、その外周に沿って８個のマイクM1〜M8を有する（図４の(b)参照）。８個のマイクはその他に、ロボット40の側面に一列に配置されても良い（図４の(c)参照）。本発明の実施形態による移動体制御装置はそれらのマイクM1〜M8を通し、全方位からの音を捕捉する。その制御装置は特に、マイクM1〜M8を通して特定の音（例えば拍手の音や人の声）を検出し、好ましくはロボット40の正面方向に対するその音源（例えば人）44の方向を特定する（図３参照）。更に、特定された音源44の方向を基準として目標の走行方向を表現する。そのように表現された目標の走行方向が他の制御目標と共に、ロボット40の駆動部に与えられる。駆動部は与えられた制御目標に応じて駆動量（例えば走行距離や回転角度）を調節する。こうして、その音源44の近傍でのロボット40の走行が制御される。
【０００８】
本発明の実施形態による移動体制御装置は好ましくは、方向推定部2、音検出部4、走行方向決定部6、走行制御部8、走行情報生成部10、位置決定部12、比較部14、及び位置修正部16、を有する（図１参照）。ここで、これらの構成要素は好ましくは、個別の回路で構成される。その他に、共通のＣＰＵが所定のプログラムの実行により、各構成要素として機能しても良い。
【０００９】
方向推定部2は、８個のマイクM1〜M8から第１入力端子IN1を通して音声信号を受信する。方向推定部2は更に、受信された音声信号に基づき、音源44（図３参照）の方向を基準とするロボット40の方向を推定する（詳細は非特許文献１または後述参照）。推定された方向（以下、推定方向という）は、走行方向決定部6、位置決定部12、及び位置修正部16に出力される。ここで、方向推定部2は、音源44の方向を基準として、ロボット40の方向を次のように表現する（図３参照）。例えば、ロボット40が第１位置P1に位置するとき、ロボット40から見た音源44の方向50とロボット40の正面方向46との間の角度θ1が、音源44の方向を基準とするロボット40の方向として定義される。ロボット40が第２位置P2に位置するときも同様に、ロボット40から見た音源44の方向52とロボット40の正面方向48との間の角度θ2が、音源44の方向を基準とするロボット40の方向として定義される。その他に、ロボット40から見た音源44の方向50、52とロボット40の走行方向54、56との間の角度θ1”、θ2”が、音源44の方向を基準とするロボット40の方向として定義されても良い。ここで、角度は、時計回りに測られても、反時計回りに測られても良い。
【００１０】
音検出部4は、８個のマイクM1〜M8から第１入力端子IN1を通して、８チャンネルの音声信号を受信する。音検出部4は更に、走行情報生成部10により生成されたロボット40の走行に関する情報（以下、走行情報という）に基づき、受信された音声信号の中から所定の音を探す。所定の音が検出された場合、音検出部4はチャンネル別に音検出信号を生成する。音検出信号は方向推定部2と位置修正部16とに出力される。それにより、所定の音が検出されたとき、方向推定部2が起動し、その音源の方向を推定する。一方、位置修正部16が音声信号の電力をサンプリングする（詳細は後述参照）。ここで、所定の音はユーザによりあらかじめ設定され、好ましくは、ロボット40の名前を呼ぶ声、拍手の音、または一定周波数の音（正弦波）である。
【００１１】
所定の音が、例えば拍手の音や人の声等、間欠的に発生する音である場合、音検出部4は好ましくは、図８に示されている構成4Aを含む。すなわち、音検出部4Aは、ノイズ除去部120、成分抽出部122、及び音認識部124を含む。ノイズ除去部120は好ましくは、モノラルの音質補正（ＳＥ：Sound  Enhancement）器である（例えば非特許文献２参照）。ノイズ除去部120は、８個のマイクM1〜M8から第１入力端子IN1を通して音声信号を受信し、受信された音声信号からノイズを除去する。ノイズが除去された音声信号は成分抽出部122に出力される。成分抽出部122は好ましくは、一種の音声区間検出器（ＶＡＤ：Voice  Activity  Dectector）である（例えば非特許文献３参照）。成分抽出部122は、ノイズ除去部120から出力された音声信号から所定のレベル以上の成分を抽出する。抽出された信号成分は音認識部124に出力される。音認識部124は、成分抽出部122により抽出された信号成分が所定の音であるか否かを判断する。識別の結果、その信号成分が所定の音であった場合、音認識部124は音検出信号を生成し、出力端子OUT6を通して外部に出力する。
【００１２】
所定の音が、例えば一定周波数の正弦波等、連続的に発生する音である場合、音検出部4は好ましくは、図９に示されている構成4Bを含む。すなわち、音検出部4Bは、帯域通過フィルタ140、包絡線検出部142、及びレベル比較部144を含む。帯域通過フィルタ140は、８個のマイクM1〜M8から第１入力端子IN1を通して音声信号を受信する。帯域通過フィルタ140は更に、自己相関法または高速フーリエ変換（ＦＦＴ：Fast  Fourier  Transform）を用い、受信された音声信号から所定の帯域成分のみを通過させる。ここで、その通過可能な帯域は好ましくは超音波帯域である。帯域通過フィルタ140を通過した帯域成分は包絡線検出部140に出力される。帯域通過フィルタ140は好ましくは、信号の出力と遮断とを一定の周期で反復する。例えば図１０では、信号の出力期間と停止期間とが周期T1で反復される。更に、出力期間と停止期間とはいずれも、周期T1の半分T1／2に等しい。それにより、元は連続していた信号が複数の部分150、152、154に分割される。包絡線検出部140は、帯域通過フィルタ140を通過した信号成分の包絡線を検出し、検出された包絡線のレベルを表す信号をレベル比較部144に出力する。レベル比較部144は、包絡線検出部140で検出された包絡線のレベルを所定の閾値レベルと比較する。比較の結果、包絡線のレベルがその閾値レベルを超えるとき、包絡線検出部140は音検出信号を生成し、出力端子OUT6を通して外部に出力する。
【００１３】
所定の音が連続的に発生する音である場合、音検出部4は、図９に示されている構成4Bを二組、並列に含んでも良い（図１１参照）。すなわち、音検出部4Cは、第１帯域通過フィルタ160、第１包絡線検出部164、及び第１レベル比較部168を含む第１系統、第２帯域通過フィルタ162、第２包絡線検出部166、及び第２レベル比較部170を含む第２系統、並びにレベル認識部172を有する。第１系統と第２系統とのそれぞれは、図９に示されている構成4Bと同様に機能する。但し、二つの帯域通過フィルタ160、162は好ましくは、信号を交互に出力する（図１２参照）。更に、第１系統は、第１入力端子IN1を通して受信される音声信号のうち、第１帯域成分f1について包絡線のレベルを第１閾値レベルと比較する。一方、第２系統は第２帯域成分f2について包絡線のレベルを第２閾値レベルと比較する。各包絡線検出部164、166で検出された包絡線のレベルが各閾値レベルを超えるとき、各レベル比較部168、170が所定の信号をレベル認識部172に出力する。レベル認識部172は、各レベル比較部168、170から出力される信号に基づき、第１帯域成分f1と第２帯域成分f2とが交互に検出されているか否かを判断する。第１帯域成分f1と第２帯域成分f2とが交互に検出されている場合、レベル認識部172は音検出信号を、出力端子OUT6を通して外部に出力する。
【００１４】
走行方向決定部6は推定方向を利用し、音源44の方向を基準としてロボット40の走行方向を決定する。例えば図３では、ロボット40が第１位置P1に位置するとき、ロボット40の正面方向46を基準として目標の走行方向54を表す角度Δθ1が推定方向θ1に加算され、その結果θ1”＝θ1＋Δθ1が、音源44の方向に対するロボット40の走行方向として決定される。ここで、ロボット40を音源44に接近させる場合でも、目標の走行方向が音源44の方向から所定の閾値θT以上外れるように、加算される角度Δθ1が設定される：|θ1”|＝|θ1＋Δθ1|≧θT。同様に、ロボット40が第２位置P2に位置するとき、走行方向決定部6が、ロボット40の正面方向48を基準として目標の走行方向56を表す角度Δθ2を推定方向θ2に加算し、加算された結果θ2”＝θ2＋Δθ2（|θ2”|≧θT）を、音源44の方向に対するロボット40の走行方向として決定する。走行方向決定部6は更に、決定された走行方向を走行制御部8に出力する。
【００１５】
走行制御部8は、推定方向、目標の走行方向、及びロボット40の位置（位置決定部12により決定される）に基づいて走行制御信号を生成し、第１出力端子OUT1を通してロボット40の駆動部（図示せず）に出力する。ここで、走行制御信号は特に、目標の走行方向と走行距離とに関する情報を含む。ロボット40の駆動部は、走行制御部8から出力される走行制御信号を受信し、目標の走行方向と走行距離とを解読する。それにより、ロボット40がその走行方向に向かってその走行距離だけ移動する。例えば図３では、ロボット40が第１位置P1に位置するとき、走行制御部8が目標の走行方向θ1”と目標の走行距離lとを設定する。それにより、駆動部がロボット40を、目標の走行方向θ1”に向かって目標の走行距離lだけ走行させる。
【００１６】
走行情報生成部10は、走行制御部8から出力される走行制御信号に基づいて走行情報を生成する。生成された走行情報は、音検出部4、位置決定部12、及び位置修正部16に出力される。ここで、走行情報は好ましくは、ロボット40の走行速度、回転の角速度、及び走行距離の少なくともいずれかを含む。それらの情報は、当業者には周知の方法により、走行制御信号に基づいて測定可能である。
【００１７】
位置決定部12は走行情報と推定方向とを利用してロボット40の位置（すなわち、ロボット40の位置を表す座標）を決定する（詳細は後述、及び図１５参照）。決定された位置に関する情報（以下、位置情報という）は走行制御部8と比較部14とに出力され、更に第２出力端子OUT2を通して外部（好ましくはロボット40の駆動部）にも出力される。例えば図３では、ロボット40が第１位置P1に位置するとき、ロボット40の位置が、ロボット40と音源44との間の距離l1、及び、音源44の方向に対するロボット40の方向θ1（または走行方向θ1”）の組み合わせで表現される。同様に、ロボット40が第２位置P2に位置するとき、ロボット40の位置が、ロボット40と音源44との間の距離l2、及び、音源44の方向に対するロボット40の方向θ2（または走行方向θ2”）の組み合わせで表現される。位置決定部12は特に、走行情報に含まれているロボット40の走行距離と三角公式とを用い、ロボット40と音源44との間の距離を推定する。例えば図３では、ロボット40が第２位置P2に位置するとき、ロボット40と音源44との間の距離l2（以下、推定距離という）が、第１位置P1から第２位置P2までの走行距離l、及び第１位置P1と第２位置P2とのそれぞれでの走行方向θ1”、θ2”から次式(1)で求められる。ここで、走行方向θ1”、θ2”はいずれも、音源44の方向から閾値θT（好ましくは10°）以上外れているので、推定距離l2が式(1)を用いて高精度に決定される：
【００１８】
【数１】
2006221626.tif 000003
【００１９】
比較部14は、位置決定部12により決定されたロボット40の位置情報から、ロボット40と音源44との間の距離を抽出する。比較部14は更に、その距離を所定の閾値と比較し、その比較の結果を走行方向決定部6に出力する。それにより、好ましくは、ロボット40が音源44から閾値以下の距離に近づくまで、走行方向決定部6はロボット40の走行方向を更新し続ける。
【００２０】
方向推定部2による方向の推定処理は、位置決定部12によるロボット40と音源44との間の距離の推定処理より先に、ほぼリアルタイムで行われる。しかし、方向推定部2による推定処理の完了時点から位置決定部12による推定処理の完了時点までの間、ロボット40は一般に移動し続ける。従って、得られた推定方向は厳密には、位置決定部12による推定処理の完了時点ではなく、方向推定部2による推定処理の完了時点でのロボット40の位置に対応している。更に、式(1)では走行距離lが厳密には推定方向θ2”と対応していない。位置修正部16は、音検出信号により示される音のレベル（具体的には音声信号の電力）をサンプリングし、それらのサンプルに基づいて推定距離または推定方向の少なくともいずれかを修正し、上記の対応関係のずれに起因する誤差を低減させる。例えば図３では、ロボット40が第１位置P1から第２位置P2まで走行したときに更新される推定方向が、実際には第２位置P2での推定方向θ2（若しくはθ2”）ではなく、第２位置P2より手前の位置PRでの推定方向θR（若しくはθR”）である。従って、位置修正部16は、その手前の位置PRでの推定距離lRまたは推定方向θR（若しくはθR”）に基づき、第２位置P2での推定距離l2または推定方向θ2（若しくはθ2”）を修正する。修正された推定距離または推定方向に関する情報は、第３出力端子OUT3または第４出力端子OUT4を通して外部（好ましくはロボット40の駆動部）に出力される。
【００２１】
位置修正部16は好ましくは図５に示されている構成16Aを含む。すなわち、位置修正部16Aは、実際位置算出部60、距離誤差計算部62、距離計算部64、距離補正部66、及び方向補正部68から構成される。
実際位置算出部60は、第２入力端子IN2を通して８チャンネルの音検出信号を受信し、受信された音検出信号から、８チャンネル全体での音声信号の電力を求める。音検出部4は所定の音を連続して検出している間、音検出信号を一定の周期（サンプリング時間T）で出力し続ける。一方、実際位置算出部60は音検出信号を受信するごとに、音声信号の電力をサンプリングし続ける。例えば図３では、ロボット40が第１位置P1から走行方向54に向かって移動する途中、第３位置P3に達した時点から、音検出部4が音源44の発する所定の音を検出し始める。それにより、方向推定部2と位置決定部12とがそれぞれの推定処理を開始する。更に、第３位置P3を通過したロボット40が第４位置PRに達した時点で、方向推定部2が推定処理を完了する（以下、第４位置PRをロボット40の実際位置という）。その後、ロボット40が第２位置P2に達した時点で、位置決定部12が推定処理を完了する。その場合、ロボット40が第３位置P3から第２位置P2まで移動する間、実際位置算出部60は音声信号の電力をサンプリングし続け、更に得られたサンプルを一定の期間（以下、フレームという）ごとに積算する。ここで、１フレームは例えば、サンプリング時間Tの80倍（＝80T）に等しい。例えば、ロボット40が第３位置P3から実際位置PRまで移動する期間にはN1フレームが含まれ、ロボット40が実際位置PRから第２位置P2まで移動する期間にはN2フレームが含まれる。ここで、ロボット40が第３位置P3から第２位置P2まで移動する期間に含まれるフレームの総数をNとする：N＝N1＋N2。更に、第３位置P3でのフレームから数えてn番目のフレーム（n＝1、2、…、N）での音声信号の電力の積算値をP(n)とする。そのとき、実際位置算出部60は次式(2)を用い、ロボット40が実際位置PRから第２位置P2まで移動する期間に含まれるフレーム数N2を算出する。すなわち、「N2フレームでの積算値P(n)（n＝N1＋1、N1＋2、…、N1＋N2＝N）の和が、Nフレーム全体での積算値P(n)（n＝1、2、…、N）の総和の半分に相当する」という条件で、実際位置検出部60が実際位置PRを探す：
【００２２】
【数２】
2006221626.tif 000004
【００２３】
距離誤差計算部62は、第３入力端子IN3を通して走行情報生成部180から走行情報を受信し、第３位置P3から第２位置P2までのロボット40の走行距離lNを走行情報から解読する（図３参照）。距離誤差計算部62は更に、解読された走行距離lN、及び実際位置算出部60により算出されたフレーム数N、N2に基づき、実際位置PRと第２位置P2との間の距離lN2（以下、距離誤差という）を次式(3)で計算する。計算された距離誤差lN2は、距離計算部64と距離補正部66とに出力される：
【００２４】
lN2＝（N2／N）lN。                                              (3)
【００２５】
距離計算部64は、第３入力端子IN3を通して走行情報生成部180から走行情報を受信し、第３位置P3から第２位置P2までのロボット40の走行距離lNを走行情報から解読する。距離計算部64は更に、第４入力端子IN4を通して方向推定部2から、第１位置P1と第２位置P2とのそれぞれに対応づけられた推定方向に関する情報を受信する。ここで、第１位置P1に対応づけられた推定方向θ1は、方向推定部2に代えて位置修正部16から入力されても良い。一方、第２位置P2に対応づけられた推定方向は厳密には、ロボット40が実際位置PRにいるときでの音源44の方向に対するロボット40の方向θRである（図３参照）。距離計算部64は続いて、第１位置P1から実際位置PRまでの走行距離l−lN2、第１位置P1での音源44の方向に対する走行方向θ1”＝θ1＋Δθ1、及び実際位置PRでの音源44の方向に対する走行方向θR”＝θR＋ΔθRを次式(4)に代入し、実際位置PRと音源44との間の距離lRを計算する。ここで、ΔθRは、実際位置PRでのロボット40の正面方向と走行方向との間の角度である。計算された距離lRは距離補正部66に出力される：
【００２６】
【数３】
2006221626.tif 000005
【００２７】
距離補正部66は、距離誤差lN2、実際位置PRでの音源44の方向に対する走行方向θR”、及び距離計算部64で計算された距離lR、を用いて第２位置での推定距離l2を次式(5)で計算する。計算された結果は、修正された推定距離として、方向補正部68に出力され、更に、第３出力端子OUT3を通して外部（好ましくはロボット40の駆動部）に出力される：
【００２８】
【数４】
2006221626.tif 000006
【００２９】
方向補正部68は、距離補正部66で得られた距離l2に対する、距離計算部64で計算された距離lRの比率を利用し、第２位置P2に到達したロボット40の、音源44の方向に対する走行方向θ2”を次式(6)で計算する。計算された結果は、修正された走行方向として、第４出力端子OUT4を通して出力される：
【００３０】
【数５】
2006221626.tif 000007
【００３１】
本発明の実施形態による移動体制御装置は、以上の構成要素を利用してロボット40の走行を次のステップで制御する（図２参照）。
ステップ18：例えば図３に示されている第１位置P1で、８個のマイクM1〜M8が音源44からの音を捕捉し、音声信号に変換する（図４の(b)、(c)参照）。方向推定部2がその音声信号に基づき、音源44の方向に対するロボット40の方向を推定し、得られた推定方向θ1を、走行方向決定部6、位置決定部12、及び位置修正部16に出力する。
ステップ20：走行方向決定部6が、ロボット40の正面方向46を基準として目標の走行方向54を表す角度Δθ1と推定方向θ1とから音源44の方向に対するロボット40の走行方向θ1”＝θ1＋Δθ1を決定し、走行制御部8に出力する。
【００３２】
ステップ22：走行制御部8が、推定方向、目標の走行方向、及びロボット40の位置に基づいて走行制御信号を生成し、第１出力端子OUT1を通してロボット40の駆動部に出力する。ロボット40の駆動部は、受信された走行制御信号から目標の走行距離と走行方向とを解読し、ロボット40をその走行方向に向かってその走行距離だけ移動させる。例えば図３では、ロボット40が第１位置P1に位置するとき、ロボット40が目標の走行方向θ1”に向かって目標の走行距離lだけ走行する。
【００３３】
ステップ24：走行制御信号に含まれている情報に基づき、走行情報生成部10がロボット40の走行情報を生成する。
ステップ26：好ましくはロボット40が所定の走行距離を走行し終えるとき、前回の推定処理から所定時間が経過するとき、または８個のマイクM1〜M8が音源44から新たな音を捕捉したとき、方向推定部2が推定方向を更新する。例えば図３では、ロボット40が第１位置P1から第２位置P2まで走行したとき、方向推定部2が推定方向を更新する。
【００３４】
ステップ28：ステップ24で得られた走行情報と、ステップ18、26で得られた二つの推定方向とを利用し、位置決定部12がロボット40の位置を決定する。例えば図３では、ロボット40が第２位置P2に達したとき、位置決定部12が、ロボット40と音源44との間の距離l2を推定する（式(1)参照）。更に、その推定距離l2と、音源44の方向を基準とするロボット40の方向θ2（または走行方向θ2”）とが、ロボット40の位置として設定される。
【００３５】
ステップ30：特にロボット40を連続的に走行させる場合、好ましくは、位置修正部16が推定距離と推定方向との少なくともいずれかを修正する。例えば図３では、位置修正部16Aが式(2)〜(6)を使い、第２位置P2での推定距離l2と推定方向θ2”とを、次のステップで修正する（図６参照）。
ステップ70：ロボット40が実際位置PRから第２位置P2まで移動する期間に含まれるフレーム数N2を、実際位置算出部60が式(2)を用いて決定する。
ステップ72：距離誤差計算部62が、走行情報から解読された走行距離lN、及び実際位置算出部60により算出されたフレーム数N、N2に基づき、距離誤差（実際位置PRと第２位置P2との間の距離）lN2を式(3)で計算する。
ステップ74：距離計算部64が、第１位置P1から実際位置PRまでの走行距離l−lN2、第1位置P1での音源44の方向に対するロボット40の走行方向θ1”＝θ1＋Δθ1、及び実際位置PRでの音源44の方向に対するロボット40の走行方向θR”＝θR＋ΔθRを利用し、式(4)で実際位置PRと音源44との間の距離lRを計算する。
ステップ76：距離補正部66が、距離誤差lN2、実際位置PRでの音源44の方向に対する走行方向θR”、及び実際位置PRと音源44との間の距離lR、を用いて第２位置P2での推定距離l2を式(5)で計算する。
ステップ78：方向補正部68が、距離補正部66で計算された距離l2に対する、距離計算部64で計算された距離lRの比率と、実際位置PRでの音源44の方向に対する走行方向θR”とから、第２位置P2に到達したロボット40の走行方向θ2”を式(6)で計算する。こうして、推定距離l2と推定方向θ2”とが修正される。
【００３６】
本発明の実施形態による移動体制御装置は、図１に示されている構成要素のうち、方向推定部2、走行情報生成部10、及び位置決定部12だけを含んでも良い。この場合、図２に示されているステップのうち、ステップ18、ステップ24、ステップ26、及びステップ28だけが行われる。それにより、ロボットの走行制御は、走行方向決定部6の動作や走行制御部8の動作から制限を受けない。
【００３７】
ロボット40を間欠的に走行させる場合、ステップ28で決定される位置に含まれる誤差が十分に小さい。従って、その場合は、図１に示されている構成から位置修正部16が削除され、図２に示されているフローからステップ30が削除されても良い（図７参照）。図７では、図２に示されているステップと同様なステップに対し、図２に示されている符号と同じ符号が付されている。更に、それら同様なステップについては、図２に示されているステップに関する説明を援用する。
【００３８】
ステップ90：音検出部4が８個のマイクM1〜M8を通し、所定の音を監視する。
ステップ92：方向推定部2が、音検出部4から出力された音検出信号に応じ、音源44の方向を基準とするロボット40の方向を推定する（詳細は非特許文献１または後述参照）。
ステップ100：ステップ24で走行情報生成部10がロボット40の走行情報を生成し終えたとき、音検出部4が再び８個のマイクM1〜M8を通し、所定の音を監視する。
ステップ102：方向推定部2が、ロボット40の走行後に、音検出部4から出力された音検出信号に応じ、音源44の方向を基準とするロボット40の方向を推定する（詳細は非特許文献１または後述参照）。
ステップ106：走行制御部8は、ステップ102で得られた推定方向、及びステップ28で決定されたロボット40と音源44との間の距離に基づいてロボット40を移動させ、好ましくは音源44に接近させる。ここで、推定方向が、好ましくは、走行方向決定部6に入力されてロボット40の走行方向の決定に利用される。その他に、推定方向が方向推定部2から走行制御部8に直接伝達されても良い。
【００３９】
本発明の実施形態による移動体制御装置は次のステップで、ロボット40を連続的に、または間欠的に走行させて音源44に接近させても良い（図１３参照）。図１３では、図２に示されているステップと同様なステップに対し、図２に示されている符号と同じ符号が付されている。更に、それら同様なステップについては、図２に示されているステップに関する説明を援用する。ここで、ロボット40を間欠的に移動させる場合、ステップ30がスキップされても良い。
【００４０】
ステップ184：比較部14は、ロボット40と音源44との間の距離を所定の閾値と比較する。その距離が閾値より小さい場合、制御処理が終了する。その距離が閾値より大きい場合、処理がステップ186に分岐する。
ステップ186：走行方向決定部6が、ステップ28で得られた推定方向を利用して目標の走行方向を更新する。その後、処理がステップ22から反復される。特にステップ22では、ロボット40が、更新された走行方向に向かって目標の走行距離だけ走行する。
【００４１】
図１３に示されている各ステップの反復により、ロボット40は例えば図１４に示されている軌道を描く（矢印はロボット40の走行方向を示す）。図１４では、ステップ186により目標の走行方向が更新される地点が、PO1、PO2、PO3、PO4、…、POMで表されている（M：２以上の整数）。更に、各地点POi（i＝1、2、…、M−1、M）でのロボット40と音源44との間の距離がliで表され、ロボット40の正面方向が符号200、202、204、206、208、210で表され、音源44の方向に対するロボット40の方向と目標の走行方向とがθi、θi”で表され、ロボット40の正面方向に対する目標の走行方向（目標の回転角度）がΔθiで表されている。ここで、音源44の方向に対する目標の走行方向θi”が音源44の方向から所定の閾値θT（好ましくは10°）以上外れるように、回転角度Δθiが設定される：|θi”|＝|θi＋Δθi|≧θT。各地点POi、POi+1間でのロボット40の走行距離はLiで表されている。
【００４２】
ロボット40が初期位置PO1に位置するとき、まず、方向推定部2がロボット40の方向θ1を推定する（ステップ18）。次に、走行方向決定部6が、ロボット40の正面方向200に対する目標の走行方向Δθ1を推定方向θ1に加算し、音源44の方向に対する目標の走行方向θ1”を決定する（ステップ20）。走行制御部8は、決定された走行方向θ1”に向かって目標の走行距離L1だけロボット40を走行させる（ステップ22）。ここで、好ましくは、音源44から見たロボット40の方向が所定の角度θdを超えて変化しないように、目標の走行距離L1が設定される。
【００４３】
ロボット40が初期位置PO1から第２位置PO2まで移動するとき、その移動での走行距離L1を走行情報生成部10が求める（ステップ24）。第２位置PO2では、方向推定部2が音源44の方向に対するロボット40の方向θ2を推定する（ステップ26）。位置決定部12はロボット40の位置（すなわち、座標値）として、第２位置PO2でのロボット40と音源44との間の距離l2を決定する（ステップ28）。ロボット40が連続して走行する場合は更に、位置修正部16がロボット40と音源44との間の距離l2を修正する（ステップ30）。このとき、比較部14が距離l2を閾値と比較する（ステップ184）。その距離l2が閾値以上であると比較部14が判断したときは、走行方向決定部6が、第２位置P02に位置しているロボット40に対し、目標の走行方向を更新する（ステップ186）。ここで、音源44から見たロボット40の方向の変化が反転し、かつロボット40と音源44との間の距離が短縮されるように、第２位置P02に位置しているロボット40の回転角度（ロボット40の正面方向202と目標の走行方向との間の角度）Δθ2が設定される。更に、走行制御部8が、更新された目標の走行方向と走行距離との組み合わせをロボット40の駆動部に提供する。駆動部はロボット40を第２位置PO2から次の位置PO3へ移動させる。同様な処理が各地点PO3、PO4、…、POMで反復される。最後の地点POMでは、ロボット40と音源44との間の距離lMが閾値より小さい。それを比較部14が検出するとき、駆動部がロボット40を停止させる。こうして、ロボット40が音源44から所望の距離まで接近する。
【００４４】
［位置決定部12の詳細］
位置決定部12は好ましくは、拡張カルマンフィルタ（ＥＫＦ：Extended  Kalman  Filter）12Aを含む（非特許文献４、図１５参照）。位置決定部12はＥＫＦ12Aを以下のように用いる。
ＥＫＦ12Aはまず、ある時点k−1で決定されたロボット40の位置m(k−1)と、次の時点kで走行情報生成部10により生成された走行情報u(k)とを利用し、次の時点kでのロボット40の位置m(k)を予測する。ここで、整数k−1、kはサンプリング時間（音検出信号の周期）Tで離散化された時間を表す。走行情報u(k)はベクトル値変数であり、時点kでのロボット40の速さa(k)と、静止した直交座標系（x、y）の原点に対するロボット40の、時点kでの角速度ω(k)とから成る：u(k)＝［a(k)、ω(k)］T（記号Tは転置を表す）。ロボット40の位置m(k)はベクトル値変数であり、静止した直交座標系（x、y）で表された、時点kでのロボット40の座標（x(k)、y(k)）と走行方向（ロボット40の走行方向とx軸方向との間の角度）φ(k)とから成る：m(k)＝［x(k)、y(k)、φ(k)］T。時点kで予測されるロボット40の位置（以下、予測位置という）m0(k)は、ロボット40の位置m(k)と走行情報u(k)とから次のように求められる。まず、連続的な時間変数tで表される場合、ロボット40の位置m(t)＝［x(t)、y(t)、φ(t)］Tと走行情報u(t)＝［a(t)、ω(t)］Tとは、ノイズのない理想的な条件では次の微分方程式(7)を満たす：
【００４５】
【数６】
2006221626.tif 000008
【００４６】
連続的な時間変数tを離散的な時間変数kに置換するとき、微分方程式(7)は次の差分方程式(8)に置換される：
【００４７】
m0(k)＝m(k−1)＋f(u(k))。                                        (8)
【００４８】
ここで、ベクトルf(u(k))は、ロボット40の走行方向φ(k)と走行情報u(k)＝［a(k)、ω(k)］T、及びサンプリング時間Tにより次式(9)で表される：
【００４９】
【数７】
2006221626.tif 000009
【００５０】
ノイズのない理想的な条件では、時点kでのロボット40の予測位置m0(k)は時点kでのロボット40の位置m(k)と一致する。しかし、実際にはシステムノイズw(k)の影響により、時点kでのロボット40の位置m(k)は予測位置m0(k)（式(8)）から外れ、次式(10)で表される：
【００５１】
m(k)＝m(k−1)＋f(u(k))＋w(k)。                                  (10)
【００５２】
従って、ＥＫＦ12Aは次に、時点kでの推定方向θ(k)を利用し、ロボット40の予測位置m0(k)を補正する。ＥＫＦ12Aはその補正された結果を、時点kでのロボット40の位置m(k)として決定する。
【００５３】
ＥＫＦ12Aは、位置予測部220、方向予測部222、方向誤差生成部224、位置補正部226、及び時間遅延部228から構成される（図１５参照）。位置予測部220は、第５入力端子IN5を通して走行情報生成部10から時点kでの走行情報u(k)を受信する。一方、位置予測部220は、先の時点k−1で決定されたロボット40の位置m(k−1)を時間遅延部228から受け取る。位置予測部220は更に、時点kでの走行情報u(k)と先の時点k−1でのロボット40の位置m(k−1)とを用い、ベクトルf（u(k)）を式(9)で計算し、先の時点k−1でのロボット40の位置m（k−1）に加算する（式(8)）。こうして、その加算結果が時点kでのロボット40の予測位置m0(k)として、方向予測部222と位置補正部226とに出力される。
【００５４】
方向予測部222は、位置予測部220から入力された、時点kでのロボット40の予測位置m0(k)＝［x0(k)、y0(k)、φ0(k)］Tから、時点kでのロボット40の予測方向θ0(k)を次式(11)で計算する。予測方向θ0(k)は方向誤差生成部224に出力される：
【００５５】
【数８】
2006221626.tif 000010
【００５６】
ここで、座標（xs、ys）は直交座標系（x、y）での音源44の位置を表す。従って、式(9)で表される予測方向θ0(k)は、音源44の方向に対するロボット40の走行方向θ”の、時点kでの予測値に相当する（図３、１４参照）。
【００５７】
方向誤差生成部224は好ましくは減算器であり、時点kで、第６入力端子IN6を通して方向推定部2から推定方向θ(k)を入力し、方向予測部222から予測方向θ0(k)を入力する。方向誤差生成部224は更に、推定方向θ(k)から予測方向θ0(k)を減算し、その減算結果を方向誤差v(k)として位置補正部226に出力する：v(k)＝θ(k)−θ0(k)。ここで、方向誤差v(k)は測定ノイズに相当する。
【００５８】
位置補正部226は、位置予測部220から、時点kでのロボット40の予測位置m0(k)を入力する。一方、方向誤差生成部224から時点kでの方向誤差値（測定ノイズ）v(k)を入力する。位置補正部226は更に、方向誤差値v(k)にカルマン（Kalman）利得を乗算し、その乗算結果でロボット40の予測位置m0(k)を補正する（次式(12)参照）。補正された結果は、時点kで決定されたロボット40の位置m(k)として、第２出力端子OUT2と時間遅延部228とに出力される：
【００５９】
m(k)＝m0(k)＋K(k)・v(k)。                                      (12)
【００６０】
カルマン利得K(k)は、三つの行列P0(k)、H(k)、Re(k)を用いて次式(13)で表される。行列P0(k)は次の連立方程式(14)の解である。ここで、その連立方程式(14)は、状態モデル（走行情報u(k)とロボット40の位置m(k)との間）のヤコビアンF(k)とシステムノイズw(k)の共分散行列（自己相関関数ともいう）Q(k)とを含む。行列H(k)は測定モデル（推定方向θ(k)とロボット40の位置m(k)との間）のヤコビアンであり、次式(15)で表される。行列Re(k)は測定ノイズv(k)の共分散行列（自己相関関数）R(k)を用いて次式(16)で表される：
【００６１】
【数９】
2006221626.tif 000011
【００６２】
ここで、変数w(k)H 、v(k)Hはそれぞれ、システムノイズw(k)、測定ノイズv(k)のエルミート共役（転置ベクトルの複素共役）を表し、演算子Eは平均を表す。
時間遅延部228は、位置補正部226から出力された、時点kでのロボット40の位置m(k)をサンプリング時間Tだけ保持して遅延させる。それにより、時点kでのロボット40の位置m(k)が位置予測部220には、次の時点k＋1に出力される。
【００６３】
［方向推定部2の詳細］
方向推定部2は好ましくは、拡張カルマンフィルタ（ＥＫＦ）2Aを含む（図１６参照）。ＥＫＦ2Aは、音推定部240、実数変換部242、音予測部244、音誤差生成部246、状態ベクトル補正部248、時間遅延部250、及び状態ベクトル予測部252から構成される。実数変換部242は、ある時刻t＝kT（k：整数、T：サンプリング時間）に、８個のマイクM1〜M8から第１入力端子IN1を通して８チャンネルの音声信号zar(t＝kT)を受信する。ここで、音声信号zar(t＝kT)は複素ベクトルで表現されている。実数変換部242は複素ベクトルzar(t＝kT)を、次式(17)に従い、その実部と虚部とから成る実ベクトルz(k)に変換する。実ベクトルに変換された音声信号z(k)は音誤差生成部246に出力される：
【００６４】
【数１０】
2006221626.tif 000012
【００６５】
音推定部240は、８個のマイクM1〜M8から第１入力端子IN1を通して８チャンネルの音声信号zar(t)を受信し、受信された音声信号zar(t)から各マイクM1〜M8で捉えられた音のレベルを、以下のように推定する。一般にp個のマイクM1、M2、…、Mpから出力されるpチャンネルの音声信号zar(t)は、ノイズのない理想的な条件下では、各マイクM1、M2、…で捉えられた音のレベルから成る複素ベクトルs(t)と共に、次式(18)を満たす。ここで、行列A(θ(t))はステアリングベクトルa(θ(t))から構成され、特に時刻tでの音源44の方向に対するロボット40の方向θ(t)（図３、１４参照）に依存する：A(θ(t))＝［a(θ(t))］。ステアリングベクトルa(θ(t))は、各マイクで捉えられた音の間での位相差を示す。例えば、一直線上に等間隔dで配置されたp個のマイク（例えば、図４の(c)に示されている、p＝8個のマイクM1〜M8）が、ファーフィールドに位置する音源で発生した、波長λを中心とする狭帯域の音を捉えたとき、ステアリングベクトルa(θ(t))は次式(19)で表される（図４の(b)に示されている8個のマイクM1〜M8についても同様な表現が可能である）：
【００６６】
【数１１】
2006221626.tif 000013
【００６７】
しかし、実際には、pチャンネルの音声信号zar(t)には測定ノイズn(t)＝（n1(t)，n2(t)，…，np(t)）Tが含まれ、方向θ(t)にはシステムノイズw'(t)が含まれている。従って、音推定部240は、時刻t＝kTに音声信号zar(t＝kT)を受信するとき、状態ベクトル予測部252からロボット40の状態ベクトルの予測値x0'(k)（特に、時刻t＝kTで予測される音源44の方向に対するロボット40の方向（すなわち推定方向θ(k)の予測値）θ0(k)）を入力し、音声信号zar(t＝kT)と状態ベクトルの予測値x0'(k)との両方を利用して音のレベルを次式(20)で推定する。推定された音のレベル（以下、音の推定レベルという）s0(k)は音予測部244に出力される：
【００６８】
s0(k)＝A(θ0(k))-1・zar(t＝kT)。                                  (20)
【００６９】
音予測部244は、時点kでの音の推定レベルs0(k)と状態ベクトルの予測値x0'(k)（特に、時刻t＝kTでの推定方向の予測値θ0(k)）とを利用し、対応する音声信号の予測値（実ベクトル）z0(k)を次式(21)で求め、音誤差生成部246に出力する：
【００７０】
【数１２】
2006221626.tif 000014
【００７１】
音誤差生成部246は好ましくは減算器であり、実数変換部242で実ベクトルに変換された音声信号z(k)（式(17)）から、音予測部244で予測された実ベクトルの音声信号z0(k)を減算する。減算された結果z(k)−z0(k)は音誤差値として状態ベクトル補正部248に出力される。
【００７２】
状態ベクトル補正部248は、音誤差値z(k)−z0(k)、音の推定レベルs0(k)、及びカルマン利得K'(k)を利用し、状態ベクトル予測部252により予測されたロボット40の状態ベクトルx0'(k)を次式(22)で補正する。補正された状態ベクトルx'(k)（特に、推定方向θ(k)）が出力端子OUT10と時間遅延部250とに出力される。ここで、状態ベクトルx'(k)は、時刻t＝kTでの音源44の方向に対するロボット40の方向θ(t＝kT)とその時間変数tでの微分とから成るベクトル（次式(23)）で表される：
【００７３】
【数１３】
2006221626.tif 000015
【００７４】
カルマン利得K’(k)は三つの行列P0'(k)、H'(k)、Re'(k)を用いて次式(24)で表される。行列P0'(k)は次の連立方程式(25)の解である。ここで、その連立方程式(25)は、上記の行列F'(k)、G'(k)、及びシステムノイズw'(k)の共分散行列（自己相関関数）Q'(k)を含む。行列H'(k)は、音声信号の予測値z0(k)と状態ベクトルx'(k)との間のヤコビアンであり、次式(26)で表される。特に、p個のマイクが一列に配置されているとき、行列H'(k)の各要素s(1,b)、c(1,b)（b＝1、2、…、p−1）は次式(27)で表される。行列Re'(k)は測定ノイズn(k)の共分散行列（自己相関関数）R'(k)を用いて次式(28)で表される：
【００７５】
【数１４】
2006221626.tif 000016
【００７６】
時間遅延部250は、時点kに状態ベクトル補正部248で補正された状態ベクトルx'(k)をサンプリング時間Tだけ保持して遅延させる。それにより、時点kでの状態ベクトルx'(k)が状態ベクトル予測部252には、次の時点k＋1に出力される。
状態ベクトル予測部252は、時点kでの状態ベクトルx'(k)に上記の行列F'(k)を乗算し、その乗算結果を次の時点k＋1での状態ベクトルの予測値x0'(k)として、音推定部240、音予測部244、及び状態ベクトル補正部248に出力する：
【００７７】
【数１５】
2006221626.tif 000017
【産業上の利用可能性】
【００７８】
本発明の移動体制御装置及び制御方法は、例えばロボット等の移動体の走行制御に利用される。従って、本発明は明らかに産業上利用可能である。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施形態による移動体制御装置の構成を示すブロック図である。
【図２】本発明の実施形態による移動体制御方法の一例を示すフローチャートである。
【図３】音源とロボットとの位置関係を示す模式図である。
【図４】本発明の実施形態によるロボットとそれに搭載された多チャンネルのマイクの配置を示す図である。
【図５】図１に示されている位置補正部の構成を示すブロック図である。
【図６】図２に示されているステップ30のフローチャートである。
【図７】本発明の実施形態による移動体制御方法の他の例を示すフローチャートである。
【図８】図１に示されている音検出部の一例を示すブロック図である。
【図９】図１に示されている音検出部の他の例を示すブロック図である。
【図１０】図９に示されている音検出部の帯域通過フィルタを通過する信号を示す波形図である。
【図１１】図１に示されている音検出部のさらに他の例を示すブロック図である。
【図１２】図１１に示されている音検出部の帯域通過フィルタを通過する信号を示す波形図である。
【図１３】本発明による移動体制御方法のさらに他の例を示すフローチャートである。
【図１４】図１３に示されている移動体制御方法に従って走行するロボットの軌道を示す模式図である。
【図１５】図１に示されている位置決定部の構成を示すブロック図である。
【図１６】図１に示されている方向推定部の構成を示すブロック図である。
【符号の説明】
【００８０】
2    方向推定部
4    音検出部
6    走行方向決定部
8    走行制御部
10    走行情報生成部
12    位置決定部
14    比較部
16    位置修正部
40    ロボット
44    音源
46，48，200，202，204，206，208，210    ロボット40の正面方向
50，52    ロボット40から見た音源44の方向
54，56    ロボット40の走行方向
60    実際位置検出部
62    距離誤差計算部
64    距離計算部
66    距離補正部
68    方向補正部
120    ノイズ除去部
122    成分抽出部
124    音認識部
140    帯域通過フィルタ
142    包絡線検出部
144    レベル比較部
150，152，154    帯域通過フィルタ140を通過する信号成分
160    第１帯域通過フィルタ
162    第２帯域通過フィルタ
164    第１包絡線検出部
166    第２包絡線検出部
168    第１レベル比較部
170    第２レベル比較部
172    レベル認識部
220    位置予測部
222    方向予測部
224    方向誤差生成部
226    位置補正部
228，250    時間遅延部
240    音推定部
242    実数変換部
244    音予測部
246    誤差生成部
248    状態ベクトル補正部
252    状態ベクトル予測部
M1，M2，…，M8    マイク
P1    第１位置
P2    第２位置
P3    第３位置
PR    実際位置
PO1，PO2，…，POM  ロボット40の走行方向が更新される軌道上の位置
f1    第１帯域成分
f2    第２帯域成分
l1，l2，…，lM    各地点PO1，…，POMでのロボット40と音源44との間の距離
【図１】
2006221626.tif 000021
【図２】
2006221626.tif 000022
【図３】
2006221626.tif 000023
【図４】
2006221626.tif 000024
【図５】
2006221626.tif 000025
【図６】
2006221626.tif 000026
【図７】
2006221626.tif 000027
【図８】
2006221626.tif 000028
【図９】
2006221626.tif 000029
【図１０】
2006221626.tif 000030
【図１１】
2006221626.tif 000031
【図１２】
2006221626.tif 000032
【図１３】
2006221626.tif 000033
【図１４】
2006221626.tif 000034
【図１５】
2006221626.tif 000035
【図１６】
2006221626.tif 000036