以下では、本発明に係る自律走行型掃除機等の実施の形態について、図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。したがって、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。
なお、当業者が本発明を十分に理解するために添付図面及び以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
また、各図は、模式図であり、必ずしも厳密に図示されたものではない。また、各図において、実質的に同一の構成に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
また、以下の実施の形態においては、略三角形等の「略」を用いた表現を用いている。例えば、略三角形とは、完全に三角形であることを意味するだけでなく、実質的に三角形である、すなわち、例えば角丸な三角形等も含むことも意味する。他の「略」を用いた表現についても同様である。
また、以下の実施の形態においては、所定の空間のフロアを走行して掃除する自律走行型掃除機を鉛直上方側から見た場合を上面視とし、鉛直下方側から見た場合を底面視として記載する場合がある。
(実施の形態)
[構成]
まず、実施の形態に係る自律走行型掃除機100の構成について説明する。図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と、検知部210、障害物管理部230、障害物固定検知部180と、スタック検知部200と、掃除計画生成部170と、記憶部220と、吸引部41と、駆動部25と、清掃部35と、を備える。
検知部210は、レーザ測距計40等の自律走行型掃除機100が備える各種センサから、当該各種センサにより検出されたセンサデータを取得する処理部である。検知部210は、例えば、当該各種センサと制御線等によりセンサデータが取得可能に接続されている。検知部210は、自律走行型掃除機100の周辺の障害物の態様を示す障害物情報を検知(取得)する。ここで、障害物の態様とは、障害物の種類、障害物の色、所定の空間における障害物の位置、及び、障害物のサイズのうちの少なくとも1つである。つまり、障害物情報は、例えば、障害物の種類、障害物の色、所定の空間における障害物の位置、及び、障害物のサイズのうちの少なくとも1つを障害物の態様として示す情報である。
なお、検知部210は、予め記憶部220に記憶されている障害物の典型的な画像等と比較することで、障害物の種別(例えば、マット又はコード等)を特定し、特定した障害物を障害物情報として出力してもよい。
検知部210は、例えば、自己位置検知部120と、障害物種類検知部80と、障害物形状検知部150と、障害物座標検知部130とを含む。
自己位置検知部120は、所定の空間における自律走行型掃除機100の位置を検知する。自己位置検知部120は、例えば、レーザ測距計40から入力された自律走行型掃除機100の周囲に位置する、障害物、壁等を含む物体との距離と、生成した地図情報とに基づいて、当該地図情報が示す地図における自律走行型掃除機100の座標を算出する。自己位置検知部120は、検知した自己位置を示す自己位置情報を検知した時刻等と紐づけて障害物座標検知部130、スタック検知部200、及び、掃除計画生成部170に出力する。
障害物種類検知部80は、カメラ60が生成した画像を取得し(つまり、画像が入力され)、当該画像を画像解析することで当該画像に含まれる障害物の種類を検知する。このように、障害物種類検知部80は、本体部10の周辺の障害物を識別する障害物識別部の一例である。
障害物種類検知部80は、例えば、カメラ60から画像を生成した時刻と、当該画像のR(Red)、G(Green)、及び、B(Blue)を示す数値及び画像における位置を示す識別番号(ピクセル番号)等、つまり、ピクセルごとのRGB値をカメラ60から取得し、画像解析することで、障害物の種類を検知する。障害物種類検知部80はこれらの障害物の種類を障害物座標検知部130に当該画像が撮影された時刻を示す時刻情報と紐づけて出力する。障害物種類検知部80は、画像に含まれる障害物のバウンディングボックス(障害物を囲む外接矩形の枠)を算出し、算出したバウンディングボックスの位置(より具体的には、ピクセル位置)を示す情報を障害物座標検知部130に出力する。
障害物形状検知部150は、深度センサ70が生成した深度画像を取得し、(つまり画像が入力され)、当該画像を解析することで当該画像に含まれる自律走行型掃除機100から障害物までの相対距離、及び障害物の幅、高さなどを検知する。つまり、障害物形状検知部150は、障害物の高さを検出する高さ検知部の一例である。
例えば、記憶部220には、予め本体部10における深度センサ70の設置位置を示す位置情報、及び、本体部10のサイズを示すサイズ情報等が記憶されている。障害物形状検知部150は、これら情報に基づいて、本体部10と画像に含まれる障害物との距離(より具体的には、最も近接する距離である最近接距離)を検知する。障害物形状検知部150は、検知された障害物までの距離、及び障害物の幅、高さなどを障害物の形状情報として画像が撮影された時刻、障害物情報等と紐づけて障害物座標検知部130、及び、障害物管理部230に出力する。
障害物座標検知部130は、障害物形状検知部150が検知した自律走行型掃除機100に対する障害物の相対位置と、自己位置検知部120が検知した自律走行型掃除機の地図における位置とから、地図における障害物の位置を検知する。障害物座標検知部130は、検知した障害物の位置を示す位置情報と障害物の種類を示す種類情報とを紐づけて障害物情報として障害物管理部230、及び、障害物固定検知部180に出力する。
スタック検知部200は、自律走行型掃除機100が障害物にスタックしたか否かを検知する処理部である。ここで、スタックとは、自律走行型掃除機100が障害物に乗り上げて移動できなくなった状態を示す。スタック検知部200は、駆動部25の駆動状態を示す駆動情報と、自己位置検知部120が検知した自律走行型掃除機100の自己位置とから、自律走行型掃除機100がスタックしたか否かを検知する。スタック検知部200は、例えば、駆動部25が所定時間駆動されたにもかかわらず、自己位置の変化が無い場合、自律走行型掃除機100がスタックしたと判定する。自己位置検知部120は、検知結果、つまり、自律走行型掃除機100がスタックの有無を示すスタック情報を障害物管理部230に出力する。
なお、上記した検知部210及びスタック検知部200等で出入力される情報は一例であり、障害物情報を障害物管理部230及び掃除計画生成部170に出力するための上記以外の情報の入出力が実行されてもよい。
また、自律走行型掃除機100は、例えば、各種センサとして、レーザ測距計40、カメラ60、及び、深度センサ70以外にも、自律走行型掃除機100が設置されている位置からフロア面までの距離を計測するクリフセンサ、自律走行型掃除機100の移動を検知するスリップセンサ、自律走行型掃除機100から任意の物体までの距離を検知する超音波センサ等を備えてもよい。また、例えば、自律走行型掃除機100は、自律走行型掃除機100が進行する方向を算出するために用いられるオドメトリ情報を検出するためのセンサを備えてもよい。
障害物固定検知部180は、障害物座標検知部130が検知した現時刻における障害物の種類及び地図上の位置と、障害物データベース140に記憶されている現時刻以前の障害物の種類及び地図上の位置とに基づいて検出した障害物の固定時間を検知する。つまり、障害物固定検知部180は、障害物の所定地点における固定時間を計測する計測部の一例である。
例えば、障害物固定検知部180は、自律走行型掃除機100の掃除走行中に、障害物データベース140に記憶されている種別、形状を有した障害物を検知する。このとき、障害物固定検知部180は、障害物データベース140に登録されている当該障害物の過去の位置情報を基準にした所定範囲内に収まっている場合には、当該障害物を固定状態と判定し、固定時間を算出する。一方、障害物固定検知部180は、検知した障害物が所定範囲内に収まっていない場合には、非固定状態と判定し、固定時間を0とする。障害物固定検知部180は、検知された障害物の固定時間を障害物管理部230に出力する。
障害物管理部230は、障害物情報、スタック検知部200で検知した検知結果、及び、障害物固定検知部180で検知した検知結果に基づいて、障害物情報と当該障害物のスタック情報と固定時間とを紐づけて記憶部220に記憶させる処理部である。
具体的には、障害物管理部230は、検知部210で検知した障害物の種類、障害物の形状、位置情報、スタックの有無、及び、障害物の固定時間を示す障害物データベース140を生成して記憶部220に記憶させる。障害物管理部230は、記憶部220に障害物データベース140が予め記憶されている場合、検知部210での検知結果に基づいて、障害物データベース140を更新する。
記憶部220は、障害物データベース140及び走行パターンデータベース160を記憶する記憶装置である。
障害物データベース140は、所定の空間における障害物の情報を含むテーブル情報である。図4は、実施の形態に係る自律走行型掃除機100が保持する障害物データベース140の一例を示す図である。
障害物データベース140は、例えば、ID情報140Aと、障害物情報140Jと、スタック情報140Hと、障害物の固定時間140Iとを含む。障害物情報140Jは、種類情報140Bと、時刻情報140Cと、位置情報140D、140Eと、形状情報140F、140Gとを含む。種類情報140Bと、時刻情報140Cと、位置情報140Dと、形状情報140F、140Gとは、それぞれ障害物情報の一例である。
ID情報140Aは、各障害物を識別するための識別子である。本実施の形態では、IS情報140Aとして、「0001」等の数値が示されている。
種類情報140Bは、障害物の種類(種別)を示す情報である。本実施の形態では、140Bには、マット、タンス、靴下等が含まれる。障害物の種類はマット等の物体だけでなく、段差等の構造物の一部でも良い。
時刻情報140Cは、対応する障害物の検知時刻である。本実施の形態では、時刻情報して「2019/11/26/10/20」等の時刻が示されている。
位置情報140D、140Eは、対応する障害物の位置を示す情報である。本実施の形態では、自律走行型掃除機100が生成した所定の空間を示す地図における障害物の位置を、X座標(位置情報140D)及びY座標(位置情報140E)として含む。
形状情報140F、140Gは、当該障害物の形状を示す情報である。本実施の形態では、形状情報は、障害物形状検知部150で検知された障害物の形状を幅(形状情報140F)、高さ(形状情報140G)として含む。
スタック情報140Hは、対応する障害物に対してスタックの有無を示す情報である。本実施の形態では、スタックがあった場合にはスタック情報140Hを「1」とし、スタックがなかった場合にはスタック情報140Hを「0」としている。
例えば、障害物データベース140のID情報140Aに含まれるID:0001には、種類としてマットと、当該マットの地図上の位置(XY座標)として(X、Y)=(250、250)と、スタック情報として0とが、紐付けられている。例えば、自律走行型掃除機100が(X、Y)=(250、250)の障害物にスタックした場合は、当該障害物をスタック有りと判断し、障害物管理部230は、障害物データベース140のID:0001のマットのスタック情報140Hを、0から1に更新する。
固定時間140Iは対応する障害物の固定時間を示す情報である。例えば、障害物データベース140のID情報140Aに含まれるID:0001には、種類としてマットと、当該マットの地図上の位置(XY座標)として(X、Y)=(250、250)と、固定時間が100hとが、紐づけられている。例えば、自律走行型掃除機100の走行時に、前回の位置情報(X、Y)=(250、250)を基準とした所定範囲内で、同じ障害物が再度検知されたときには、障害物管理部230は、障害物データベース140のID:0001のマットの固定時間140Iに含まれる固定時間に前回検知時刻との時刻差分を加算し、更新する。一方、同じ障害物が所定範囲外で検知されたときは、障害物管理部230は、障害物データベース140のID:0001のマットの固定時間140Iに含まれる固定時間を0に更新するとともに、位置情報140D、140Eに含まれる各座標値も更新する。
障害物管理部230は、各障害物のID情報140Aと、障害物情報140Jと、スタック情報140Hと、固定時間140Iとを掃除計画生成部170に出力する。
図3に示すように、掃除計画生成部170は、障害物情報140Jとスタック情報140Hと固定時間140Iとに基づいて、自律走行型掃除機100の掃除態様を示す計画情報を生成する処理部である。例えば、自律走行型掃除機100が所定の空間をどのように走行して掃除するかを示す掃除計画(計画情報)を生成する処理部である。
例えば、掃除計画生成部170は、所定の空間の地図を示す地図情報を取得する。掃除計画生成部170は、例えば、自律走行型掃除機100が備える各種センサ、及び、自己位置検知部120から自己位置を示す自己位置情報等に基づいて、地図情報をSLAMにより生成する。なお、自律走行型掃除機100は外部の通信機器と通信するための図示しない通信インターフェースを備え、当該通信インターフェースを介して当該通信機器から地図情報を取得してもよい。地図情報は、予め記憶部220に記憶されていてもよい。また、掃除計画生成部170は、地図情報に基づいて、自律走行型掃除機100の走行経路、具体的には、車輪モータ26の回転数、車輪20の向き等の駆動部25の制御方法である走行方法を決定した計画情報を生成する。掃除計画生成部170は、例えば、障害物情報140Jとスタック情報140Hと固定時間140Iとに基づいて、自律走行型掃除機100が走行する走行経路を決定した計画情報を生成する。具体的には、掃除計画生成部170は、障害物情報140Jとスタック情報140Hと固定時間140Iとに基づいて、駆動部25の駆動方法を決定した計画情報を生成する。
また、掃除計画生成部170は、吸引部41の制御方法(例えば、吸引力、より具体的には、吸引モータ43の回転数)、車輪モータ26の回転数、車輪20の向き等の駆動部25の制御方法、及び、清掃部35の制御方法(例えば、ブラシモータ36の回転数)等を含む掃除方法を示す計画情報を生成する。掃除計画生成部170は、例えば、障害物情報140Jとスタック情報140Hと固定時間140Iとに基づいて、吸引部41の吸引力(具体的には、吸引モータ43の回転数)を決定した計画情報を生成する。また、例えば、掃除計画生成部170は、障害物情報140Jとスタック情報140Hと固定時間140Iとに基づいて、ブラシモータ36の回転数を決定した計画情報を生成する。
このように、掃除計画生成部170は、検知部210で検出された障害物に対して、どのように走行及び掃除するか、つまり、掃除方法及び走行方法を示す掃除態様を決定し、決定した掃除態様となるように自律走行型掃除機100、より具体的には、吸引部41、駆動部25、及び、清掃部35を制御部190に制御させるための制御内容を含む計画情報を生成する。
制御部190は、障害物情報140Jとスタック情報140Hと固定時間140Iとにと基づいて、自律走行型掃除機100を制御する処理部である。具体的には、制御部190は、障害物情報140Jとスタック情報140Hと固定時間140Iとに基づいて、自律走行型掃除機100が備える吸引部41、駆動部25、及び、清掃部35を制御する。より具体的には、制御部190は、掃除計画生成部170が生成した計画情報に基づいて、吸引部41、駆動部25、及び、清掃部35を制御することで、自律走行型掃除機100に所定の空間を自律走行させて掃除させる。本実施の形態では、制御部190は、障害物管理部230が算出した障害物データベース140と、走行パターンデータベース160とに基づいて、吸引部41、駆動部25、及び、清掃部35を制御する。
図5は、実施の形態に係る自律走行型掃除機100が保持する走行パターンデータベース160の一例を示す図である。
走行パターンデータベース160は、固定時間160Aと、形状情報160Bと、スタック情報160C、掃除態様情報160Dとを含む。
固定時間160Aは、障害物の固定時間を示す情報である。
形状情報160Bは、対応する障害物の形状を示す情報である。本実施の形態では、形状情報160Bとして、対応する障害物の高さを採用している。
スタック情報160Cは対応する障害物におけるスタックの有無を示す情報である。
掃除態様情報160Dは、固定時間160Aと形状情報160Bとスタック情報160Cにおける、自律走行型掃除機100の当該障害物に対する掃除態様を示す情報である。なお、本実施の形態では、掃除態様情報160Dには、走行方法(走行パターン)、つまり、制御部190が制御する駆動部25の制御方法についてのみ示しているが、制御部190が制御する吸引部41が備える吸引モータ43の回転数、及び、制御部190が制御する清掃部35が備えるブラシモータ36の回転数等を示す掃除方法を示す情報が含まれていてもよい。
例えば、自律走行型掃除機100は、障害物の検知後、当該障害物の固定時間が所定時間未満の場合は、当該障害物の高さに依存せず、走行パターンが決定される。具体的には、この場合の走行パターンでは、自律走行型掃除機100は、障害物との間隔(接近間隔)が所定距離(例えば300mm)となるまで接近し、接近後には当該障害物を回避する回避行動を行う(図5のP1、P2参照)。
本実施の形態では、所定時間として24時間を例示している。これは、所定の位置に24時間以上固定されている障害物は、容易に移動されにくい物体、つまり一定の大きさ以上の物体であって、自律走行型掃除機100がスタックしにくい物体である可能性が高いためである。なお、所定時間は24時間以外の値であってもよい。
また、固定時間が24時間以上で高さが所定値以上の障害物である場合には、接近間隔がより短い走行パターンに切り替えられる。ここで、本実施の形態では、所定値を20mmとしている。これは、高さが20mmよりも小さい障害物であると、当該障害物を自律走行型掃除機100が乗り越える際にスタックしやすいためである。なお、所定値は20mm以外の値であってもよい。
例えば、固定時間が24時間以上48時間未満の場合には、自律走行型掃除機100の走行パターンは、所定距離が100mmとされる。つまり、この場合、自律走行型掃除機100は、障害物との間隔(接近間隔)が100mmとなるまで接近し、接近後には当該障害物を回避する回避行動を行う(図5のP3参照)。
また、固定時間が120時間以上132時間未満の場合には、自律走行型掃除機100の走行パターンは、所定距離が10mmとされる。つまり、この場合、自律走行型掃除機100は、障害物との間隔(接近間隔)が10mmとなるまで接近し、接近後には当該障害物を回避する回避行動を行う(図5のP4参照)。
なお、図5に記載されていない時間帯においても、適切な接近間隔が設定されている。例えば、固定時間が長時間化するほど、接近間隔は短く設定されていればよい。なお、接近間隔の下限値は、自律走行型掃除機100が障害物に接触しない値である。
また、固定時間が24時間以上で高さが所定値未満(20mm未満)の障害物である場合には、スタック情報に基づいてその走行パターンが決定される。
例えば、固定時間が24時間以上、高さが所定値未満(20mm未満)及びスタック有無が無し(0)の障害物の場合には、異なる走行パターンが決定される。具体的には、この場合の走行パターンでは、自律走行型掃除機100は、障害物に対して向かって通常速度で走行し、障害物に乗り上げる動作を行う(図5のP5参照)。
また、固定時間が24時間以上、高さが所定値未満(20mm未満)及びスタック有無が有り(1)の障害物の場合には、異なる走行パターンが決定される。具体的には、この場合の走行パターンでは、障害物との距離(接近間隔)が300mmとなるまで接近し、接近後には当該障害物を回避する回避行動を行う(図5のP6参照)。
これらのように、制御部190は、障害物の固定時間と形状とスタック有無に基づいて、障害物に対して異なる掃除態様となるように、自律走行型掃除機100(より具体的には、吸引部41、駆動部25、及び、清掃部35)を制御する。より具体的には、掃除計画生成部170は、障害物管理部230が生成した障害物データベース140と走行パターンデータベース160に基づいて、障害物に対する掃除態様を決定し、決定した掃除態様となるように、制御部190が吸引部41、駆動部25、及び、清掃部35にさせるように、計画情報を生成する。
検知部210と、障害物管理部230と、掃除計画生成部170と、障害物固定検知部180と、スタック検知部200と、制御部190と、の各種処理部は、例えば、上記した処理を実行するための制御プログラムと、当該制御プログラムを実行するCPU(Central Processing Unit)とから実現される。検知部210と、障害物管理部230と、掃除計画生成部170と、障害物固定検知部180と、スタック検知部200と、制御部190との各種処理部は、1つ又は複数のCPUで実現されてもよい。
記憶部220は、障害物データベース140と走行パターンデータベース160とを記憶するメモリである。記憶部220は、例えば、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。また、記憶部220には、例えば、制御部190等の各種処理部が実行する制御プログラムが記憶されている。
吸引部41は、所定の空間のフロア面を吸引することで、当該フロア面のゴミを吸引するための機構である。吸引部41は、例えば、吸引モータ43を備える。
吸引モータ43、ファンと接続され、当該ファンを回転させることでフロア面のゴミを吸引するためのモータである。
駆動部25は、自律走行型掃除機100を走行させるための機構である。駆動部25は、例えば、車輪モータ26を備える。
車輪モータ26は、車輪20と接続され、車輪20を回転させるためのモータである。
自律走行型掃除機100は、駆動部25が有する2つの車輪20の回転が独立して制御されることで、直進、後退、左回転、右回転等、自在に走行することができる。なお、自律走行型掃除機100は、車輪モータ26により回転させない車輪(補助輪)をさらに備えてもよい。
清掃部35は、フロア面を清掃するための機構である。清掃部35は、例えば、ブラシモータ36を備える。
ブラシモータ36は、メインブラシ50等のブラシと接続され、メインブラシ50等のブラシを駆動(回転)させるためのモータである。
[処理手順]
<概要>
続いて、自律走行型掃除機100の処理手順の概要について、図6を参照しながら説明する。図6は、実施の形態に係る自律走行型掃除機100が実行する処理を示すフローチャートである。なお、ここでは、すでに障害物データベース140に登録された障害物(ID情報140A)に対して、スタック情報140Hが書き込まれている場合を例示する。
まず、自律走行型掃除機100は、掃除開始信号を受信する(ステップS101)。例えば、自律走行型掃除機100は、図示しない受信部を備える。ユーザは、操作卓等を操作して自律走行型掃除機100に掃除を開始する旨を示す掃除開始信号を送信する。自律走行型掃除機100は、当該掃除開始信号を、当該受信部で受信する。受信部は、例えば、信号を受信するための光センサ、信号がスマートフォン等の通信機器から送信される場合は無線通信回路等の通信インターフェース等である。なお、自律走行型掃除機100は、受信部ではなく、本体部10に取り付けられ、ユーザからの指示を取得するためのボタン等の操作部を有してもよい。自律走行型掃除機100は、当該操作部がユーザに操作されることで、掃除開始信号を取得してもよい。
次に、掃除計画生成部170は、計画情報を生成する(ステップS102)。例えば、掃除計画生成部170は、記憶部220に記憶されている所定の空間の地図を示す地図情報に基づいて、走行経路を算出し、算出した走行経路で吸引部41、駆動部25、及び、清掃部35を制御することで、自律走行型掃除機100に走行させ掃除させるための計画情報を生成する。なお、記憶部220に地図情報が存在しない場合、例えば、掃除計画生成部170は、制御部190に自律走行型掃除機100を所定の空間を走行させて、SLAMにより所定の空間の地図を示す地図情報を生成してもよい。
次に、制御部190は、掃除計画生成部170が生成した計画情報に基づいて、吸引部41、駆動部25、及び、清掃部35を制御することで、自律走行型掃除機100に走行させ掃除させる(ステップS103)。
次に、掃除計画生成部170は、掃除が完了したか否かを判定する(ステップS104)。例えば、掃除計画生成部170は、自己位置検知部120等の検知結果に基づいて、自律走行型掃除機100が走行した経路の軌跡を算出し、算出した軌跡が、計画情報が示す走行経路と一致する、つまり、計画情報が示す走行経路を全て走行したか否かを判定する。
掃除計画生成部170が、掃除計画が完了したと判定した場合(ステップS104でYes)、例えば、制御部190は、駆動部25を駆動させて走行を開始した初期位置に自律走行型掃除機100を戻し、処理を終了する。
一方、掃除計画生成部170が、掃除が完了していないと判定した場合(ステップS104でNo)、掃除計画生成部170は、検知部210が障害物を検知したか否かを判定する(ステップS105)。具体的には、検知部210は、自律走行型掃除機100の周辺の障害物の態様を示す障害物情報を検知する。
掃除計画生成部170は、検知部210が障害物を検知したと判定した場合(ステップS105でYes)、障害物固定検知部180が検知した障害物の固定時間と障害物形状検知部150で検知した障害物の形状情報とを取得する(ステップS106)。その後、掃除計画生成部170は、取得した障害物の固定時間と形状情報とに基づいて、走行パターンデータベース160を参照することで当該障害物に対する掃除態様を選択し(ステップS107)、処理をステップS102に戻す。具体的には、掃除計画生成部170は、障害物データベース140に基づいて当該障害物に対する障害物の固定時間、障害物の形状、スタック情報を取得し、走行パターンデータベース160に基づいて当該障害物に対するスタック有無に対する掃除態様を取得する。次に、掃除計画生成部170は、ステップS102では、ステップS107で取得した掃除態様となるように制御部190に制御させる計画情報を生成する。次に、制御部190は、ステップS103では、掃除計画生成部170が生成した計画情報に基づいて、自律走行型掃除機100を制御する。
<掃除態様の選択処理>
続いて、図6に示す掃除態様の選択処理(ステップS107)の詳細について、図7を参照しながら説明する。図7は、図6に示す掃除態様の選択処理(ステップS107)の詳細を示すフローチャートである。
まず、障害物種類検知部80が検知した障害物について、障害物形状検知部150は、自律走行型掃除機100から障害物までの距離や、障害物の幅や高さを算出する(ステップS201)。
次に、障害物座標検知部130は、所定の空間を示す地図における予め定められた座標軸に対する対象物の位置座標を算出する(ステップS202)。
次に、障害物管理部230は、障害物座標検知部130が検知した位置座標の障害物が、障害物データベース140に登録されている障害物であるか否かを判定する(ステップS203)。
障害物管理部230は、障害物座標検知部130が検知した位置座標の障害物が、障害物データベース140に登録されている障害物であると判定した場合(ステップS203でYes)、障害物データベース140から当該障害物に対する障害物情報140J、スタック情報140H、固定時間140Iを取得し、取得した障害物情報を掃除計画生成部170に出力する(ステップS204)。
一方、障害物管理部230は、障害物座標検知部130が検知した位置座標の障害物が、障害物データベース140に登録されている障害物でないと判定した場合(ステップS203でNo)、障害物データベース140に当該障害物の情報を追加する(ステップS205)。
次に、掃除計画生成部170は、取得した障害物情報140Jとスタック情報140Hと固定時間140I及び走行パターンデータベース160に基づいて、当該障害物に対する掃除態様を選択して決定する(ステップS206)。
[掃除態様の具体例]
続いて、自律走行型掃除機100の掃除態様の具体例について、図8~図10を参照しながら説明する。
図8~図10は、実施の形態に係る自律走行型掃除機100の掃除態様の一例を示す図である。なお、図8~図10は、自律走行型掃除機100がこの順の時系列で走行等の処理をしている場合を示す図である。また、図8~図10、所定の空間CAを上方から見た模式図である。また、本具体例では、所定の空間CAに障害物の一例であるマット220Aが存在するとする。
図8に示すように、掃除計画生成部170は、例えば、掃除開始信号を受信した場合、所定の空間CAの地図を示す地図情報に基づいて、破線矢印で示す走行経路PPを生成する。また、掃除計画生成部170は、走行を開始する場所を原点とする座標を算出する。
なお、自律走行型掃除機100は、地図情報を保持していない場合、所定の空間CAを走り回りながらSLAMにより地図情報を生成する。その場合、掃除計画生成部170は、座標の原点として、例えば、充電器250の位置を設定してもよい。
本具体例では、自律走行型掃除機100は、地図情報を予め保持(つまり、記憶部220に記憶)しており、且つ、充電器250に接続されており、充電器250に接続された位置を原点としている。
また、例えば、掃除計画生成部170は、進行する向きをX軸正方向とし、X軸に直交する方向をY軸方向と設定する。この場合、自律走行型掃除機100が走行を開始する前は、自己位置が(X、Y、進行する向き)=(0m、0m、0°)となる。
なお、(X、Y、進行する向き)のXには、例えば、原点からのX軸方向への距離が含まれる。また、例えば、(X、Y、進行する向き)のYには、原点からのY軸方向への距離が含まれる。また、例えば、(X、Y、進行する向き)の進行する向きには、X軸正方向に対して自律走行型掃除機100が進行する角度が含まれる。
図9に示すように、自律走行型掃除機100が図8に示す状態から走行経路に従って軌跡Tを通過して走行したとする。自律走行型掃除機100(より具体的には、検知部210)は、例えば、カメラ60で撮影範囲Vを撮影して障害物が存在するか否かを判定しながら走行し続ける。例えば、図9に示す自律走行型掃除機100の自己位置は、(X、Y、進行する向き)=(-5m、5m、0°)である。
図10に示すように、カメラ60は、例えば、マット220Aを撮影したとする。つまり、検知部210がマット220Aを検知したとする。このとき障害物種類検知部80は画像に含まれる障害物のバウンディングボックス(障害物を囲む外接矩形の枠)を算出する。検知部210は、カメラ60により画像が生成された時刻を示す時刻情報及び障害物情報として、(撮影日時、種類、相対距離、幅、高さ、位置する向き)=(201906131145、マット、0.9m、0.4m、10mm、25°)を検知している。例えば、撮影日時には、2019年6月13日11時45分を示す数字列が含まれている。また、相対距離には、深度センサ70から算出される対応するマット220Aの位置から自律走行型掃除機100(より具体的には、本体部10)までの最接近間隔が含まれている。位置する向きには、自律走行型掃除機100が進行する方向と、自律走行型掃除機100から見たバウンディングボックスの中心に対応するマット220Aの位置する方向とのなす角度が含まれている。
このとき、障害物(マット220A)の高さが20mm未満であるので、自律走行型掃除機100は、走行経路PPに沿って移動し、マット220A上に乗り上げて通過する。なお、マット220Aの高さが20mm以上である場合には、自律走行型掃除機100は、マット220Aに対して所定の接近間隔まで接近した後に、マット220Aを回避する(図10中、回避経路PQ参照)。マット220Aに対する自律走行型掃除機100の動作は、上述したようにマット220Aの固定時間によっても変更されることとなる。
[効果等]
以上のように、実施の形態に係る自律走行型掃除機100は、床面上を移動して当該床面を掃除する本体部10と、本体部10の周辺の障害物を識別する障害物種類検知部80(障害物識別部)と、障害物種類検知部80が識別した障害物の高さを検出する障害物形状検知部150(高さ検知部)と、障害物種類検知部80が識別した障害物の所定地点における固定時間を計測する障害物固定検知部180(計測部)と、障害物形状検知部150が検出した障害物の高さ及び当該障害物の固定時間に基づいて、本体部10の走行を制御する制御部190とを備えている。
また、実施の形態に係る自律走行型掃除機100の制御方法は、自律走行型掃除機に備わる障害物種類検知部80で当該自律走行型掃除機100の周辺の障害物を識別する障害物識別ステップ(ステップS105)と、自律走行型掃除機100に備わる障害物形状検知部150で、障害物の高さを検出する高さ検知ステップ(ステップS106)と、自律走行型掃除機100に備わる障害物固定検知部180で、障害物の所定地点における固定時間を計測する計測ステップ(ステップS106)と、障害物の高さ及び固定時間に基づいて、自律走行型掃除機100の走行を制御する制御ステップ(ステップS103)とを含む。
これによれば、自律走行型掃除機100は、障害物の高さ及び固定時間に基づいて障害物に対する走行方法を変更できる。これにより、自律走行型掃除機100によれば、個々の障害物に最適な掃除方法を実施することができる。
なお、本発明は、上記自律走行型掃除機100の制御方法に含まれるステップをコンピュータに実行させるプログラムとして実現されてもよい。
具体的には、本発明に係るプログラムは、床面上を移動して掃除する自律走行型掃除機100の周辺の障害物を識別する障害物識別ステップと、障害物の高さを検出する高さ検知ステップと、障害物の所定地点における固定時間を計測する計測ステップと、障害物の高さ及び固定時間に基づいて、自律走行型掃除機の走行を制御する制御ステップとを、コンピュータに実行させるためのプログラム。
これによれば、本実施の形態に係る自律走行型掃除機100の制御方法が、コンピュータにより簡便に実行され得る。
また、本発明は、上記プログラムを記録したコンピュータによって読み取り可能なCD-ROM等の非一時的な記録媒体として実現されてもよい。また、本発明は、そのプログラムを示す情報、データ又は信号として実現されてもよい。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信されてもよい。
また、制御部190は、固定時間が所定時間未満である障害物に対しては、当該障害物との間隔が所定距離以上となるように本体部10を走行させ、固定時間が所定時間以上である障害物であって、高さが所定値以上である障害物に対しては、当該障害物との間隔が所定距離未満となるように本体部10を走行させ、固定時間が所定時間以上である障害物であって、高さが所定値未満である障害物に対しては、当該障害物を乗り越えるように本体部10を走行させる。
これによれば、固定時間が所定時間未満である障害物、つまり衣類やおもちゃなどの流動性の高い障害物に対しては、障害物との間隔が所定値以上で本体部10が走行するので、これらの障害物に対してスタックしにくくすることができる。
また、固定時間が所定時間以上である障害物であって、高さが所定値以上である障害物は、家具などの流動性の低い障害物である。このような障害物に対しては、スタックする可能性も低いために、当該障害物との間隔が所定距離未満となるように本体部10が走行する。つまり、障害物に近接した位置まで掃除を進めることができる。
また、固定時間が所定時間以上である障害物であって、高さが所定値未満である障害物は、敷物やケーブルなどのような流動性が低く、スタックする可能性も低い障害物である。このような障害物に対しては、本体部10が乗り越えるように走行するので、障害物上を掃除することが可能である。
また、自律走行型掃除機100は、障害物に対して本体部10がスタックしたか否かを検知するスタック検知部200を備え、制御部190は、過去にスタック検知部200がスタックを検知した障害物に対しては、当該障害物との間隔が所定距離以上となるように本体部10を走行させる。
これによれば、過去にスタック検知部200がスタックを検知した障害物、つまり、今後もスタックする可能性が高い障害物に対しては、当該障害物との間隔が所定距離以上となるように本体部10が走行する。つまり、スタックの可能性をより低減することができる。
また、制御部190は、障害物の固定時間に基づいて、所定距離を調整する。
ここで、固定時間が長い障害物は、それだけ安定した障害物であると言える。つまり、自律走行型掃除機100が接近しても干渉しにくい障害物である。このため、障害物の固定時間に基づいて所定距離が調整されれば、障害物の安定性に応じて自律走行型掃除機100を接近させることが可能である。
(その他の実施の形態)
以上、本発明に係る自律走行型掃除機等について、上記実施の形態及び変形例に基づいて説明したが、本発明は、上記実施の形態及び変形例に限定されるものではない。
また、例えば、上記実施の形態では自律走行型掃除機が備える掃除計画生成部及び制御部等の処理部は、それぞれ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)若しくは半導体メモリ等のコンピュータ読み取り可能な非一時的記録媒体で実現されてもよい。また、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
その他、実施の形態及び変形例に対して当業者が思いつく各種変形を施して得られる形態や、本発明の趣旨を逸脱しない範囲で実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本発明に含まれる。