以下では、本発明に係る自律走行型掃除機等の実施の形態について、図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。したがって、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。
なお、当業者が本発明を十分に理解するために添付図面及び以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
また、各図は、模式図であり、必ずしも厳密に図示されたものではない。また、各図において、実質的に同一の構成に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
また、以下の実施の形態においては、略三角形等の「略」を用いた表現を用いている。例えば、略三角形とは、完全に三角形であることを意味するだけでなく、実質的に三角形である、すなわち、例えば角丸な三角形等も含むことも意味する。他の「略」を用いた表現についても同様である。
また、以下の実施の形態においては、所定の空間のフロアを走行して掃除する自律走行型掃除機を鉛直上方側から見た場合を上面視とし、鉛直下方側から見た場合を底面視として記載する場合がある。
(実施の形態)
[構成]
まず、実施の形態に係る自律走行型掃除機100の構成について、図1〜図5を参照しながら説明する。
図1は、実施形態に係る自律走行型掃除機100の外観を示す斜視図である。図2は、実施の形態に係る自律走行型掃除機100の外観を示す底面図である。
自律走行型掃除機100は、所定の空間を自律走行して掃除する自律走行型掃除機である。
まず、自律走行型掃除機100は、カメラ60等を用いて所定の空間(より具体的には、所定の空間内)を撮像しながら走り回ることで、所定の空間の地図を示す地図情報(データ)を生成する。
次に、自律走行型掃除機100は、生成した地図情報に基づいて、所定の空間を掃除する際に走行する走行経路を算出する。次に、自律走行型掃除機100は、算出した走行経路で、所定の空間を走行して掃除する。
自律走行型掃除機100は、所定の空間の様子をカメラ60、及び、クリフセンサ等のセンサを用いて観測することにより、フロア上に存在する物体(障害物)を避けるかを自律的に判定し、障害物が存在する場合には算出した掃除ルートから離脱して当該障害物を避けながら走行して掃除する。
自律走行型掃除機100は、例えば、SLAM(Simultaneous Localization and Mapping)により、掃除する所定の空間の地図情報の生成と、生成した地図情報に示される地図における自律走行型掃除機100の自己位置の推定とを行う。
自律走行型掃除機100は、例えば、本体部10と、2つの車輪20と、2つのサイドブラシ30と、レーザ測距計40と、メインブラシ50と、カメラ60と、深度センサ70とを備える。
本体部10は、自律走行型掃除機100が備える各構成要素を収容する筐体である。本実施の形態では、本体部10は、上面視において、略三角形状である。なお、本体部10の上面視における形状は、特に限定されない。本体部10の上面視形状は、例えば、略矩形状でもよいし、略円形状でもよい。図2に示すように、本体部10は、底面に吸込口11を有する。
2つの車輪20は、自律走行型掃除機100を走行させるための車輪である。
サイドブラシ30は、本体部10の下面に設けられ、所定の空間のフロア(以下、単にフロアともいう)を掃除するためのブラシである。本実施の形態では、自律走行型掃除機100は、2つのサイドブラシ30を備える。自律走行型掃除機100が備えるサイドブラシ30の数は、1つでもよし、3つ以上でもよく、特に限定されない。
レーザ測距計40は、自律走行型掃除機100と、所定の空間における物体、壁面等との距離を測定するためのセンサである。レーザ測距計40は、例えば、本体部10の上部に設けられている。レーザ測距計40は、例えば、いわゆるLIDAR(Light Detection and Ranging)である。
メインブラシ50は、本体部10の下面に設けられている開口である吸込口11に配置され、フロアのゴミを吸引するためのブラシである。
カメラ60は、本体部10に配置され、所定の空間を撮像することで画像を生成する撮像装置である。
深度センサ70は、例えば、カメラ60により生成された画像に含まれる障害物等の被写体と自律走行型掃除機100との距離を検出するセンサである。深度センサは、例えば、赤外線センサである。
図3は、実施の形態に係る自律走行型掃除機の特徴的な機能構成を示すブロック図である。
図3に示すように、自律走行型掃除機100は、レーザ測距計40と、カメラ60と、深度センサ70と、検知部(障害物検知部)110と、スタック検知部190と、障害物管理部120と、計画生成部130と、制御部140と、記憶部150と、吸引部160と、駆動部170と、清掃部180と、を備える。
検知部110は、レーザ測距計40等の自律走行型掃除機100が備える各種センサから、当該各種センサにより検出されたセンサデータを取得する処理部である。検知部110は、例えば、当該各種センサと制御線等によりセンサデータが取得可能に接続されている。検知部110は、自律走行型掃除機100の周辺の障害物の態様を示す障害物情報を検知(取得)する。ここで、障害物の態様とは、障害物の種類、障害物の色、所定の空間における障害物の位置、及び、障害物のサイズのうちの少なくとも1つである。つまり、障害物情報は、例えば、障害物の種類、障害物の色、所定の空間における障害物の位置、及び、障害物のサイズのうちの少なくとも1つを障害物の態様として示す情報である。
なお、検知部110は、予め記憶部150に記憶されている障害物の典型的な画像等と比較することで、障害物の種別(例えば、マット又はコード等)を特定し、特定した障害物を障害物情報として出力してもよい。
検知部110は、例えば、障害物種類検知部111と、距離検知部112と、相対位置検知部113と、自己位置検知部114と、障害物座標検知部115とを含む。
障害物種類検知部111は、カメラ60が生成した画像を取得し(つまり、画像が入力され)、当該画像を画像解析することで当該画像に含まれる障害物の種類を検知する。障害物種類検知部111は、例えば、カメラ60から画像を生成した時刻と、当該画像のR(Red)、G(Green)、及び、B(Blue)を示す数値及び画像における位置を示す識別番号(ピクセル番号)等、つまり、ピクセルごとのRGB値をカメラ60から取得し、画像解析することで、障害物の種類及び障害物の色等を検知する。
また、障害物種類検知部111は、これらの障害物の種類、及び、障害物の色等を示す障害物情報を障害物の種類として距離検知部112及び相対位置検知部113に、当該画像が撮影された時刻を示す時刻情報と紐づけて出力する。
また、障害物種類検知部111は、画像に含まれる障害物のバウンディングボックス(障害物を囲む外接矩形の枠)を算出し、算出したバウンディングボックスの下線の位置(より具体的には、ピクセル位置)を示す情報を距離検知部112に出力する。
また、障害物種類検知部111は、算出したバウンディングボックスの中心位置(より具体的には、ピクセル位置)、バウンディングボックスの縦のピクセル数及び横のピクセル数等を示す情報を距離検知部112に出力する。
距離検知部112は、障害物種類検知部111が検知した、カメラ60が生成した画像に含まれる障害物と自律走行型掃除機100との距離を検知(つまり、測定又は算出)する。距離検知部112は、例えば、当該画像に含まれる障害物について、深度センサ70が検知した障害物と自律走行型掃除機100との距離を検知する。例えば、記憶部150には、予め本体部10におけるカメラ60の設置位置を示す位置情報、及び、本体部10のサイズを示すサイズ情報等が記憶されている。距離検知部112は、これら情報に基づいて、本体部10と画像に含まれる障害物との距離(より具体的には、最も近接する距離である最近接距離)を検知する。距離検知部112は、検知した距離を示す距離情報を画像が撮影された時刻、障害物情報等と紐づけて計画生成部130に出力する。
相対位置検知部113は、深度センサ70から画像のピクセルごとの距離(相対距離)を取得し(つまり、距離を示す情報が入力され)、障害物種類検知部111が検知した障害物について、自律走行型掃除機100に対する、深度センサ70が検知した当該障害物の相対的な位置を検知する。例えば、相対位置検知部113は、自律走行型掃除機100の位置を原点とした場合における、当該障害物の予め定められた座標における位置(相対位置)を検知する。相対位置検知部113は、検知した相対位置を、画像が撮影された時刻、障害物情報、深度センサ70が検出した相対距離等と紐づけて障害物座標検知部115に出力する。
自己位置検知部114は、所定の空間における自律走行型掃除機100の位置を検知する。自己位置検知部114は、例えば、レーザ測距計40から入力された自律走行型掃除機100の周囲に位置する、障害物、壁等を含む物体との距離と、生成した地図情報とに基づいて、当該地図情報が示す地図における自律走行型掃除機100の座標を算出する。自己位置検知部114は、検知した自己位置を示す自己位置情報を検知した時刻等と紐づけて障害物座標検知部115、スタック検知部190、障害物管理部120、及び、計画生成部130に出力する。
障害物座標検知部115は、相対位置検知部113が検知した自律走行型掃除機100に対する物体の相対位置と、自己位置検知部114が検知した自律走行型掃除機の地図における位置とから、地図における障害物の位置を検知する。障害物座標検知部115は、検知した障害物の位置を示す位置情報と障害物の種類を示す種類情報とを紐づけて障害物情報として障害物管理部120に出力する。
スタック検知部190は、自律走行型掃除機100が障害物にスタックしたか否かを検知する処理部である。ここで、スタックとは、自律走行型掃除機100が障害物に乗り上げて移動できなくなった状態を示す。スタック検知部190は、駆動部170の駆動状態を示す駆動情報と、自己位置検知部114が検知した自律走行型掃除機100の自己位置とから、自律走行型掃除機100がスタックしたか否かを検知する。スタック検知部190は、例えば、駆動部170が所定時間駆動されたにもかかわらず、自己位置の変化が無い場合、自律走行型掃除機100がスタックしたと判定する。自己位置検知部114は、検知結果、つまり、自律走行型掃除機100がスタックしたか否かを示すスタック情報を障害物管理部120に出力する。
なお、上記した検知部110及びスタック検知部190等で出入力される情報は一例であり、障害物情報を障害物管理部120及び計画生成部130に出力するための上記以外の情報の入出力が実行されてもよい。
また、自律走行型掃除機100は、例えば、各種センサとして、レーザ測距計40、カメラ60、及び、深度センサ70以外にも、自律走行型掃除機100が設置されている位置からフロア面までの距離を計測するクリフセンサ、自律走行型掃除機100の移動を検知するスリップセンサ、自律走行型掃除機100から任意の物体までの距離を検知する超音波センサ等を備えてもよい。また、例えば、自律走行型掃除機100は、自律走行型掃除機100が進行する方向を算出するために用いられるオドメトリ情報を検出するためのセンサを備えてもよい。
障害物管理部120は、障害物情報とスタック検知部190で検知した検知結果とに基づいて、当該障害物に対して自律走行型掃除機100がスタックした回数を算出して、障害物情報とスタックした回数を示す回数情報とを紐づけて記憶部150に記憶させる処理部である。具体的には、障害物管理部120は、検知部110で検知した障害物の種類、及び、所定の空間を示す地図における位置を示す障害物データベース151を生成して記憶部150に記憶させる。障害物管理部120は、記憶部150に障害物データベース151が予め記憶されている場合、検知部110での検知結果に基づいて、障害物データベース151を更新する。
記憶部150は、障害物データベース151及び走行パターンデータベース152を記憶する記憶装置である。
障害物データベース151は、所定の空間における障害物の情報を含むテーブル情報である。
図4は、実施の形態に係る自律走行型掃除機100が保持する障害物データベース151の一例を示す図である。
障害物データベース151は、例えば、ID情報151Aと、障害物情報151Fと、回数情報151Eとを含む。障害物情報151Fは、種類情報151Bと、位置情報151C、151Dとを含む。種類情報151Bと、位置情報151C、151Dとは、それぞれ障害物情報の一例である。
ID情報151Aは、各障害物を識別するための識別子である。本実施の形態では、ID情報151Aとして「0001」等の数値が示されている。
種類情報151Bは、障害物の種類(種別)を示す情報である。本実施の形態では、種類情報151Bには、マット、コード、及び、段差等が含まれる。障害物の種類は、マット等の物体だけでなく、段差等の構造物の一部でもよい。
位置情報151C、151Dは、対応する障害物の位置を示す情報である。本実施の形態では、位置情報は、障害物の概略矩形の中心位置を、X座標(位置情報151C)及びY座標(位置情報151D)として含む。
回数情報151Eは、対応する障害物に自律走行型掃除機100がスタックした回数を示す情報である。
例えば、障害物データベース151のID情報151Aに含まれるID:0001には、障害物の種類としてマットと、当該マットの中心位置(XY座標)として(X、Y)=(500、500)と、スタック回数として0回とが、紐付けられている。例えば、自律走行型掃除機100が(X、Y)=(500、500)の障害物にスタックした場合、障害物管理部120は、障害物データベース151のID:0001のマットの回数情報151Eに含まれるスタック回数を、0から1に更新する。
障害物管理部120は、障害物の種類等を示す障害物情報と、当該障害物に対する自律走行型掃除機の100のスタック回数を示す回数情報とを計画生成部130に出力する。
再び図3を参照し、計画生成部130は、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100の掃除態様を示す計画情報を生成する処理部である。例えば、自律走行型掃除機100が所定の空間をどのように走行して掃除するかを示す掃除計画(計画情報)を生成する処理部である。
例えば、計画生成部130は、所定の空間の地図を示す地図情報を取得する。計画生成部130は、例えば、自律走行型掃除機100が備える各種センサ、及び、自己位置検知部114から自己位置を示す自己位置情報等に基づいて、地図情報をSLAMにより生成する。自律走行型掃除機100が外部の通信機器と通信するための図示しない通信インターフェースを備え、当該通信インターフェースを介して当該通信機器から地図情報を取得してもよい。地図情報は、予め記憶部150に記憶されていてもよい。また、計画生成部130は、地図情報に基づいて、自律走行型掃除機100の走行経路、具体的には、車輪モータ171の回転数、車輪20の向き等の駆動部170の制御方法である走行方法を決定した計画情報を生成する。計画生成部130は、例えば、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100が走行する走行経路を決定した計画情報を生成する。具体的に例えば、計画生成部130は、回数情報151Eに基づいて、駆動部170の駆動方法を決定した計画情報を生成する。
また、計画生成部130は、吸引部160の制御方法(例えば、吸引力、より具体的には、吸引モータ161の回転数)、車輪モータ171の回転数、車輪20の向き等の駆動部170の制御方法、及び、清掃部180の制御方法(例えば、ブラシモータ181の回転数)等を含む掃除方法を示す計画情報を生成する。計画生成部130は、例えば、障害物情報151Fと回数情報151Eとに基づいて、吸引部160の吸引力(具体的には、吸引モータ161の回転数)を決定した計画情報を生成する。また、例えば、計画生成部130は、障害物情報151Fと回数情報151Eとに基づいて、ブラシモータ181の回転数を決定した計画情報を生成する。
このように、計画生成部130は、検知部110で検出された障害物に対して、どのように走行及び掃除するか、つまり、掃除方法及び走行方法を示す掃除態様を決定し、決定した掃除態様となるように自律走行型掃除機100、より具体的には、吸引部160、駆動部170、及び、清掃部180を制御部140に制御させるための制御内容を含む計画情報を生成する。
制御部140は、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100を制御する処理部である。具体的には、制御部140は、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100が備える吸引部160、駆動部170、及び、清掃部180を制御する。より具体的には、制御部140は、計画生成部130が生成した計画情報に基づいて、吸引部160、駆動部170、及び、清掃部180を制御することで、自律走行型掃除機100に所定の空間を自律走行させて掃除させる。本実施の形態では、制御部140は、障害物管理部120が算出した障害物データベース151と、走行パターンデータベース152とに基づいて、吸引部160、駆動部170、及び、清掃部180を制御する。
図5は、実施の形態に係る自律走行型掃除機100が保持する走行パターンデータベース152の一例を示す図である。
走行パターンデータベース152は、種類情報152Aと、回数情報152Bと、掃除態様情報152Cとを含む。
種類情報152Aは、障害物の種類を示す情報である。
回数情報152Bは、障害物に自律走行型掃除機100がスタックした回数を示す情報である。
掃除態様情報152Cは、対応する障害物に対して自律走行型掃除機100がスタックした回数が回数情報152Bに含まれるスタック回数の場合における、自律走行型掃除機100の当該障害物に対する掃除態様を示す情報である。なお、本実施の形態では、掃除態様情報152Cには、走行方法(走行パターン)、つまり、制御部140が制御する駆動部170の制御方法についてのみ示しているが、制御部140が制御する吸引部160が備える吸引モータ161の回転数、及び、制御部140が制御する清掃部180が備えるブラシモータ181の回転数等を示す掃除方法を示す情報が含まれていてもよい。
例えば、自律走行型掃除機100は、障害物の種類がマットである場合、スタック回数が0回のときには通常速度で当該マットに直進して乗り上げる動作をする。また、例えば、自律走行型掃除機100は、障害物の種類がマットである場合、スタック回数が1回のときには、1秒間だけ通常速度1.5倍の速度で当該マットに直進して乗り上げる動作をする。また、例えば、自律走行型掃除機100は、障害物の種類がマットである場合、スタック回数が2回のときには、1秒間だけ通常速度1.5倍の速度で当該マットに半径30cmの円弧走行、つまり、曲がりながら走行して乗り上げる動作をする。また、例えば、自律走行型掃除機100は、障害物の種類がマットである場合、スタック回数が5回のときには、当該マットに乗り上げる動作をせず、回避(例えば、折り返し)して走行する。
これらのように、制御部140は、障害物にスタックした回数に基づいて、障害物に対して異なる掃除態様となるように、自律走行型掃除機100(より具体的には、吸引部160、駆動部170、及び、清掃部180)を制御する。より具体的には、計画生成部130は、障害物管理部120が生成した障害物データベース151と走行パターンデータベース152に基づいて、障害物に対しする掃除態様を決定し、決定した掃除態様となるように、制御部140が吸引部160、駆動部170、及び、清掃部180にさせるように、計画情報を生成する。
なお、障害物は、自律走行型掃除機100の走行の妨げになる可能性がある物体であればよく、段差等、建屋のフロアの一部でもよい。例えば、自律走行型掃除機100は、障害物の種類が段差である場合、スタック回数が1回のときには、逆向きに直進して当該段差に乗り上げる動作をする。
また、上記では、走行パターンデータベース152の掃除態様情報152Cに障害物に乗り上げる動作又は回避する動作が含まれる例について説明したが、これに限定されない。例えば、走行パターンデータベース152には、障害物から降りる動作等、スタックする可能性のある動作について、障害物の種類及びスタック回数と、走行パターン(つまり、掃除態様)とが紐付けられていてもよい。
検知部110と、障害物管理部120と、計画生成部130と、制御部140と、の各種処理部は、例えば、上記した処理を実行するための制御プログラムと、当該制御プログラムを実行するCPU(Central Processing Unit)とから実現される。検知部110と、障害物管理部120と、計画生成部130と、制御部140との各種処理部は、1つ又は複数のCPUで実現されてもよい。
記憶部150は、障害物データベース151と走行パターンデータベース152とを記憶するメモリである。記憶部150は、例えば、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。また、記憶部150には、例えば、制御部140等の各種処理部が実行する制御プログラムが記憶されている。
吸引部160は、所定の空間のフロア面を吸引することで、当該フロア面のゴミを吸引するための機構である。吸引部160は、例えば、吸引モータ161を備える。
吸引モータ161、ファンと接続され、当該ファンを回転させることでフロア面のゴミを吸引するためのモータである。
駆動部170は、自律走行型掃除機100を走行させるための機構である。駆動部170は、例えば、車輪モータ171を備える。
車輪モータ171は、車輪20と接続され、車輪20を回転させるためのモータである。
自律走行型掃除機100は、駆動部170が有する2つの車輪20の回転が独立して制御されることで、直進、後退、左回転、右回転等、自在に走行することができる。なお、自律走行型掃除機100は、車輪モータ171により回転させない車輪(補助輪)をさらに備えてもよい。
清掃部180は、フロア面を清掃するための機構である。清掃部180は、例えば、ブラシモータ181を備える。
ブラシモータ181は、メインブラシ50等のブラシと接続され、メインブラシ50等のブラシを駆動(回転)させるためのモータである。
[処理手順]
<概要>
続いて、自律走行型掃除機100の処理手順の概要について、図6を参照しながら説明する。
図6は、実施の形態に係る自律走行型掃除機100が実行する処理を示すフローチャートである。
まず、自律走行型掃除機100は、掃除開始信号を受信する(ステップS101)。例えば、自律走行型掃除機100は、図示しない受信部を備える。ユーザは、操作卓等を操作して自律走行型掃除機100に掃除を開始する旨を示す掃除開始信号を送信する。自律走行型掃除機100は、当該掃除開始信号を、当該受信部で受信する。受信部は、例えば、信号を受信するための光センサ、信号がスマートフォン等の通信機器から送信される場合は無線通信回路等の通信インターフェース等である。なお、自律走行型掃除機100は、受信部ではなく、本体部10に取り付けられ、ユーザからの指示を取得するためのボタン等の操作部を有してもよい。自律走行型掃除機100は、当該操作部がユーザに操作されることで、掃除開始信号を取得してもよい。
次に、計画生成部130は、計画情報を生成する(ステップS102)。例えば、計画生成部130は、記憶部150に記憶されている所定の空間の地図を示す地図情報に基づいて、走行経路を算出し、算出した走行経路で吸引部160、駆動部170、及び、清掃部180を制御することで、自律走行型掃除機100に走行させ掃除させるための計画情報を生成する。なお、記憶部150に地図情報が存在しない場合、例えば、計画生成部130は、制御部140に自律走行型掃除機100を所定の空間を走行させて、SLAMにより所定の空間の地図を示す地図情報を生成してもよい。
次に、制御部140は、計画生成部130が生成した計画情報に基づいて、吸引部160、駆動部170、及び、清掃部180を制御することで、自律走行型掃除機100に走行させ掃除させる(ステップS103)。
次に、計画生成部130は、掃除が完了したか否かを判定する(ステップS104)。例えば、計画生成部130は、自己位置検知部114等の検知結果に基づいて、自律走行型掃除機100が走行した経路の軌跡を算出し、算出した軌跡が、計画情報が示す走行経路と一致する、つまり、計画情報が示す走行経路を全て走行したか否かを判定する。
計画生成部130が、掃除計画が完了したと判定した場合(ステップS104でYes)、例えば、制御部140は、駆動部170を駆動させて走行を開始した初期位置に自律走行型掃除機100を戻し、処理を終了する。
一方、計画生成部130が、掃除が完了していないと判定した場合(ステップS104でNo)、障害物管理部120は、スタック検知部190が自律走行型掃除機100のスタックを検知したか否かを判定する(ステップS105)。具体的には、スタック検知部190は、自律走行型掃除機100が障害物にスタックしたか否かを検知する。
障害物管理部120は、スタック検知部190が自律走行型掃除機100のスタックを検知したと判定した場合(ステップS105でYes)、自己位置検知部114から自律走行型掃除機100の位置を取得し、取得した位置に存在する障害物について、障害物データベース151の回数情報151Eに含まれるスタック回数を書き換え(つまり、更新)する(ステップS106)。
一方、障害物管理部120が、スタック検知部190が自律走行型掃除機100のスタックを検知していないと判定した場合(ステップS105でNo)、計画生成部130は、検知部110が障害物を検知したか否かを判定する(ステップS107)。具体的には、検知部110は、自律走行型掃除機100の周辺の障害物の態様を示す障害物情報を検知する。
計画生成部130は、検知部110が障害物を検知したと判定した場合(ステップS107でYes)、検知した障害物の態様を示す障害物情報に基づいて、走行パターンデータベース152を参照することで当該障害物に対する掃除態様を選択し(ステップS108)、処理をステップS102に戻す。具体的には、計画生成部130は、障害物データベース151に基づいて当該障害物に対するスタック回数を取得し、走行パターンデータベース152に基づいて当該障害物に対するスタック回数に対する掃除態様を取得する。次に、計画生成部130は、ステップS102では、ステップS108で取得した掃除態様となるように制御部140に制御させる計画情報を生成する。次に、制御部140は、ステップS103では、障害物情報151Fと回数情報151Eとに基づいて、より具体的には、障害物情報151Fと回数情報151Eとに基づいて計画生成部130が生成した計画情報に基づいて、自律走行型掃除機100を制御する。
一方、計画生成部130が、検知部110が障害物を検知したと判定した場合(ステップS107でYes)、制御部140は、処理をステップS103に戻す。
上記ステップを繰り返すことで、障害物管理部120は、自律走行型掃除機100が障害物にスタックする毎に、ステップS107で検知した障害物の態様を示す障害物情報151Fと、ステップS105で検知した検知結果とに基づいて、当該障害物に対するスタックした回数を算出し、障害物情報151Fと回数情報151Eとを紐づけて記憶部150に記憶(ステップS106)する。
<掃除態様の選択処理>
続いて、図6に示す掃除態様の選択処理(ステップS108)の詳細について、図7を参照しながら説明する。
図7は、図6に示す掃除態様の選択処理(ステップS108)の詳細を示すフローチャートである。
まず、障害物種類検知部111が検知した障害物について、相対位置検知部113は、検知した自律走行型掃除機100に対する当該障害物の位置から、自律走行型掃除機100と当該対象物との距離(相対距離)を算出する(ステップS201)。
次に、障害物座標検知部115は、所定の空間を示す地図における予め定められた座標軸に対する対象物の位置座標を算出する(ステップS202)。
次に、障害物管理部120は、障害物座標検知部115が検知した位置座標の障害物が、障害物データベース151に登録されている障害物であるか否かを判定する(ステップS203)。
障害物管理部120は、障害物座標検知部115が検知した位置座標の障害物が、障害物データベース151に登録されている障害物であると判定した場合(ステップS203でYes)、障害物データベース151から当該障害物に対する自律走行型掃除機100のスタック回数を示す回数情報151Eを取得し、取得した回数情報151Eを計画生成部130に出力する(ステップS204)。
一方、障害物管理部120は、障害物座標検知部115が検知した位置座標の障害物が、障害物データベース151に登録されている障害物でないと判定した場合(ステップS203でNo)、障害物データベース151に当該障害物の情報を追加する(ステップS205)。
次に、計画生成部130は、取得した回数情報151E及び走行パターンデータベース152に基づいて、当該障害物に対する掃除態様を選択して決定する(ステップS206)。
<スタック回数の書き換え処理>
続いて、図6に示すスタック回数の書き換え処理(ステップS106)の詳細について、図8を参照しながら説明する。
図8は、図6に示すスタック回数の書き換え処理(ステップS106)の詳細を示すフローチャートである。
まず、自己位置検知部114は、スタック検知部190が自律走行型掃除機100のスタックを検知した場合、自律走行型掃除機100の自己位置を検出することで、スタックした位置を検出する(ステップS301)。
次に、障害物管理部120は、自己位置検知部114が検知した位置と同じ位置で障害物データベース151に登録されている障害物があるか否かを判定する(ステップS302)。
障害物管理部120は、自己位置検知部114が検知した位置と同じ位置で障害物データベース151に登録されている障害物があると判定した場合(ステップS302でYes)、障害物データベース151において、自己位置検知部114が検知した位置と同じ位置の障害物に対応するスタック回数を1追加する(ステップS303)。
一方、障害物管理部120は、自己位置検知部114が検知した位置と同じ位置で障害物データベース151に登録されている障害物がないと判定した場合(ステップS302でNo)、処理を終了する。
なお、障害物管理部120は、自己位置検知部114から自律走行型掃除機100の位置を取得し、取得した位置に、障害物データベース151に障害物が存在しない場合(つまり、ステップS302でNoの場合)、障害物データベース151に新たに障害物を追加してもよい。障害物の種類が特定できない場合、障害物管理部120は、種類情報151Bをブランクの状態のままで障害物データベース151を更新してもよい。
[掃除態様の具体例]
続いて、自律走行型掃除機100の掃除態様の具体例について、図9〜図14を参照しながら説明する。
図9〜図11、図13及び図14は、実施の形態に係る自律走行型掃除機100の掃除態様の一例を示す図である。なお、図9〜図11、図13及び図14は、自律走行型掃除機100がこの順の時系列で走行等の処理をしている場合を示す図である。また、図9〜図11、図13及び図14は、所定の空間CAを上方から見た模式図である。また、本具体例では、所定の空間CAに障害物の一例であるマット220Aが存在するとする。
図9に示すように、計画生成部130は、例えば、掃除開始信号を受信した場合、所定の空間CAの地図を示す地図情報に基づいて、破線矢印で示す走行経路PPを生成する。また、計画生成部130は、走行を開始する場所を原点とする座標を算出する。
なお、自律走行型掃除機100は、地図情報を保持していない場合、所定の空間CAを走り回りながらSLAMにより地図情報を生成する。その場合、計画生成部130は、座標の原点として、例えば、充電器210の位置を設定してもよい。
本具体例では、自律走行型掃除機100は、地図情報を予め保持(つまり、記憶部150に記憶)しており、且つ、充電器210に接続されており、充電器210に接続された位置を原点としたとする。
また、例えば、計画生成部130は、進行する向きをX軸正方向とし、X軸に直交する方向をY軸方向と設定する。この場合、自律走行型掃除機100が走行を開始する前は、自己位置が(X、Y、進行する向き)=(0m、0m、0°)となる。
なお、(X、Y、進行する向き)のXには、例えば、原点からのX軸方向への距離が含まれる。また、例えば、(X、Y、進行する向き)のYには、原点からのY軸方向への距離が含まれる。また、例えば、(X、Y、進行する向き)の進行する向きには、X軸正方向に対して自律走行型掃除機100が進行する角度が含まれる。
図10に示すように、自律走行型掃除機100が図9に示す状態から走行経路に従って軌跡Tを通過して走行したとする。自律走行型掃除機100(より具体的には、検知部110)は、例えば、カメラ60で撮影範囲Vを撮影して障害物が存在するか否かを判定しながら走行し続ける。例えば、図10に示す自律走行型掃除機100の自己位置は、(X、Y、進行する向き)=(0.6m、0.6m、180°)である。
図11に示すように、カメラ60は、例えば、マット220Aを撮影したとする。つまり、検知部110がマット220Aを検知したとする。
図12は、実施の形態に係る自律走行型掃除機100が走行中に生成した画像200の一例を示す図である。
図12には、マット220Aの画像であるマット220Bが写り込んでいる。検知部110は、画像200中のマット220Bの概略矩形であるバウンディングボックスBBを生成し、生成したバウンディングボックスBBの中心をマット220Bの位置として算出する。また、検知部110は、画像200中のマット220Bの位置から、所定の空間CAに位置するマット220Aの位置を算出する。ここでは、検知部110は、カメラにより画像が生成された時刻を示す時刻情報及び障害物情報として、(撮影日時、種類、相対距離、位置する向き)=(201906131145、マット、0.9m、25°)を検知している。例えば、撮影日時には、2019年6月13日11時45分を示す数字列が含まれている。また、相対距離には、バウンディングボックスBBの中心に対応するマット220Aの位置から自律走行型掃除機100(より具体的には、本体部10)までの最近接距離が含まれている。位置する向きには、自律走行型掃除機100が進行する方向と、自律走行型掃除機100から見たバウンディングボックスBBの中心に対応するマット220Aの位置する方向とのなす角度が含まれている。
なお、制御部140が障害物に対する制御を実行するか否か、より具体的には、計画生成部130が障害物に対して回数情報に基づく計画情報を生成するか否かは、画像200に障害物が写り込んでいるか否かに限定されない。例えば、計画生成部130及び制御部140は、画像200における、自律走行型掃除機100が通過する予定の、一点鎖線で示す2つの通過予測線230間の領域に障害物が写り込んでいる場合に、上記した障害物に対する処理を実行してもよい。
図13に示すように、検知部110は、図12に示す画像200からマット220Aの相対座標(相対距離、位置する向き)=(0.9m、25°)を算出する。また、検知部110は、自己位置を算出する。図13に示す具体例では、自己位置は、(X、Y、進行する向き)=(−0.5m、1.2m、0°)であるとする。また、検知部110は、マット220Aの相対座標と自己位置とから、マット220Aの位置座標(言い換えると、原点からの絶対座標)を算出する。本具体例では、マット220Aの位置座標は、(−0.5+0.9×cos25°、1.2+sin25°)である。障害物管理部120は、マット220Aの位置座標と一致する障害物が障害物データベース151に登録されているか否かを判定する。ここでは、例えば、マット220Aの位置座標と一致する障害物が障害物データベース151に登録されており、且つ、スタック回数に対応する掃除態様が回避走行であったとする。
図14に示すように、計画生成部130は、マット220Aに対して回避走行するように、図13に示す走行経路PPを再度計算し直した走行経路PP1を生成する。制御部140は、計画生成部130が生成した走行経路PP1に沿って走行するように、駆動部170を制御することで、自律走行型掃除機100に走行を再開させる。
なお、自律走行型掃除機100がマット220Aに対して回避走行する際に、折り返す地点、言い換えると、自律走行型掃除機100とマット220Aとが最も近接する距離は、任意でよい。予め任意の距離が定められていてもよい。本具体例では、図12に示すバウンディングボックスBBの下辺に対応する位置から30cm離れた位置を、折り返し地点としている。
[効果等]
以上のように、実施の形態に係る自律走行型掃除機100は、所定の空間を自律走行して掃除する自律走行型掃除機である。自律走行型掃除機100は、自律走行型掃除機100の周辺の障害物の態様を示す障害物情報151Fを検知する検知部110と、自律走行型掃除機100が障害物にスタックしたか否かを検知するスタック検知部190と、検知部110で検知した障害物情報151Fと、スタック検知部190で検知した検知結果とに基づいて、当該障害物に対して自律走行型掃除機100がスタックした回数を算出して、障害物情報151Fとスタック回数を示す回数情報151Eとを紐づけて記憶部150に記憶させる障害物管理部120と、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100を制御する制御部140と、を備える。具体的には、制御部140は、障害物管理部120が算出した障害物データベース151と、走行パターンデータベース152とに基づいて、吸引部160、駆動部170、及び、清掃部180を制御する。
これによれば、自律走行型掃除機100は、スタック回数に応じて障害物に対する走行方法を変更できる。これにより、自律走行型掃除機100は、例えば、走行経路によってはスタックせずに乗り越え可能な障害物に対して、回避せずに乗り越える動作をすることができる。このように、自律走行型掃除機100によれば、個々の障害物に最適な掃除方法を実施することができる。
また、例えば、自律走行型掃除機100は、さらに、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100の掃除態様を示す計画情報を生成する計画生成部130を備える。制御部140は、計画生成部130が生成した計画情報に基づいて、自律走行型掃除機100を制御する。
これによれば、制御部140は、計画情報に基づいて、個々の障害物に最適な掃除方法で、吸引部160、駆動部170、及び、清掃部180を駆動することで掃除できる。
また、例えば、計画生成部130は、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100が走行する走行経路を決定した計画情報を生成する。具体的に例えば、計画生成部130は、回数情報151Eに基づいて、駆動部170の駆動方法を決定した計画情報を生成する。
また、例えば、自律走行型掃除機100は、さらに、ゴミを吸引する吸引部160を備える。この場合、計画生成部130は、障害物情報151Fと回数情報151Eとに基づいて、吸引部160の吸引力(具体的には、吸引モータ161の回転数)を決定した計画情報を生成する。
また、例えば、自律走行型掃除機100は、さらに、ブラシ(例えば、メインブラシ50)を駆動させるブラシモータ181を備える。この場合、計画生成部130は、障害物情報151Fと回数情報151Eとに基づいて、ブラシモータ181の回転数を決定した計画情報を生成する。
これらによれば、制御部140は、計画情報に基づいて、個々の障害物にさらに最適な掃除方法で、吸引部160、駆動部170、及び、清掃部180を駆動することで掃除できる。
また、例えば、障害物情報151Fは、障害物の種類(種類情報151B)、障害物の色、所定の空間における障害物の位置(位置情報151C、151D)、及び、障害物のサイズのうちの少なくとも1つを障害物の態様として示す。
これによれば、制御部140は、例えば、障害物の種類又は障害物の位置によってはスタックしやすい又はスタックしにくい等、個々の障害物にさらに最適な掃除方法で、吸引部160、駆動部170、及び、清掃部180を制御することで自律走行型掃除機100に走行させ掃除させることができる。
また、実施の形態に係る自律走行型掃除機100の制御方法は、所定の空間を自律走行して掃除する自律走行型掃除機の制御方法であって、自律走行型掃除機100の周辺の障害物の態様を示す障害物情報151Fを検知する障害物検知ステップ(ステップS107)と、自律走行型掃除機100が障害物にスタックしたか否かを検知するスタック検知ステップ(ステップS105)と、障害物検知ステップで検知した障害物情報151Fと、スタック検知ステップで検知した検知結果とに基づいて、当該障害物に対するスタックした回数を算出し、障害物情報151Fとスタックした回数を示す回数情報151Eとを紐づけて記憶部150に記憶する障害物管理ステップ(ステップS106)と、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100を制御する制御ステップ(ステップS103)と、を含む。
これによれば、自律走行型掃除機100は、スタック回数に応じて障害物に対する走行方法を変更できる。これにより、自律走行型掃除機100は、例えば、走行経路によってはスタックせずに乗り越え可能な障害物に対して、回避せずに乗り越える動作をすることができる。このように、自律走行型掃除機100によれば、個々の障害物に最適な掃除方法を実施することができる。
なお、本発明は、上記自律走行型掃除機100の制御方法に含まれるステップをコンピュータに実行させるプログラムとして実現されてもよい。
具体的には、本発明に係るプログラムは、所定の空間を自律走行して掃除する自律走行型掃除機100の制御方法をコンピュータに実行させるためのプログラムであって、自律走行型掃除機100の周辺の障害物の態様を示す障害物情報を検知する障害物検知ステップと、自律走行型掃除機100が障害物にスタックしたか否かを検知するスタック検知ステップと、障害物検知ステップで検知した障害物情報151Fと、スタック検知ステップで検知した検知結果とに基づいて、当該障害物に対するスタックした回数を算出し、障害物情報151Fとスタックした回数を示す回数情報151Eとを紐づけて記憶部150に記憶する障害物管理ステップと、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100を制御する制御ステップと、を含む自律走行型掃除機100の制御方法をコンピュータに実行させるためのプログラムである。
これによれば、本実施の形態に係る自律走行型掃除機100の制御方法が、コンピュータにより簡便に実行され得る。
また、本発明は、上記プログラムを記録したコンピュータによって読み取り可能なCD−ROM等の非一時的な記録媒体として実現されてもよい。また、本発明は、そのプログラムを示す情報、データ又は信号として実現されてもよい。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信されてもよい。
(変形例)
以下、変形例に係る自律走行型掃除機について、図15〜図17を参照しながら説明する。
なお、以下で説明する変形例に係る自律走行型掃除機においては、実施の形態に係る自律走行型掃除機100と同一の構成については同一の符号を付し、説明を一部簡略化又は省略する場合がある。
図15は、変形例に係る自律走行型掃除機100aの特徴的な機能構成を示すブロック図である。
自律走行型掃除機100aは、レーザ測距計40と、カメラ60と、深度センサ70と、検知部(障害物検知部)110aと、スタック検知部190と、障害物管理部120と、計画生成部130aと、制御部140aと、記憶部150aと、吸引部160と、駆動部170と、清掃部180と、を備える。
検知部110aは、レーザ測距計40等の自律走行型掃除機100aが備える各種センサから、当該各種センサにより検出されたセンサデータを取得する処理部である。検知部110aは、例えば、当該各種センサと制御線等によりセンサデータが取得可能に接続されている。
また、検知部110aは、所定の空間に人が存在するか否かを検知する。本実施の形態では、障害物種類検知部111aは、カメラ60から取得した画像を画像解析することで、所定の空間に人が存在するか否かを検知する。
計画生成部130aは、自律走行型掃除機100aが所定の空間をどのように走行して掃除するかを示す掃除計画(計画情報)を生成する処理部である。
また、計画生成部130aは、検知部110aによる人の有無の検知結果に基づいて、計画情報を生成する。
制御部140aは、計画生成部130が生成した計画情報に基づいて、吸引部160、駆動部170、及び、清掃部180を制御することで、自律走行型掃除機100に所定の空間を自律走行させて掃除させる処理部である。
図16は、変形例に係る自律走行型掃除機100が保持する走行パターンデータベース153の一例を示す図である。
走行パターンデータベース153は、種類情報152Aと、回数情報152Bと、第1掃除態様情報153Aと、第2掃除態様情報153Bと、を含む。
第1掃除態様情報153Aは、対応する障害物に対して自律走行型掃除機100aがスタックした回数が回数情報152Bに含まれるスタック回数の場合における、自律走行型掃除機100の当該障害物に対する掃除態様を示す情報である。第1掃除態様情報153Aは、例えば、図5に示す掃除態様情報152Cと同様である。
また、第2掃除態様情報153Bは、対応する障害物に対して自律走行型掃除機100aがスタックした回数が回数情報152Bに含まれるスタック回数の場合に、自律走行型掃除機100が当該障害物に対して走行する方法を示す情報である。
ここで、第2掃除態様情報153Bは、第1掃除態様情報153Aよりも走行パターン(つまり、掃除態様)が障害物に対して自律走行型掃除機100aがスタックしにくい走行パターンとなっている。
例えば、計画生成部130aは、検知部110aが所定の空間に人が存在すると検知した場合には、第1掃除態様情報153Aに基づいて計画情報を生成し、検知部110aが所定の空間に人が存在しないと検知した場合には、第2掃除態様情報153Bに基づいて計画情報を生成する。
なお、本実施の形態では、第1掃除態様情報153A及び第2掃除態様情報153Bのそれぞれには、走行方法(走行パターン)、つまり、制御部140aが制御する駆動部170の制御方法についてのみ示しているが、制御部140aが制御する吸引部160が備える吸引モータ161の回転数、及び、制御部140が制御する清掃部180が備えるブラシモータ181の回転数等を示す掃除方法を示す情報が含まれていてもよい。
制御部140aは、検知部110aによる人の有無の検知結果に基づいて、自律走行型掃除機100aの掃除態様を制御する。より具体的には、制御部140aは、検知部110aによる人の有無の検知結果に基づいて計画生成部130に生成された計画情報に基づいて、吸引部160、駆動部170、及び、清掃部180を制御することで、自律走行型掃除機100aの掃除態様を制御する。
また、例えば、計画生成部130は、予め設定された時刻に制御部140aが自律走行型掃除機100aの制御を開始するか否かを判定し、判定結果に基づいて、計画情報を生成する。例えば、ユーザは、いわゆる予約機能を用いて、予め設定された時刻に自律走行型掃除機100aに所定の空間を掃除させる場合がある。この場合、自律走行型掃除機100aが掃除を開始するタイミングにおいては、所定の空間にユーザが存在しない可能性が高い。そこで、計画生成部130は、制御部140aが予め設定された時刻に自律走行型掃除機100aの制御を開始するか否かを判定し、予め設定された時刻に自律走行型掃除機100aを制御すると判定した場合には、第2掃除態様情報153Bに基づく掃除態様となるように制御部140aに制御させる計画情報を生成し、制御部140aが予め設定された時刻ではないタイミングで自律走行型掃除機100aの制御を開始する場合には、第1掃除態様情報153Aに基づく掃除態様となるように制御部140aに制御させる計画情報を生成する。言い換えると、計画生成部130は、例えば、予め設定された時刻に自律走行型掃除機100aの動作を開始する旨を示す予約情報を受け付けているか否かを判定し、判定結果に基づいて、計画情報を生成する。
また、自律走行型掃除機100aは、ユーザからの予め設定された時刻に自律走行型掃除機100aの動作を開始する旨を示す予約情報を受け付けるためのボタン、タッチパネル等の操作部、又は、当該時刻をユーザが操作するスマートフォン等のコンピュータから通信で取得するための通信インターフェース等を備えてもよい。
また、自律走行型掃除機100aは、時間を計測するためのRTC(Real Time Clock)等の計時部を備えてもよい。
検知部110aと、障害物管理部120と、計画生成部130aと、制御部140aと、の各種処理部は、例えば、上記した処理を実行するための制御プログラムと、当該制御プログラムを実行するCPUとから実現される。検知部110aと、障害物管理部120と、計画生成部130aと、制御部140aとの各種処理部は、1つ又は複数のCPUで実現されてもよい。
記憶部150aは、障害物データベース151と走行パターンデータベース153とを記憶するメモリである。記憶部150aは、例えば、HDD、フラッシュメモリ等により実現される。また、記憶部150には、例えば、制御部140a等の各種処理部が実行する制御プログラムが記憶されている。
なお、自律走行型掃除機100aは、図1に示す自律走行型掃除機100と同様に、例えば、本体部10と、2つの車輪20と、2つのサイドブラシ30と、レーザ測距計40と、メインブラシ50と、カメラ60と、深度センサ70とを備える。
[処理手順]
続いて、自律走行型掃除機100aの処理手順について説明する。以下で説明する第1例は、自律走行型掃除機100aが所定の空間における人の有無を検知する場合における処理手順を示す。また、以下で説明する第2例は、自律走行型掃除機100aが予め定められた時刻に動作を開始したか否かを判定する場合における処理手順を示す。
<第1例>
図17は、変形例に係る自律走行型掃除機100aが実行する処理の第1例を示すフローチャートである。より具体的には、図17は、図7に示す走行方法の選択処理(ステップS206)の詳細を示すフローチャートである。自律走行型掃除機100aは、例えば、自律走行型掃除機100と同様に、図5〜図7に示すフローチャートを実行することで、所定の空間を掃除する。
図17に示すように、まず、計画生成部130aは、検知部110aが人を検知したか否かを判定する(ステップS401)。
計画生成部130aは、検知部110aが人を検知したと判定した場合(ステップS401でYes)、走行パターンデータベース153に含まれる第1掃除態様情報153Aを選択する(ステップS402)。
一方、計画生成部130aは、検知部110aが人を検知していないと判定した場合(ステップS401でNo)、走行パターンデータベース153に含まれる第2掃除態様情報153Bを選択する(ステップS403)。
次に、計画生成部130aは、ステップS402又はステップS403で選択した掃除態様情報、及び、図7に示すステップS204で取得した回数情報151Eに基づいて、障害物に対する掃除態様を選択して決定する(ステップS404)。
<第2例>
図18は、変形例に係る自律走行型掃除機100aが実行する処理の第2例を示すフローチャートである。より具体的には、図18は、図7に示す走行方法の選択処理(ステップS206)の詳細を示すフローチャートである。自律走行型掃除機100aは、例えば、自律走行型掃除機100と同様に、図5〜図7に示すフローチャートを実行することで、所定の空間を掃除する。
図18に示すように、まず、計画生成部130aは、自律走行型掃除機100aが掃除を開始する際に、予め定められた時刻に開始させるか否か、つまり、予約情報に基づいて自律走行型掃除機100aに掃除を開始させる予約走行であるか否かを判定する(ステップS501)。例えば、計画生成部130aは、予約情報を受け付けているか否かを判定する。
計画生成部130aは、予約走行ではないと判定した場合(ステップS501でNo)、走行パターンデータベース153に含まれる第1掃除態様情報153Aを選択する(ステップS502)。
一方、計画生成部130aは、予約走行であると判定した場合(ステップS501でYes)、走行パターンデータベース153に含まれる第2掃除態様情報153Bを選択する。
次に、計画生成部130aは、ステップS502又はステップS503で選択した掃除態様情報、及び、図7に示すステップS204で取得した回数情報151Eに基づいて、障害物に対する掃除態様を選択して決定する(ステップS504)。
[効果等]
以上のように、変形例に係る自律走行型掃除機100aは、所定の空間を自律走行して掃除する自律走行型掃除機である。自律走行型掃除機100aは、自律走行型掃除機100の周辺の障害物を検知する検知部110aと、自律走行型掃除機100が障害物にスタックしたか否かを検知するスタック検知部190と、検知部110で検知した障害物の態様を示す障害物情報151Fと、スタック検知部190で検知した検知結果とに基づいて、当該障害物に対して自律走行型掃除機100aがスタックした回数を算出して、障害物情報151Fとスタック回数を示す回数情報151Eとを紐づけて記憶部150aに記憶させる障害物管理部120と、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100aを制御する制御部140aと、を備える。また、自律走行型掃除機100aは、障害物情報151Fと回数情報151Eとに基づいて、自律走行型掃除機100の掃除態様を示す計画情報を生成する計画生成部130aを備える。制御部140aは、計画生成部130aが生成した計画情報に基づいて、自律走行型掃除機100aを制御する。具体的には、制御部140aは、障害物管理部120が算出した障害物データベース151と、走行パターンデータベース153とに基づいて、吸引部160、駆動部170、及び、清掃部180を制御する。変形例に係る自律走行型掃除機100aが備える検知部110aは、さらに、所定の空間に人がいるか否かを検知する。計画生成部130aは、検知部110aによる人の有無の検知結果に基づいて、計画情報を生成する。
例えば、所定の空間に人が存在する場合に、自律走行型掃除機100aがスタックしたとき、当該人によってスタックした状態からスタックしていない状態に変更してもらえる可能性がある。一方で、所定の空間に人が存在しない場合に、自律走行型掃除機100aがスタックしたとき、スタックした状態からスタックしていない状態に変更されず、長時間掃除がされない可能性が高い。そのため、自律走行型掃除機100aは、所定の空間に人が存在するかしないかに基づいて、掃除態様を決定することで、障害物に対する最適な掃除態様を探索しつつ、且つ、スタックして掃除がされない状態が長時間続くことが抑制される。
また、例えば、変形例に係る自律走行型掃除機100aが備える計画生成部130aは、予め設定された時刻に制御部140aが自律走行型掃除機100aの制御を開始するか否かを判定し、判定結果に基づいて、計画情報を生成する。
例えば、予約走行が実行された場合には、所定の空間に人がいない可能性が高い。一方で、予約走行ではなく自律走行型掃除機100aが動作を開始した場合には、自律走行型掃除機100aが所定の空間で人に操作された可能性が高いことから、所定の空間に人がいる可能性が高い。そのため、自律走行型掃除機100aは、予約走行が実行されたか否かに基づいて、掃除態様を決定することで、障害物に対する最適な掃除態様を探索しつつ、且つ、スタックして掃除がされない状態が長時間続くことが抑制される。
(その他の実施の形態)
以上、本発明に係る自律走行型掃除機等について、上記実施の形態及び変形例に基づいて説明したが、本発明は、上記実施の形態及び変形例に限定されるものではない。
また、例えば、上記実施の形態では自律走行型掃除機が備える計画生成部及び制御部等の処理部は、それぞれCPUと制御プログラムとによって実現されると説明した。例えば、それぞれの当該処理部の構成要素は、それぞれ1つ又は複数の電子回路で構成されてもよい。1つ又は複数の電子回路は、それぞれ、汎用的な回路でもよいし、専用の回路でもよい。1つ又は複数の電子回路には、例えば、半導体装置、IC(Integrated Circuit)、又は、LSI(Large Scale Integration)等が含まれてもよい。IC又はLSIは、1つのチップに集積されてもよく、複数のチップに集積されてもよい。ここでは、IC又はLSIと呼んでいるが、集積の度合いによって呼び方が変わり、システムLSI、VLSI(Very Large Scale Integration)、又は、ULSI(Ultra Large Scale Integration)と呼ばれるかもしれない。また、LSIの製造後にプログラムされるFPGA(Field Programmable Gate Array)も同じ目的で使うことができる。
また、本発明の全般的又は具体的な態様は、システム、装置、方法、集積回路又はコンピュータプログラムで実現されてもよい。或いは、当該コンピュータプログラムが記憶された光学ディスク、HDD(Hard Disk Drive)若しくは半導体メモリ等のコンピュータ読み取り可能な非一時的記録媒体で実現されてもよい。また、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
その他、実施の形態及び変形例に対して当業者が思いつく各種変形を施して得られる形態や、本発明の趣旨を逸脱しない範囲で実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本発明に含まれる。