以下、一実施形態の構成を、図面を参照して説明する。
図1ないし図5において、11は自律走行体としての電気掃除機である。そして、電気掃除機11は、本実施形態において、被掃除部である走行対象面としての床面上を自律走行(自走)しつつ床面を掃除する、いわゆる自走式のロボットクリーナ(掃除ロボット)である。
この電気掃除機11は、本体である本体ケース20を備えている。また、この電気掃除機11は、走行駆動部としての駆動輪21を備えている。さらに、この電気掃除機11は、床面の塵埃を掃除する掃除部22を備えている。また、この電気掃除機11は、センサ部23を備えている。さらに、この電気掃除機11は、撮像部24を備えている。また、この電気掃除機11は、コントローラである制御手段としての制御部26を備えている。さらに、この電気掃除機11は、画像を表示する表示部を備えていてもよい。そして、この電気掃除機11は、電源部となる給電用の電池を備えていてもよい。さらに、この電気掃除機11は、外部装置や使用者との間で信号が入出力される入出力部を備えていてもよい。なお、以下、電気掃除機11(本体ケース20)の走行方向に沿った方向を前後方向(図2に示す矢印FR,RR方向)とし、この前後方向に対して交差(直交)する左右方向(両側方向)を幅方向として説明する。
本体ケース20は、例えば合成樹脂などにより形成されている。この本体ケース20は、各種装置や部品を収納可能な形状に形成されている。この本体ケース20は、例えば扁平な円柱状(円盤状)などに形成されていてもよい。また、この本体ケース20には、集塵口である吸込口31などが床面に対向する下部などに設けられていてもよい。
駆動輪21は、電気掃除機11(本体ケース20)を床面上で前進方向および後退方向に走行(自律走行)させる、すなわち走行用のものである。本実施形態では、この駆動輪21は、例えば本体ケース20の左右に一対設けられている。この駆動輪21は、駆動手段としてのモータ33により駆動される。また、この駆動輪21は、本体ケース20に対して、例えば図示しない懸架装置を介して、あるいは自重により、本体ケース20に対して上下動可能に構成されている。したがって、この駆動輪21は、床面の凹凸形状に追従するようになっている。このため、この駆動輪21は、電気掃除機11が床面から持ち上がった場合、あるいは、深い凹段差に入り込んだ場合など、下方からの支持を失った場合に、本体ケース20から下方に突出するようになっている。すなわち、この駆動輪21は、外部の走行対象面(走行面)としての床面に接し、この床面の凹凸に応じて本体ケース20の下部(底面)からの突出量が変化する回転体である。なお、この駆動輪21に代えて、走行駆動部としての無限軌道などを用いることもできる。
モータ33は、駆動輪21に対応して配置されている。したがって、本実施形態では、このモータ33は、例えば左右一対設けられている。そして、このモータ33は、各駆動輪21を独立して駆動させることが可能となっている。
掃除部22は、例えば床面の塵埃を除去するものである。この掃除部22は、例えば床面上の塵埃を吸込口31から集めて捕集したり、床面などを拭き掃除したりする機能を有している。この掃除部22は、吸込口31から空気とともに塵埃を吸い込む電動送風機35と、吸込口31に回転可能に取り付けられて塵埃を掻き上げる回転清掃体としての回転ブラシ36およびこの回転ブラシ36を回転駆動させるブラシモータ37と、本体ケース20の周縁部に回転可能に取り付けられて塵埃を掻き集める旋回清掃部としての補助掃除手段(補助掃除部)であるサイドブラシ38およびこのサイドブラシ38を駆動させるサイドブラシモータ39との少なくともいずれかを備えていてもよい。また、この掃除部22は、吸込口31と連通して塵埃を溜める集塵部40を備えていてもよい。そして、この掃除部22は、本体ケース20に対して所定幅WD(図7)の床面を掃除するように構成されている。本実施形態においては、本体ケース20の前側両側部に配置されたサイドブラシ38,38の外側部間の距離が掃除可能な床面の所定幅WDとなっている。すなわち、この掃除部22は、電気掃除機11が走行することで、床面において、走行方向に対し所定幅WD(図7)の帯状の領域を掃除するように構成されている。
センサ部23は、電気掃除機11(本体ケース20)の走行をサポートする各種の情報をセンシングするものである。より具体的に、このセンサ部23は、例えば床面の凹凸状態(段差)や、電気掃除機11の走行の障害となる壁あるいは障害物、床面の塵埃量などをセンシングするものである。このセンサ部23は、例えば障害物検出手段としての赤外線センサあるいは超音波センサや、吸込口31から集塵部40に吸い込む塵埃量を検出する塵埃量センサ(ごみセンサ)などを備えていてもよい。また、このセンサ部23は、駆動輪21が本体ケース20に対して下方に所定以上突出したことを検出する浮き上がり検出手段としての浮き上がりセンサを備えていてもよい。この浮き上がりセンサは、例えば駆動輪21が本体ケース20に対して下方に所定以上突出した位置でオンオフが切り換わるマイクロスイッチなどにより構成されていてもよい。さらに、このセンサ部23は、電気掃除機11(本体ケース20)の振動などを検出する、振動検出手段としてのジャイロセンサ、加速度センサ、あるいは所定部材の変位を検出するセンサなど、各種の振動センサを備えていてもよい。したがって、電気掃除機11は、障害物検出手段としての赤外線センサあるいは超音波センサを備えてもよい。また、電気掃除機11は、塵埃量センサ(ごみセンサ)を備えていてもよい。さらに、電気掃除機11は、浮き上がり検出手段としての浮き上がりセンサを備えていてもよい。また、電気掃除機11は、振動検出手段としてのジャイロセンサ、加速度センサ、あるいは所定部材の変位を検出するセンサなど、各種の振動センサを備えていてもよい。
撮像部24は、撮像手段(撮像部本体)としてのカメラ51を備えている。また、この撮像部24は、検出補助手段(検出補助部)としてのランプ53を備えていてもよい。したがって、電気掃除機11は、撮像手段(撮像部本体)としてのカメラ51を備えている。また、電気掃除機11は、検出補助手段(検出補助部)としてのランプ53を備えていてもよい。
カメラ51は、本体ケース20の走行方向である前方に向けられており、本体ケース20が載置される床面と平行な方向に対して、所定の水平画角(例えば105°など)でデジタルの画像(動画)を撮像するデジタルカメラである。このカメラ51は、単数でも複数でもよい。本実施形態では、カメラ51は、左右一対設けられている。また、これらカメラ51,51は、互いの撮像範囲(視野)が重なっている。そのため、これらカメラ51,51により撮像される画像は、その撮像領域が左右方向にラップしている。なお、カメラ51により撮像する画像は、例えば可視光領域のカラー画像や白黒画像でもよいし、赤外線画像でもよい。
ランプ53は、カメラ51の撮像方向を照明することで撮像に必要となる明るさを得るものである。このランプ53は、各カメラ51に対応して設けられている。すなわち、ランプ53は、例えば一対設けられている。これらランプ53は、例えばLEDなどが用いられる。これらランプ53は、必須の構成ではない。
制御部26は、例えば制御手段本体(制御部本体)であるCPUやROMおよびRAMなどを備えるマイコンが用いられる。この制御部26は、駆動輪21(モータ33)を駆動させる走行制御手段である走行制御部61を備えている。また、この制御部26は、掃除部22と電気的に接続される掃除制御手段である掃除制御部62を備えている。さらに、この制御部26は、センサ部23と電気的に接続されるセンサ制御手段であるセンサ接続部63を備えている。また、この制御部26は、撮像部24と電気的に接続される検出部64を備えている。さらに、この制御部26は、自己位置推定手段である推定部65を備えている。また、この制御部26は、マッピング手段(マッピング部)である地図作成部66を備えている。さらに、この制御部26は、走行監視手段である監視部67を備えている。また、この制御部26は、記憶手段(記憶部)としてのメモリ68を備えていてもよい。さらに、この制御部26は、電池と電気的に接続されている。また、この制御部26は、電池の充電を制御する充電制御部を備えていてもよい。したがって、電気掃除機11は、走行制御手段である走行制御部61を備えている。また、電気掃除機11は、掃除制御手段である掃除制御部62を備えている。さらに、電気掃除機11は、センサ制御手段であるセンサ接続部63を備えている。また、電気掃除機11は、障害物検出部である検出部64を備えている。さらに、電気掃除機11は、自己位置推定手段である推定部65を備えている。また、電気掃除機11は、マッピング手段(マッピング部)である地図作成部66を備えている。さらに、電気掃除機11は、走行監視手段である監視部67を備えている。また、電気掃除機11は、記憶手段としてのメモリ68を備えていてもよい。さらに、電気掃除機11は、電池の充電を制御する充電制御部を備えていてもよい。
走行制御部61は、モータ33の駆動を制御する、すなわち、モータ33に流れる電流の大きさおよび向きを制御することにより、モータ33を正転、あるいは逆転させることで、モータ33の駆動を制御し、モータ33の駆動を制御することで駆動輪21の駆動を制御するものである。この走行制御部61は、電気掃除機11が配置されて走行可能な領域である走行領域を示す(走行領域に対応する)地図データに基づいてこれから走行する予定の走行経路、すなわち予定経路を設定し、駆動輪21(モータ33)の駆動を制御することで、この予定経路にしたがって本体ケース20(電気掃除機11)を走行領域で自律走行させる走行モードを備えている。この走行制御部61により設定する予定経路としては、地図データ中の走行可能(掃除可能)な領域(障害物や段差などの走行不能な領域を除く領域)を最短の走行距離で走行できる経路、例えば電気掃除機11(本体ケース20)が可能な限り直進する(方向転換が最も少ない)経路、障害物となる物体への接触が少ない経路、あるいは、同じ箇所を重複して走行する回数が最小となる経路など、効率的に走行(掃除)を行うことができるように設定される。すなわち、走行制御部61は、走行済み(掃除済み)領域を避けて予定経路を設定することができる。なお、本実施形態において、電気掃除機11が走行可能な領域は実質的に掃除部22による掃除対象となる領域であるから、走行領域は掃除対象領域と同一となっている。
例えば、上記の走行モードとしては、走行領域をジグザグ状の走行パターンを繰り返す経路に沿って自律走行するジグザグ走行モードとする。ここで、ジグザグ状の自律走行(ジグザグ走行)とは、走行領域において所定の一方向に平行な方向に沿って往復走行を繰り返しながら一方向と交差(直交)する他方向に順次進んで走行領域(掃除対象領域)を塗り潰すように自律走行することをいう。すなわち、ジグザグ状の自律走行とは、走行領域において所定の方向に往復を繰り返しながら、この所定の方向と交差(直交)する方向に向かって進んでいく走行動作をいう。より詳細に、ジグザグ状の自律走行とは、所定の一方向に沿って走行し、その方向に対して交差(直交)する他方向に走行し、所定の一方向に沿って反対方向に走行し、その方向に対して交差(直交)する他方向に走行し、…という走行を順次繰り返す、いわば矩形波状の経路に沿って走行する走行動作をいう。例えば図6ないし図12においては、ジグザグ走行モードとして、走行領域を図中の上下方向に往復しつつ左から右に向かって順次進むように走行する例を挙げて説明している。すなわち、これら図中においては、電気掃除機11の位置に対して図中の左側が走行済み領域、図中の右側が未走行領域となっている。そして、このジグザグ走行モードにおいて、走行制御部61は、例えば地図データから複数の経由点を設定し、これら経由点を直線状に結ぶことで全体としてジグザグ状の予定経路を設定することができる。なお、走行制御部61は、ジグザグ走行モードの他に、その他の予定経路を設定する走行モードを別途備えていてもよい。
上記の通り、走行制御部61は、電気掃除機11がこれから走行する経路である予定経路を設定するとともに、後述の監視部67からの情報を受けて、一旦設定した予定経路を走行中に再構築することもできる。この予定経路の再構築については後述する。
掃除制御部62は、掃除部22の動作を制御するものである。本実施形態において、この掃除制御部62は、電動送風機35、ブラシモータ37およびサイドブラシモータ39の駆動を制御する、すなわち、電動送風機35、ブラシモータ37、および、サイドブラシモータ39の通電量をそれぞれ別個に制御することで、これら電動送風機35、ブラシモータ37(回転ブラシ36)、および、サイドブラシモータ39(サイドブラシ38)の駆動を制御する。
センサ接続部63は、センサ部23による検出結果を取得するものである。
検出部64は、カメラ51により撮像された画像を利用して、電気掃除機11と周囲の物体(電気掃除機11の走行の障害となる壁や家具など)との距離を検出し、電気掃除機11(本体ケース20)からの距離を算出した物体が障害物であるかどうかを判定するように構成されている。この検出部64は、既知の方法を用いて、カメラ51により撮像した画像と、カメラ51間の距離とに基づいて電気掃除機11と周囲の物体との距離を計算するように構成されている。
図4を参照して、カメラ51,51から周囲の物体までの距離を検出する技術の概要を説明する。まず、左右一対で設けられた2つのカメラ51,51のうち一方の撮像画像G1において、距離検出の対象となる物体Oで位置が一意に定まる特徴点SP(角部など)を複数抽出する。この撮像画像G1を撮影したカメラ51から焦点距離fだけ離れた位置に撮像座標平面を設定すると、三次元の座標空間では、カメラ51の中心と撮像座標平面上の各特徴点とを結んだ延長線上に物体Oの特徴点SPが存在するはずである。同様のことを2つのカメラ51,51のうち他方の撮像画像G2を用いて行えば、こちらの撮像座標平面上の各特徴点を結んだ延長線上にも物体Oの特徴点SPが存在するはずである。したがって、物体Oの特徴点SPの三次元座標空間における座標は、2つの撮像座標平面それぞれを通過する延長線上の交わる位置として一意に定めることができる。さらに、2つのカメラ51,51間の距離lに基づくことで、カメラ51,51から物体Oの各特徴点SPまでの実際の空間における距離を取得することができる。このような処理を撮像範囲全体で行うことで、カメラ51,51から周囲の物体までの距離情報を撮像画像に付加した距離画像(いわゆる視差画像)を得ることができる。
図5は、一方のカメラ51による撮像画像G1(図5(a))と、他方のカメラ51による撮像画像G2(図5(b))とに基づいて、距離画像GL(図5(c))を生成した例を示している。図5(c)に例示する距離画像GLでは、明度が高いほど(紙面では白いほど)カメラ51からの距離が近いことを示している。例えばこの距離画像GLの下部は全幅に亘って白くなっており、また下部ほど白さが増して、カメラ51からの距離が近くなっていることから、電気掃除機11が置かれた床面であることが分かる。また、距離画像GL中、全体が同じくらいの白さで所定形状のものは1つの物体として検出することができ、図示する例では物体Oである。上述したように、カメラ51,51から物体Oまでの距離は取得されているので、距離画像GL中の幅W、高さHに基づき、物体Oの実際の幅、高さを知ることもできる。このような情報に加えてカメラ51,51の撮像方向や電気掃除機11の進行方向を考慮すれば、物体Oが電気掃除機11の走行の障害となる障害物か否かを判断することも可能となる。
すなわち、この検出部64は、例えばカメラ51により所定の画像範囲(例えば本体ケース20の幅および高さに対応して設定された画像範囲)中に撮像されている物体の距離を、予め設定された、あるいは可変設定された閾値である設定距離と比較し、この設定距離以下の距離(電気掃除機11(本体ケース20)からの距離)に位置する物体を障害物であると判定するように構成されている。したがって、この検出部64は、カメラ51により撮像された画像に基づいて本体ケース20からの距離を算出した物体が障害物であるかどうかを判定する障害物判定部の機能を備えている。
なお、カメラ51による撮像画像を用いて周囲の物体までの距離を検出する技術については周知であるから、上述以上の詳しい説明は省略するが、上述のように2つのカメラ51,51(いわゆるステレオカメラ)を用いることに限られず、1つのカメラによっても、複数位置からの撮像画像を用いることで視差を利用して距離情報を得ることができる。
また、この検出部64は、例えばカメラ51により撮像された生画像のレンズの歪み補正やノイズの除去、コントラスト調整、および画像中心の一致化などの一次画像処理をする画像補正機能を備えていてもよい。また、この検出部64は、カメラ51やランプ53の駆動を制御する撮像制御部の機能を備えていてもよい。
この検出部64による判定すなわち障害物の検出処理は、例えばカメラ51により撮像した画像の所定フレーム毎に実行することができる。このため、この検出処理は、例えば約0.03秒毎などの短時間のうちに繰り返し実行されてもよい。また、この検出処理は、電気掃除機11が走行している間、継続的に実行されてもよい。
推定部65は、検出部64により検出された本体ケース20の周囲の形状(障害物となる物体の距離および高さ)に基づき走行領域における電気掃除機11の自己位置を推定するものである。具体的に、この推定部65は、カメラ51により撮像した画像中の物体の特徴点の三次元座標に基づき、走行領域における電気掃除機11の自己位置を推定する。
地図作成部66は、カメラ51により撮像された画像に基づいて検出部64により検出された本体ケース20の周囲の形状(障害物となる物体の距離および高さ)に基づき、走行可能な走行領域を示す地図(マップ)データを作成(マッピング)するものである。具体的に、この地図作成部66は、カメラ51により撮像された画像中の物体の特徴点の三次元座標に基づき、検出部64により検出された走行領域内に位置する物体(障害物)などの位置関係および高さを記す地図を作成する。換言すれば、この地図作成部66は、検出部64により判定された物体(障害物)の形状、位置関係および高さを反映した地図データを作成する。この地図データは、例えば所定の座標系(例えば直交座標系)上に作成される。より詳細に、この地図データは、例えばこの座標系に基づき設定されるメッシュを基本単位として作成される。したがって、この地図データには、この座標系を構成する、互いに交差(直交)する基準方向が設定され、この基準方向に基づいて地図データが作成される。この地図作成部66により作成した地図データは、メモリ68に記憶することができる。なお、この地図作成部66は、すでに作成した地図データ中の障害物などの形状や配置と検出部64により検出された周囲の形状や配置とが一致しない場合には、地図データを適宜補正することができる。
そして、これら推定部65による自己位置推定処理および地図作成部66による地図データの作成処理および補正処理には、既知のSLAM(simultaneous localization and mapping)技術を用いることができる。したがって、これら推定部65および地図作成部66は、一体に構成されていてもよい。また、これらの処理は、例えばそれぞれカメラ51により撮像した同一の画像データに基づいて実行されてもよい。これらの処理は、例えばカメラ51により撮像した画像の所定フレーム毎に実行することができる。これらの処理周期は、検出部64による障害物の検出処理と同じでもよいし、異なっていてもよい。このため、これらの処理は、例えば約0.1秒毎などの短時間のうちに繰り返し実行されてもよい。また、これらの処理は、電気掃除機11が走行している間、継続的に実行されてもよい。さらに、推定部65による自己位置推定処理は、累積誤差によって精度が低下することも想定されるため、例えばジグザグ走行モードにおいては、方向転換する際に地図データと推定した自己位置とを照合することで自己位置推定の精度をチェックするようにしてもよい。仮に推定した自己位置が地図データと一致しない場合、すなわち自己位置をいわば見失ってしまった場合には、電気掃除機11は所定の動作、例えばその場で360°旋回してカメラ51により周囲の画像を取得するなどの動作をすることで、推定部65により自己位置を再取得してもよい。
なお、上述のSLAM技術、すなわち、周囲をセンシングして走行可能な領域を示す地図データを作成するとともに、その地図データにおける電気掃除機11の自己位置を取得する技術は、上述のようにカメラ51の撮像画像を利用する方法に限られない。例えば、赤外線センサを利用したり、角速度センサと加速度センサとを併用したりして周囲をセンシングする方法もあり、SLAM技術についても特定の方法に限らず、各種の方法を用いることができる。
監視部67は、電気掃除機11の自己位置が、走行時に、走行制御部61により設定された予定経路から外れた位置(予定経路に対してずれた位置)にあるか否かを監視するものである。この監視部67による自己位置の監視については後述する。
メモリ68は、例えばフラッシュメモリなどの不揮発性のものが用いられる。このメモリ68には、地図作成部66により作成された地図データとともに、この地図データにおける走行済み(掃除済み)領域が記憶される。そして、地図データに対応する走行領域中の各座標位置(例えば地図データの座標系に基づき設定されるメッシュ)を通過した回数がメモリ68に記憶されることで、1回の掃除中において、その位置を走行済み(掃除済み)であるか否か、および、その位置を何回走行したかをメモリ68に記憶することができる。なお、このメモリ68には、複数の走行領域に対応して複数の地図データがそれぞれ記憶されてもよい。
入出力部は、図示しないリモコンなどの外部装置から送信される制御コマンドや、本体ケース20に設けられたスイッチ、あるいはタッチパネルなどの入力手段から入力される制御コマンドを取得するとともに、例えば電池の充電用の図示しない充電装置などに対して信号を送信するものである。
電池は、掃除部22、センサ部23、撮像部24、および、制御部26などに給電するものである。この電池としては、本実施形態において、例えば充電可能な二次電池が用いられる。このため、本実施形態では、例えば本体ケース20の外部に、電池を充電するための図示しない充電端子が露出して配置されていてもよい。
次に、上記一実施形態の動作を説明する。
まず、電気掃除機11による掃除の開始から終了までの概略を説明する。電気掃除機11は、掃除を開始すると、メモリ68に記憶された地図データに基づいて走行しつつ床面を掃除し、地図データを随時更新していく。また、走行中に、自己位置が設定された予定経路から外れた場合には、設定されていた予定経路に沿った新たな予定経路を再構築する(リカバリ動作)。そして、掃除が終了すると、電気掃除機11は、例えば充電装置などへと帰還した後、電池の充電作業に移行する。
上記の制御をより具体的に説明すると、電気掃除機11は、例えば予め設定された掃除開始時刻となったときや、リモコンまたは外部装置によって送信された掃除開始の制御コマンドを入出力部によって受信したときなどのタイミングで、制御部26が走行モードに切り換わり、掃除を開始する。このとき、メモリ68に走行領域の地図データが記憶されていない場合には、所定の動作を行ってカメラ51、検出部64、およびセンサ部23などによって電気掃除機11(本体ケース20)の周囲の障害物などを検出することで地図作成部66により地図データを作成することもできるし、外部から地図データを入力または読み込むこともできる。
次いで、地図データに基づき、走行制御部61が予定経路を作成する。例えば、本実施形態では、電気掃除機11(本体ケース20)が走行領域をジグザグ状に走行する経路(以下、ジグザグ走行)とする。
そして、走行制御部61が駆動輪21(モータ33)を制御することで本体ケース20を設定した予定経路にしたがって自律走行させつつ、掃除制御部62が掃除部22を動作させて走行領域(掃除対象領域)の床面を掃除する(掃除モード)。掃除部22では、例えば掃除制御部62により駆動された電動送風機35、ブラシモータ37(回転ブラシ36)、あるいはサイドブラシモータ39(サイドブラシ38)により床面の塵埃を、吸込口31を介して集塵部40へと捕集する。また、電気掃除機11は、自律走行の際、センサ部23や検出部64により地図に記されていない走行領域内の障害物などの物体を検出すると、その物体の三次元座標を取得して地図作成部66が地図データに反映させ、メモリ68に記憶していく。さらに、地図データにおいて走行済み(掃除済み)の領域をメモリ68に記憶していくことで、走行済み(掃除済み)の領域を必要以上に繰り返して走行(掃除)しないよう、走行制御部61が予定経路を設定する。
このような走行制御は、推定部65による自己位置の推定精度が求められることに加え、電気掃除機11も設定された予定経路通りに走行することが必要である。しかしながら、例えば毛並みの多い絨毯や凸凹がある段差、あるいは人やペットとの不意な衝突などにより、想定通りの走行ができない場合も予想される。
例えば図6(a)に示すように、床面Fに配置された絨毯C上を走行する場合、左右の駆動輪21が不均一にスリップすることにより、左右のいずれかにずれる可能性がある。また、例えば図6(b)に示すように、段差D上を走行する場合、進入する角度や方向により、一方の駆動輪21のみが一時的に床面Fから浮き上がり、電気掃除機11が斜めになってしまうことで、進行方向が変化する可能性がある。これらの場合、電気掃除機11を設定された予定経路に復帰させるように自律走行させる(図中の二点鎖線に示す)方法も考えられるものの、そのまま、ずれ始めた位置に復帰してしまうと、走行済み領域が歪になることで、走行済み領域を避けて走行しようとすると歪な予定経路が設定されてしまうなど、複雑な走行制御が必要になったり、走行距離が長くなったりするなど、走行効率が低下して、走行領域(掃除対象領域)を走行(掃除)し終えるまでに時間を要するおそれがある。
そこで、本実施形態では、例えば走行中に監視部67により常に自己位置を監視しておき、電気掃除機11の自己位置が意図していない位置、つまり設定された予定経路どおりに走行ができず、予定経路から自己位置が外れてしまった場合には、実際に走行してきた現在の経路(現在経路)に応じて、これら走行する予定の予定経路を再構築するリカバリ動作を実施する。そのために監視部67は、電気掃除機11の地図データ上における自己位置が予定経路から外れていないか監視し、自己位置が予定経路から外れている場合にはその旨を示す情報を走行制御部61に送る。以下、監視部67で実行される処理について説明する。
例えば、監視部67は、電気掃除機11の予定経路、すなわち電気掃除機11の進行方向に対して交差する方向、さらには直交(略直交も含む)する方向である垂直成分の距離を監視することで、電気掃除機11の自己位置が予定経路から外れた位置であるか否かを判定することができる。監視部67は、例えば図7に示すように、電気掃除機11の自己位置が予定経路RT(破線に示す)に対して掃除部22により掃除する所定幅WDに対応する距離(閾値距離)分、予定経路に対して垂直成分の距離がずれた場合に、自己位置が予定経路RTから外れた、意図していない位置であると判定する。この所定幅WDに対応する距離とは、所定幅WDそのものでもよいし、所定幅WDに対して僅かに異なる略所定幅(例えば、所定幅WD±1cmなど)でもよい。このずれを判定するための閾値距離としては、所定幅より大きく設定する場合、床面Fに塵埃が残った領域、すなわちごみ残しが生じるおそれはあるものの、例えば所定幅または略所定幅の整数倍に設定されていれば、床面Fを効率よく塗り潰すように走行できる。一方、所定幅より小さく設定する場合、例えば所定幅WDよりもかなり小さい値(例えば10cm)などとして設定すると、予定経路RTに対して僅かにずれただけで意図しない位置にあると判定されるため、都度予定経路の再構築が必要となり、予定経路がかえって歪になるおそれがある。したがって、ずれを判定するための閾値距離は、これらを考慮して、予定経路に対して垂直成分の距離が所定幅WDまたは上記略所定幅、あるいはこれらいずれかの整数倍などとすることが好ましい。
また、監視部67は、例えば電気掃除機11の本体ケース20の向き(すなわち現在の進行方向)に基づき、電気掃除機11の自己位置が予定経路から外れた位置であるか否かを判定してもよい。監視部67は、例えば図8に示すように、予定経路RTに沿って電気掃除機11が経由点、あるいは目標地点などに向かって一方向に直進している場合、この走行方向に対して電気掃除機11の本体ケース20の向きが所定以上の角度差θ(例えば5°以上など)を有する場合に、自己位置が予定経路RTから外れた、意図していない位置にあると判定する。
さらに、監視部67は、例えば駆動輪21の床面Fから浮き上がりに基づき電気掃除機11の自己位置が予定経路RTから外れた位置であるか否かを判定してもよい。駆動輪21の浮き上がりは、例えば浮き上がりセンサの検出結果に基づいて判定できる。監視部67は、例えば図9に示すように、使用者が電気掃除機11を持ち上げて別の場所に移動させたことを検出したときに、自己位置が予定経路RTから外れた、意図していない位置であると判定する。このとき、ジャイロセンサや加速度センサなどを電気掃除機11が備える場合には、例えば地図データ上の現在位置と、移動されている時のジャイロセンサや加速度センサなどの値から、電気掃除機11が現在選択している地図データに対応する走行領域内にあるか、その他の走行領域内にあるかを推定し、同じ走行領域内にあると判断すれば、リカバリ動作を実施して走行(掃除)を再開できる。
なお、監視部67は、電気掃除機11の振動を検出する振動センサを電気掃除機11が備える場合には、この検出により電気掃除機11の自己位置の予定経路からのずれの要因となる人やペットとの衝突や段差の通過により生じる振動を検出することもできる。
そして、本実施形態において、予定経路の再構築(リカバリ動作)とは、予定経路から外れた電気掃除機11の位置を自己位置が外れる前の位置(外れる前の位置近傍も含む)などに戻すことなく、先に走行(掃除)を進めるように予定経路を構築し直すことをいう。この予定経路の再構築は、好ましくは予め設定された予定経路を基準として行う。
例えば、図10に示すように、自己位置が予定経路RTから外れた位置が走行領域中の未走行(未掃除)領域であった場合には、走行制御部61は現在位置つまり監視部67により自己位置が予定経路RTから外れた位置と判定された位置から、予定経路RTに沿った新たな予定経路RTNを再構築し、当初予定していた予定経路RTに戻らずに走行(掃除)を再開する。この図10に示す例の場合、新たな予定経路RTNは、例えば当初予定していた予定経路RTと同形状のジグザグ状で、かつ、この予定経路RTに対して未走行領域側にずれたものとする。すなわち、電気掃除機11が置かれた部屋(走行領域)の任意の位置から、走行済みの領域を徐々に広げるような態様で予定経路を設定するようにして走行済みの領域側と未走行の領域側とが区別される場合に、電気掃除機11の現在の自己位置が、予定経路RTから未走行の領域側に外れたときには、予定経路RTとは異なる経路の新たな予定経路RTNを再構築する。
また、図11に示すように、自己位置が予定経路RTから外れた位置が走行領域中の走行済み(掃除済み)領域であった場合には、予定経路RT中の現在位置から最も近い未走行位置に移動して、その位置から新たな予定経路RTNを当初予定していた予定経路RTに沿って再構築する。この図11に示す例の場合、新たな予定経路RTNは、例えば当初予定していた予定経路RTと同形状のジグザグ状で、かつ、この予定経路RTと一致(略一致)するものとする。すなわち、電気掃除機11が置かれた部屋(走行領域)の任意の位置から、走行済みの領域を徐々に広げるような態様で予定経路を設定するようにして走行済みの領域側と未走行の領域側とが区別される場合に、電気掃除機11の現在の自己位置が、予定経路RTから走行済みの領域側に外れたときには、予定経路RTに合流(復帰)することとし、現在の自己位置から予定経路RTに合流(復帰)する経路を含めた新たな予定経路RTNを再構築する。
なお、走行済み(掃除済み)領域であるか未走行(未掃除)領域であるかは、現在設定されている予定経路に基づいて判定してもよい。すなわち、例えば走行領域をより隈なく掃除(走行)するために、走行制御部61が同じ走行領域に対して(異なる)予定経路を複数回設定して走行する場合も想定される。このため、このような場合には、現在の予定経路において未走行(未掃除)の領域は、それ以前の予定経路において走行済み(掃除済み)の領域であっても、上記定義する未走行(未掃除)領域と判定してもよい。
また、本実施形態では、予定経路RTがジグザグ状となるジグザグ走行の場合について説明しているが、例えば壁際など、電気掃除機11の位置によっては、走行方向をその直前の走行方向と必ずしも一致させないほうが走行領域を無駄なく、効率よく走行できる場合もあるため、リカバリ動作後の走行方向については、電気掃除機11の自己位置に応じて適宜設定することができる。
また、図12に示すように、自己位置が当初予定していた予定経路RTから外れた位置が元々作成されていた予定経路RTの軌道上の走行予定の位置にある場合には、その位置から予定経路RTに乗ってこの予定経路RTを継続して走行する。つまり、監視部67により自己位置が予定経路RTから外れた位置と判定されたときに、その位置が地図データの未走行領域にあって、かつ、当初予定していた予定経路(すなわち、その判定がなされる前に設定された予定経路RT)上にある場合、当初の予定経路RTのうち未走行の部分が存在することになり、これに対して走行制御部61は、飛ばした部分(予定通りならば走行していたはずの部分)を省略して、当初の予定経路RTのうち現在の自己位置から始まる予定経路RTを新たな予定経路RTNとして再構築する。
上述したように、上記一実施形態によれば、走行制御部61が、予定経路から外れたことに応じて新たな予定経路を再構築することで、不必要な走行制御や走行距離、走行時間を抑制して走行領域において円滑に走行を継続でき、地図データに基づいて走行領域を精度よく、かつ、効率よく走行できる。したがって、地図データに基づいて、より短時間で掃除残しが少ない、高品位の掃除が可能になる。
具体的に、走行制御部61は、監視部67により自己位置が予定経路から外れた位置にあると判定したときに、その位置が地図データの未走行領域にある場合には、実際に走行してきた経路(現在経路)にしたがって(延長として)新たな予定経路をその位置から再構築することで(図10)、例えば外れる前の当初の予定経路の位置に復帰する場合のように走行済み領域が歪になることを抑制できる。このため、歪な走行済み領域を避けるように予定経路を設定したり、歪な走行済み領域を回避するように走行制御したりする必要がなく、不必要な走行制御や走行距離、走行時間を抑制して走行領域において円滑に、かつ、効率よく走行を継続できる。
また、走行制御部61は、監視部67により自己位置が予定経路から外れた位置にあると判定したときに、その位置が地図データの走行済み領域にある場合には、その判定がなされる前に設定された予定経路に合流するように現在の自己位置から新たな予定経路を再構築することで(図11)、走行済みの予定経路を繰り返し走行することなく、かつ、未走行の予定経路に短距離、短時間で効率よく移動して走行を継続できる。
さらに、走行制御部61は、監視部67により自己位置が予定経路から外れた位置にあると判定したときに、その位置が地図データの未走行領域にあって、かつ、予定経路上にある場合には、その位置から予定経路にしたがって新たな予定経路を再構築することで(図12)、走行済みの予定経路に復帰するなどの無駄な動きをすることなく、元の予定経路上に円滑に復帰できる。言い換えると、当初予定していた予定経路から一旦外れて、予定経路の一部分を飛ばした場合には、その一部分に戻ることなく走行を続けるようにすることで、予定経路の複雑化を避けることができる。なお、この場合、その回の掃除完了後に未掃除領域が残る可能性も生じ得るが、その領域の面積はごく僅かであるし、予定していた予定経路と実際に走行した経路(実行経路)とに基づいて未清掃領域を算出して記憶しておき、次回以降の掃除の際に確実に通過するようにしてもよい。
また、監視部67は、電気掃除機11の進行方向に対して交差(直交)する方向の距離に基づき自己位置が予定経路から外れた位置にあるか否かを監視することで、電気掃除機11の自己位置の予定経路から外れたことを、効果的に監視できる。
具体的に、監視部67は、進行方向に対して交差(直交)する方向の距離が、掃除部22により掃除可能な所定幅WDに対応する距離以上となった場合に、自己位置が予定経路から外れた位置にあると判定することで(図7)、例えば絨毯C(図6(a))に乗り上げて駆動輪21がスリップしたりして電気掃除機11が横ずれした場合などでも、電気掃除機11の自己位置が予定経路から外れたことを検出でき、電気掃除機11が予定経路に対して所定幅WDに対応する距離以上外れないように走行制御できる。このため、掃除部22が通らない走行領域が生じることを抑制でき、掃除部22によるごみ残しを抑制するように走行領域を走行できる。
また、監視部67は、本体ケース20の向き、すなわち電気掃除機11の進行方向に基づき自己位置が予定経路から外れた位置にあるか否かを監視することで、電気掃除機11の自己位置の予定経路から外れたことを、効果的に監視できる。すなわち、自己位置が予定経路から外れたか否かは、自己位置と予定経路とを地図データ上の座標位置で照らし合わせることで判定する他に、電気掃除機11の進行方向と予定経路上の進行方向とを照らし合わせることでも判定できるし、これらを併用することで判定精度の向上を図ってもよい。
具体的に、監視部67は、本体ケース20の走行中の向きが予定経路における走行方向に対して所定以上の角度差を有する場合に、自己位置が予定経路から外れた位置にあると判定する(図8)。すなわち、予定経路に対する自己位置のずれが仮に小さくても進行方向が大きくずれていれば、その後直ぐに予定経路に対する自己位置が大きく外れていくことになる。そこで、電気掃除機11の進行方向の角度ずれが所定以上である場合には、自己位置に関わらず予定経路を再構築することで、自己位置が予定経路から大きく外れてしまうことを未然に防ぎ、ひいては電気掃除機11の走行が右往左往することを抑止できる。例えば一方の駆動輪21が段差D(図6(b))に乗り上げたり、電気掃除機11(本体ケース20)が人やペットなどと衝突したりして走行中の向きが意図せずに変わった場合などでも、電気掃除機11の自己位置が予定経路から外れたことを検出できる。
さらに、監視部67は、駆動輪21の床面からの浮き上がりに基づき自己位置が予定経路から外れた位置にあるか否かを監視することで(図9)、使用者などによる電気掃除機11の床面からの持ち上げに起因する電気掃除機11の自己位置の予定経路から外れたことを、効果的に監視できる。
なお、図11に示した例では、自己位置から予定経路RTを結ぶ最短経路を構築して当初予定していた予定経路RTに復帰することを説明したが、復帰の仕方はこれに限られず、より予定経路RTと平行に近い斜めの角度で予定経路RTに復帰するようにしてもよい。この場合、上述のように最短経路を構築する場合と比べて、予定経路RTのうち未走行のまま残る部分が長くなる一方で、復帰のための走行を目立ちにくくすることができる。
上記一実施形態において、走行制御部61、掃除制御部62、センサ接続部63、検出部64、推定部65、地図作成部66、監視部67などは、それぞれ制御部26に備える構成としたが、それぞれ別個に備えていてもよいし、任意に一体的に組み合わせてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。