(57)【要約】【課題】障害物に遭遇したときに適確に掃除ルートを再構築して掃除を再開するロボット掃除機及びその制御プログラムを提供すること。【解決手段】障害物を検知する障害物検出センサと、部屋に在る障害物を登録した部屋地図データと、障害物の属性を記憶した属性データと、掃除の経路を記憶した掃除ルートデータとを備えておき、掃除中に障害物の有無を検知し、障害物有りの場合にその位置に部屋地図データ上で障害物が登録されているか否かを判断し、登録無しの場合に検知した障害物を未知障害物と判断し、未知障害物の形状を認識し、認識した形状と一致する形状を部屋地図データ及び属性データを参照して推定し、推定可の場合は、推定した形状の障害物を部屋地図データに登録して掃除ルートデータを再構築し、推定不可の場合は、未知障害物を新たに出現した障害物と判断して部屋地図に登録し、掃除ルートデータを再構築する。【選択図】図５
2004033340.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによってロボット掃除機の動作を制御するための制御プログラムであって、
該ロボット掃除機は、障害物の有無の検知と該障害物の形状の認識を行なう障害物検出センサと、部屋に在る障害物を登録して成る部屋地図を記憶した部屋地図データと、該部屋地図データに登録された障害物の属性を記憶した属性データと、該部屋地図データに基づいて作成される掃除の経路を掃除ルートとして記憶した掃除ルートデータとを備えており、
該制御プログラムは、該コンピュータに、
該掃除ルートに従って掃除を行なっているときに該障害物検出センサを使って障害物の有無を検知する手順と、
障害物有りを検知した場合にその位置に該部屋地図データ上で障害物が登録されているか否かを判断する手順と、
障害物が登録されていない場合に、検知した障害物を未知障害物と判断する手順と、
障害物検出センサを使って該未知障害物の形状を認識する手順と、
認識した形状と一致する形状を該部屋地図データ及び該属性データを参照して推定する手順と、
形状を推定することができた場合は、推定した形状の障害物を部屋地図データに登録して掃除ルートデータを再構築する手順と、
形状を推定することができなかった場合は、該未知障害物を新たに出現した障害物と判断して部屋地図データに登録し、掃除ルートデータを再構築する手順とを実行させることを特徴とするロボット掃除機制御プログラム。
【請求項２】
前記障害物検出センサは、赤外線センサと触覚センサとからなることを特徴とする請求項１に記載のロボット掃除機制御プログラム。
【請求項３】
前記部屋地図データ及び前記掃除ルートデータは、それぞれテンポラリ部屋地図データ及びテンポラリ掃除ルートデータを有しており、
推定した形状の障害物を部屋地図データに登録して掃除ルートデータを再構築する前記手順は、推定した形状の障害物を該テンポラリ部屋地図データに登録して該テンポラリ掃除ルートデータを再構築し、掃除終了時に該テンポラリ部屋地図データ及び該テンポラリ掃除ルートデータをそれぞれ該部屋地図データ及び該掃除ルートデータに上書きする手順であり、
該未知障害物を新たに出現した障害物と判断して部屋地図データに登録し、掃除ルートデータを再構築する前記手順は、該未知障害物を新たに出現した障害物と判断し、該新出現の障害物を該テンポラリ部屋地図データに登録して該テンポラリ掃除ルートデータを再登録し、掃除終了時に該テンポラリ部屋地図データ及び該テンポラリ掃除ルートデータをそれぞれ該部屋地図データ及び該掃除ルートデータに上書きする手順であることを特徴とする請求項１に記載のロボット掃除機制御プログラム。
【請求項４】
上書き前の前記部屋地図データと、掃除終了時の前記テンポラリ部屋地図データとの相違比較を行なうことによって前記属性データを学習及び更新する手順を更に備えていることを特徴とする請求項３に記載のロボット掃除機制御プログラム。
【請求項５】
前記推定した形状の障害物を部屋地図データに登録して掃除ルートデータを再構築する手順において、前記属性データに記憶されている障害物の掃除方法を用いることを特徴とする請求項１に記載のロボット掃除機制御プログラム。
【請求項６】
記憶手段に記憶する経路データに基づいて走行するロボットに地図作成を実行させるためのプログラムであって、
上記地図作成方法は、
赤外線センサと触覚センサからの情報を取得する手順と、
該情報を用いて上記経路上の障害物の有無を検出する手順と、
該障害物の形状を上記触覚センサからの情報を用いて認識する手順と、
該検出の結果と該認識の結果を用いて上記経路データを作成する手順とを有することを特徴とするプログラム。
【請求項７】
コンピュータによってロボット掃除機の動作を制御するための制御プログラムであって、
該ロボット掃除機は、センサと、障害物のデータと、掃除の経路を掃除ルートとして記憶した掃除ルートデータとを少なくとも備えており、
該制御プログラムは、該コンピュータに、
該掃除ルートに従って掃除を行なっているときに該センサからの情報を取得する手順と、
該情報と該障害物のデータを用いて該掃除ルートを再構築する手順と、
掃除ルートが再構築された場合には、該再構築された掃除ルートに従って掃除を続ける手順とを実行させることを特徴とするロボット掃除機制御プログラム。
【請求項８】
障害物の有無の検知と該障害物の形状の認識を行なう障害物検出センサと、
部屋に在る障害物を登録して成る部屋地図を記憶した部屋地図データ、該部屋地図データに登録された障害物の属性を記憶した属性データ、及び該部屋地図データに基づいて作成される掃除の経路を掃除ルートとして記憶した掃除ルートデータを格納する記憶装置と、
掃除の制御を行なう処理装置とを備え、
該処理装置は、
該掃除ルートに従って掃除を行なっているときに該障害物検出センサを使って障害物の有無を検知し、
障害物有りを検知した場合にその位置に該部屋地図データ上で障害物が登録されているか否かを判断し、
障害物が登録されていない場合に、検知した障害物を未知障害物と判断し、
障害物検出センサを使って該未知障害物の形状を認識し、
認識した形状と一致する形状を該部屋地図データ及び該属性データを参照して推定し、
形状を推定することができた場合は、推定した形状の障害物を部屋地図データに登録して掃除ルートデータを再構築し、
形状を推定することができなかった場合は、該未知障害物を新たに出現した障害物と判断して部屋地図データに登録し、掃除ルートデータを再構築することを特徴とするロボット掃除機。
【請求項９】
前記障害物検出センサは、赤外線センサと触覚センサとからなることを特徴とする請求項８に記載のロボット掃除機。
【請求項１０】
前記赤外線センサは、移動するための車輪を有するロボットユニットに備えられ、前記触覚センサは、掃除作業を行なう吸込み部に備えられていることを特徴とする請求項９に記載のロボット掃除機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、部屋地図データを基に自動生成した掃除ルートデータに従って掃除作業を行なう自走式のロボット掃除機に関する。
【０００２】
【従来の技術】
種々の障害物がある空間を移動するロボットでは、障害物に遭遇したときにどのように対処するかが重要なポイントとなる。障害物遭遇時対処の方法として、障害物に関する記憶データを用いることが一般的である。
【０００３】
特開２００１−１２９７８７号公報に開示されている例では、ロボットが障害物の画像データを保持している。ロボットは、移動経路上に障害物があると該障害物をイメージセンサで取込み、予め登録された障害物であるかどうかを比較判断する。ここで、登録済み障害物であると判断すると、障害物に対応した回避プログラムに従って回避動作を行なう。また、未知障害物であると判断すると、ロボットは周囲に人がいるかどうか判断し、人の存在を確認すると音声や身振りで手助けを求める。
【０００４】
また、特開平９−２２２８５２号公報に開示されている例では、部屋地図データが空間的知識である認知地図として表現され、構成要素の定義情報とその構成要素の確率情報が記憶される。そして、この認知地図を用いて経路生成が行なわれる。ロボットが移動経路上にて認知地図と異なる障害物に遭遇すると、該当する構成要素（経路）の確率情報が変更される。これにより、次回の移動経路生成の際、この変更した情報が活用される。
【０００５】
障害物を検知するためにロボットに備えられるセンサとして、上記のイメージセンサの他、超音波センサが用いられる。超音波センサによって移動ロボットと周辺障害物との距離が測定され、部屋地図生成処理やロボット位置推定処理が行なわれる（例えば、米国文献「ＩＥＥＥジャーナル・オブ・ロボティックス・アンド・オートメーション（ＩＥＥＥ　Ｊｏｕｒｎａｌ　ｏｆ　Ｒｏｂｏｔｉｃｓ　ａｎｄ　Ａｕｔｏｍａｔｉｏｎ）」（１９８８年発行）第ＲＡ−３巻第２４９頁〜第２６５頁参照）。
【０００６】
なお、予め走行経路を決めておくための地図の記憶方法の例が特開平８−１６２４１号公報に開示されている。この例では、部屋の各領域に対して、作業車全体が走行可能の部分、作業車の作業部のみを挿入することが可能な部分、走行も挿入も不可能の部分という属性が与られ、属性を持った各領域が部屋地図に登録される。この属性付き部屋地図を用いて掃除ルートが計画される。
【０００７】
【発明が解決しようとする課題】
障害物遭遇時の対処法に関して、上記の特開２００１−１２９７８７号公報の例では、画像データが平面的情報源であるため、障害物の幾何学構造を推測することが困難であり、また記憶している障害物画像データと全く同じ環境で、移動中のロボットが障害物を撮像することは難しい。従って、同一障害物であるにもかかわらず、異なる障害物であると誤認識を起こす可能性がある。また、データ更新や学習の処理が行なわれないため、次回の移動時も同じように誤認識を起こす可能性がある。
【０００８】
また、特開平９−２２２８５２号公報の例では、認知地図情報と異なる障害物に遭遇した場合に、動的な地図更新が行なわれるものの、その更新内容は該当経路の信頼度を示す確率情報を変更するというものであり、実際の地図・経路の形状変更は行なわれない。そのため、移動しながらリアルタイムに経路再構築を行なうことができず、未知の障害物があった場合、作業を完了することができない。更に、認知地図では障害物の形状が記憶されないため、障害物周りを精密に掃除することが困難である。
【０００９】
単に移動するだけではなく、移動しながら掃除を行なうロボットでは、障害物に対して精密に形状を把握することが求められる。そのための障害物検出センサとして、イメージセンサを用いる場合は、上述のように画像データが平面的情報源になるため形状把握が不十分となる。また、超音波センサを用いる場合は、障害物までの距離測定はある程度可能であるが、超音波に広がりがあるため、形状把握に十分な精度が得られない。また、超音波センサのような比較的高価なセンサを用いると、ロボットの製作コストが高くなることが避けられない。一般家庭向けのロボット掃除機を対象とした場合、できるだけ低コストで製作することが望ましい。
【００１０】
なお、特開平８−１６２４１号公報の例では、部屋地図内の領域の属性に依存して掃除ルートが生成されるが、やはり動的なデータ更新が行なわれないため、障害物の移動といった環境変化が起こった場合には、掃除作業を完了することができない。
【００１１】
本発明の第１の目的は、障害物に遭遇したときに適確に掃除ルートを再構築して掃除を再開するロボット掃除機及びその動作を制御するためのロボット掃除機制御プログラムを提供することにある。
【００１２】
本発明の第２の目的は、精度良く部屋地図を動的に更新する低コストのロボット掃除機及びその動作を制御するためのロボット掃除機制御プログラムを提供することにある。
【００１３】
本発明の第３の目的は、障害物を適確にかつ高速に認識して掃除を行なうロボット掃除機及びその動作を制御するためのロボット掃除機制御プログラムを提供することにある。
【００１４】
【課題を解決するための手段】
上記第１の目的は、障害物の有無の検知とその形状の認識を行なう障害物検出センサと、部屋に在る障害物を登録して成る部屋地図を記憶した部屋地図データと、部屋地図データに登録された障害物の属性（存在履歴や掃除方法等）を記憶した属性データと、部屋地図データに基づいて作成される掃除の経路を掃除ルートとして記憶した掃除ルートデータとを備えておき、掃除ルートに従って掃除を行なっているときに障害物検出センサを使って障害物の有無を検知し、障害物有りを検知した場合にその位置に部屋地図データ上で障害物が登録されているか否かを判断し、障害物が登録されていない場合に検知した障害物を未知障害物と判断し、障害物検出センサを使って未知障害物の形状を認識し、認識した形状と一致する形状を部屋地図データ及び属性データを参照して推定することができた場合は、推定した形状の障害物を部屋地図データに登録して掃除ルートデータを再構築し、認識した形状と一致する形状を推定することができなった場合は、未知障害物を新たに出現した障害物と判断して部屋地図データに登録し、掃除ルートデータを再構築することによって達成される。
【００１５】
そのような手段を採用することにより、ロボット掃除機が障害物に遭遇したときに、障害物の既知又は新規出現の別が明確に区別され、それぞれに応じて部屋地図が障害物遭遇の都度更新される。そのため、未知の障害物に遭遇しても適確に掃除ルートを再構築することが可能となり、再構築された掃除ルートに従って掃除を再開することができる。
【００１６】
上記第２の目的は、記憶手段に記憶する経路データに基づいて走行するロボットに対して、赤外線センサと触覚センサからの情報を取得し、該情報を用いて上記経路上の障害物の有無を検出し、該障害物の形状を上記触覚センサからの情報を用いて認識し、該検出の結果と該認識の結果を用いて上記経路データを作成する地図作成方法を実行させることにより達成される。
【００１７】
赤外線センサと触覚センサ触覚を用いることによって、障害物の形状を精度よく把握することが可能であり、従って、精度良く掃除の経路データを作成し、それに基づいて部屋地図を作成することができる。更に、赤外線センサ及び触覚センサはいずれも安価なセンサ素子を用いて構成することが可能であり、低コストのロボット掃除機を実現することができる。
【００１８】
上記第３の目的は、センサと、障害物のデータと、掃除の経路を掃除ルートとして記憶した掃除ルートデータとを少なくとも備えておき、該掃除ルートに従って掃除を行なっているときに該センサからの情報を取得し、該情報と該障害物のデータを用いて該掃除ルートを再構築し、掃除ルートが再構築された場合には、該再構築された掃除ルートに従って掃除を続けることにより達成される。
【００１９】
障害物に固有な属性（存在履歴や掃除方法等）である障害物のデータが予め記録され、それを掃除ルートの再構築に反映させるので、障害物を適確にかつ高速に認識して掃除を行なうことが可能になる。
【００２０】
【発明の実施の形態】
以下、本発明に係るロボット掃除機及びその動作を制御するためのロボット掃除機制御プログラムを図面に示した発明の実施の形態を参照して更に詳細に説明する。
【００２１】
本発明のロボット掃除機制御プログラムを用いるロボット掃除機のシステム構成例を図１に示す。ロボット掃除機は、固定の知能処理ユニット２００と掃除を行なうロボットユニット１００からなる。知能処理ユニット２００とロボットユニット１００は、無線通信モジュール２２５及び無線通信モジュール１５０を介して無線で接続され、双方向無線通信が形成される。知能処理ユニット２００は、ロボットユニット１００に無線で動作コマンドを送り、ロボットユニット１００は、知能処理ユニット２００に無線でセンサデータを送る。
【００２２】
知能処理ユニット２００において、ロボット掃除機制御プログラム２３５を基に動作するＣＰＵ（中央処理装置）２２１、ＣＰＵ２２１が処理中に用いるメモリ５００、無線通信モジュール２２５並びにロボット掃除機制御プログラム２３５及びデータベース４００を格納している記憶装置２２２が内部バス２２４に接続される。内部バス２２４に接続されるこれらの各ユニットによりコンピュータが形成される。データベース４００は、部屋地図データ４０１、属性データ４０２及び掃除ルートデータ４０３からなる。
【００２３】
これらの各データについては後でも述べるが、部屋地図データ４０１は、掃除対象の部屋にある障害物（戸棚、テーブル、椅子、壁、柱など）がどこにどのように配置されているかを示すデータであり、これらは、掃除の開始点を起点にした、縦横座標の座標値で表される。従って、その座標値から、障害物が配置されている位置、障害物の形状、向きを知ることができる。
【００２４】
属性データ４０２は、各障害物の持つ属性、即ち障害物のタイプ（壁か一般障害物か、一般障害物なら固定物か又は日々位置が変化する物か、等）、障害物のＩＤ（識別番号）、掃除方法（障害物の周辺のみ掃除か、障害物の内部を掃除する精密掃除か）、履歴領域数（障害物が過去に存在していた領域の数）などを表す障害物のデータであり、掃除ルートデータ４０３は、部屋地図データ４０１及び属性データ４０２から定められる掃除の経路を上記座標値によって表すデータである。
【００２５】
ロボットユニット１００において、無線通信モジュール１５０に制御部３００が接続され、制御部３００に駆動部１６０及びセンサデータ取得部１１０が接続される。駆動部１６０は、車輪のモーターを駆動する移動ロボット駆動部１２０と、掃除を行なう吸込み部を駆動する掃除機構駆動部１３０からなる。センサデータ取得部１１０は、障害物の接近及び障害物の形状を検出する障害物検出センサ１１５と、車輪の回転の数を計測する車輪用エンコーダ１２８からなる。
【００２６】
制御部３００は、知能処理ユニット２００から動作コマンドを受信して駆動部１６０の動きを制御する。制御部３００は、また、知能処理ユニット２００から動作コマンドを受信してセンサデータ取得部１１０からのセンサデータを知能処理ユニット２００に送信する。
【００２７】
上記コンピュータは、データベース４００の各データとロボットユニット１００から送信されたセンサデータを用いてロボットユニット１００の動作を決定し、動作コマンドをロボットユニット１００へ送信する。このようにして、ロボット掃除機制御プログラム２３５に従った処理が実行される。
【００２８】
なお、上記では、ロボット掃除機が知能処理ユニット２００とロボットユニット１００に分離している場合を示したが、知能処理ユニット２００をロボットユニット１００に搭載して一体化することが可能であり、その場合には、無線通信モジュール２２５及び無線通信モジュール１５０が省略され、制御部３００が直接内部バス２２４に接続される。
【００２９】
図２は、ロボットユニット１００の構成を示した上面図である。図２において、ロボットユニット１００の本体１０１は、左駆動車輪１２１、右駆動車輪１２２及び補助輪１２３を備える独立駆動輪型の移動ロボットであり、それぞれの車輪速度を調整することにより任意の方向へ移動することが可能である。両車輪１２１，１２２にはそれぞれロータリーエンコーダ１２６，１２７が設置されており、両車輪の回転の数を測定することが可能である。車輪１２１，１２２及びそれらを駆動するそれぞれのモーター（図２では図示せず）によって移動ロボット駆動部１２０が構成される（図１）。
【００３０】
ロボットユニット本体１０１の周囲には、赤外線センサ１１１，１１２，１１３が設置されており、前方、側面、後方の比較的近い障害物の存在を検知することが可能である。また、知能処理ユニット２００との無線通信を実現する無線通信モジュール１５０が設置されている。図示していないが、制御部３００が無線通信モジュール１５０に隣接して設置される。
【００３１】
更に、ロボットユニット本体１０１には、左右へ水平移動可能なアーム部１３１とアーム部１３１の先端部を中心軸として回転可能な吸込み部１３２が備えられ、これらによって掃除機構が構成される。吸込み部１３２には、塵を溜めるための集塵ユニット１３６と、吸込みによる吸引動作を行なうための吸引用モーター１３５と、触覚センサ１１４とが備えられている。触覚センサ１１４は、物に触れたことを検知する。
【００３２】
掃除機構であるアーム部１３１と吸込み部１３２は、ロボットユニット本体１０１とは独立に動作することが可能であり、ロボットユニット本体１０１から取り外すことができる。従って、形状・動作の異なる幾つかの掃除機構を用意しておき、掃除環境の状態に合わせて掃除機構を切り替えて作業を行なうことができる。
【００３３】
赤外線センサ１１１，１１２，１１３及び触覚センサ１１４によって障害物検出センサ１１５が構成され、ロータリーエンコーダ１２６，１２７によって車輪用エンコーダ１２８が構成される（図１）。なお、赤外線センサ１１１，１１２，１１３は、発光ダイオードとフォトダイオードを組み合わせ、発光ダイオードから放射される赤外線の障害物からの反射光をフォトダイオードで検出する形式の構造で実現され、触覚センサ１１４は、圧電素子又は小型のマイクロスイッチを利用して実現される。これらの素子は、いずれも非常に安価であり、障害物検出センサ１１５を低コストで実現することができる。
【００３４】
図３は、ロボットユニット１００における制御部３００と、センサデータ取得部１１０並びに移動ロボット駆動部１２０及び掃除機構駆動部１３０との関係を示したブロック図である。
【００３５】
制御部３００は、知能処理ユニット２００から送信された動作コマンドが駆動コマンドである場合、それを基に移動ロボット駆動部１２０及び掃除機構駆動部１３０を動作させる為の制御信号を生成し、定期的にその制御信号を移動ロボット駆動部１２０及び掃除機構駆動部１３０へ送信する。この制御信号によって、移動ロボット駆動部１２０における車輪１２１，１２２を駆動するそれぞれ左車輪用モーター１２４、右車輪用モーター１２５の回転が制御され、更に、掃除機構駆動部１３０が制御される。掃除機構駆動部１３０は、吸引用モーター１３５、アーム部１３１を動かすためのアーム部スライド用モーター１３４及び吸込み部１３２に取り付けられた回転機構を動作させるための吸込み部回転用モーター１３３を有し、これらモーターの回転がそれぞれ制御される。
【００３６】
また、制御部３００は、定期的にセンサデータ取得部１１０からデータを取得する。制御部３００は、知能処理ユニット２００から送信された動作コマンドがセンサデータ送信要求コマンドである場合、無線通信モジュール１５０を用いて知能処理ユニット２００へセンサデータを送信する。
【００３７】
図４は、制御部３００の処理内容をフロー図で示したものである。先ず、無線通信モジュール１５０にて受信した動作コマンドをステップ３０１にて解析する。次にステップ３０２に進み、解析した動作コマンドが駆動コマンドである場合は、ステップ３０８へ進む。一方、解析した動作コマンドがセンサデータ送信要求コマンドである場合は、ステップ３０３へ進み、ロボットユニット１００が保存している最新センサデータを知能処理ユニット２００へ無線通信モジュール１５０を介して送信する。また、ステップ３０８では、駆動コマンドの内容に基づいて、駆動対象モーターの設定、速度設定、移動距離の設定を行なう。
【００３８】
この制御部３００は、１０ミリ秒間隔で定期的に割込み処理３０４を実行し、モーターの駆動及びセンサデータの取得を行なう。割込み処理実行時間に達すると、ステップ３０５において、ステップ３０８にて設定した値を基に車輪・アーム・吸込み部の各駆動モーターの制御信号を生成し、駆動部１６０の各駆動モーターへ伝える。次に、ステップ３０６へ進み、センサデータ取得部１１０から障害物検出及び車輪の回転の数のデータをセンサデータとして取得する。取得したセンサデータは、最新センサデータとしてメモリ３０７に記憶される。つまり、メモリ３０７の最新センサデータは割込み処理を行なう毎に更新される。
【００３９】
次に、知能処理ユニット２００の上記コンピュータがロボット掃除機制御プログラム２３５に従って実行する処理の内容を説明する。本発明では、掃除中のロボット掃除機は、部屋の状況が部屋地図データ４０１に示されている状況と相違していることを検知したときに、その場で部屋地図データ４０１を更新し、掃除ルートデータ４０３を再構築する。即ち、相違がある度に部屋地図データ４０１が更新され及び掃除ルートデータ４０３が最構築される。相違があるのは、障害物を部屋の離れた所に移してしまった場合や部屋にはなかった新しい障害物を部屋に持ち込んだ場合などである。
【００４０】
部屋地図データ４０１のその都度の更新及び掃除ルートデータ４０３のその都度の最構築は、部屋地図データ４０１及び掃除ルートデータ４０３をメモリ５００に複写したそれぞれ、後で図６にて示すテンポラリ部屋地図データ５０１及びテンポラリ掃除ルートデータ５０２に対して行ない、掃除が終了したときに、テンポラリ部屋地図データ５０１及びテンポラリ掃除ルートデータ５０２を部屋地図データ４０１及び掃除ルートデータ４０３に上書きして更新を行なう。次回の掃除は、この更新した部屋地図データ４０１及び掃除ルートデータ４０３を使って行なわれる。
【００４１】
図５は、知能処理ユニット２００の上記コンピュータによる処理手順をフロー図で示したものである。ロボット掃除機の移動中の場所にテンポラリ部屋地図データ５０１上で障害物が登録されているとき、又は、移動中に障害物に遭遇したとき、先ずステップ２０１にて、ロボットユニット１００のセンサデータ取得部１１０からのセンサデータを解析する。具体的には、ロボットユニット１０１の現在位置を車輪用エンコーダ１２８からのデータによって算出すると共に、触覚センサ１１４が障害物に触れたか否かを検知する。なお、赤外線センサ１１１〜１１３は、近くにある障害物の存在を大雑把に捕らえて障害物に近づいていることを検知することが可能であり、触覚センサ１１４が障害物に触れることを前以て予知することができる。
【００４２】
次に、ステップ２０２でテンポラリ部屋地図データ５０１とセンサデータ解析結果を比較し、相違を先ず障害物の有無で判断する。障害物有無の判断は、上述のように触覚センサ１１４からのデータによって行なわれる。障害物があったときにステップ２０３に進み、続いて相違を触覚センサ１１４が障害物に触れた位置にテンポラリ部屋地図データ５０１上で障害物が登録されているか否かを判断する。障害物が登録されていれば相違がないとしてステップ２１１に進み、テンポラリ掃除ルートデータ５０２に従って掃除を行なう。続いて、ステップ２１２で、部屋の掃除が全て終了していない場合、ステップ２０１に戻り、処理を続ける。
【００４３】
ステップ２０２において、現在位置に障害物がない場合は、ステップ２０４に進み、障害物は移動しているとしてテンポラリ部屋地図データ５０１上で登録されている障害物を除去する。ステップ２０８で、障害物を除去することによってテンポラリ部屋地図データ５０１を更新し、続いてステップ２１０で、更新したテンポラリ部屋地図データ５０１を基に掃除ルートを再構築する。次いで、ステップ２１１で、再構築したテンポラリ掃除ルートデータ５０２に従って掃除を行なう。
【００４４】
ステップ２０３において、触覚センサ１１４が障害物に触れた位置にテンポラリ部屋地図データ５０１上で障害物が登録されていない場合は、触覚センサ１１４が触れた障害物を未知障害物として、ステップ２０５に進み、触覚センサ１１４を使って未知障害物の形状認識を行なう。
【００４５】
続いてステップ２０６で、未知障害物の認識した形状と少なくとも一部が一致する形状の障害物がテンポラリ部屋地図データ５０１に有るか否かを探る。一致する形状の障害物が有る場合は、ステップ２０７に進み、属性データ４０２を用いて全体が一致する形状を推定し、ステップ２０８で、推定した形状の障害物をテンポラリ部屋地図データ５０１に登録する。それによってテンポラリ部屋地図データ５０１が更新される。
【００４６】
ステップ２０６において一致する形状の障害物がない場合は、ステップ２０９に進み、未知障害物を新たに出現した障害物とし、未知障害物の形状全体又は未知障害物が存在する領域を把握して、新出現の障害物の属性データを属性データ４０２に加える。ステップ２０８で、形状又は領域を把握した新出現の障害物をテンポラリ部屋地図データ５０１に登録してテンポラリ部屋地図データ５０１を更新する。
【００４７】
ステップ２１２で掃除が全て終了したとき、ステップ２１３で属性データ４０２を更新し（例えば、固定物としていた障害物が動かされていた場合、属性を位置変化する障害物に変更する等）、処理を終了する。
【００４８】
以上により、本発明においては、テンポラリ部屋地図データ５０１及びテンポラリ掃除ルートデータ５０２を掃除の途中で動的に更新することにより、部屋内部の状況が変わっても掃除を完成させることができる。
【００４９】
以上のステップ２０２〜２０８の全体によって実現される機能は▲１▼障害物形状推定機能となり、ステップ２１３によって実現される機能は▲２▼属性データ学習機能となり、更にステップ２１０によって実現される機能は▲３▼掃除ルート再構築機能となり、加えてステップ２０９，２０８によって実現される機能は▲４▼未登録データの新規登録機能となる。以下に、それぞれの詳細を説明する。
【００５０】
図６に▲１▼障害物形状推定機能による処理内容のフロー図を示す。センサデータとテンポラリ部屋地図データ５０１との間に相違が生じる状況としては、前述のように次の２つがある。１つは、未知障害物に遭遇したとしたとき、そしてもう１つはテンポラリ部屋地図データに存在する障害物が無くなったときである。
【００５１】
２つの要因のうち、どちらが起きたのかについて、ステップ６０１にてセンサデータ解析結果を用いて確認し、登録障害物が無くなったのならばステップ６０５へ進み、属性データ４０２から該当障害物を探索し、テンポラリ部屋地図データ５０１から該当障害物の形状を削除する。それによって、同時にテンポラリ部屋地図データ５０１が更新される。そして、▲３▼掃除ルート再構築機能へ処理を移す。
【００５２】
一方、ステップ６０１において、データ相違の要因が未知障害物との遭遇によるものならばステップ６０２へ進み、吸込み部１３２に設置した触覚センサ１１４により未知障害物の形状認識を行ない、認識した形状をテンポラリ部屋地図データ５０１に書き込む。そして、ステップ６０３において、部屋地図データ４０１及び短期記憶属性データ９００を参照し、未知障害物の形状と少なくとも一部が一致する形状データを探索する。
【００５３】
ここで、短期記憶属性データ９００とは、以前に部屋地図データ４０１及び属性データ４０２上に存在していたが、消滅してしまった障害物の形状データ及び属性データであり、これらデータは、一定期間だけ記憶装置２２２に保持される。
【００５４】
部屋地図データ４０１或いは短期記憶属性データ９００の中に未知障害物の形状と少なくとも一部が一致する形状データが存在しない場合は、この未知障害物を新たに出現した物体であるとし、▲４▼未登録データの新規登録へ処理を移す。
【００５５】
一方、未知障害物の形状と少なくとも一部が一致する形状が存在した場合は、形状の一部が一致する障害物の数を確認し、複数存在する場合はステップ６０７において、それぞれの属性データから存在履歴・知識といった形状以外の情報を参照することで優先順位をつけ、一致する形状を１つに絞り込む。このように、一致する形状が１つに絞れたならば、ステップ６０８へ進み、属性データ４０２或いは短期記憶属性データ９００から先ほどの形状が一致した障害物の情報を読み出し、全体形状を推定する。そして、ステップ６０９により、推定結果に基づいてテンポラリ部屋地図データ５０１を更新し、▲３▼掃除ルート再構築機能へ処理を移す。
【００５６】
次に、▲４▼未登録データの新規登録について説明する。図７に処理内容を示す。ステップ１００１にて、該当障害物の形状の全体を把握することができているか、把握は一部のみかを判断する。形状全体を把握の場合は、属性データの障害物ＴＹＰＥを固定障害物、そして他の項目は無効として属性データ４０２に登録し、▲３▼掃除ルート再構築機能へ処理を移す。
【００５７】
一方、形状の把握が一部のみである場合は、ステップ１００３へ進み、把握できている一部の形状範囲から矩形領域を形成し、それを障害物としてテンポラリ部屋地図データ５０１へ登録する。そして、属性データの障害物ＴＹＰＥを固定障害物、そして他の項目は無効として属性データ４０２に新規登録し、▲３▼掃除ルート再構築機能へ処理を移す。
【００５８】
次に、▲３▼掃除ルート再構築機能について説明する。図８に処理内容を示す。障害物形状推定機能での処理の結果、部屋地図データ４０１に存在する障害物が無くなったと推定した場合、ステップ７０２にて、テンポラリ部屋地図データ５０１の未掃引領域に対してルートを再構築し、テンポラリ掃除ルートデータ５０２へ書き込む。この様子を図９に示す。
【００５９】
図９ａは部屋地図データ４０１において、座標値で表した障害物４１４，４１５、掃除ルートデータ４０３及び掃引済領域４１１を示している。今、図９ａの障害物４１４，４１５が無くなった場合、テンポラリ部屋地図データ５０１は図９ｂのように障害物４１４，４１５が無い状態に更新され、未掃引領域に対して掃除ルート５１２が再構築される。以降、この再構築ルート５１２に従ってロボット掃除機は作業を行なうこととなる。
【００６０】
一方、障害物形状推定機能での処理の結果、未知障害物が検知され、その全体形状が推定された場合の処理について説明する。先ず、ステップ７０３にて、テンポラリ部屋地図データの未掃引領域について領域分割を行なう。
【００６１】
図１０に領域分割の処理内容を示す。先ずステップ１１０１にて、部屋地図データ４０１の水平及び垂直方向の頂点から垂線を下ろし領域分割を行なう。次にステップ１１０２にて、辺を共有する領域を統合することで矩形領域を形成し、最大面積となる領域のみを選択する。このステップ１１０２の処理を未選択領域がなくなるまで行なうことで領域分割を実現する。
【００６２】
このようにして領域分割を行なった後、ステップ７０４へ進み、各領域毎に直線ルートを作成する。これらの直線ルートを統合することで掃除ルートを生成し、これをテンポラリ掃除ルートデータ５０２へ書き込む。
【００６３】
ステップ７０３、及びステップ７０４の模式図を図１１に示す。図１１ａは、部屋地図データ４０１において、座標値で表した障害物４１６，４１７、掃除ルートデータ４０３及び掃引済領域４１１を示している。掃除経路上に未知障害物を検知し、その全体形状を既知の障害物４１６，４１７の形状と推定した場合、未知障害物を検知した位置に障害物４１６，４１７が移動したとし、テンポラリ部屋地図データ５０１を図１１ｂのように障害物４１６，４１７が移動した状態に更新する。そして、未掃引領域に対して水平・垂直方向の頂点から垂線を下ろし、領域分割を行なう。更に、図１１ｃに示すように隣接領域を統合し矩形領域を形成させていく。そして、各領域毎に直線ルート４１８を作成し（図１１ｄ）、これらを統合して掃除ルート５１２を再構築する（図１１ｅ）。
【００６４】
なお、図示していないが、未知障害物の形状が登録されている障害物の形状と一致せず、未知障害物が新たに出現した障害物であると判断された場合は、図１１ｂで障害物４１６，４１７は移動せずそのまま置かれる。従って、その場合は、図１１ｅの掃除ルート５１２とは異なる掃除ルートが再構築される。
【００６５】
続いて、ステップ７０５にて、該当障害物の属性データに精密掃除を必要とする掃除方法が登録されている場合は、ステップ７０６へ進み精密掃除を必要とする掃除方法をテンポラリ掃除ルートデータ５０２と統合する。図１２に精密掃除を必要とする掃除方法について示し、また図１３にテンポラリ掃除ルートデータ５０２との統合方法を示す。ステップ７０５にて、該当障害物の属性データに精密掃除を必要とする掃除方法が登録されていない場合は、掃除ルート５１２をテンポラリ掃除ルートデータ５０２に書き込む。
【００６６】
本実施形態で示すロボット掃除機の吸込み部１３２は、ロボットユニット本体１０１とは独立に動作することが可能なため、ロボットユニット本体１０１が通れない領域にも入り込むことができる。属性データ４０２に登録されている掃除方法とは、この吸込み部１３２によって障害物内部を掃除する方法のことである。
【００６７】
例えば図１２ａのように、ロボットユニット本体１０１が通れない領域（障害物内部）４２０を持つ障害物４１９において（障害物４１９を外側に包む凸包形状４２１が形成される）、吸込み部１３２が挿入できるライン（吸込み挿入ライン）４２２を求め、図１２ｂのようにロボット掃除機が吸込み部１３２を挿入する位置・方向を示す点４２３（ロボット位置・方向指示点）を算出する。これらの点から吸込み部１３２を挿入し掃除を行なう。属性データ４０２に登録している掃除方法とは、このロボット位置・方向指示点４２３である。
【００６８】
また、掃除方法は図１３ａに示すように、ロボット位置・方向指示点４２３に最も近い掃除ルート４０３と接続され、図１３ｂのように作業中のロボット掃除機が接続点に到達すると、ロボット位置・方向指示点４２３に従って方向転換を行ない吸込み部１３２により障害物４１９内部の掃除を行なう。
【００６９】
次に、▲２▼属性データ学習機能の処理内容を説明する。図１４に処理内容のフロー図を示す。▲２▼属性データ学習機能は掃除作業が終了する毎に実行される。先ず、部屋地図データ４０１とテンポラリ部屋地図データ５０１の相違比較を行ない、前回作成した部屋地図データ４０１中の障害物に対して、移動した障害物や消滅した障害物の確認を行なう（ステップ８０１）。
【００７０】
この障害物確認を行なう際には、障害物の特徴を考慮する必要がある。例えば、椅子やテーブルの足は、複数の要素（障害物）で１つの障害物を構成している。この特徴を属性データ４０２が管理していなければ正確な障害物確認を行なうことはできない。このように、複数の要素から成る１つの障害物の探索を行なう為に障害物のグループ化を行なう（ステップ８０２）。図１５にその具体例を示す。
【００７１】
図１５において、図１５ａは前回の掃除作業で生成された部屋地図データ４０１、図１５ｂは今回の掃除作業で生成されたテンポラリ部屋地図データ５０１を示している。これら２つのデータの一致を取ったとき、図１５ｂのグループ４２４に示す５つの障害物は図１５ａのデータと不一致な障害物である為、図１５ａの障害物が移動したもの、或いは新たに出現した障害物であることが分かる。
【００７２】
ここで先ず、このグループ４２４で１つの障害物を構成していると仮定する。そして、このグループ４２４の相対座標値を保ったまま平行移動、回転移動を施し、図１５ａのデータに一致する障害物がないか探索を行なう。
【００７３】
続いて、図１５ｃのように、グループ４２４を更に分割し、グループ４２５、グループ４２６でそれぞれ１つの障害物を構成していると仮定し、図１５ａのデータから探索する。このグループ分け作業を障害物の組み合わせの許す限り行なう。そして、図１５ａのデータと一致し、かつグループ中の要素数が最も多い障害物を選択することで、複数の要素からなる１つの障害物を見つけ出すことができる（ステップ８０３）。
【００７４】
また、壁も特徴的な障害物の１つである。壁は壁際の障害物が移動する度にその形状が変化する。従って、壁と壁際の障害物とを正確に区別しなければ、正確な障害物確認を行なうことができない。このような壁形状の探索方法を図１６に示す。
【００７５】
図１６において、図１６ａは前回の掃除作業で生成された部屋地図データ４０１中の壁形状データ４２７、図１６ｂは今回の掃除作業で生成されたテンポラリ部屋地図データ５０１中の壁形状データ４２８を示している。これら２つのデータを統合し、最大面積となる形状を壁形状とする。この壁形状と図１６ｂのテンポラリ部屋地図データ５０１中の壁形状データとの差分から求まる形状を障害物とすることで、図１６ｃのように壁４２９と障害物４３０とを区別することができる（ステップ８０３）。
【００７６】
このような障害物の特徴を考慮した上で、障害物の▲２▼属性データ学習機能が実行される。障害物探索を終えたならばステップ８０４へ進み、ステップ８０１、８０２、８０３の障害物探索の結果、テンポラリ部屋地図データ５０１にはなく部屋地図データ４０１にのみ存在する障害物があった場合は、これを消滅した障害物とし、この障害物の属性データを短期記憶属性データ９００へ移動する（ステップ８０５）。また、部屋地図データ４０１にはなくテンポラリ部屋地図データ５０１にのみ存在する障害物があった場合、この障害物は新たに出現した障害物であり、▲４▼未登録データの新規登録にて既にその属性データは属性データ４０２に登録されている。
【００７７】
ステップ８０４に該当しない障害物に対しては、ステップ８０６へ進み、障害物の絞り込みを行なう。つまり、ステップ８０１、８０２、８０３の障害物探索の結果、テンポラリ部屋地図データ５０１中の１つの障害物が部屋地図データ４０１中の複数の障害物と一致してしまった場合は、ステップ８０７へ進み、それら複数の障害物に対応する属性データ４０２により各障害物の存在履歴や知識を調査することで一致する障害物を１つに絞り込む。こうして１つの障害物を探索できたならば、探索した障害物の移動した位置、その移動位置から割り出される知識データを属性データ４０２に登録する。このようにして、属性データ４０２の更新を行なうことで、次回以降の掃引作業ではより正確な障害物推定と動的地図更新が可能となる。
【００７８】
属性データ４０２の具体例を図１７、障害物ＴＹＰＥの例を分類して図１８に示す。図１７は、障害物ＴＹＰＥがそれぞれ壁、固定障害物（タンス）、日々位置変化障害物（椅子の足）である３つの障害物の属性データ４０２を示す図である。属性データ４０２は、ＩＤ、統合ＩＤ、障害物ＴＹＰＥ、履歴領域数、履歴領域形状データ、掃除方法、知識データの各項目から構成される。
【００７９】
各項目は次のように説明される。
ＩＤ：部屋地図データに記憶されている各障害物と対応づけるための番号
統合ＩＤ：複数の要素（障害物）からなる１つの障害物（例：椅子の足など）に関して、これらの要素に対応づけられた各ＩＤ番号
障害物ＴＹＰＥ：障害物のタイプを示す。（図１８参照）
履歴領域数、履歴領域形状データ：部屋地図データ内において、この障害物が過去に存在していた領域の数と形状座標値をまとめたもの
掃除方法：障害物内部を掃除する際のロボット位置・方向指示点を記憶
知識データ：障害物特有の知識・条件を記述したもの。
【００８０】
図１７において、壁はＩＤ１、固定障害物（タンス）はＩＤ２、日々位置変化障害物は椅子の足ＩＤ３，４，５，６を統合したＩＤ７である。
【００８１】
また、▲２▼属性データ学習機能の具体例を図１９，２０に示す。図１９は部屋地図データ４０１の更新例、図２０は属性データ４０２の更新例を示している。図２０，２１に示すように、１回目の掃除では全ての障害物（ＩＤ１の壁、ＩＤ２，３の障害物、ＩＤ４の障害物）を固定障害物とする。２回目の掃除では、先に説明した障害物のグループ化を用いた探索により、障害物がどのように変化（移動、消滅）したかを解析し、データ更新を行なう。
【００８２】
ここでは、ＩＤ２，３の障害物を１つの障害物と判断し、ＩＤ５を割り当てている。また、ＩＤ２，３，４の障害物は位置が変化していることから、障害物ＴＹＰＥが日々位置変化障害物となり、以前に障害物が存在していた領域６，７（図１９の斜線部分）を履歴領域として記憶する。
【００８３】
そして、掃除方法については、１回目の掃除では障害物がグループ化されていないため障害物内部が存在せず、掃除方法は無効であるが、２回目の掃除でのＩＤ４，５の障害物は内部を含んでいるため、掃除方法であるロボット位置・方向指示点が算出され、属性データ４０２に登録される。更に、障害物の状態から判断される知識データが記憶される。
【００８４】
このように、初回のデータ更新では、全ての障害物を単独の固定障害物としている為、データ更新に時間を要するが、データ更新回数を重ね属性データ４０２が構築されてくると、更新時間が短縮される。
【００８５】
以上、本実施形態により、掃除中に部屋地図を更新し、掃除ルートを再構築することが可能となり、状況が変化した部屋の掃除を完成させることが可能となった。また、障害物の検出に赤外線センサ及び触覚センサを採用したので、障害物の形状を精度良く認識することができ、部屋地図の更新及び掃除ルートの再構築を高精度に行なうことが可能となった。更に、障害物毎に属性データを備えるようにしたので、障害物の形状認識を高精度にかつ高速に行なうことが可能となった。
【００８６】
【発明の効果】
本発明によれば、掃除中に障害物に遭遇したときに、動的に部屋地図を更新しつつ掃除ルートを再構築することが可能になるので、環境の変化に対して即時に対応して清掃を行なうロボット掃除機を実現することができる。また、赤外線センサ及び触覚センサを備えることによって障害物の形状認識を高精度にかつ高速に行なうことが可能となり、精密な清掃作業を実現することができる。更に、ロボット掃除機を低コスト化することができる。
【図面の簡単な説明】
【図１】本発明に係るロボット掃除機の発明の実施の形態を説明するためのシステム構成図。
【図２】図１に示したロボット掃除機のロボットユニットを説明するための上面図。
【図３】図２に示したロボットユニットの制御部とセンサ系・駆動系の関係を説明するための構成図。
【図４】図２に示したロボットユニットの処理内容を説明するためのフロー図。
【図５】本発明のロボット掃除機制御プログラムに従ってコンピュータが実行する処理内容を説明するためのフロー図。
【図６】図５に示した処理内容における障害物形状推定機能を説明するためのフロー図。
【図７】図５に示した処理内容における未登録データの新規登録処理を説明するためのフロー図。
【図８】図５に示した処理内容における掃除ルート再構築機能を説明するためのフロー図。
【図９】掃除ルート再構築の例を説明するための図。
【図１０】掃除ルートを再構築する場合の領域分割を説明するためのフロー図。
【図１１】掃除ルート再構築の別の例を説明するための図。
【図１２】障害物内部の掃除方法の例を説明するための図。
【図１３】属性データ（掃除方法）を統合した掃除ルートの例を説明するための図。
【図１４】図５に示した処理内容における属性データ学習機能を説明するためのフロー図。
【図１５】障害物探索におけるグループ化の例を説明するめの図。
【図１６】壁と障害物を識別する方法の例を説明するための図。
【図１７】属性データの例を説明するための図。
【図１８】障害物ＴＹＰＥの分類例を説明するための図。
【図１９】部屋地図データにおける障害物属性学習機能の例を説明するための図。
【図２０】属性データにおける障害物属性学習機能の例を説明するための図。
【符号の説明】
１００…ロボットユニット、１０１…ロボットユニット本体、１１０…センサデータ取得部、１１１〜１１３…赤外線センサ、１１４…触覚センサ、１２６，１２７…エンコーダ、１３１…アーム部、１３２…吸込み部、１５０，２２５…無線通信モジュール、１６０…駆動部、２００…知能処理ユニット、２２１…ＣＰＵ、２２２…記憶装置、２２４…内部バス、２３５…ロボット掃除機制御プログラム、３００…制御部、４００…データベース、４０１…部屋地図データ、４０２…属性データ、４０３…掃除ルートデータ、５００…メモリ。
【図１】
2004033340.tif 000003
【図２】
2004033340.tif 000004
【図３】
2004033340.tif 000005
【図４】
2004033340.tif 000006
【図５】
2004033340.tif 000007
【図６】
2004033340.tif 000008
【図７】
2004033340.tif 000009
【図８】
2004033340.tif 000010
【図９】
2004033340.tif 000011
【図１０】
2004033340.tif 000012
【図１１】
2004033340.tif 000013
【図１２】
2004033340.tif 000014
【図１３】
2004033340.tif 000015
【図１４】
2004033340.tif 000016
【図１５】
2004033340.tif 000017
【図１６】
2004033340.tif 000018
【図１７】
2004033340.tif 000019
【図１８】
2004033340.tif 000020
【図１９】
2004033340.tif 000021
【図２０】
2004033340.tif 000022