(57)【特許請求の範囲】
【請求項１】
環境中の障害物までの距離が計測可能な距離センサ部と距離センサデータと地図とを用いて位置・姿勢の推定を行う位置姿勢推定部と、与えられた経路に従って車体制御を行う経路追従制御部と、経路追従制御部の指令に従って動作する移動機構部と、操作者からの指示を受け取るためのリモコン入力取得部からなるロボットシステムであって、
位置推定部によって求められたロボット移動時の推定位置・姿勢データをもとに移動した経路の履歴を求める経路履歴生成部と、経路履歴による閉領域と環境地図を用い、閉領域内の障害物の有無を確認することで、閉領域が通行可能領域か進入禁止領域かを判定する通行可能領域・進入禁止領域生成部と、求められた各通行可能領域と進入禁止領域を統合して、地図全体での通行可能領域と進入禁止領域とを地図として求める通行可能領域・進入禁止領域統合部を備えることを特徴とするロボットシステム。
【請求項２】
請求項１のロボットシステムであって、経路履歴が閉じているかどうかの判定を、経路履歴の始点と終点間の距離とロボットのサイズを比較によって行い、距離がロボットのサイズより短い場合は閉領域と設定することを特徴とするロボットシステム。
【請求項３】
請求項１のロボットシステムであって、通行可能領域内でロボットが取りうる位置姿勢で位置推定を行ったときに得られるマッチング割合を予めシミュレーションで求めておき、ロボットを実際の環境で走らせた際に得られるマッチング割合と比較し、それらの差が大きい場合は、環境変化などの異常があったものとして、ユーザに警告することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステムに関し、特に、通行可能領域と進入禁止領域を設定する技術に関する。
【背景技術】
【０００２】
ロボットが環境内を効率的に移動するためには、環境内の障害物などの位置を表す地図を保持し、その地図上での自身の位置・姿勢を求める必要がある。
これを実現する方法として、2次元平面をレーザで走査することで環境の幾何形状の計測が可能な距離センサをロボットに搭載し、走査面の高さでの環境の地図を作成して自律移動に用いることが一般的となっている。ただし、この地図は、ある高さでの地図であるため、例えば机などは、地図に反映されているのは脚の位置だけであり、地図からは机の天板部分とロボットの干渉の有無が判断できない、つまりは、通行可能な領域・通行不能な領域が地図上のどこであるかが判断できないことが起こりうる。  これに対応する方法としては、非特許文献１のように、環境中にある、机や設備のモデルを準備して、別途距離センサで作成しておいた地図に追加することで、ロボットが直接認識できない物体形状を地図に反映させ、物体がない領域を通行可能領域とする方法が挙げられる。環境中にある物体の幾何形状が予めわかっている場合に用いられる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Takashi Tsubouchi, Akichika Tanaka, Atsushi Ishioka, Masahiro Tomono, Shin'ichi, ``A SLAM Based Teleoperation and Interface System for Indoor Environment Reconnaissance in Rescue Activities," 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp.1096-1102, 2004.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットが移動する環境中の物体１つ１つの幾何形状の情報がない場合においても、ロボットが通行可能な領域、あるいは通行不能な領域を容易に設定できるロボットシステムの構築を課題とする。
【課題を解決するための手段】
【０００５】
レーザ距離センサを搭載したロボットを用い、通行可能な範囲の境、例えば壁面などに沿ってロボットを移動させる。この移動の際、距離センサによるセンサデータを記録しておき、これを環境の幾何形状を表す地図とマッチングすることで、環境中をロボットが移動したときの軌跡を求める。この軌跡の各点において、センサによる走査を行った場合に、レーザが地図上の障害物と交わる位置を求め、障害物との交わりが軌跡の内側にある場合は進入禁止領域、そうでない場合は通行可能領域と設定する。
【０００６】
本発明の一態様においては、以下の構成を備える。即ち、環境中の障害物までの距離が計測可能な距離センサ部と距離センサデータと地図とを用いて位置・姿勢の推定を行う位置姿勢推定部と、与えられた経路に従って車体制御を行う経路追従制御部と、経路追従制御部の指令に従って動作する移動機構部と、操作者からの指示を受け取るためのリモコン入力取得部からなるロボットであって、位置推定部によって求められたロボット移動時の推定位置・姿勢データをもとに移動した経路の履歴を求める経路履歴生成部と、経路履歴による閉領域と環境地図を用い、閉領域内の障害物の有無を確認することで、閉領域が通行可能領域か進入禁止領域かを判定する通行可能領域・進入禁止領域生成部と、求められた各通行可能領域と進入禁止領域を統合して、地図全体での通行可能領域と進入禁止領域とを地図として求める通行可能領域・進入禁止領域統合部を備える。
【発明の効果】
【０００７】
環境内にある設備などについて、通行可能領域・進入禁止領域の設定の時間や労力を削減する効果がある。
【図面の簡単な説明】
【０００８】
【図１】通行可能領域と進入禁止領域の設定機能の構成を示す図である。
【図２】ロボットの構成を示す図である。
【図３】ロボット内の全体の処理の流れを示す図である。
【図４】通行可能領域と進入禁止領域の設定処理の流れを示す図である。
【図５】環境とロボットの経路の例を示す図である。
【図６】通行可能領域と進入禁止領域の判定例を示す図である。
【図７】設定された通行可能領域と進入禁止領域を示す図である。
【図８】位置推定の異常を検出して警告する処理の流れを示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を用いて本発明の実施形態を説明する。
【実施例１】
【００１０】
本実施例で想定するシステムの基本的な構成について述べる。通行可能領域・進入禁止領域を設定するロボットシステムの構成は図１のようになる。ロボットは、距離センサ部０００１、位置姿勢推定部０００２、移動機構制御部０００３、移動機構部０００４、リモコン入力取得部０００５、経路履歴クロージング部０００６、通行可能領域・進入禁止領域生成部０００７、通行可能領域・進入禁止領域統合部０００８、地図データ０００９、推定位置・姿勢データ００１０、そして生成した通行可能領域・進入禁止領域を保存するデータ領域００１１から構成される。この図１においては、すべての機能をロボットに搭載しているが、機能の一部を遠隔の端末など移した構成としてもよい。この図１の一例として図２のロボットを想定し、以下ではこのロボットの構成に沿った説明を行う。  まず、図２のロボット２００１の構成について述べる。ロボット２００１は、通信線２００２、プロセッサ２００３、メモリ２００４、リモコン２００５、レーザ距離センサ２００６、移動機構２００７、記憶装置２００８から構成される。本実施例では、移動機構として、車輪による、全方向移動が可能な移動機構を想定しているが、環境内を移動する効果が得られるのであれば、他の車輪移動機構、船舶、航空機、飛行船、無限軌道を備える車両、脚を備えるロボットなどの移動機構であってもよい。また、本実施例では、環境の幾何形状を計測するセンサとして、水平方向にレーザを走査しながら、照射したレーザ光が障害物から反射して返ってくるまでの時間の計測によってセンサから障害物までの距離を算出することで、2次元水平面における物体の幾何形状を計測するレーザ距離センサを想定する。しかし、この他のセンサとして、例えば、水平方向以外も走査することで物体の3次元の幾何形状を計測するレーザ距離センサ、物体をカメラで撮影した際の画像特徴量を複数野カメラで三角測量することで物体の3次元の幾何形状を計測するステレオカメラなど、幾何形状が計測可能であればそのセンサの方式は問わない。
【００１１】
ロボット２００１の記憶装置２００８には、プログラムとして、ＯＳ２００９、全体制御プログラム２０１０、レーザ距離センサ２００６を用いて幾何形状データを取得するレーザ距離センサデータ取得プログラム２０１１、ユーザによるロボットの操縦のための入力と通行可能領域・進入禁止領域の教示開始・終了の入力を取得するリモコン入力取得プログラム２０１２、地図データ２０１８とレーザ距離センサ２００６から得られる幾何形状データのマッチングによってロボットの位置と姿勢を求める位置姿勢推定プログラム２０１３、得られたリモコン入力に従って車体の制御を行うための移動機構制御プログラム２０１４、教示時に記録された経路の履歴から閉じた領域を生成する経路履歴クロージングプログラム２０１５、経路の履歴によって閉じられた領域について通行可能か進入禁止かを判定する通行可能領域・進入禁止領域生成プログラム２０１６、得られた通行可能領域と進入禁止領域を統合して最終的に有効な通行可能領域・進入禁止領域を求める通行可能領域・進入禁止領域統合プログラム２０１７が格納されている。  また、データとして、ロボットが自律移動する環境内の障害物の幾何形状を記録した地図データ２０１８、位置姿勢推定プログラム２０１３で推定した位置・姿勢を記録した推定位置・姿勢データ２０１９、推定位置・姿勢データをスプライン等で補間することで得られる経路履歴データ２０２０、ロボットと環境の干渉の有無の確認などに用いるロボットの形状データ２０２１が格納されている。
【００１２】
なお、図２では、プロセッサが、記憶装置のプログラムをメモリにロードし、プログラムを実行することで所定の処理を実現することを想定しているが、これと同等の働きをするのであれば、FPGA（Field Programmable Grid Array）やCPLD（Complex Programmable Logic Device）などのプログラマブルなハードウェアで実現してもよい。また、プログラムやデータは、CD-ROM等の記憶媒体から移してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。また、以上のハードウェアやソフトウェアは、実施形態に応じて、取捨選択してもよい。以上のハードウェア、ソフトウェアは以下で説明するロボットシステムの処理動作の動作主体として働くものとする。
【００１３】
加えて、ロボットの構成要素については、各要素が有線の通信線にて接続されていることを想定しているが、通信が可能であれば無線であってもよい。また、通信が可能であれば、構成要素のうち、特定の要素のみが物理的に遠隔にあってもよい。  以上のロボット２００１の運用例として、図５のように、５００２で表される斜線部分に設備や家具、あるいは壁面やドアが配置された環境で、水平に180度の範囲を走査するレーザ距離センサ５００４を備えるロボット５００３を、５００６の矢印で表される各経路に沿って、ユーザがリモコン操縦によってロボットを走らせた際に得られるロボットの推定位置・姿勢より通行可能領域・進入禁止領域を設定する例を想定して処理の流れを説明する。なお、ここでは、ユーザが、図５の各矢印で表される経路毎に、経路の始点にて、リモコンの教示開始ボタンを押し、終点で教示終了ボタンを押すことで、教示のためのロボットの移動中の位置・姿勢が、レーザ距離センサ２００６より得られる幾何形状データと地図データ２０１８とのマッチングによって求められ、２０１９に記録されているものとする。  通行可能領域・進入禁止領域を求めるための全体の処理の流れを図３に示す。まず、地図データ２０１８、ロボットの推定位置・姿勢データ２０１９、ロボットの形状データ２０２１が読み込まれる。（３００１）。また、このとき、ロボットの位置・姿勢データ２０１９に含まれる座標データは、線分で補間され、経路履歴データ２０２０として記録される。  続いて、この経路履歴毎にクロージング処理を行う（３００２）。ここでのクロージング処理とは、各経路履歴毎に、始点と終点をつなぐ処理である。ロボットの形状データ２０２１をもとに、始点と終点の距離がロボットのサイズよりも小さいと判明した場合は、ロボットの通過が想定されない１つの領域とみなして、始点と終点とをつなぎ、閉じた領域とする。  経路履歴の始点と終点がロボットのサイズより大きい場合は、クロージングが行われず、閉じてない経路履歴が残ることとなる。このような閉じてない経路履歴がある場合は（３００３）、閉じられてない経路履歴を地図上で強調するようにディスプレイ２０２２に表示し、ユーザに警告する（３０１１）。ユーザは警告に従い、キーボードやマウスなどの入力機器２０２３を用い、経路履歴が閉じていない部分について、閉じてよいならば、始点や終点位置を移動させて、距離がロボットサイズ以下となるようにして、クロージングを行う。  また、閉じられた経路履歴について、経路履歴同士で交わる部分があると判定された場合においても（３００４）、ユーザへの警告を出す（３０１１）。この場合も先と同様に警告に従い、交差している部分について、交差をなくすように、入力機器２０２３を用いて修正する。
【００１４】
続いて、各経路履歴毎に通行可能領域・進入禁止領域の判定を行う（３００５）。この判定処理の詳細を図４に示す。また、判定処理の例を図６に示す。処理３００５の処理開始後、まず、経路履歴に沿ってロボットを走らせながらセンサで計測を行った場合に得られるセンサデータのシミュレーションを行う（４００１）。ここでのシミュレーションとは、経路履歴上の各位置・姿勢でセンサによる計測を行うことを想定して、センサより照射されるレーザを模した線分を、センサの計測角度範囲分だけ、センサの光学中心から地図の端までを伸ばしていき、このとき各方向に伸ばされる線分が地図上の障害物と交わる箇所、各経路履歴と交わる箇所を記録することであるとする。
【００１５】
続いて、各経路履歴において、内側の判定を行う（４００２）。これは、ある経路履歴について処理４００１で得られる線分が、当該経路履歴と交差する回数を用いて判定を行う。ロボット位置も交点とみなして交差回数に含めるとしたときに、ロボット位置から地図の端まで伸ばした線分が経路履歴と交差する回数が奇数回か偶数回かを判定し、偶数回ならば、レーザをなす線分のうち、交わる回数が奇数番目から偶数番目となるまでの範囲を経路履歴の内側と判定し、また交差回数が奇数回ならば、レーザをなす線分のうち、交わる回数が偶数番目から奇数番目となるまでの範囲を経路履歴の内側と判定する。例えば、経路履歴６０１１についてシミュレーション４００１を行った際、センサの位置・姿勢６００７でセンサによる一回の走査に含まれるデータとして、線分６００５と線分６００９が得られたとする。線分６００５と経路履歴６０１１は、点６００５と点６００４で交差回数２回となる。交差回数が偶数のため、線分の始点６００６から交点６００４までが内側と判定される。同様に、線分６００９と経路履歴６０１１は、交差回数３回で点６００８と６０１０とで交わる。交差回数が奇数のため、線分の始点６００６から交点６００８までが外側、６００８から６０１０までが内側と判定される。同様の処理を経路履歴上の各位置姿勢において、センサの計測範囲分、経路履歴一周分行う。
【００１６】
続いて、経路履歴の内側にある他の経路履歴の検出を行う（４００４）。これは、ある経路履歴について処理４００１で得られる線分が、他の経路履歴と交差する回数を用いて判定を行う。交差する回数が奇数回か偶数回かを判定し、奇数回ならば、レーザをなす線分のうち、交わる回数が偶数番目から奇数番目となるまでの範囲を他の経路履歴の内側と判定し、また交差回数が偶数回ならば、レーザをなす線分のうち、交わる回数が奇数番目から偶数番目となるまでの範囲を他の経路履歴の内側と判定する。ここまでで、各経路履歴毎に他の経路履歴を除く内側の領域が求められる。
【００１７】
次に、ここまでで求められた経路履歴の内側の領域が、通行可能領域か進入禁止領域かを判定する処理を行う（４００３）。この処理は、ある経路履歴について処理４００１で得られる線分のうち、他の経路履歴に含まれない範囲の線分と地図上の障害物と交点を検出する。この交点が1つでもあれば、処理４００４に進み、経路履歴の内側の領域かつ他の経路履歴を除く範囲が進入禁止領域と設定され（４００４）、そうでなければ同領域は通行可能領域として設定される（４００５）。例えば、経路履歴６０１３におけるセンサシミュレーション時に得られる線分６００３が得られたとすると、この線分が経路履歴の内側となるのは、点６０１３から６０１４までの範囲となる。この範囲の線分は点６００１にて地図上の障害物と交わっていることが検出され、経路履歴６０１３の内側は進入禁止領域として設定される。ここまでで、経路履歴内の他の経路履歴による領域を除く領域が通行可能領域か、進入禁止領域なのかが求められる。  続いて、図６で表される地図全体が一旦進入禁止領域として設定され（３００６）、また、経路履歴による領域のうち、通行可能領域と判定された領域と進入禁止領域と判定された領域とが地図上に上書きされる形で順にそれぞれ設定される（３００７、３００８）。以上により、図６で表された地図の通行可能領域は図７の斜線部、進入禁止領域は図７で斜線部以外の領域のように求められる。  なお、本実施例においては、経路履歴の内側を求めるための前処理として、仮想的なセンサより発した線分と地図上との障害物の交点を求め、これを用いて内側を求めているが、地図上を一方向に走査していく線分と障害物との交点を求め、これを用いて同様の方法により内側を判定してもよい。
【実施例２】
【００１８】
実施例１では、ロボットを環境内で走行させ、運用する前の準備として、通行可能領域・進入禁止領域を設定する方法について述べた。以下では、得られた通行可能領域を用い、ロボット運用時における位置推定の異常を検出し、ユーザに警告するシステムの構成について述べる。
【００１９】
プログラムが開始されると、まず、通行可能領域内でのセンサデータシミュレーションが行われる（８００１）。ここでのセンサデータシミュレーションとは、地図上のある位置・姿勢でセンサによる計測を行うと仮定して、レーザを模した線分を、センサの計測角度範囲・計測距離範囲分だけ、センサの光学中心から伸ばしていき、線分と地図上の障害物がはじめに交わる位置を求める処理である。この処理を、ロボットが取りうる位置・姿勢のすべてについて行う。
【００２０】
続いて、予想マッチング割合の算出を行う（８００２）。ここでの予想マッチング割合とは、処理８００１で求めた、障害物と線分との交点の数が全線分数に占める割合であり、ロボットがある位置姿勢で計測を行いってセンサデータと地図とのマッチングにもとづく位置姿勢推定を行った場合に地図と重なるセンサデータの数がセンサデータ全体の数に占める割合に相当する。この処理を、ロボットが取りうる位置・姿勢毎に求め、テーブルに記録する。
【００２１】
次に、ロボットを目的地に自律移動させるための準備として、経路計画を行う（８００３）。
【００２２】
続いて、ロボットは、レーザ距離センサを用いて環境の計測を行う（８００４）。
【００２３】
得られたレーザ距離センサによるセンサデータと予め準備しておいた環境の地図とのマッチングによるロボットの位置推定が行われる（８００５）。マッチング手法としては、SSD（Sum of Squared Difference）やICP（Iterative Closest Point）など、手法を問わないが、ここではICPの利用を想定し、マッチングにより地図上でのロボットの位置姿勢が求められるものとする。この位置姿勢を合せて推定位置と呼ぶものとする。
【００２４】
次に、得られた推定位置に合せて、センサデータを地図上に配置し、地図に重なるセンサデータの数が、センサデータ数全体に占める割合を実マッチング割合として算出する（８００６）。
【００２５】
次に、テーブルより、推定位置に最も距離が短く、角度の差が小さい位置姿勢のときの予想マッチング割合を参照し（８００７）、実マッチング割合との差の絶対値が、予め定義した許容値より大きいかどうかの判定を行う（８００８）。
【００２６】
処理８００８による判定により、差の絶対値が許容値より大きい場合は、環境変化など、なんらかの異常が生じたとみなし、ユーザに警告を出し（８０１２）、ロボットを停車させる（８０１１）。
【００２７】
一方、差の絶対値が許容値より小さい場合は、処理を進め、推定位置と目的地との比較により、目的地に到着したと判定された場合（８０１０）は停車させ（８０１１）、到着していない場合は目的地に向かう経路に追従するように移動機構を制御する（８００９）。
【符号の説明】
【００２８】
０００１…距離センサ部、０００２…位置推定部、０００３…移動機構制御部、０００４…移動機構部、０００５…リモコン入力取得部、０００６…経路履歴クロージング部、０００７…通行可能領域・進入禁止領域生成部、０００８…通行可能領域・進入禁止領域統合部、０００９…地図データ、００１０…推定位置・姿勢データ、００１１…通行可能領域・進入禁止領域データ
【図１】
0005427662.tif 000002
【図２】
0005427662.tif 000003
【図３】
0005427662.tif 000004
【図４】
0005427662.tif 000005
【図５】
0005427662.tif 000006
【図６】
0005427662.tif 000007
【図７】
0005427662.tif 000008
【図８】
0005427662.tif 000009