(57)【特許請求の範囲】
【請求項１】
周囲の状況を測定するセンシング部、前記センシング部からのセンシングデータと環境地図とから位置姿勢データを推定する位置姿勢推定部、及び、前記推定した位置姿勢データと移動経路データとから求めた移動制御データに従って移動を制御するロボット移動部を有する移動ロボットと、前記移動ロボットが移動する、存在物を含む環境の幾何状況を示した前記環境地図を生成する環境地図生成部、前記環境地図の座標系に、前記移動ロボットが移動する前記移動経路データを作成する移動経路データ作成部、及び、移動ロボットに関するロボット構成情報と前記環境地図と前記移動経路データとから、制御誤差を含む前記移動ロボットの移動中に前記存在物に衝突する可能性を示す危険度パラメータを求める危険度パラメータ算出部を有するコンピュータとを設けることを特徴とする移動ロボットシステム。
【請求項２】
前記危険度パラメータ算出部は、前記移動ロボットを前記コンピュータに仮想的に定義した仮想移動ロボットにより前記移動ロボットの前記制御誤差を含む移動を模擬し、前記ロボット構成情報と前記環境地図と前記移動経路データとから求めた前記仮想移動ロボットの移動中に、前記存在物に衝突する可能性を示す、前記仮想移動ロボットの危険度パラメータを求めることを特徴とする請求項１記載の移動ロボットシステム。
【請求項３】
前記危険度パラメータ算出部は、前記仮想移動ロボットの、前記環境地図上の位置姿勢の推定値を示す位置姿勢推定値と前記移動経路データと前記ロボット構成情報とから、前記仮想移動ロボットの制御データを算出する移動制御データ算出シミュレータと、前記移動制御データ算出シミュレータにより算出された前記制御データと前記ロボット構成情報とから、前記仮想移動ロボットの位置姿勢パラメータを算出するロボット移動シミュレータと、前記ロボット移動シミュレータにより算出された前記位置姿勢パラメータと前記環境地図と前記ロボット構成情報とから、前記仮想移動ロボットの前記危険度パラメータを算出する衝突確率算出部とを備えることを特徴とする請求項２記載の移動ロボットシステム。
【請求項４】
前記危険度パラメータ算出部は、前記移動制御データ算出シミュレータと前記ロボット移動シミュレータとを繰り返し動作させ、前記ロボット移動シミュレータによる前回の動作により算出した前記位置姿勢パラメータと前記環境地図と前記ロボット構成情報とから、前記仮想移動ロボットの、仮想的に定義した仮想センサデータを算出するセンシングシミュレータと、前記仮想センサデータと前記環境地図とから前記位置姿勢推定値を出力する位置姿勢推定シミュレータとをさらに備えることを特徴とする請求項３記載の移動ロボットシステム。
【請求項５】
前記衝突確率算出部は、前記ロボット構成情報に含まれる前記移動ロボットの形状情報と前記環境地図に含まれる前記存在物の形状情報とを用いて、前記仮想移動ロボットの前記危険度パラメータを算出することを特徴とする請求項３記載の移動ロボットシステム。
【請求項６】
前記存在物の形状情報に、前記存在物の高さ方向の凹凸情報を含むことを特徴とする請求項５記載の移動ロボットシステム。
【請求項７】
前記危険度パラメータ算出部は、前記移動制御データ算出シミュレータと前記ロボット移動シミュレータとを繰り返し動作させ、前記ロボット移動シミュレータによる前回の動作により算出した前記位置姿勢パラメータを前記位置姿勢推定値とすることを特徴とする請求項３記載の移動ロボットシステム。
【請求項８】
前記コンピュータは、操作者に対話的に処理させるユーザインタフェースをさらに有し、
前記移動経路データ作成部は、前記ユーザインタフェースを用いて、操作者に前記環境地図上に対話的に前記移動ロボットが移動する移動経路を設定させることを特徴とする請求項３記載の移動ロボットシステム。
【請求項９】
前記移動経路データ作成部は、算出した前記仮想移動ロボットの危険度パラメータに応じ、前記ユーザインタフェースを用いて、前記移動経路データが示す前記環境地図上の前記仮想移動ロボットの移動経路を示す線を、色、太さおよび線種の少なくとも１つの表示属性を変えて表示することを特徴とする請求項８記載の移動ロボットシステム。
【請求項１０】
前記移動経路データ作成部は、前記ユーザインタフェースを用いて、前記操作者により前記環境地図上に２つの点が指定されると、前記存在物に所定の距離を保った、前記２つの点を結ぶ経路を、前記移動ロボットが移動する前記移動経路データとすることを特徴とする請求項８記載の移動ロボットシステム。
【請求項１１】
前記移動経路データ作成部は、前記２つの点を結ぶ経路が複数あるとき、前記複数の経路の中で前記危険度パラメータが示す危険度が小さい経路を、前記移動ロボットが移動する前記移動経路データとすることを特徴とする請求項１０記載の移動ロボットシステム。
【請求項１２】
前記コンピュータを搭載した、前記移動ロボットより小型の小型移動ロボットを設け、前記小型移動ロボットは、前記周囲の状況を計測する他のセンシング部、前記他のセンシング部からのセンシングデータと前記環境地図とから該小型移動ロボットの位置姿勢値を推定する他の位置姿勢推定部、及び、前記推定した位置姿勢推定値と前記移動経路データとから求めた移動制御データに従って、該小型移動ロボットの移動を制御する他のロボット移動部を有することを特徴とする請求項３記載の移動ロボットシステム。
【請求項１３】
前記小型移動ロボットを、前記移動ロボットの移動に先行して移動させることを特徴とする請求項１２記載の移動ロボットシステム。
【請求項１４】
周囲の状況を測定するセンシング部、前記センシング部からのセンシングデータと環境地図とから位置姿勢データを推定する位置姿勢推定部、及び、前記推定した位置姿勢データと移動経路データとから求めた移動制御データに従って移動を制御するロボット移動部を有する移動ロボットと、前記移動ロボットが移動する、存在物を含む環境の幾何状況を示した前記環境地図を生成する環境地図生成部、前記環境地図の座標系に、前記移動ロボットが移動する前記移動経路データを作成する移動経路データ作成部、及び、移動ロボットに関するロボット構成情報と前記環境地図と前記移動経路データとから、制御誤差を含む前記移動ロボットの移動中に前記存在物に衝突する可能性を示す危険度パラメータを求める危険度パラメータ算出部と、前記周囲の状況を計測する他のセンシング部、前記他のセンシング部からのセンシングデータと前記環境地図とから自らの位置姿勢値を推定する他の位置姿勢推定部、及び、前記推定した位置姿勢推定値と前記移動経路データとから求めた移動制御データに従って、前記移動ロボットの移動に先行した移動を制御する他のロボット移動部とを有する、前記移動ロボットより小型の小型移動ロボットとを設けることを特徴とする移動ロボットシステム。
【請求項１５】
前記危険度パラメータ算出部は、前記ロボット構成情報と前記環境地図と前記移動経路データとから求めた前記小型移動ロボットの移動中に、前記移動ロボットの前記制御誤差を含む移動により前記存在物に衝突する可能性を示す危険度パラメータを求めることを特徴とする請求項１４記載の移動ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、目的地まで人の操作なしに移動する自律移動型の移動ロボットシステムに関する。
【背景技術】
【０００２】
移動ロボットがすすむべき移動軌跡を定義する移動経路データは自動的に作成することができる。例えば、特開2004−98233「自律移動ロボット」に記載された方法では、移動開始地点と移動終了地点とを指定する指定手段と、それを結ぶ複数の移動ルートを検索する手段と、複数の移動ルートのそれぞれに必要な移動コストや移動時間に基づいて最適なルートを決定する手段により、移動コストや移動時間に関して最適な経路が作成される。
【０００３】
【特許文献１】特開2004−98233号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
背景技術の項で述べたように、設定された移動経路データに基づく移動制御により、移動ロボットは目的地までの自律移動の基本的な動作を行うことができる。
【０００５】
しかし、上で述べた方法は理想的な条件、すなわちセンサデータに誤差がなく、またロボットが指示どおり制御・移動可能なことを前提としており、現実的におこりうる誤差の発生や指示どおりロボットが動かないことによる影響や危険性を考慮していなかった。
【０００６】
本発明の目的は、ロボットが移動時に利用する移動経路データ等のパラメータの調整を事前に行うことで、制御誤差等によって生じる移動時の存在物衝突等の危険性を削減することにある。
【課題を解決するための手段】
【０００７】
本発明の移動ロボットシステムは、周囲の状況を測定するセンシング部、センシング部からのセンシングデータと環境地図とから位置姿勢データを推定する位置姿勢推定部、及び、推定した位置姿勢データと移動経路データとから求めた移動制御データに従って移動を制御するロボット移動部を有する移動ロボットと、移動ロボットが移動する、存在物を含む環境の幾何状況を示した環境地図を生成する環境地図生成部、環境地図の座標系に、移動ロボットが移動する移動経路データを作成する移動経路データ作成部、及び、移動ロボットに関するロボット構成情報と環境地図と移動経路データとから、制御誤差を含む移動ロボットの移動中に存在物に衝突する可能性を示す危険度パラメータを求める危険度パラメータ算出部を有するコンピュータとを設ける。
【０００８】
本発明の他の望ましい態様は、危険度パラメータ算出部は、移動ロボットをコンピュータに仮想的に定義した仮想移動ロボットにより移動ロボットの制御誤差を含む移動を模擬し、ロボット構成情報と環境地図と移動経路データとから求めた仮想移動ロボットの移動中に、存在物に衝突する可能性を示す、仮想移動ロボットの危険度パラメータを求める。
【０００９】
本発明のさらに他の望ましい態様は、危険度パラメータ算出部は、仮想移動ロボットの、環境地図上の位置姿勢の推定値を示す位置姿勢推定値と移動経路データとロボット構成情報とから、仮想移動ロボットの制御データを算出する移動制御データ算出シミュレータと、移動制御データ算出シミュレータにより算出された制御データとロボット構成情報とから、仮想移動ロボットの位置姿勢パラメータを算出するロボット移動シミュレータと、ロボット移動シミュレータにより算出された位置姿勢パラメータと環境地図とロボット構成情報とから、仮想移動ロボットの危険度パラメータを算出する衝突確率算出部とを備える。
【００１０】
本発明のさらに他の望ましい態様は、前述のコンピュータを搭載した、移動ロボットより小型の小型移動ロボットを設け、小型移動ロボットは、周囲の状況を計測する他のセンシング部、他のセンシング部からのセンシングデータと環境地図とから小型移動ロボットの位置姿勢値を推定する他の位置姿勢推定部、及び、推定した位置姿勢推定値と移動経路データとから求めた移動制御データに従って、小型移動ロボットの移動を制御する他のロボット移動部を有する。
【００１１】
本発明の他の態様は、周囲の状況を測定するセンシング部、センシング部からのセンシングデータと環境地図とから位置姿勢データを推定する位置姿勢推定部、及び、推定した位置姿勢データと移動経路データとから求めた移動制御データに従って移動を制御するロボット移動部を有する移動ロボットと、移動ロボットが移動する、存在物を含む環境の幾何状況を示した環境地図を生成する環境地図生成部、環境地図の座標系に、移動ロボットが移動する移動経路データを作成する移動経路データ作成部、及び、移動ロボットに関するロボット構成情報と環境地図と移動経路データとから、制御誤差を含む移動ロボットの移動中に存在物に衝突する可能性を示す危険度パラメータを求める危険度パラメータ算出部と、周囲の状況を計測する他のセンシング部、他のセンシング部からのセンシングデータと環境地図とから自らの位置姿勢値を推定する他の位置姿勢推定部、及び、推定した位置姿勢推定値と移動経路データとから求めた移動制御データに従って、移動ロボットの移動に先行した移動を制御する他のロボット移動部とを有する、移動ロボットより小型の小型移動ロボットとを設ける。
【発明の効果】
【００１２】
本発明によれば、ロボット移動時の存在物衝突の危険性を削減することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態について説明する。本実施形態は、移動ロボットに搭載された距離センサなどで周囲の状況を測定したセンシングデータと環境の幾何状況を示した環境地図とを用いて自己の位置姿勢を推定し、その結果に基づいて自律移動制御を行う移動ロボットに関する。特に、その移動ロボットが存在物と衝突する可能性を示す危険度パラメータを、移動ロボットを仮想的に定義した仮想移動ロボットにより移動ロボットの制御誤差を含む移動を模擬することにより求める移動ロボットシステムである。危険度パラメータの値に応じて移動ロボットの移動経路データを決定又は変更する必要があるので、危険度パラメータは、移動ロボットが移動経路データを使用して移動するより前に(事前に、直前でも良い)求められる必要がある。
【００１４】
最初に、距離センサと環境地図を用いて移動ロボットの位置姿勢の推定について説明する。距離センサとは、距離センサ周辺の複数の方向について、存在物までの距離を計測できるものである。距離センサは、図２に計測範囲を示すように、ある高さの水平面上を距離センサ（２１０）の正面に対して-90°から+90°の方向に、１°毎の合計181通りの異なる方向について、存在物（２３０）までの距離データが瞬時に計測できる。また、この距離センサ（２１０）は、移動ロボット（２２０）に搭載されている。
【００１５】
図３に、この距離センサ（２１０）を用いて測定されたセンシングデータの例を示す。各センシングデータは、角度φと距離dの組み合わせとして(φ0,d0), (φ1,d1), ..., (φi,di), ...としてあらわされる。ここで各変数の数字の添え字iはデータ番号で、φiはi番目の測定方向を示し、diはφi方向における存在物までの距離を示す。上に説明したとおり、正面に対して-90°から+90°の方向に、１°毎の合計181通りの異なる方向について計測できるので、φ0=-90°,φ1=-89°,...,φ180=+90°となる。
【００１６】
２次元の環境地図とは、距離センサ２１０による測定高さ断面での存在物の存在を、図４に示すようなディジタル画像としてあらわしたものである。ここでは図４に示すように、存在物が存在しない場所（４１０）を白色、存在物が存在する場所（４２０）を黒色で表現している。
【００１７】
移動ロボット（２２０）は、平らな地面上を移動する。その移動によって変化する位置姿勢に関する自由度は、位置について(x,y)の２パラメータ、姿勢については移動ロボットが向く方向角度に関するθの１パラメータの、合計３パラメータである。なお、これらのパラメータをあらわす座標系は、図４に示すような環境地図５１０をあらわす座標系と一致している。
【００１８】
移動ロボットの位置姿勢を推定することとは、任意の位置姿勢にある移動ロボットのセンシングデータから、上記(x,y,θ)の３パラメータを求めることを意味する。移動ロボットの位置姿勢を推定するマッチング処理について説明する。
【００１９】
マッチング処理とは、あるフレーム（前述した、正面に対して-90°から+90°の方向に、１°毎の合計181通りの異なる方向について計測したデータ）において計測されたセンシングデータの位置および姿勢（方向）を変えながら、センシングデータを環境地図に重ね合わせ、センシングデータと環境地図とが最もマッチする位置および姿勢を探し出し、これをもって移動ロボットの位置姿勢データの推定値とする。その原理は、移動ロボットがその位置および姿勢にあるときに、計測されたデータと同じデータが最も高い確率で得られるであろうという考え方に基づいている。
【００２０】
図５に、この考え方に基づくマッチング処理の概要を示す。環境地図（５１０）と、センシングデータ（３００）とが与えられたときに、この方法によって最もマッチすると判断された状況が図５(c)に示した状況であり、このときの平行移動成分(x,y)と回転成分θが、移動ロボットの位置姿勢推定値となる。
【００２１】
次に、移動ロボットがすすむべき移動軌跡を定義する移動経路データについて説明する。移動経路データとはロボットが通るべき軌跡を直線や曲線として地図上にあらわした移動経路をもとに、これを数値的にデータ化したもので、図６にその曲線の一例を示す。スタートポイント（６０３）が、ロボットが現在いる位置を示し、ゴールポイント（６０４）が目的地となる位置を示す。このスタートポイントとゴールポイントを結ぶ曲線（６０２）が移動経路となる。この移動経路の具体的なデータ記述方法は、その経路（直線や曲線上）に点を高密度でプロットし、その点の地図上での座標値を (x_0, y_0), (x_1, y_1), ..., (x_e, y_e) の形式で順次あらわす。ここで(x_0, y_0)は上で述べたスタートポイント、(x_e, y_e)はゴールポイントを示す。
【００２２】
移動ロボット（２２０）は、上で述べた位置姿勢推定方法によって逐次自分の位置姿勢データを求め、そこで求められた値と自分がすすむべき経路となる移動経路データを比較することで移動方向や移動速度などを決定し、これに基づき移動ロボット（２２０）の移動機構部を制御することで目的の移動が実現される。
図７は、移動ロボットシステムの構成図である。移動ロボットシステムは、車輪などによって平らな床を持つ実環境を任意の方向に移動可能な移動ロボット（２２０）と、環境地図や移動経路データを作成するＰＣ等の計算システム（６０４０）から構成される。
【００２３】
移動ロボット（２２０）は、物品の運搬などの作業を行う、上で述べた自律移動が可能なものである。移動ロボットには、上で述べた距離センサなどのセンサ（２１０）が搭載され、周囲の環境の状態がセンシングできる。またロボット内部にＰＣあるいはそれと同等の処理が行える計算機能が内部に組み込まれている。移動ロボットは、センシング部（６１２０）と、位置姿勢推定部（６１２４）、移動制御データ算出部（６１２８）、ロボット移動部（６１３２）を備える。
【００２４】
ここでセンシング部（６１２０）は、上記距離センサなどのセンサ（２１０）によって構成され、位置姿勢推定部（６１２４）ならびに移動制御データ算出部（２２０）は、上記移動ロボット（２２０）に組み込まれた計算機能によって実現され、ロボット移動部は、上記ロボット（２２０）に組み込まれたモータ等の駆動機構とその制御装置によって構成される。移動ロボット（２２０）は、このセンシング部（６１２０）で取得されたセンシングデータと、別途無線ＬＡＮなどを用いて計算システム（６０４０）から送られた環境地図とを用いて、位置姿勢推定部（６１２４）によって、現在の位置姿勢データを逐次求める。その求め方の一例は、前述のとおりである。
【００２５】
移動ロボット（２２０）は、求めた位置姿勢データと、別途無線ＬＡＮなどを用いて計算システム（６０４０）から送られた移動経路データを用いて、移動すべき方向などを示す移動制御データを、移動制御データ算出部（６１２８）によって求める。その求め方の一例を図８に示す。ある時刻において、あらかじめ設定された移動経路（６０２）上で本来移動ロボットがいるべき位置（６０８）に対し、その位置（６２３）に実際にいようとも、あるいはさまざまな要因でそれとは異なる位置（６２４）（あるいは（６２５））にいようとも、本来移動ロボットがいるべき位置（６０８）から所定距離先の移動経路上の目標地点（６０６）に向かう制御を行う。
【００２６】
移動ロボット（２２０）は、このようにして求められた移動制御データに従って、ロボット移動部（６１３２）を動作させることで、移動経路に沿った実際の移動が実現される。
【００２７】
なお、移動経路データは、計算システム（６０４０）から所定の長さの移動経路のデータとして送られても良いし、所定の長さの移動経路を分割した部分経路のデータとして逐次送られても良い。
【００２８】
次に図７に示す計算システム（６０４０）で行われる処理を説明する。計算システム（６０４０）は、移動ロボットの外部において、移動ロボットが動作する以前の準備作業を主に行うもので、大きく、環境地図生成部（６０００）、移動経路データ作成部（６００４）、ならびに危険度パラメータ算出部（６００８）などを備える。
【００２９】
環境地図生成部（６０００）は、移動ロボットを動作させる環境の環境地図を作成する。これを移動ロボット（２２０）に搭載された距離センサなどのセンサ（２１０）を用いて計測されたセンシングデータを用いて自動処理あるいは半自動処理で作成することもできるが、ここでは、これを環境に存在する存在物の形状の実測によって、手作業での作成を説明する。
【００３０】
移動経路データ作成部（６００４）は、移動経路データを自動的あるいは対話処理により作成する。その実施方法の一例を、図９を用いて説明する。最終的に作成したいのは図９(a)に示したとおり、環境地図（５１０）上で移動ロボットのスタート位置（６０３）ならびにゴール位置（６０４）を結ぶ曲線であり、ここでこの曲線は移動ロボットがその上を移動可能なように決定されることが条件となる。
【００３１】
これを作成する手順の１例が図９(b)から(d)である。画面上に図９(b)のように対象となる環境地図が表示されており、オペレータはこの環境地図上でスタート位置（６０３）と第１の中途目標位置（２３）をマウスポインタ（２０）の指示などで指定する。なおこれらの位置を示す点を「制御点」と呼ぶことにする。移動経路データ作成部（６００４）は、この２つの制御点を結び、なおかつ存在物にある距離を保ち衝突しない経路を算出する。具体的な手法としては例えば、「文献：知能ロボット入門, コロナ社, 2001年, ISBN 4-339-04553-5, pp11-82」に記載された「基礎的な計画手法」を用いて算出する。
【００３２】
このようにして一旦スタート位置（６０３）と第１の中途目標位置（２３）を結ぶ部分経路（１２０３）が作成されると、同様の操作と処理を繰り返し（図９(b), (c)）、第２の中途目標位置（２４）までの部分経路（１２０４）ならびにゴール位置（６０４）までの部分経路（１２０５）が順次作成され、これらをつなぎあわせることで、目的となる経路（図９(a)（６０２））が作成される。
【００３３】
このように分割して経路を作成することで、意図しないルートを辿る経路が作成されることを避けたり、経路が長くなったときに計算時間が膨大になってしまう問題を避けたり、あるいは部分ごとに作成した経路を別の経路を作成するときに再利用できるなどの効果がある。さらに、スタート位置（６０３）からゴール位置（６０４）までの経路が長い（計算時間が長い）ときに、部分ごとに作成した経路(部分経路)を移動経路データとして移動ロボット(２２０)に逐次送ることにより、移動ロボット(２２０)の移動を円滑に制御できる。
【００３４】
なお上記過程において２つの制御点を結ぶように算出される経路は一意とは限らず、図１０に示すように第１の制御点（６０３）と第２の制御点（２３）を結ぶ第１の経路（１２０３）と第２の経路（１２５５）のような２つ以上の経路が算出されることもある。この場合は、例えば最短距離となる方を選ぶなどの自動的な選択方法や、オペレータに選ばせる手作業による選択方法などによってどれを有効にするかを決定する。
【００３５】
また図１１のユーザインタフェースに示すとおり、移動経路が作成される際に設定されたスタート位置やゴール位置、および中途目標位置等の制御点、ならびにそれらを結ぶ経路には、それぞれs1、g1、c1-1、c1-2、p1-1、p1-2、p1-3等の識別名称がつけられ、それぞれ個別に管理してもよい。ここで、個別に管理するとは、制御点をマウスのドラッグにより画面上で移動させ、これにともない制御点を結ぶ経路が自動的に更新されたり、あるいは上述のようにある２つの制御点を結ぶ経路として複数の曲線から選択することをいう。これらは、上述の２点を結ぶ部分経路を作成する方法によって実現される。
【００３６】
以上が、図７の移動経路データ作成部の１例である。もしセンサのセンシングや移動ロボットの制御に誤差等がなく理想的に行われると、上述の移動ロボット（２２０）と、計算システム（６０４０）に備える、ここまでに述べた各機能によって、移動ロボットの自律移動制御は実現される。しかしながら、実際にはセンサのセンシング誤差や移動ロボットの移動制御誤差、あるいは移動ロボットの形状などの影響で、環境内の存在物に衝突する可能性がある。この可能性を削減するため、図７における計算システム（６０４０）に危険度パラメータ算出部（６００８）を設ける。この危険動パラメータ算出部（６００８）について詳しく説明する。
【００３７】
危険度パラメータ算出部（６００８）は、図７に示すとおりセンシングシミュレータ（１２０）、位置姿勢推定シミュレータ（１２４）、移動制御データ算出シミュレータ（１２８）、ロボット移動シミュレータ（１３２）、衝突確率算出部（１４０）から構成される。
【００３８】
図１に、危険度パラメータ算出部（６００８）の各部の相互の関係を示す。センシングシミュレータ（１２０）は、実際の移動ロボット（２２０）に搭載されたセンサ（２１０）のセンシング処理を模擬するもので、図１に示すように、仮想ロボット（仮想移動ロボット）の位置姿勢パラメータ（１３４）、環境地図（５１０）、ロボット構成情報（１３８）を入力として、仮想センサデータ（１２２）を出力する。ここで仮想ロボットの位置姿勢パラメータ（１３４）とは、実際の移動ロボットを動かすことなく、図７における計算システム（６０４０）内で仮想的にロボットの動きを模擬する際のロボットの位置姿勢を逐次あらわしたもので、後で述べるロボット移動シミュレータ（１３２）によって算出される。同じ位置姿勢を表す用語であるが、説明の混乱を避けるために、移動ロボットに関して位置姿勢データ、仮想移動ロボットに関して位置姿勢パラメータと呼ぶ。
【００３９】
またロボット構成情報（１３８）とは、移動ロボットの形状や寸法、駆動系の構成や特性などの駆動機器の仕様、センサの特性や取り付け位置、ロボットの移動制御の制御アルゴリズムや誤差モデル、センサのセンシングパラメータや誤差モデルなど、ロボットの構成やその構成要素の特性に関する情報をあらわしたもので、これらは移動ロボットの設計仕様や各構成要素のスペックシート、あるいは誤差等に関し実験や実測で得られた値に基づき事前に定義される。
【００４０】
センシングシミュレータ（１２０）の具体的な処理内容の一例を図１２と図１３に示す。上に述べた移動ロボットの動きを模擬したもの、すなわち仮想ロボットが現在いる位置と姿勢が図１２(a)に示した○印（８０３）にあるとする。このときにセンシングシミュレータ（１２０）は、ロボット構成情報（１３８）にて定義されるセンサの仕様に従い、与えられた環境地図（５１０）においてどのようなセンサ情報が得られるかを計算する。図１２(b)に一定角度ごとに存在物までの距離を、環境地図をもとに算出する様子を示している。このようにして算出されたセンサ情報の例を図１２(c)（８０４）に示す。
【００４１】
これに対し、図１３に示すように仮想的に誤差を加える。図１２の処理で求められたあるセンサデータ（９０２）について方向に関する誤差Δθと、距離に関する誤差Δdを加え、誤差を含むセンサデータ（９０３）を算出する。このときに用いられるΔθとΔdの値は、上記図１におけるロボット構成情報（１３８）に示されたセンサの誤差モデル情報、より詳しくは誤差の確率分布モデルに基づき、乱数を用いてランダムに決定される。
【００４２】
次に図７における位置姿勢シミュレータ（１２４）について説明する。これは図７の移動ロボット（２２０）に搭載されている位置姿勢推定部（６１２４）と同様の処理を行うもので、実際の移動ロボット（２２０）ではその入力データの獲得に実際のセンシング部（６１２０）を用いるのにたいして、ここではセンシングシミュレータ（１２０）によって算出された仮想的なセンサデータを入力する。より詳しくは、図１に示すように仮想センサデータ（１２２）と環境地図（５１０）を入力として位置姿勢推定を行い、位置姿勢推定値（１２６）を出力する。これによって、図７における計算システム（６０４０）内で仮想的にロボットの動きを模擬する際のロボットの位置姿勢を仮想的なセンサによって求めることとなる。
【００４３】
次に図７における移動制御データ算出シミュレータ（１２８）について説明する。移動制御データ算出シミュレータ（１２８）は、図７の移動ロボット（２２０）に搭載されている移動制御データ算出部（６１２８）と同様の処理を計算システム（６０４０）内で行うもので、実際の移動ロボット（２２０）ではその出力データをモータ制御等の実際のロボット移動部に対して出力するのにたいして、ここでは後述するロボット移動シミュレータ（１３２）に出力する。より詳しくは、図１に示すように上述の位置姿勢推定シミュレータ（１２４）で算出された位置姿勢推定値（１２６）と別途準備された移動経路データ（１３６）ならびに上述したロボット構成情報（１３８）を入力として、ロボットが移動すべき方向等を算出し、制御データ（１３０）として出力する。その処理内容は移動制御データ算出部（６１２８）で説明したとおりである。
【００４４】
次に図７におけるロボット移動シミュレータ（１３２）について説明する。ロボット移動シミュレータ（１３２）は、図７の移動ロボット（２２０）に搭載されたロボット移動部（６１３２）による物理的な動作を計算システム（６０４０）内で模擬して行うもので、より詳しくは、図１に示すように上述の移動制御データ算出シミュレータ（１２８）で算出された制御データ（１３０）ならびにロボット構成情報（１３８）を入力として、ロボットがその制御によって到達する場所や姿勢に関するパラメータを、仮想ロボットの現在位置姿勢パラメータ（１３４）として出力する。
【００４５】
ここで「現在」という用語が移動後の時刻を指すように、現在時刻に関する概念が更新されて使われる。現在時刻に関する概念の更新とは、図１から分かるように繰返しの処理によるものである。仮想ロボットの現在位置姿勢パラメータ（１３４）の具体的な算出方法としては、例えばモータにどういう制御信号を送るとロボットがどのような移動を行うかについて、そのお互いの関係を、確率的な要素を含んであらかじめ実験等によって調べ、これをロボット構成情報（１３８）として記録しておく。ここで「確率的な要素を含んで」というのは、例えばある制御信号の入力に対して、その出力となる移動後の位置が一意に決められるのではなく、ある範囲を示す確率分布に代表されるような形式で求められることを示している。
【００４６】
より具体的に説明すると、例えばあるＡという制御信号を入力したときに、移動後の位置(x, y)が、(10.0, 10.0)と算出されることも、(12.0, 11.0）と算出されることもあり、これは実際のロボットシステムを用いた実験等で求められた誤差の確率モデルに従いランダムに決められることを意味している。この方法によれば、ある値を１回のみ入力させて出力値を求めるのではなく、同じ値を1000回、10,000回・・・と繰り返し入力させて出力値を求めることで、どういう位置に移動しやすいか、あるいは起こりうる確率は低いものの、どういう位置に移動してしまう可能性があるのか、といったことを把握することができる。このように誤差等を乱数を用いてランダムに発生させ、さらに試行を非常に多く繰り返し行い、システムの挙動を確率的に求める方法は、シミュレーション等の分野でモンテカルロ法としてよく知られており、本手法もこのモンテカルロ法に基づき実装することを一例とする。
【００４７】
次に図７における衝突確率算出部（１４０）について説明する。衝突確率算出部（１４０）は、上述のロボット移動シミュレータ（１３２）によって求められる仮想的なロボット移動について、環境地図上にあらわされている存在物に衝突する可能性を、危険度パラメータ（１４２）として数値化して出力するものである。より詳しくは、図１に示すように環境地図（５１０）と仮想ロボットの現在位置姿勢パラメータ（１３４）ならびにロボット構成情報（１３８）を用いて、存在物に衝突する可能性を数値的に算出する。ここで環境地図（５１０）は存在物の位置情報ならびに形状情報として利用し、ロボット構成情報（１３８）はロボットの形状情報等として、ある位置に移動ロボットが移動したときに存在物に衝突するかどうかを判断するために利用する。
【００４８】
図１４はその判断を行う際に用いるロボット形状情報の一例である。ある位置にある移動ロボット（１１３０）がある移動制御（６６５）によって本来の位置（１１４５）に移動すべきところ、ある制御誤差の発生によって他の場所（１１４０）に移動してしまう例である。制御誤差は、制御特性になどに依存するが、前述のセンシング誤差も結果として制御誤差として現れると考えても良い。このようなときに、この場所（１１４０）のロボットの形状情報を環境地図上に重ね合わせ、存在物とこれが重なれば衝突がおきる、と判断することができる。危険度パラメータ（１４２）とは、ある移動経路データに基づきある移動制御が行われたときに、環境内の静的な存在物に衝突する可能性があるかどうかを数値的にあらわしたもので、誤差の有無にかかわらず必ず存在物に衝突する場合はこの数値が100.0になり、また考えうる範囲の誤差がどのように発生しても存在物に衝突する可能性が全くない場合は0.0になるようにこのパラメータを定義する。
【００４９】
この危険度パラメータ（１４２）の具体的な算出方法としては、上述の「センシングシミュレータ（１２０）」や「移動制御データ算出シミュレータ（１２８）」で説明したとおり、センシングや移動制御の模擬（シミュレーション）を多数回繰り返し試行し、その際に誤差をランダムに発生させることでさまざまな移動結果を算出し、その際に存在物に衝突するか衝突しないかを判断し、衝突した場合の数を試行回数全体の割合としあらわしたものに変換することで、この危険度パラメータを存在物に衝突する確率として算出する。このように、移動ロボット（２２０）が存在物に衝突する可能性を、計算システム（６０４０）に定義した仮想ロボットが存在物に衝突する可能性を示す危険度パラメータとして得る。
【００５０】
なお、以上述べた図１に示す一連の方法では、センサパラメータをセンシングシミュレータ（１２０）により求めることを前提としたが、この処理を省略し位置姿勢推定値（１２６）を仮想ロボットの現在位置姿勢パラメータ（１３４）と同じもの、あるいは仮想ロボットの現在位置姿勢パラメータ（１３４）にロボット構成情報（１３８）で定義される誤差を付加したものとして扱うこともできる。この場合はセンシングの誤差を最終的に求める危険度パラメータ（１４２）に詳細に反映することはできなくなるが、ある移動経路データ（１３６）について、ロボット移動を模擬して存在物に衝突するおおよの可能性を知るという目的は十分に達成される。
【００５１】
図１５は、計算システム（６０４０）の機能を実現するハードウェア構成の１例を示すハードウェア構成図である。ＣＰＵ（２）、メモリ（３）、ハードディスク（４）、ユーザインタフェース（ＵＩ）部（６）、及びネットワークインタフェース（ＩＦ）（７）を有するコンピュータ（５）によって構成される。
ＣＰＵ（２）は、ハードディスク（４）あるいはメモリ（３）に記憶されたプログラムに基づいて動作し、図１で示した各処理を行う。ＵＩ部（６）はキーボードやディスプレイ、マウスなどを示し、ユーザとの対話処理を行う。ネットワークＩＦ（７）は無線あるいは有線の通信回線とのインタフェースを行い、図７において移動ロボット（２２０）とのデータの受け渡しを行う。
【００５２】
これらのハードウェアと図１の各処理との対応を説明する。センシングシミュレータ（１２０）、位置姿勢シミュレータ（１２４）、移動制御データ算出シミュレータ（１２８）、ロボット移動シミュレータ（１３２）ならびに衝突確率算出部（１４０）の処理を、ＣＰＵ（２）で動作するプログラムによって実行する。ここで使われる仮想センサデータ（１２２）、位置姿勢推定値（１２６）、制御データ（１３０）、移動経路データ（１３６）、仮想ロボットの現在位置姿勢パラメータ（１３４）、ロボット構成情報（１３８）ならびに危険度パラメータ（１４２）を記憶するのがメモリ（３）ならびにハードディスク（４）である。また上述あるいは後で述べるオペレータとの対話処理をマウスやディスプレイを用いて実施可能とするのがＵＩ部（６）である。
【００５３】
このようにして求められる危険度パラメータの利用例について説明する。危険度パラメータ利用の第１の例は、図１０に示すように経路候補が複数存在するときの経路候補の選択に用いることである。図に示すとおり制御点（６０３）から制御点（２３）に向かう経路として第１の候補（１２０３）と第２の候補（１２５５）が存在している。このときに危険度パラメータを算出し、図１６に示すように、第２の経路候補（１２５５）上のある位置（１５４０）において、この危険度パラメータが示す危険度が高いとする。このときに経路設定のために表示している環境地図上のこの位置（１５４０）周辺で危険度が高いことを示しオペレータに注意を喚起することで、より危険度の少ない第１の経路候補（１２０３）を対話的に選択できる。
【００５４】
このようなユーザインタフェースは、経路上の各位置での危険度パラメータの値によって、経路を示す曲線の色、太さ、線種などの属性を変えて表示することで実現される。その画面の一例を図１７に示す。図で太線で示した区間（１９３０）（１９３４）（１９３８）が危険度が高いことを示している。このような表示画面を見て、オペレータはこの危険度を低くするように図の矢印（１９７８）の方向に経路を修正する、などの対話処理が可能となる。あるいは図１８に示すようにあらかじめ候補となる移動経路を（１９５６）（１９５２）（１９４８）と複数同時に表示しておき、それぞれの色を危険度に応じて変更してあらわすことで、これらの中の経路を選択するオペレータの対話処理による操作をよりわかりやすく行うユーザインタフェースでもよい。
【００５５】
ここで、この選択を、より危険度の低いものに自動的に決定されるようにしないのは、必ずしも危険度だけで経路が決定されるわけではなく、経路の長さをなるべく短くしたいという要求や、なるべく端を通りたいといった場所の要求など、運用条件等に依存する決定要素も実際には多く存在し、その場合はオペレータによる対話操作が不可欠になるからである。
【００５６】
危険度パラメータ利用の第２の例は、図１９に示すように高さ方向に凹凸の異なる形状を持つ存在物への対処方法である。図１９(a)に示すように環境地図だけからは、ある経路（１２０３）に沿って移動しても存在物に衝突する可能性がないと判断された場合でも、そこに存在する存在物（図１９(a)の例では存在物（２３０））の形状によっては実際に衝突する可能性が高い場合がある。
【００５７】
これを図１９(b)、図１９(c)によって説明する。前述のとおり、移動ロボット（２２０）に搭載されているセンサ（２１０）はある高さの断面での存在物の形状をセンシングするため、環境地図にあらわされている存在物の形状はあくまでその高さでの断面形状である。よって、図１９(b)のように存在物（２３０）の断面形状に高さ方向で見て凹凸がないとき、環境地図にあらわされている存在物に重ならなければ基本的に移動ロボットが衝突することはない。しかし図１９(c)のように存在物（２３０）の断面形状に高さ方向で見て凹凸がある部分（２３３）が存在する場合は、この部分（２３３）にロボットが衝突する可能性がある。このような状況に対処するために、あらかじめ高さ方向の凹凸情報を環境地図に埋め込んでおき、図１に示した衝突確率算出部（１４０）では各高さでの衝突も含めて詳細に衝突する可能性を判断する。
【００５８】
このような付加的な存在物情報の埋め込みは、あらかじめ作成した環境地図にマウス等を用いた図形描画機能により、オペレータが対話的に追記できるようにする。また、凹凸情報の具体的な埋め込み形態としては、図１９(d)の形状（２３０）と形状（２３３）で示すように、高さによって異なる属性で地図を表現する。図１９(e)に示すように、これらのすべての属性の地図上の存在物との干渉を確認することで、衝突の可能性をより詳細に算出することができる。
【００５９】
危険度パラメータ利用の第３の例は、図２０、図２１に示すように、移動ロボットの移動速度設定への対応である。いままでの説明では移動ロボットの移動経路のみを設定することを前提としていたが、実際の運用では、これに移動速度も合わせて設定する必要がある場合がある。この場合は、図２０(a)に示すように設定した移動経路に沿ってマウスポイント（２０）のドラッグで移動可能な制御点（１７３０）および（１７３３）を用いて経路上の区間を任意に設定し、この区間内での速度を別のテキストボックス（１７５３）などを用いてオペレータに数値入力させる。
【００６０】
このように設定した速度情報を用いて、図１に示したロボット移動シミュレータ（１３２）によってロボットの移動をシミュレートすると、その移動速度によって決められる慣性力などの影響で、移動する軌跡が変化する可能性がある。この様子を図２１に示す。図２１(a)に、ある区間を時速3.2kmで移動した場合、図２１(b)に時速9.2kmで移動した場合を示している。ここでテキストボックス（１７５３）に表示される時速を変更すると、ある位置での危険度パラメータが変更される。このときに移動経路設定や移動速度設定のために表示している環境地図上のこの位置（１５４０）周辺で危険度が高いことを示し、オペレータに注意を喚起することで、より危険度の少ない移動速度を対話的に選択可能なユーザインタフェースを実現できる。ここでの注意喚起は、上述のとおり経路上の各位置での危険度パラメータの値によって、経路を示す曲線の色などの属性を変えて表示することで実現する。
【００６１】
次に、本発明の他の実施形態を、図２２に示す移動ロボットシステムの構成図を用いて説明する。図２２は、図７に示した構成において、計算システム（６０４０）で行う危険度パラメータ算出のための処理を、実際の移動ロボットを用いて実施することがその基本的な考え方となる。具体的にはそのための移動ロボット（２２３）を準備し、これに図７に示す移動ロボット（２２０）に搭載されるものと同等のセンサ（２１３）を搭載する。なおこの移動ロボット（２２３）は図７に示す移動ロボット（２２０）に比べて小さくなるように構成する。
【００６２】
この移動ロボット（２２３）には計算部が搭載されており、図７で説明した危険度パラメータ算出の処理を、実際にセンシングを行いまたロボットの移動制御を行いながら実施する。ただし、ここで図７に示す移動ロボット（２２０）が存在物に衝突する場合でも、この移動ロボット（２２３）は大きさが小型のため実際には存在物に衝突する可能性が少なくなる。よって、移動ロボット（２２３）は衝突せず、移動ロボット（２２０）を用いたときは衝突する可能性がある、との情報として設定された経路の危険度パラメータを求めながら、移動ロボット（２２０）の移動に先行して移動し、先立つ経路の危険度の確認を行うことができる。
【００６３】
以上の実施形態によれば、移動ロボットが移動する前に、環境地図と移動経路データ、ならびにロボットの形状情報やセンサのセンシング誤差モデル、移動制御誤差モデルなどのロボット関連事前情報から、移動時に得られるであろう誤差を含むセンシングデータをシミュレートし、シミュレートした誤差を含むセンシングデータから、移動時の位置姿勢認識処理やロボットの移動制御を行ったときに、移動ロボットがどのような動きをするかをシミュレートすることで、存在物に衝突する可能性を確率的に数値化して求めることができる。これにより、より存在物に衝突する可能性の少ない移動経路に変更することや、移動時に危険性の高い区間では移動速度を低くするなどのロボット移動制御パラメータを変更することなどが可能となり、これにより結果的に、ロボット移動時の存在物衝突の危険性を削減することができる。
【図面の簡単な説明】
【００６４】
【図１】危険度パラメータ算出部の各部の相互の関係を示す図である。
【図２】距離センサの計測範囲を示す図である。
【図３】距離センサで計測したセンシングデータの一例を示す図である。
【図４】位置姿勢推定に用いる環境地図の一例である。
【図５】環境地図とセンシングデータのマッチング処理の概要を示す図である。
【図６】環境地図内に定義された移動経路の一例を示す図である。
【図７】移動ロボットシステムの構成図である。
【図８】移動制御データ算出部の処理内容を説明する図である。
【図９】対話的に移動経路データを設定する一例を示す図である。
【図１０】複数の経路候補が示される一例を示す図である。
【図１１】対話的に移動経路を設定するユーザインタフェースの一例を示す図である。
【図１２】センシングシミュレータの処理内容を示す図である。
【図１３】センシングシミュレータの処理内容を示す図である。
【図１４】誤差による移動時のロボット形状情報の一例を示す図である。
【図１５】計算システムを実現するハードウェア構成の一例を示す図である。
【図１６】複数の経路候補においてロボットが存在物に衝突する可能性を示す図である。
【図１７】経路上の危険度によって異なる属性で経路曲線を表示しているユーザインタフェースの一例を示す図である。
【図１８】複数の移動経路候補を表示するユーザインタフェースの一例を示す図である。
【図１９】高さ方向に凹凸のある存在物への対処方法の一例を示す図である。
【図２０】経路上に移動速度を設定するためのユーザインタフェースの一例を示す図である。
【図２１】移動速度を変更したときに経路上の危険度が変わる様子の一例を示す図である。
【図２２】他の実施形態に係る移動ロボットシステムの構成図である。
【符号の説明】
【００６５】
２：ＣＰＵ、３：メモリ、４：ハードディスク、５：コンピュータ、６：ユーザインタフェース部、７：ネットワークインタフェース、２０：マウスポインタ、１２０：センシングシミュレータ、１２２：仮想センサデータ、１２４：位置姿勢推定シミュレータ、１２６：位置姿勢推定値、１２８：移動制御データ算出シミュレータ、１３０：制御データ、１３２：ロボット移動シミュレータ、１３４：位置姿勢パラメータ、１３６：移動経路データ、１３８：ロボット構成情報、１４０：衝突確率算出部、１４２：危険度パラメータ、２１０：距離センサ、２２０：移動ロボット、２３０：存在物、３００：センシングデータ、５１０：環境地図、６０２：移動経路、６０３：スタートポイント、６０４：ゴールポイント。
【図１】
0005215740.tif 000002
【図２】
0005215740.tif 000003
【図３】
0005215740.tif 000004
【図４】
0005215740.tif 000005
【図５】
0005215740.tif 000006
【図６】
0005215740.tif 000007
【図７】
0005215740.tif 000008
【図８】
0005215740.tif 000009
【図９】
0005215740.tif 000010
【図１０】
0005215740.tif 000011
【図１１】
0005215740.tif 000012
【図１２】
0005215740.tif 000013
【図１３】
0005215740.tif 000014
【図１４】
0005215740.tif 000015
【図１５】
0005215740.tif 000016
【図１６】
0005215740.tif 000017
【図１７】
0005215740.tif 000018
【図１８】
0005215740.tif 000019
【図１９】
0005215740.tif 000020
【図２０】
0005215740.tif 000021
【図２１】
0005215740.tif 000022
【図２２】
0005215740.tif 000023