JP6609463B2 - 自走式電子機器 - Google Patents

自走式電子機器 Download PDF

Info

Publication number
JP6609463B2
JP6609463B2 JP2015226754A JP2015226754A JP6609463B2 JP 6609463 B2 JP6609463 B2 JP 6609463B2 JP 2015226754 A JP2015226754 A JP 2015226754A JP 2015226754 A JP2015226754 A JP 2015226754A JP 6609463 B2 JP6609463 B2 JP 6609463B2
Authority
JP
Japan
Prior art keywords
feature points
feature point
self
unit
points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015226754A
Other languages
English (en)
Other versions
JP2017093626A (ja
Inventor
弘晃 猶原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2015226754A priority Critical patent/JP6609463B2/ja
Publication of JP2017093626A publication Critical patent/JP2017093626A/ja
Application granted granted Critical
Publication of JP6609463B2 publication Critical patent/JP6609463B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

この発明は、自走式電子機器に関し、より具体的には走行する領域内の複数の位置で周囲の光景を撮影して画像データベースを作成し、到達すべき目標位置で周囲の光景を撮影し、前記画像と照合して目標位置へ走行する自走式電子機器に関する。
周囲の障害物等を検出するセンサーを備えて自律的に走行して作業を行う自走式電子機器が知られている。例えば、掃除機や空気清浄機や警備用の装置などがある。そして、そのセンサーの一つとして、あるいは他の目的で周囲の光景を撮影するカメラを有する自走式電子機器が知られている。
自走式電子機器は、作業領域の目的に沿って走行を制御するために走行に関して様々なモードを有する。一例としてある自走式掃除機の場合、走行の制御に関して、「自動運転モード」、「壁際モード」および「スポットモード」を有する。「自動運転モード」は不在時に宅内をくまなく掃除させる為のモードである。「壁際モード」は、自走式掃除機が壁に沿って進みながら掃除をするモードである。「壁際モード」を選択することで、壁際をきれいにできる。また、「スポットモード」では、ユーザーが指定した領域の周辺のみ掃除するためのモードである。領域を指定する単純な方法は、ユーザーがその領域に自走式掃除機を運んで持って行くというものである。
以上のような、状況に応じた走行の制御に関連する幾つかの技術が提案されている。例えば、複数の掃除領域の中から掃除する領域を選択して掃除させるため、自律走行用センサーの出力と記憶した地図情報から現在位置を特定し、現在位置を基に選択された掃除領域まで自律走行するロボットクリーナが提案されている(例えば、特許文献1参照)。また、直近に走行した回数が少ない領域を特定して走行経路を探索するサーバー装置と通信し、ユーザーに指定された領域のうちで過去に走行した回数が少ない領域を優先的に走行する経路を算出する自走式電子機器が提案されている(例えば、特許文献2参照)。
特開2002−85305号公報 特開2014−85829号公報
前述の「自動運転モード」は、ユーザーが例えばリモコンの掃除開始ボタンを押すなどワンタッチで指示を与えると、それに応答して自走式電子機器が部屋の広さや障害物の所在を検出して自律的に走行するようにできる。「壁際モード」についても、ユーザーがワンタッチで指示を与えると、自走式電子機器が壁の位置を検出し壁に沿った領域を走行するようにできる。
しかし、「スポットモード」の場合、ユーザーが意図する領域を自走式電子機器が自動的に推測することはできない。意図する領域を自走式電子機器に指示する単純な方法として、ユーザーは掃除等の作業をさせたい位置へ自走式電子機器を移動させ、そのうえでリモコン等によってスポットモードでの作業開始の指示を与え、これによって領域を指定することができる。このようにスポットモードについては、作業をさせる前に作業をさせたい場所まで自走式機器を移動させる必要がある。利便性の側面からは他のモードに劣るといえる。
ユーザーが自ら自走式電子機器を運んで移動させる代わりに、前述の特許文献1や2のようにスマートフォン等の携帯通信機器を使って位置を指示する手法もある。
例えば自走式掃除機が、移動方向を検出するジャイロセンサー、移動量を検出するエンコーダ、障害物を検出して自走式電子機器を自律的に走行させる自律走行部、およびユーザーが有するスマートフォンと通信する無線LAN等の通信手段を備えているものとする。このように構成された自走式電子機器に、基点である充電台からの相対位置をユーザーのスマートフォンから指示すると、その指示に応答して自走式電子機器が目的の位置へ移動させる制御が考えられる。
ここで、自走式電子機器に指示を与えるスマートフォンは、その画面上に、部屋の間取りおよび障害物となる家具や家電等の「モノ」の配置を示すマップを表示するアプリを用意しておくことが考えられる。
ユーザーが自走式掃除機に掃除させたいマップ上の位置をタッチすると、アプリがホームポジションからの相対距離を指示できるようにする。このようなシステムでは、画面がタッチされるとタッチされた画面上の位置と画面上の充電台との位置関係から、充電台と自走式掃除機に掃除させたい位置との相対位置を計算し、自走式電子機器に送信する。自走式電子機器側では、スマートフォンから受信した相対位置に基づいて自律走行部が自走式電子機器を相対位置が示す場所へ走行させるのである。
ところが、ここで一つ問題がある。このようなシステムでは間取り図やモノの配置となるマップを作るのにユーザーの手間がかかる。さらに、そのマップは、マップ上に示されるモノの位置が現実のモノと同じ位置関係になければ、高い精度での位置指定ができない。即ち、マップ上の位置情報が実際の部屋内のモノの配置と正しく対応付けられていないといけない。従って、マップを作成する際に、実際の部屋内でどのような位置関係および距離間隔でモノが配置されているかを計測する必要がある。誰でも気軽に使えるようにするためには、マップ情報を作成する手間を簡略化することが望まれる。
さらにいえば、このようなシステムではユーザーがスマートフォンを所有していないと自走式掃除機に位置を指示できない。スマートフォンを所有していないユーザーはこのシステムを使えない。また、スマートフォンの操作が苦手なユーザーもある。そのようなユーザーにとって、このシステムは使うのが難しく、利便性の観点からも改善が望まれる。
一方、通常の人間の行動を考えてみると「ソファーの前を掃除しておいて」というような指示が人間同士では普通である。電子機器に対してもこのような直感的な指示ができることが望ましい。
近年では音声認識技術が進歩しており、話者の意図を的確に認識することが可能になってきた。つまり、「ソファーの前を掃除しておいて」という指示の意図は、機械でも容易に識別できる。よって、自走式電子機器が、「ソファーの前」がどこであるかを認識し、その位置を目標位置に設定して自律走行できれば直感的で簡単な指示が可能になる。
この発明は、以上のような事情を考慮してなされたものであって、自走式電子機器が目標位置で撮影した画像と走行領域内の複数の位置で撮影した画像を格納する位置情報データベースとを照合して、自律的に目標位置へ走行できる電子機器を提供するものである。
さらに、目標位置で撮影した画像を、音声等による直感的な指示と対応付ければ、位置に関して自走式電子機器に対して直感的な指示が可能になる。例えば「ソファーの前」のように人間が直感的に理解できる位置情報を自走式電子機器が認識可能な位置情報、即ち、基点からの相対位置の情報と対応付けて認識するための重要な要素となる技術を提供するものである。
この発明は、走行を制御する走行制御部と、前記走行に伴って変化する位置を検出する位置検出部と、周囲の光景を撮影する撮像部と、撮影された画像から複数の特徴点を抽出する特徴点抽出部と、走行領域内の複数の位置において前記撮像部が撮影した画像に係る特徴点とその撮影が行われた位置とが関連付けられて登録された位置情報を予め格納する位置情報データベース格納部と、目標とすべき位置において前記撮像部が撮影した画像に係る特徴点を格納するクエリ格納部と、前記クエリ格納部に格納された特徴点と前記位置情報データベース格納部に格納された各位置情報に含まれる特徴点との配置関係を照合し、対応する配置関係にある特徴点を最も多く含む位置情報に基づいて目標位置を決定する目標位置決定部とを備え、前記走行制御部は、前記位置検出部が検出する現在の位置と決定された目標位置とに基づいてその目標位置への走行を制御する自走式電子機器を提供する。
この発明による自走式電子機器において、前記クエリ格納部は目標とすべき位置において前記撮像部が撮影した画像に係る特徴点を格納し、前記目標位置決定部は前記クエリ格納部に格納された特徴点と前記位置情報データベース格納部に格納された各位置での特徴点とを照合し、対応する特徴点に関連付けられた位置情報を目標の位置情報とし、前記走行制御部は前記位置検出部が検出する現在の位置と決定された目標位置とに基づいてその目標位置への走行を制御するので、前記自走式電子機器が目標位置で撮影した画像と走行領域内の複数の位置で撮影した画像を格納する位置情報データベースとを照合して、自律的に目標位置へ走行できる。
の発明の実施形態に係る自走式掃除機の電気的な構成を示すブロック図である。 この発明の一実施形態である自走式掃除機の外観斜視図である。 図2に示す自走式掃除機の底面図である。 図2に示す自走式掃除機の前後方向に沿った垂直断面図である。 図2に示す自走式掃除機の水平断面図である。 この実施形態にかかる自走式掃除機が、充電台にドッキングしているホームポジションの位置を示す平面図である。 図6Aに示す自走式掃除機が、ホームポジションから離れた位置にある様子を示す平面図である。 この実施形態において、自走式掃除機が走行する部屋の間取りの一例と区画を示す説明図である。 この実施形態における自走式掃除機が位置情報データベースを作成する際、ホームポジションからスタートして各区画で順次撮影を行う様子を示す説明図である。 実施形態において、機器制御部が位置情報データベースを作成する際に実行する全体の処理を示すフローチャートである。 実施形態において、機器制御部が位置情報データベース作成における特徴点情報の作成処理を示すフローチャートである。 実施形態において、機器制御部が位置情報データベース作成における距離情報の作成処理を示すフローチャートである。 この実施形態において作成される位置情報データベースのデータ構造を示す説明図である。 この実施形態において特徴点として検出する画素パターンを示す説明図である。 この実施形態において、物体の一例としてのテーブルが撮影された画像から特徴点が抽出される位置を視覚的に示す説明図である。 の実施形態において、機器制御部が実行する位置の推定の全体の処理を示すフローチャートである。 図15に示すマッチング処理の手順を示すフローチャートである。 図16に示す基準点の決定処理の詳細を示すフローチャートである。 図17に示す基準点ペアの検索処理、即ち対応する基準点を検索する処理を示すフローチャートである。 図16に示す対応点の検索処理を示すフローチャートである。 この実施形態において、特徴点のマッチングに用いる基準点の決定処理を視覚的に示す第1の説明図である。 この実施形態において、特徴点のマッチングに用いる基準点の決定処理を視覚的に示す第2の説明図である。 この実施形態において、特徴点のマッチングによる画像検索を視覚的に示す説明図である。 この実施形態において、算出するスコアの概念を視覚的に示す説明図である。 この実施形態において、撮影された部屋の配置と撮影位置を示す説明図である。 この実施形態において、図23に示す部屋内の候補位置で撮影された画像の一例を示す説明図である。 図23に示す位置(1)で撮影された画像の例を示す説明図である。 図24Aと同じ位置で撮影された画像を示す説明図である。 図23に示す位置(2)で撮影された画像の例を示す説明図である。 図24Aと同じ位置で撮影された画像を示す説明図である。 図23に示す位置(3)で撮影された画像の例を示す説明図である。 図24Aと同じ位置で撮影された画像を示す説明図である。 図23に示す位置(4)で撮影された画像の例を示す説明図である。 図24Aと同じ位置で撮影された画像を示す説明図である。 図23に示す位置(5)で撮影された画像の例を示す説明図である。 図24Aに示す特徴点が画像から抽出される様子を視覚的に示す説明図である。
以下、図面を用いてこの発明をさらに詳述する。なお、以下の説明は、すべての点で例示であって、この発明を限定するものと解されるべきではない。
(実施の形態1)
≪自走式電子機器の具体的態様≫
はじめに、この発明の自走式電子機器の一例として自走式掃除機について説明する。
図1はこの発明の実施形態に係る自走式掃除機の電気的な構成を示すブロック図である。また、図2はこの発明の実施形態に係る自走式掃除機の外観斜視図であり、図3は図2に示す自走式掃除機の底面図である。また、図4は図2に示す自走式掃除機の前後方向に沿った垂直断面図である。図5は、図2に示す自走式掃除機の水平断面図である。
≪自走式掃除機の構成≫
図2および図3に示すように、実施の形態1に係る自走式掃除機1は、平盤形の筐体2を備える。なお、実施の形態1の場合、筐体2は円盤形であるが、これに限定されず、例えば平面視の形状が楕円形状あるいは四角形、五角形、六角形等の多角形状であってもよい。
筐体2は、円形に形成された天板を含む。天板は、その前部を構成する天板前部2b1と、中間部から後部に亘って構成する蓋部2b2から構成され、蓋部2b2は天板前部2b1との境界側の側部に配置された図示しないヒンジ部を支点にして上方へ開く。天板前部2b1の前端部には、内部に配置された回路基板11Sの熱を逃がす複数の空気孔2b11が形成されている。
また、筐体2は環状に形成された側板を含む。また、図4および図5に示すように筐体2は内部構造壁2dを含む。側板は、それぞれ円弧形の側板前半部2c1と側板後半部2c2とから構成される。側板前半部2c1はバンパーとして機能するよう、図示しない弾発部材を介して内部構造壁2dに対して移動可能に嵌め合わされている。側板前半部2c1には、側板前半部2c1の衝突を検出する衝突センサー14Cが内部に設けられている(図2〜図5に図示せず)。さらに、側板前半部2c1には、前方および左右斜め前方の3箇所に超音波受信部14Aが配置されると共に、3箇所の超音波受信部14Aの間の2箇所に超音波送信部14Bが配置されている。
さらに、筐体2の前部表面の外部から視認できる位置に誘導信号受信部24、撮像部133および充電用接続部13が設けられている。充電用接続部13は、後述する充電台201との接続端子およびその接続端子と充電池12とを結ぶ配線を含む。
筐体2は、底部に設けられた吸込口31、後部の斜め上方に設けられた第1排気口32および外周部に設けられた第2排気口33を有し、筐体2の内部には集塵部15および電動送風機115が配置されている。集塵部15は、室内の塵埃を集める部分であり、集塵容器15aと、集塵フィルター15bとを備える。集塵容器15aには、吸込口31と連通する流入路に通じる流入口と、電動送風機115と連通するダクト部114に通じる排気口とが形成されている。
第2排気口33は、前方へ向かって開口し、集塵部15および電動送風機115を通過した空気流を前方へ向けて吹き出すように構成されている。なお、ここで言う「前方」とは、自走式掃除機が直進する方向と平行方向を意味するが、厳密に平行方向でなくてもよく、多少の斜め方向も含まれる。
自走式掃除機1の底面の前半部には、吸込口31の奥に配置された回転ブラシ9、吸込口31の左右斜め前方に形成されたサイドブラシ10と、吸込口31の左右斜め後方位置に形成された後述する左駆動輪22Lおよび右駆動輪22Rが設けられている。回転ブラシ9およびサイドブラシ10は、ブラシモータ119によって駆動され回転する。また、底面の後半部の左右方向における中間位置には回動自在な後輪26が設けられている。後輪26の車輪は回転自在である。なお、図3と図4においては、後輪26が前方へ180°回動した状態を二点差線で記している。
自走式掃除機1は、設置された場所の床面を自走しながら、床面(走行面)上の塵埃を含む空気を吸い込み、塵埃を除去した空気を排気することにより床面上を掃除する。自走式掃除機1は、障害検出部14により検出された障害物を自律的に回避して走行し、掃除が終了すると自律的に図示しない充電ステーションに帰還する機能を有する。
なお、この明細書で床面は木製の平らな床に限らない。カーペット、マット、畳などであっても自走式掃除機1が走行可能な面であればよい。また、床面は平面に限らず、例えばある程度曲がった面や凹凸のある面や段差のある面であっても走行可能であればよい。
図1に示すように、この自走式掃除機1は、駆動部23、回路基板11S、障害検出部14および充電池12を備える。
駆動部23は、左輪駆動モータ21L、右輪駆動モータ21R、左駆動輪22L、右駆動輪22Rを備える。左輪駆動モータ21L、右輪駆動モータ21R、左輪エンコーダ71Lおよび右輪エンコーダ71R、左駆動輪22Lおよび右駆動輪22Rを有して自走式掃除機1を走行させる。なお、左輪駆動モータ21Lおよび右輪駆動モータ21Rがステッピングモータの場合は、エンコーダに代えてモータの駆動パルス数を用いてもよい。この実施例では、左輪エンコーダ71Lおよび右輪エンコーダ71Rが実際にエンコーダを備えるものとして説明する。
回路基板11Sは、機器制御部11、記憶部61、左輪ドライバ121L、右輪ドライバ121R、ジャイロセンサー20、送風機ドライバ123およびブラシドライバ125を備える。
左輪ドライバ121Lは、左輪駆動モータ21Lを電気的に駆動し、右輪ドライバ121Rは、右輪駆動モータ21Rを電気的に駆動する。ジャイロセンサー20は、走行方向の変化を検出する。送風機ドライバ123は、電動送風機115を電気的に駆動する。ブラシドライバ125は、ブラシモータ119を電気的に駆動する。
機器制御部11は、ドライバを介して左輪駆動モータ21L、右輪駆動モータ21R、イオン発生器120、電動送風機115およびブラシモータ119を制御する。
また、機器制御部11は、自走式掃除機1の走行を制御する走行制御部11a、位置検出部11b、特徴点抽出部11cおよび目標位置決定部11dの機能を包含する。
走行制御部11aは、左輪エンコーダ71Lおよび右輪エンコーダ71Rからのエンコーダの信号を用いて左輪駆動モータ21Lおよび右輪駆動モータ21Rの回転を制御することにより自走式掃除機1の走行を制御する。
位置検出部11bは、前記エンコーダ信号に基づいてホームポジションから自走式掃除機1が走行した距離および方向を取得する。なお、この実施形態でホームポジションは、後述する充電台201に自走式掃除機1がドッキングした状態における自走式掃除機1の部屋内の位置であって、位置検出部11bが検出する位置の基準となる位置である。
図6Aは、この実施形態にかかる自走式掃除機1が、充電台201にドッキングしているホームポジションの位置を示す平面図である。図6Bは、図6Aに示す自走式掃除機1が、ホームポジションから離れた位置にある様子を示す平面図である。図6Aおよび図6Bで、自走式掃除機1がホームポジションにあるときの中心の位置を部屋座標の原点「O」(オー)で示している。また、部屋座標原点から横方向に延びる座標軸のx軸と縦方向に伸びる座標軸のy軸を示している。なお、図6Aおよび図6Bにおいて自走式掃除機1と充電台201は実体が存在するのに対して、原点O、x軸およびy軸は概念上のものである。
図6Bは、自走式掃除機1が部屋座標原点からx軸方向にマイナス15センチメートル、y軸方向に20センチメートルの位置にあることを示している。
位置検出部11bは、図6Aに示すホームポジションを基準としてx方向およびy方向の座標値で自走式掃除機1の位置を検出する。
機器制御部11は、自走式掃除機1の各構成要素の動作を制御する部分であり、主として、CPU、RAM、I/Oコントローラ、タイマー等からなるマイクロコンピュータによって実現される。
CPUは、後述する記憶部61に予め格納されRAMに展開された制御プログラムに基づいて処理を実行し、各ハードウェアを有機的に動作させてこの発明の清掃機能、走行機能などを実行する。
記憶部61は、自走式掃除機1の各種機能を実現するために必要な情報や、制御プログラムを記憶するメモリである。この実施形態では、不揮発性メモリとしてフラッシュメモリとRAMとが組み合わせて用いられる。記憶部61は、位置情報データベース格納部61aおよびクエリ格納部61bを含む。
なお、図1には図示していないが、記憶部61は、目標位置の候補となる候補位置で撮影された画像に係る特徴点を、各候補位置を目標として選択する場合に用いる選択指示と関連付けてそれぞれ記憶する候補位置記憶部を含んでもよい。
障害検出部14は、超音波受信部14A、超音波送信部14B、衝突センサー14Cおよび床面検出センサー18を備える。床面検出センサー18は、筐体2の底部における左右方向の中央かつ前端部および左右のサイドブラシ10の軸心位置にそれぞれ配置されている。
障害検出部14、特に超音波受信部14Aおよび超音波送信部14Bは、自走式掃除機1が走行中に、室内の壁や机、いすなどの障害物に接触又は近づいたことを検出する部分である。壁面や障害物を検出しながらそれに沿って自走式掃除機1が走行するために用いられる。また、超音波受信部14Aは、障害物までのおおよその距離を測定することができる。障害検出部14は、超音波受信部14Aおよび超音波送信部14Bを用いて障害物への近接を検出する。超音波受信部14Aおよび超音波送信部14Bに代えて、あるいは超音波受信部14Aおよび超音波送信部14Bと共に、赤外線測距センサーなど他の方式の非接触センサーを用いてもよい。
衝突センサー14Cは、自走式掃除機1が走行時に障害物と接触したことを検出するために、例えば、筐体2の側板前半部2c1の内部に配置される。CPUは、衝突センサー14Cからの出力信号に基づいて側板前半部2c1が障害物に衝突したことを知る。
各床面検出センサー18は下り階段等、自走式掃除機1が回避して走行すべき大きな段差を検出する。
CPUは、障害検出部14から出力された信号に基づいて、障害物や段差の存在する位置を認識する。認識された障害物や段差の位置に基づいて、その障害物や段差を避けて次に走行すべき方向を決定する。なお、左右の床面検出センサー18は、段差に対して斜め方向に侵入した場合など前方の床面検出センサー18が段差の検出に失敗した場合に下り階段を検出し、自走式掃除機1の下り階段への落下を防止する。
ジャイロセンサー20は、自走式掃除機1が走行するとき走行方向の情報を走行制御部11aに提供する。
さらにまた、自走式掃除機1は、誘導信号受信部24、充電用接続部13、報知部55、電動送風機115、ブラシモータ119およびイオン発生器120を備える。さらに、無線通信部131、撮像部133および音声認識部135を備える。
左輪駆動モータ21Lは、左駆動輪22Lを回転および停止させ、右輪駆動モータ21Rは、右駆動輪22Rを回転および停止させる。左駆動輪22Lおよび右駆動輪22Rを独立して正逆両方向に回転させ得るように駆動モータを構成することにより、自走式掃除機1の前進、後退、旋回、加減速などの走行状態を実現している。
走行制御部11aは、右駆動輪22Rおよび左駆動輪22Lを同一方向に正回転させて、中央の超音波受信部14Aが配置されている前方へ自走式掃除機1を走行させる。また、左駆動輪22Lおよび右駆動輪22Rを同一方向に逆回転して後退させ、互いに逆方向に回転させまたは互いに異なる速度で回転させることにより自走式掃除機1を旋回させる。互いに異なる速度は一方の駆動輪が停止する場合を含む。
例えば、走行制御部11aは、障害検出部14の各センサーにより掃除領域の周縁に到達したと判断したら、左駆動輪22Lおよび右駆動輪22Rを減速させた後に停止させる。その後、左駆動輪22Lおよび右駆動輪22Rを互いに逆方向に回転させて自走式掃除機1を90°旋回させ、吸込口31の開口幅に等しい距離だけ進んでさらに90°旋回させて元の進路と逆方向へ走行させる。つづら折り状に前述の旋回を繰り返して自走式掃除機1をジグザグ走行させて、清掃領域内をくまなく清掃できるように制御する。
さらに自走式掃除機1は左輪エンコーダ71Lおよび右輪エンコーダ71Rを備えているので、左駆動輪22Lおよび右駆動輪22Rがそれぞれどれだけ回転したかを検出して自走式掃除機1が走行する際の旋回角を検出したり、移動した距離を検出したりできる。つまり、ホームポジションから目標位置までの距離と方向が与えられると、その目標位置へ自律的に移動することが可能である。
また、障害検出部14が進路上の障害物を検出した場合、走行制御部11aは自走式掃除機1を減速もしくは停止させた後に旋回させて障害物を避けるように向きを変える。その障害物が検知されなくなるまで進んだら元の進路の延長上へ近づける方向へ自走式掃除機1を旋回させて走行を続ける。また、各床面検出センサー18が床面を検知しなくなった場合、自走式掃除機1を一旦停止させて後退および/または旋回させ、階段等の段差から落下しないように走行を制御する。このようにして、走行制御部11aは、設置場所の全体あるいは所望範囲全体に渡って障害物を避けながら自走式掃除機1を走行させる。
なお、この実施形態で、前方とは、自走式掃除機1の前進方向、即ち図3において後輪26から吸込口31へ向かう方向をいうものとし、後方とは、自走式掃除機1の後退方向、即ち図3において吸込口31から後輪26へ向かう方向をいうものとする。
誘導信号受信部24は、赤外線を受信するための赤外線センサーであり、筐体2の前方部に配置される。誘導信号受信部24は、ドッキング・ステーションとしての充電台201の誘導信号送出部203から出射される位置標識信号(ビーコン)等を受信する。さらに、図1に図示しないリモコン装置からの赤外線信号を受信してもよい。機器制御部11は、受信されたリモコンからの赤外線信号を認識して、ユーザーが与えた指示に応答する。
機器制御部11は、充電台201の誘導信号送出部203から出射される信号を誘導信号受信部24で検知し、充電台201のある方向を認識する。走行制御部11aは、掃除が終了した場合、充電池12の充電残量が少なくなった場合、あるいは予め定められた清掃作業の期間が経過した場合などに、充電台201のある方向へ走行させて、自走式掃除機1を充電台201まで帰還させる。ただし、障害物があれば、それを避けながら充電台201の方向へ移動させる。
報知部55は、自走式掃除機1の状態をユーザーに知らせるものである。この実施形態において、報知部55は、音を出力する音響出力回路とスピーカである。別の態様として、筐体2の上部、より具体的には例えば天板前部2b1や側板後半部2c2にLEDランプ等を用いた表示部を設けてもよい。さらに別の態様として、ユーザーの所有するスマートフォン等通信機能を有する情報処理装置に無線通信部131を通じて通知してもよい。
無線通信部131は、自走式掃除機1が外部の機器と通信する無線通信回路である。典型例として、無線LAN方式の通信回路が挙げられる。それに代えて、あるいはそれに加えて、例えばLTEなどの移動体通信の通信方式で通信するものであってもよい。外部の機器は、例えば、ユーザーが使用するスマートフォンである。無線通信部131は、前記スマートフォンを用いてユーザーが与えた指示に係る無線信号を受信する。機器制御部11は、受信した無線信号を認識して、前記指示に応答する。
なお、図1には図示していないが、無線通信部131は、目標へ走行すべき走行指示を受付ける指示受領部としての機能を包含してもよい。
撮像部133の具体的態様は、機器組込型のカメラモジュールである。静止画だけでなく、動画撮影が可能であってもよい。撮像部133は、図2に示すように誘導信号受信部24の上方に取り付けられ、自走式掃除機1の上方および周囲の光景を撮影する。撮像部133としてのカメラモジュールは広角レンズを備えており、上方だけでなく側方の光景も撮影する。
音声認識部135は、ユーザーが発する音声を感知して予め定められた指示か否かを認識するマイクおよび音声認識回路である。図1には図示していないが、音声認識部は、目標へ走行すべき走行指示を受付ける指示受領部としての機能を包含してもよい。即ち、指示受領部としての機能は、前述の無線通信部131によって実現されてもよく、この音声認識部135によって実現されてもよく、両者がそれぞれ指示受領部の機能を実現してもよい。
以上が、この実施形態に係る自走式掃除機の構成の説明である。
充電台についても少し述べておく。充電台201は、充電端子部202および誘導信号送出部203を備える。充電台201に自走式掃除機1がドッキングすること、即ち、充電台201の充電端子部202と自走式掃除機1の充電用接続部13とが電気的に接触することにより、自走式掃除機1は充電台201からの電力の供給を受ける。充電台201にドッキングした状態で、自走式掃除機1の充電池12が充電される。誘導信号送出部203は、ビーコン信号を生成する信号生成回路と生成された赤外光信号を放射するLEDからなる。
充電台201は、一般に部屋の隅など、邪魔にならない場所に置かれることが多く、一旦置き位置が決めたらずっとその位置に置かれることが多い。自走式掃除機1は掃除が終わると充電のために充電台201に帰還し、充電池12を充電する。つまり、自走式掃除機1は掃除をしていないときは充電台で充電池12の充電をしながら待機している。
≪位置情報データベース作成の概要≫
次に、この実施形態において位置情報データベースを作成する手順の概要を説明する。
位置情報データベースの作成は、自走式掃除機1が走行する部屋の複数の位置、好ましくは実質的に任意の位置といえる程多数の位置において、撮像部133が撮影する周囲の光景をデータベースに登録する処理である。平易にいえば、自走式掃除機にその部屋の各位置における光景を覚えさせる処理ともいえる。
位置情報データベースを作成する指示が、例えばユーザーの「部屋の特長を覚えて」という音声メッセージとして予め定められているとする。音声認識部135がこの音声を受けて指示と認識すると、それに応答して機器制御部11は、走行制御部11aとしてホームポジションから予め決められたルールに従って自走式掃除機1を部屋内の各所に走行させる。そして、撮像部133に各位置での光景を撮影させる。さらに機器制御部11は特徴点抽出部11cとして、撮影された各位置での画像から特徴点をそれぞれ抽出する。その画像が部屋内のどの位置で撮影されたものかを示す部屋座標は、左輪エンコーダ71Lおよび右輪エンコーダ71Rからのエンコーダ信号を用いて位置検出部11bとしての機器制御部11が検出する。位置検出部11bは、さらにジャイロセンサー20を用いて部屋座標の精度を高めてもよい。
機器制御部11は、各位置で撮影された画像から抽出された複数の特徴点につて、各特徴点が抽出された画像内の位置を表す特徴点情報と、室内の位置を示す部屋座標とを関連付けて位置情報データベース格納部61aに格納する。特徴点情報は、各特徴点の前記画像内の位置を示す特徴点座標と、画像内の各特徴点の配置関係を示す情報(距離情報)とを有する。
部屋内のある位置で撮影された画像に基づいて作成された特徴点情報とその位置を表す部屋座標とが関連付けられた情報をその位置の位置情報と呼ぶ。機器制御部11は、各撮影位置における位置情報を位置情報データベース格納部61aに格納する。部屋内の複数の位置において位置情報を作成して位置情報データベース格納部61aに格納する処理を「位置情報データベースの作成」という。
この実施形態における位置情報データベースの作成の手順は次の通りである。
充電台201とドッキングした状態で位置情報データベースの作成を求める指示を受付けると、機器制御部11は走行制御部11aとして、自走式掃除機1を部屋内の各所に走行させるように制御する。掃除を行う場合にも、自走式掃除機1は部屋内をくまなく走行して掃除を行うので、位置情報データベースを作成する場合と掃除を行う場合とで同じ走行パターンを適用してもよい。このとき、部屋内の走行面を予め定められたサイズの縦横マトリクス状に区画割りし、区画毎に写真を撮影して特徴点を抽出して特徴点情報を作成し、特徴点情報と部屋座標とが関連付けられた位置情報を位置情報データベースに格納していく。
図7は、この実施形態において、自走式掃除機1が走行する部屋の間取りの一例と区画を示す説明図である。図7に示す部屋300には、テーブル301、ソファー303、テレビ305、本棚307、空気清浄機309といった家具類が置かれている。これらの家具類は、自走式掃除機1にとって障害物であり、例えばテレビ305の置台のある場所は走行できない。また、部屋の隅(図7の右上の隅)には、充電台201が置かれている。部屋300内を縦横に走る鎖線で区切られた矩形領域は、区画の単位を示している。家具類は実体があるが、区画は仮想的なものである。
この実施形態において、位置情報データベースの作成の際に自走式掃除機1が部屋内を走行するルールは、予め定められた間隔(ピッチ)で往復路をシフトさせながらジグザグ運転を行うことを基本とする。即ち、自走式掃除機1は、走行路前方に障害物が検出されるまでは直進し、障害物である壁を検出したらその障害物との衝突を避けるように側方(この実施形態では右側とする)へ90°旋回する。そして、予め定められたピッチの30cmだけ進むとさらに右側へ90°旋回して折り返す。その後、再び障害物を見つけるまで直進するといったルールに従って走行する。
位置検出部11bは、走行した経路の部屋座標を検出する。走行制御部11aは、基本のジグザグ運転を続けて自走式掃除機1がホームポジションの反対側の隅まで部屋内を走行したと判断したら、ホームポジションからのジグザグ運転中に障害物を回避するために走行しなかった領域の走行を試みる。障害物を回避するために折り返してしまった床面の領域が残っている場合、その領域を走行するためである。
なお、位置情報データベースを作成する際のジグザグ運転の折返しピッチ、言い換えれば区画のピッチは、掃除を行う場合の折返しピッチと同じであってもよいが異なってもよい。
図8は、この実施形態における自走式掃除機1が位置情報データベースを作成する際、ホームポジションからスタートして各区画で順次撮影を行う様子を示す説明図である。図8で、充電台201を始点とする矢印は自走式掃除機1の走行路を示している。その矢印に沿って並ぶ丸印は、各区画で機器制御部11が撮像部133に撮影をさせる位置を示す。図8に示すように、機器制御部11は、自走式掃除機1をジグザグ走行させて、1区画進む毎にその区画に対応する光景を撮像部133に撮影させる。そして、部屋座標と関連付けた位置情報を位置情報データベース格納部61aに格納する。
図8に示す縦横マトリックス状の区画は、一つの区画の大きさが縦横それぞれ30cmであるとする。その場合、機器制御部11は、自走式掃除機1が30cm直進する毎にその位置で撮像部133に周囲の光景を撮影させる。30cm直進したことは、位置検出部11bが検出した現在位置の部屋座標を前回撮影した位置の部屋座標と比較して判断する。そして、特徴点抽出部11cは、撮影された画像から特徴点を抽出する。そして、抽出された複数の特徴点の画像内におけるそれぞれの座標値(特徴点座標)とそれらの特徴点の配置関係とを表す特徴点情報を作成する。なお、この明細書において特徴点座標を表す場合には、大文字のXおよびYを用いることとする。図6Aおよび図6Bで、部屋内の自走式掃除機1の位置を表す部屋座標に小文字のxおよびyを用いたので、それとの区別を明確にするためである。
機器制御部11は、ある画像に係る特徴点情報を作成する際に、その画像内の特徴点の配置関係を表す距離情報を作成する。この実施形態において距離情報は、同じ画像に含まれる2つの特徴点の距離をすべての特徴点について計算したデータである。特徴点情報は、それぞれの特徴点についてその特徴点の位置を示す特徴点座標を含む。さらに、その特徴点と画像内の全ての特徴点との間の距離を表す距離情報を含む。特徴点情報は、同じ画像内のすべての特徴点について特徴点座標と距離情報とをそれぞれ組み合わせてなる情報である。位置情報は、位置検出部が検出した部屋座標(撮影位置のxおよびy座標値)を前記特徴点情報と関連付けた情報であり、位置情報データベースは部屋内の各位置における位置情報を格納するデータベースである。
機器制御部11は、自走式掃除機1を走行させながら走行可能な区画の位置情報と部屋座標とを位置情報データベース格納部61aに格納していく。ただし、現在位置が既に位置情報データベース格納部61aに格納された区画内であれば、重複した撮影および位置情報の格納は行わない。このようにして、部屋内の走行可能な領域の各区画について位置情報を位置情報データベース格納部61aに格納したら、機器制御部11は、自走式掃除機1を充電台201に帰還させてホームポジションへ戻す。
以上が、位置情報データベース作成の概要である。
≪目標位置の学習≫
上述のように作成された位置情報データベースは、自走式掃除機1を走行させるべき目標位置を決定するために用いられる。
この実施形態において、自走式掃除機1は、ユーザーの操作によって目標位置を学習する。一旦その目標位置を学習したら、その後ユーザーが指示を与えるだけで、自走式掃除機1は学習した位置へ走行することが可能になる。学習させる目標位置は1つに限らない。複数の位置を学習させておくことができる。自走式掃除機1に学習させた位置は、その後の目標位置となり得るので候補位置とよぶ。
候補位置を学習させる段階で、ユーザーは自走式掃除機1を候補位置へ持って行く。候補位置の床面に自走式を置いた状態で、その位置を学習するように自走式掃除機1に指示をする。例えば、ユーザーが「ソファー前だよ、この場所を覚えて」と音声で指示を与える。
音声認識部135がこの音声を受けて指示と認識すると、指示に応答して自走式掃除機1は、その位置で撮像部133により周囲の光景を撮影する。さらに、撮影された画像から複数の特徴点を抽出し、抽出された各特徴点に係る特徴点情報を作成し、さらに特徴点情報を用いて距離情報を作成し、クエリ格納部61bに格納する。ここで、特徴点を抽出する手法、特徴点情報および距離情報の作成手順は、位置情報データベースの作成の局面と同様の処理である。
目標位置決定部11dとして機器制御部11は、クエリ格納部61bに格納された距離情報に最も類似する距離情報を持つ位置情報を位置情報データベースの中から検索する。この明細書では、この処理を「位置の推定」という。即ち、候補位置での距離情報に基づいて最近傍探索の処理を行う。なお、探索に要する処理時間やメモリ量を削減するために厳密な最近傍探索に代えて近似最近傍探索を行ってもよい。
そして、探索処理によって位置情報データベース中のから見出した位置情報に格納されている部屋座標(xおよびy座標)を、目標位置として決定し、その部屋座標を候補位置の部屋座標として記憶部61に格納する。
さらに、学習した候補位置を他の候補位置と識別するキーワードと関連付ける。即ち、「ソファー前だよ」の部分から、学習した位置を候補位置の部屋座標と関連付けて記憶部61に格納する。
あるいは、ユーザーが単に「この位置を覚えて」という指示を与えると、それに応答して画像を撮影して特徴点を抽出し、位置情報データベースを検索して部屋座標を決定する。その後、機器制御部11は、報知部55に「この位置の名前を言って!」と質問の音声メッセージを出力させる。それに応えてユーザーが、例えば「テレビの前」と言うと、音声認識部135がその音声を認識する。機器制御部11は、認識した音声を候補位置の部屋座標と関連付けて記憶部61に格納する。
以後、ユーザーが「ソファー前を掃除して」という音声を発すると、音声認識部135がユーザーの音声を受付けて「ソファー前」へ移動して「掃除」するようにとの指示と認識する。走行制御部11aは、記憶部61に格納された候補位置のうち、「ソファー前」に関連付けられた部屋座標を検索して取得し、取得した部屋座標が示す位置へ自走式掃除機1を走行させた後、その周囲を掃除し、掃除を終えたらホームポジションに戻るように制御する。
同様に、ユーザーの「テレビの前を掃除して」の音声を認識すると、機器制御部11は、すでに学習したテレビの前の位置へ自走式掃除機1を走行させ、その周囲を掃除し、掃除を終えたらホームポジションに戻るように制御する。
≪位置情報データベース作成の処理手順≫
さらに位置情報データベース作成のより詳しい処理を説明する。
位置情報データベースは、部屋内の各位置で撮像部133が撮影した周囲の光景の画像から得られる特徴点情報と、その撮影がなされた位置について位置検出部11bが検出した部屋座標原点からの相対位置とが紐付けられて登録されたデータベースである。
図9〜図11は、この実施形態において、機器制御部11が位置情報データベースを作成する際に実行する処理を示すフローチャートである。図9は全体の処理を示し、図10は特徴点情報の作成を示し、図11は距離情報の作成を示す。
図9のフローチャートに沿って、処理の手順を説明する。
ユーザーからの指示を受付けたら、機器制御部11は、その指示に応答して位置情報データベースの作成を行う。
はじめに機器制御部11は、以下の処理に用いる変数を初期化する。例えば、部屋座標の座標値を格納する一時変数xおよびyに、ホームポジションを示す座標値ゼロをセットする。また、自走式掃除機1の走行方向を表す変数Rに初期値ゼロをセットする。
ここで、変数Rは、0〜3の値をとり、各値は、
R=0:進行方向が、部屋座標のy軸のプラス方向(図6Aの上方向)
R=1:進行方向が、部屋座標のx軸のプラス方向(図6Aの右方向)
R=2:進行方向が、部屋座標のy軸のマイナス方向(図6Aの下方向)
R=3:進行方向が、部屋座標のx軸のマイナス方向(図6Aの左方向)
のようにxおよびy座標のプラスおよびマイナス方向を表すものとする。そして例えば、走行中前方に障害物を検出した場合、機器制御部11は、障害物を回避するために自走式掃除機1を90°右旋回させる。それと共に方向変数Rに1を加算する(ただし、R=3の場合はゼロにする)。
さらに機器制御部11は、自走式掃除機を180度旋回させた後に部屋内の走行を開始させる(ステップS11)。
部屋内を走行中に機器制御部11は、走行面の前方に障害物を検出したか否かを調べる(ステップS13)。障害物があれば(ステップS13のY)、その直前で自走式掃除機1を左または右へ90°旋回させてジグザグ走行を行うように制御する(ステップS15)。障害物がなければ(ステップS13のN)前進を続けて(ステップS17)、新たな区画の撮影位置に到達するまでそのまま前進させる。走行中、機器制御部11は、位置検出部11bとして左輪エンコーダ71Lおよび右輪エンコーダ71Rから得たエンコーダ信号に基づいて走行距離と走行方向を計算する。そして、自走式掃除機1が現在、ホームポジションを基準とする部屋座標のどの位置にいるかを計算する。部屋座標を算出する処理の詳細については後述する。
(ステップS19)。新たな区画の撮影位置に到達したら、その位置で既に位置情報を位置情報データベースに登録したか否かを調べる(ステップS21)。既に登録済の場合(ステップS21のY)、ルーチンはステップS29へ進む。
その位置での位置情報が未登録の場合(ステップS21のN)、機器制御部11は、撮像部133にその位置の光景を撮影させる。さらに、特徴点抽出部11cとして、撮影された画像から特徴点を抽出して特徴点情報を作成する処理を行う(ステップS23)。特徴点情報を作成する詳細な処理は図10に示しており、図10の説明で詳しく述べるが、特徴点の画像中の位置(座標値)を、それぞれの特徴点について表す情報である。特徴点情報は、1つの画像から抽出された複数の特徴点の配列fp[]として表される。
さらに機器制御部11は、作成された特徴点情報に基づいて距離情報を作成する(ステップS25)。距離情報を作成する詳細な処理は図11に示しており、図11の説明で詳しく述べるが、1つの画像中の2つの特徴点の距離を全ての組合せについて表したものであり、2つの特徴点に対応する2次元配列ds[][]として表される。
そして、機器制御部11は、位置検出部11bとして検出したその位置の部屋座標を、特徴点情報、距離情報と関連付けて位置情報とし、位置情報を位置情報デーベース格納部61aに格納する(ステップS27)。
そして、部屋内の走行可能なすべての区画について位置情報を位置情報データベースに登録したか否かを判断する(ステップS29)。
まだ、走行を試みるべき区画が残っていれば(ステップS29のN)、ルーチンはステップS13へ戻り、障害物を避けながら走行して各区画での位置情報の登録を繰り返す。
一方、全ての区画が登録されたと判断したら(ステップS29のY)、処理を終了する。
≪部屋座標の算出≫
前述のステップS19で述べた部屋座標算出の詳細について述べる。
位置検出部11bは、自走式掃除機1のホームポジションからの相対位置を逐次検出する。
前回、自走式掃除機1の位置を検出してから、今回位置を検出するまでの間に、自走式掃除機が距離D走行したとする。この距離Dは、左輪エンコーダ71Lおよび右輪エンコーダ71Rからのエンコーダ信号に基づいて算出する。両者のエンコーダ信号のカウント数が等しければ直進していると判断する。両者の符号が異なるが絶対値が等しい場合、自走式掃除機が旋回していると判断する。ここで、エンコーダ信号の符号は駆動輪の回転方向を表すものとする。
さらに、両者に差があれば、自走式掃除機1が走行方向を変えて走行したと判断する。両者の差に応じて変化した進行方向と走行距離を検出できる。進行方向が緩やかに変化する場合は左右の回転数を制御して直進しようとするので、説明を単純にするためにこの実施形態において走行パターンは直進と90°旋回のみとする。即ち、ここでは、自走式掃除機1はx軸またはy軸に沿って直進して距離Dだけ走行したものとする。
位置検出部11bは、前回および今回の位置検出において進行方向を示す変数Rの値を参照する。仮定したように自走式掃除機1がx軸またはy軸に沿って直進しているので、前回と今回とで変数Rの値は等しい。前回位置を検出した際の部屋座標が(x,y)とするとき、
R=0の場合、今回の部屋座標(x,y)は、前回の部屋座標値に対してy座標値にDを加えた位置と算出する。即ち、
=x, y=y+D
とする。
R=1の場合、前回の部屋座標値に対してx座標値にDを加えた位置と算出する。
=x+D, y=y
R=2の場合、前回の部屋座標値に対してy座標値からDを減じた位置と算出する。
=x, y=y−D
R=3の場合、前回の部屋座標値に対してx座標値からDを減じた位置と算出する。
=x−D, y=y
なお、自走式掃除機1が旋回のみの場合、今回の部屋座標(x,y)は、前回の部屋座標値と等しく、変数Rが変化する。
部屋座標の座標値の単位としては、例えば図7に示す縦横マトリックス状の1区画の大きさを1単位としてもよい。前述の座標値(x,y)がセンチメートルの単位で計測され、1区画の大きさが縦横共に30センチメートルの場合、部屋座標の座標値は、xおよびyをそれぞれ30cmで除した値になる。
≪特徴点情報の作成処理の詳細≫
続いて、図9のステップS23に示す特徴点情報の作成処理の詳細について、図10のフローチャートを用いて説明する。図10は、図9のステップS23に示す処理の詳細を示すフローチャートである。
図10で、特徴点抽出部11cとして機器制御部11は、撮像部133に周囲の光景を撮影させる(ステップS31)。そして、撮影した画像を白と黒の2値化する(ステップS33)。2値化処理は、例えばP−タイル法、モード法など既知のアルゴリズムを適用すればよい。なお、2値化処理で得られた画像の横幅(X方向の画素数)を「WIDTH」で表し、その画像の高さ(Y方向の画素数)を「HEIGHT」で表すこととする。
続いて、以後の処理に用いる変数を初期化する(ステップS35)。具体的には、撮影された画像内における特徴点のX方向の何番目の画素であるかを示す変数、言い換えればX座標を表す変数XにX=0を設定する。同様に、画像内における特徴点のY方向の何番目の画素であるかを示す変数、言い換えればY座標をそれぞれ表す変数YにY=0を設定する。さらに、1つの画像中の特徴点を表す配列変数である特徴点配列fp[]のすべての要素をクリアする。また、特徴点配列fp[]を示すポインタの変数iにi=0を設定する。この実施形態で、特徴点情報は、特徴点配列fp[]として表される。
続いて、特徴点抽出部11cは、特徴点座標(X,Y)−(X+2,Y+2)の範囲で構成される3×3の画素マトリックスが、予め定められたコーナーとしてのパターンに該当するか否かをチェックする。即ち、画素マトリックス中央の注目画素(X+1,Y+1)とそれを囲む8画素の参照エリアからなる3×3の画素マトリックスを、コーナーのパターンと照合する(マッチングを行う)(ステップS37のマッチング処理)。なお、コーナーのパターンは、図13に具体例を示しており後述するが、3×3画素マトリックスとして予め用意されている。
注目画素を含む画素マトリックスがコーナーのパターンにマッチしている場合(ステップS37のY)、次の処理を行う。注目画素が特徴点であるとして、注目画素(X+1,Y+1)の特徴点座標値を特徴点配列fp[]に格納してポインタiの値を1増やす(ステップS39)。
一方、注目画素を含む画素マトリックスがコーナーのパターンにマッチしていない場合(ステップS37のN)、特徴点配列fp[]への格納は行わない。
続いて特徴点抽出部11cは、画素のX方向の数を表す変数Xの値を1増やして(ステップS41)注目画素を右側へシフトさせたうえで、注目画素と参照エリアからなる3×3画素マトリックスが画像の右端に達したか否かを調べる(ステップS43)。即ち、変数Xの値が「WIDTH」−2に達したか否かを調べる。ここで、「−2」は、3画素分の幅を持つ3×3画素マトリックスが画像からはみ出さないという条件に基づく。
右端に達していなければ(ステップS43のY)、ルーチンはステップS37へ戻り、シフト後の注目画素がコーナーのパターンに該当するか否かを調べる。
一方、シフト後の画素マトリックスが画像の右端からはみ出した場合(ステップS43のN)、特徴点抽出部11cは、変数Yを1増やして注目画素を下方向にシフトさせる。それと共に、変数XにX=0を設定してシフト後のラインの左端に注目画素を移動させる(ステップS45)。このようにして、次のラインの走査する準備をするが、その前に走査開始前に下方向へシフトした画素マトリックスが画像の下端に達しているかを確認する(ステップS47)。即ち、変数Yの値が「HEIGHT」−2に達したか否かを調べる。「−2」は、3画素分の幅を持つ3×3画素マトリックスが画像からはみ出さないという条件に基づく。
下端に達していなければ(ステップS47のY)、ルーチンはステップS37へ戻り、シフト後の注目画素がコーナーのパターンに該当するか否かを調べる。
一方、シフト後の画素マトリックスが画像の下端からはみ出した場合(ステップS47のN)、操作が終了したと判断し、そのときのポインタ変数iの値を変数「FPMAX」に格納する。FPMAXと特徴点配列fp[]とは、その画像に対応する特徴点情報を提供する。
≪距離情報の作成処理の詳細≫
続いて、図9のステップS25に示す距離情報の作成処理の詳細について、図11のフローチャートを用いて説明する。図11は、図9のステップS25に示す処理の詳細を示すフローチャートである。
図11で、機器制御部11は、同じ画像内の2つの特徴点の距離を各特徴点の組合せについてそれぞれ算出する。
最初に変数の初期化処理を行う。まず、1つ目の特徴点を参照するためのインデックス変数h1にh1=0を設定する(ステップS51)。さらに、2つの特徴点の距離を格納する2次元の距離情報配列ds[][]の各要素をゼロにクリアする。
次に、2つ目の特徴点を参照するためのインデックス変数h2にh2=0を設定する(ステップS53)。
続いて、変数h1とh2の値が等しいかどうかを調べる(ステップS55)。初期化後はh1=h2=0であるから、両者は等しい(ステップS55のY)。両者が等しい場合、同じ特徴点を指し示しているので距離dを0にする(ステップS57)。一方、h1とh2が同じでない場合に、h1、h2がそれぞれ指し示す特徴点fp[h1]とfp[h2]との距離を計算する(ステップS59)。2つの特徴点の距離dは、2点の特徴点の特徴点座標をそれぞれ(X0,Y0)および(X1,Y1)とするとき、
d=√{(X1−X0)^2+(Y0−Y1)^2}
で求められる。即ち、2次元平面のユークリッド距離として計算できる。
以上のステップS57またはS59で距離を求めたら、求まった距離dを、距離情報配列ds[h1][h2]に格納する(ステップS61)。
例えば、1つ目の要素である特徴点と4つ目の要素である特徴点距離がd14の場合、h1=0,h2=3となるため距離情報配列ds[0][3]にd14を格納する。即ち、
ds[0][3]=d14
なお、4つ目の要素である特徴点と1つ目の要素である特徴点の距離d41は、h1=3,h2=0となるため、ds[3][0]=d41となる。ここで、ds[0][3]とds[3][0]とは同じ情報であるので、いずれか一方を省略してもよい。ここでは、説明を単純にするために2つの特徴点の全ての組合せについて距離を計算して距離情報配列ds[][]に格納するものとして説明する。
次に、機器制御部11は、2つ目の特徴点を参照するインデックスh2を1つ増加させたうえで(ステップS63)、h2がすべての特徴点を参照したかどうかを調べる(ステップS65)。即ち、h2の値がFPMAX達したか否かを調べる。ここで変数FPMAXには、図10で特徴点情報を作成する際にその画像から抽出された特徴点の数が格納されている。
h2がFPMAXに達していない、即ち、h2<FPMAXの場合(ステップS65のY)、ルーチンはステップS55へ戻って新たな2つの特徴点の距離を計算して距離情報配列ds[][]に格納する。
一方、h2がFPMAXに達した場合(ステップS65のN)、ルーチンはステップS67へ進み、1つ目の特徴点を参照するインデックス変数h1を1つ増加させたうえで(ステップS67)、h1がすべての特徴点を参照したかどうかを調べる(ステップS69)。
h1がFPMAXに達していない、即ち、h1<FPMAXの場合(ステップS69のY)、ルーチンはステップS53へ戻る。そして、h2をゼロに初期化し、新たな1つ目の特徴点について、画像中のすべての特徴点との距離を計算して距離情報配列ds[][]に格納する。即ち、新たなh1についてh2が0からFPMAX−1までの組合せのそれぞれの距離を計算して距離情報配列ds[][]に格納する。
一方、前記ステップS69で、h1がFPMAXに達した場合(ステップS69のN)は、処理を終了する。
≪位置情報データベースのデータ構造≫
図12は、この実施形態において作成される位置情報データベースのデータ構造を示す説明図である。
図12に示すように、位置情報データベースは、各部屋座標における位置情報からなる。図12の例では、n箇所の異なる部屋座標の位置における位置情報が位置情報データベースに格納されている。各位置情報は、その位置を表す部屋座標の値xおよびyとその位置で撮影された画像に係る特徴点配列(即ち、特徴点情報)からなる。
特徴点情報は、1つの画像から抽出された特徴点の配列である。図12の例では、1つの画像からm個の特徴点が抽出されている。
特徴点配列中の各特徴点に対応する1つの要素は、その特徴点の画像内での位置を示す特徴点座標(X,Y)と、前記特徴点を1つ目の特徴点として画像内のすべての特徴点との距離を示す距離情報ds[][]からなる。m個の特徴点のうちh番目の特徴点に係る距離情報は、ds[h][k]で表される。ただし、kは0から(m−1)までm個の値をとり、よって、ds[h][k]は、hが固定でkがm個の要素からなる。
≪特徴点とするパターンの例≫
図13は、この実施形態において特徴点として検出する画素パターンを示す説明図である。図13で、それぞれの画素パターンは3×3の画素マトリックスを示しており、画素マトリックス内の各画素は2値化された白または黒を表している。
この実施形態では、2値化後の画像の3×3画素マトリックスの領域を、予め定められたコーナーの画素パターンとマッチングしていく。図13は、予め定められたコーナーの画素パターンを種類別に示している。
図13で、(a)の8通りの画素パターンは直角コーナーの検出パターンを示す。(b)の8通りの画素パターンは、鈍角コーナーの検出パターンを示す。また、(c)の8通りの画素パターンは鋭角コーナーの検出パターンを示す。これらの何れかの画素パターンとマッチした場合、その3×3画素マトリックスの中央の画素を特徴点座標とする。
これに対して、(d)の8通りの画素パターンはエッジのパターンである。コーナーでないので、特徴点としては抽出しない。
ただし、これは一例であって、コーナーに加えてエッジも特徴点として抽出する態様も考えられる。また、3×3画素マトリックスは一例に過ぎず、他の大きさの画素マトリックスをマッチングに適用する態様も考えられる。
なお、画像から特徴点を抽出する手法としては、SIFT、SURF、ORB、AKAZEなどが知られており、これら周知のアルゴリズムを適用すればよい。
図14は、この実施形態において、物体の一例としてのテーブルが撮影された画像から特徴点が抽出される位置を視覚的に示す説明図である。図14に示すように、テーブルの画像を2値化した後、画像内の注目画素を縦横にシフトさせていきながら3×3の画素マトリックスが図13のコーナー検出パターンとマッチする点を探していく。例えば、テーブルの手前左側の脚の下端は、直角コーナーの検出パターンとマッチするので特徴点として抽出される。また、テーブルの手前右側の脚の下端は、鈍角コーナーのパターンとマッチするので特徴点として抽出される。一方、テーブルの手前中央部には、エッジのパターンが存在するが、コーナーでないために特徴点としない。このようにして、テーブルの画像からコーナーの検出パターンとマッチする複数の特徴点が抽出される。
≪位置の推定処理≫
続いて、この実施形態における位置の推定の詳細を説明する。
なお、「位置の推定」処理においてデータの検索は演算時間がかかるので、特徴点の演算処理は自走式掃除機1が充電台201にドッキングしている待機中に行ってもよい。
また、予め学習させたい位置で撮像部133に撮影を行わせるが、位置情報データベースの作成処理は掃除をしながら行うようにしてもよい。そして、位置情報データベースの作成を終えてデータベースが完成してから「位置の推定」処理のためのデータ検索を行ってもよい。
図15は、この実施形態において、機器制御部11が実行する位置の推定の全体の処理を示すフローチャートである。
例えば、「ソファー前だよ、この場所を覚えて」といった位置推定を要求するユーザーの指示に応答して機器制御部11は、目標位置決定部11dとして次の処理を実行する。
まず、その位置で撮像部133に周囲の光景を撮影させる。撮影された画像から特徴点情報を作成する(ステップS101)。特徴点情報の作成処理は、図10で述べた処理と同様であるため詳細説明は省略するが、画像から複数の特徴点を抽出し、各特徴点を要素とする特徴点配列fp[]に特徴点情報を作成する。そして、その特徴点配列fp[]および特徴点数の値を示すFPMAXの内容をクエリ格納部61bに格納する。
続いて目標位置決定部11dは、距離情報の作成を行う(ステップS103)。図11の処理と同様であるため詳細説明は省略するが、作成された特徴点配列fp[]に基づいて、2つの特徴点のすべての組み合わせについて特徴点間の距離を計算し、距離情報配列ds[][]に格納する。そして、距離情報配列ds[][]の内容をクエリ格納部61bに格納する。
さらに、目標位置決定部11dは、以下の処理で使用する変数を初期化する(ステップS105)。まず、位置情報データベースを参照するためのインデックス変数jにj=0(ゼロ)を設定して位置情報データベースに格納されている複数の位置情報のうち最初の位置情報を指すようにする。また、最大スコアを格納する一時変数smaxにsmax=0(ゼロ)を設定してクリアする。そして、最大スコアを参照するためのインデックス変数kにk=−1を設定する。また、比較用の特徴点配列cfp[]、比較用の特徴点数の変数CFPMAXおよび比較用の距離情報配列cds[][]をクリアする。
次に、目標位置決定部11dは、候補位置で撮影され前記ステップS101およびS103で撮影され特徴点情報および距離情報を用いて、位置情報データベースに格納されたすべての位置情報と順次マッチングを行うループ処理を実行する。
まず、位置情報データベースを参照するインデックスjが、位置情報データベースに格納された位置情報の数を示す値、RMAX未満か否かを調べる(ステップS107)。変数jの初期値はゼロであるからその場合のステップS107の判定はYesとなりルーチンはステップS109へ進む。一方、判定がNo、即ち、すべての位置情報についてマッチングを終えた場合は処理を終了する。
前記ステップS107の判定がYの場合、目標位置決定部11dは、インデックス変数jを用いて位置情報データベースの一つの位置情報を取り出す(ステップS109)。すなわち、その位置情報をクエリ格納部61bに格納された目標位置に係る情報との比較対象とする。そして取り出した位置情報に係る特徴点配列を比較用の特徴点配列cfp[]にコピーし、その特徴点数をCFPMAXにコピーする。さらに、前記位置情報に係る距離情報を比較用の距離情報配列cds[][]にコピーする。
なお、比較対象とされた位置情報は、ステップS117からステップS107へ戻るループ処理によって順次変更され、位置情報データベース中のすべての位置情報と比較がなされるまでループする。
続いて目標位置決定部11dは、特徴点配列fp[]、cfp[]、距離情報配列ds[][]、cds[][]を用いて、マッチングの程度を表すスコアsを計算する(ステップS111)。fp[]は、クエリ格納部61bの特徴点配列であり、cfp[]は比較対象が格納された特徴点配列である。ds[][]は、クエリ格納部61bの距離情報配列であり、cds[][]は、比較対象が格納された距離情報配列である。スコアsの計算手順の詳細は、図16で説明する。
目標位置決定部11dは、算出されたスコアsがsmaxより大きいか否かを調べる(ステップS113)。スコアsがsmaxより大きい場合(ステップS113のY)、変数smaxにスコアsを設定する。また、最大スコア参照用のインデックス変数kにjで更新する(ステップS115)。即ち、変数smaxにこれまでのうちで一番高いスコアを格納し、そのスコアを持つ位置情報を参照するインデックスを変数kに格納する。
そして、インデックス変数jを1つ増加させた後(ステップS117)、ルーチンはステップS107へ戻る。
以上のようにして、位置情報データベースに格納されたすべての位置情報について、マッチングを行って、最高のスコアを与える位置情報のインデックスを変数kに格納し、そのスコアをsmaxに格納して処理を終了する。
処理が終了した時点で、変数kは、クエリ格納部61bに格納された目標位置での特徴と最も類似した特徴を有する位置情報を指している。類似する位置情報が見つからなかった場合、変数kは初期値のk=−1のままとなる。変数kが−1でないときは、変数kで参照する位置情報、即ち、位置情報データベースのk番目のレコードに相当する位置情報の部屋座標(x,y)が推定された目標位置である。
≪マッチング処理≫
図15のステップS111で実行するマッチング処理の詳細について説明する。
図16は、この実施形態におけるマッチング処理の手順を示すフローチャートである。
図16で、まず目標位置決定部11dは、スコアを格納する変数sをs=0に設定してクリアする(ステップS121)。
そして、スコアの演算にあたり、クエリ格納部61bに格納された特徴点配列fp[]に係る特徴点の中から特徴点座標の位置関係を評価するための基準特徴点(以下、単に基準点)を決定する処理を行う(ステップS123)。即ち、特徴点配列fp[]を比較対象の位置情報が格納された特徴点配列cfp[]とのマッチングを調べるに際して、マッチングの基準とする特徴点(基準点)を決定する。
この実施形態において、マッチングは、特徴点配列fp[]中の3つの点と合同な三角形が特徴点配列cfp[]中に少なくとも1つ存在するかに基づいて決定する。合同な三角形の対を構成する6点(3点と対をなす3点)を基準点と呼ぶ。基準点を構成する双方の3点のうち2点を選び、その2点(マッチング用基準点)と他のインデックス変数q1で示される特徴点でマッチングの程度を表すスコアを計算する。図17でその詳細を説明するが、ステップS123では、クエリ格納部61bに格納された特徴点配列fp[]のうち3点の組合せと、位置情報データベース中の比較対象とされた位置情報の特徴点配列cfp[]のうちの3点の組合せを順次比較していく。そして、配置関係が対応する3点(3点を頂点とする三角形が合同な3点)を1つ見出して基準点の3点とする。見出した3点のうちfp[]側の2点(マッチング用基準点)を指すインデックス変数をp1、p2に、cfp[]側の2点(マッチング用基準点)を指すインデックス変数をp3、p4に設定する。fp[p1]がcfp[p3]と対応し、fp[p2]がcfp[p4]と対応する。
特徴点配列fp[]中の2つのマッチング用基準点が決定されたら、次に目標位置決定部11dは、特徴点配列fp[]の参照に用いるインデックス変数q1をq1=0に設定してクリアする(ステップS125)。続いて目標位置決定部11dは、インデックス変数q1の値が特徴点配列fp[]を構成する特徴点の数FPMAX未満か否かを調べる(ステップS127)。即ち、クエリ格納部61bに格納されたすべての特徴点について特徴点座標をチェックしたかどうかを調べる。
変数q1がFPMAX未満であれば(ステップS127のY)、対応点を検索する処理(ステップS129)を行う。対応点の検索処理については、図19でその詳細を説明するが、比較対象の特徴点配列cfp[]の中に、対応する三角形に係る対応点があるかどうか調べる。その結果、対応点があれば(ステップS131のY)スコアsを1だけ増加させる(ステップS133)。対応点がなければ(ステップS131のN)スコアsはそのままにする。なお、図19で説明するが、前記ステップS129で、同じ距離関係にある3点が見つからない場合、変数m1の値にm1=−1が設定されて戻る。
その後、目標位置決定部11dはインデックス変数q1を1だけ増加させる(ステップS135)。そして、ルーチンはステップS127へ戻り、ループする。
以上のようにして、特徴点配列fp[]を構成するすべての特徴点について対応点の検索を行ったら(ステップS127のN)、処理を終了する。処理が終了した時点で、スコアsは、ステップS123で決定された2つのマッチング用基準点と同一画像内の他の1つの特徴点の3点を頂点とする複数組の三角形のうちで、合同な三角形(対応する3つの点)がいくつあるかを表している。スコアsが大きい程、特徴点配列fp[]と比較対象の特徴点配列cfp[]との特徴点の配置関係が類似している。
≪基準点の決定≫
図17は、図16に示すマッチング処理において、ステップS123に示す基準点の決定処理の詳細を示すフローチャートである。
図17で、目標位置決定部11dは、処理に用いる変数m1、m2およびm3にそれぞれゼロを設定してクリアする(ステップS141)。m1、m2およびm3は、いずれも特徴点配列fp[]の参照に用いるインデックス変数であり、以下の処理では参照する特徴点が重複しないように異なる値をとりながら変化する。
次に目標位置決定部11dは、インデックス変数m2にm2=m1+1を設定する(ステップS143)。ステップS143はループ内にあって繰り返し処理されるが、初回はm1が初期値(ゼロ)であって、m2はそれより1つ大きな値、m2=0+1=1になる。
続いて目標位置決定部11dは、インデックス変数m3にm3=m2+1を設定する(ステップS145)。ステップS145はループ内にあって繰り返し処理されるが、初回はm2が1であってm3はそれより1つ大きな値、m3=1+1=2である。
続いて、目標位置決定部11dは、基準点の検索処理を実行する(ステップS147)。即ち、クエリ格納部61bに格納されている特徴点配列fp[]のうち、現在のm1、m2およびm3を用いてそれぞれ参照される特徴点配列fp[m1]、fp[m2]、fp[m3]の3つの特徴点を得る。それらを基準点のうち一方の3点と仮定した場合、それと同じ距離関係にある特徴点(基準点の他方)が位置情報データベース内の比較対象とされている位置情報にあるか検索する。対応する3点を探索する処理の詳細は、図18で説明する。
探索の結果、基準点、即ち、同じ距離関係にある3点の対が存在する場合(ステップS149のY)は処理を終了するが、存在しなければ(ステップS149のN)以下の処理をループする。なお、図18で説明するが、前記ステップS149で、基準点が見つからない場合、変数p1の値にp1=−1が設定されて戻る。一方、対応する基準点が見つかった場合、ペアをなす双方の3点のうち2点、ペア全体として4点を参照するインデックス変数がp1〜p4に設定される。
まず、目標位置決定部11dは、m1,m2およびm3の3つのインデックス変数のうちでもっとも大きな値をとるm3を1つ増加させて(ステップS151)、特徴点数FPMAX未満か否かを調べる(ステップS153)。即ち、インデックスが特徴点配列の範囲内を指しているか調べる。
特徴点配列の範囲内であれば(ステップS153のY)、ルーチンはステップS147へ戻る。そして、更新されたm3とm1とm2を用いて参照される特徴点を基準点のうちの一方と仮定し、それと同じ距離関係にある特徴点が位置情報データベース内の各位置情報にあるか検索する。
一方、変数m3が特徴点配列の範囲内になければ(ステップS153のN)、m3がとり得る範囲を網羅したものとして、今度は変数m2を1つ増加させる(ステップS155)。そして、m2が(FPMAX−1)未満か否かを調べる(ステップS157)。即ち、m2の値がインデックスとしてとり得る範囲内にあるか調べる。なお、m3と重複しないように、m2がとる最大値はm3の最大値であるFPMAXより1つ少ない。
m2がとり得る値の範囲内であれば(ステップS157のY)、ルーチンはステップS145へ戻り、更新されたm2に対するm3の値を設定する。そして、m1、m2、m3を用いて参照される特徴点を基準点のうちの一方と仮定した場合、それと同じ距離関係にある特徴点が位置情報データベース内の各位置情報にあるか検索する。
一方、変数m2がとり得る値の範囲内になければ(ステップS157のN)、m2がとり得る範囲を網羅したものとして、今度は変数m1を1つ増加させる(ステップS159)。そして、m1が(FPMAX−2)未満か否かを調べる(ステップS161)。即ち、m1の値がインデックスとしてとり得る範囲内にあるか調べる。なお、m2およびm3と重複しないように、m1がとる最大値はm3の最大値であるFPMAXより2つ少ない。
m1がとり得る値の範囲内であれば(ステップS161のY)、ルーチンはステップS143へ戻り、更新されたm1に対するm2およびm3の値を設定する。そして、m1、m2、m3を用いて参照される特徴点を基準点の一方と仮定した場合、それと同じ距離関係にある特徴点が位置情報データベース内の各位置情報にあるか検索する。
一方、変数m1がとり得る値の範囲内になければ(ステップS161のN)、m1がとり得る範囲を網羅したものと判断する。そして、m1,m2およびm3がとり得るすべての範囲で特徴点配列fp[]の特徴点を組み合わせてみても対応する3点がなかったことを示すため、変数m1にm1=−1を設定し(ステップS163)、基準点の抽出処理を終了する。
以上のように、図17の処理で、クエリ格納部61bに格納された特徴点配列fp[]中の3点と同じ距離関係の3点が比較対象の位置情報cfp[](図15のステップS109で取得されたもの)中に見つからなかった場合、変数m1はm1=−1の値をとる。対応する基準点が見つかった場合、特徴点配列fp[]、cfp[]の基準点を示す特徴点座標のインデックスに係る値が一旦、変数m1,m2,m3、n1,n2,n3のいずれかに格納される。そして、後から図18で詳細に説明するが、それらの値は最終的に変数p1,p2,p3およびp4に入る。
≪3点の距離関係で対応関係をチェックすることの妥当性≫
ここで、3点の距離関係を用いて対応関係をチェックしているのは、比較する2つの画像に収められている特徴点が回転や水平・垂直移動していることを考慮したものである。
即ち、自走式掃除機1が床面を走行して位置が変わると、位置が変化に対応して撮像部133で撮影される画像が変化する。この実施形態に於いて、撮像部133は上方とその周囲の光景を撮影するところ、床面と平行な天井面にある物体あるいは天井面に近くにある物体から抽出される特徴点は、平行移動および回転のみの変化を受ける。
自走式掃除機1の位置の変化に伴う画像の変化を幾何学的変換と捉えると、天井面は回転および並進のみの幾何学的変換、即ちユークリッド変換として考えることができる。2点間の距離は、画像がユークリッド変換を受けても変わらない。即ち、2点の距離は平行移動(並進)および回転の幾何学的変換に対する不変量(幾何学的返還を受けても変わらない量)として知られている。
天井面から離れた位置にある物体の画像については、自走式掃除機1の移動に伴って回転や並進以外の他に、縮小拡大、剪断歪み(矩形が平行四辺形になる歪み)さらには射影歪(矩形が台形になる歪み)みの変形を受ける。しかし、区画が細かければ、目標位と最近傍の区画の位置は近く、それらの位置で撮影された画像の差異は小さく、拡大縮小、剪断歪みあるいは射影歪みは無視できる。ただし、同じ位置でも自走式掃除機1の方向の違いによる回転の影響は無視できない。
以上のように、回転と並進を伴うユークリッド変換を考慮して対応する画像を検索すればよい。従って、ユークリッド変換に対する不変量である特徴点間の距離関係を用いた検索は有効である。
≪対応する基準点の検索−基準点決定時≫
図18は、図17のステップS147に示す基準点の検索処理、即ち対応する3点を検索する処理を示すフローチャートである。
図18で、目標位置決定部11dは、比較用の特徴点配列を参照するインデックス変数n1、n2およびn3をクリアする(ステップS171)。即ち、変数n1,n2およびn3にn1=0、n2=0、n3=0をそれぞれ設定する。また、それぞれ対をなす3点のうち基準点とする2点を格納する4つのインデックス変数p1,p2,p3およびp4をクリアする。
次に目標位置決定部11dは、インデックス変数n2にn2=n1+1を設定する(ステップS173)。ステップS173はループ内にあって繰り返し処理されるが、初回はn1が初期値(ゼロ)であって、n2はそれより1つ大きな値、n2=0+1=1になる。
さらに目標位置決定部11dは、インデックス変数n3にn3=n2+1を設定する(ステップS175)。ステップS175はループ内にあって繰り返し処理されるが、初回はn2が1であってn3はそれより1つ大きな値、n3=1+1=2である。
続いて、目標位置決定部11dは、特徴点配列fp[m1],fp[m2]およびfp[m3]の3つの特徴点と、比較用の特徴点配列fp[n1],fp[n2]およびfp[n3]の3つの特徴点が、同じ距離関係にあるか否かを調べる。具体的には、それぞれの3つの特徴点が、以下の距離条件1、距離条件2または距離条件3の何れかを満たすか否かを調べる。
ここで、特徴点配列fp[]に基づく距離情報配列がds[][]、比較用特徴点配列cfp[]に基づく比較用距離情報配列がcds[][]であり、距離を比較する場合の許容誤差をDLIMITとし、Xの絶対値をABS(X)で表すものとする。
許容誤差DLIMITについて述べると、位置情報が登録された位置と候補位置とが全く同じ位置とは限らないので、撮影された画像を照合する場合に、ある程度の誤差を許容する必要ある。ただし、この許容誤差は認識精度に影響するので十分考慮して設定されるべきである。
前記距離条件1は、
ABS(ds[m1][m2]−cds[n1][n2])<DLIMIT、かつ
ABS(ds[m2][m3]−cds[n2][n3])<DLIMIT、かつ
ABS(ds[m3][m1]−cds[n3][n1])<DLIMIT
である。即ち、3点の距離関係、言い換えると3点を頂点とする三角形の各辺の長さの相違がいずれも許容誤差未満の範囲にあって三角形どうしが実質的に合同であることを表している。
前記距離条件2は、
ABS(ds[m1][m2]−cds[n2][n3])<DLIMIT、かつ
ABS(ds[m2][m3]−cds[n3][n1])<DLIMIT、かつ
ABS(ds[m3][m1]−cds[n1][n2])<DLIMIT
である。これは、3点の対応関係が「距離条件1」と異なるものの、距離関係がいずれも許容誤差以下の範囲にあることを表している。
前記距離条件3は、
ABS(ds[m1][m2]−cds[n3][n1])<DLIMIT、かつ
ABS(ds[m2][m3]−cds[n1][n2])<DLIMIT、かつ
ABS(ds[m3][m1]−cds[n2][n3])<DLIMIT
である。
これは、3点の対応関係が「距離条件1」や「距離条件2」と異なるものの、距離関係がいずれも許容誤差以下の範囲にあることを表している。
目標位置決定部11dは、まず前記距離条件1が満たされているかを調べる(ステップS177)。距離条件1が満たされていれば(ステップS177のY)、インデックス変数p3にp3=n1を設定し、同様にp4にp4=n2を設定する(ステップS201)。p3およびp4は、比較用の特徴点配列cfp[]を参照するためのインデックス変数である。
さらに、目標位置決定部11dは、クエリ格納部61bに格納された特徴点配列fp[]を参照するためのインデックス変数p1にp1=m1を設定し、同様にp2にp2=m2を設定する(ステップS207)。そして、処理を終了する。
一方、前記距離条件1が満たされない場合(ステップS177のN)、ルーチンはステップS179へ進み、前記距離条件2が満たされているかを調べる。距離条件2が満たされていれば(ステップS179のY)、比較用特徴点配列cfp[]を参照するためのインデックス変数p3にp3=n2を設定し、同様にp4にp4=n3を設定する(ステップS203)。その後、ルーチンは前述のステップS207へ進み、インデックス変数p1にp1=m1を設定し、同様にp2にp2=m2を設定して処理を終了する。
前記距離条件2が満たされない場合(ステップS179のN)、ルーチンはステップS181へ進み、前記距離条件3が満たされているかを調べる。距離条件3が満たされていれば(ステップS181のY)、比較用特徴点配列cfp[]を参照するためのインデックス変数p3にp3=n3を設定し、同様にp4にp4=n1を設定する(ステップS205)。その後、ルーチンは前述のステップS207へ進み、インデックス変数p1にp1=m1を設定し、同様にp2にp2=m2を設定して処理を終了する。
以上のように、同じ距離関係にある基準点のペアを見出したら、クエリ格納部61bに格納された特徴点配列fp[]と位置情報データベース中の比較用特徴点配列cfp[]との対応する点を参照するインデックス変数を設定して処理を終了する。
一方、距離条件1〜3の何れも満たされない場合(ステップS181のN)、目標位置決定部11dは、次の処理を行う。まず、n1,n2およびn3の3つのインデックス変数のうちでもっとも大きな値をとるn3を1つ増加させる(ステップS183)。そして、特徴点数CFPMAX未満か否かを調べる(ステップS185)。即ち、インデックスが比較用特徴点配列の範囲内を指しているか調べる。
比較用特徴点配列の範囲内であれば(ステップS185のY)、ルーチンはステップS177へ戻る。そして、更新されたn3とn1とn2を用いて参照される比較用特徴点を基準点ペアのうちの一方と仮定した場合、距離条件1〜3の何れかを満たす他方の基準点ペアがクエリ格納部61bに格納された特徴点配列内にあるか検索する。
一方、変数n3が比較用特徴点配列の範囲内になければ(ステップS185のN)、n3がとり得る範囲を網羅したものとして、今度は変数n2を1つ増加させる(ステップS187)。そして、n2が(CFPMAX−1)未満か否かを調べる(ステップS189)。即ち、n2の値がインデックスとしてとり得る範囲内にあるか調べる。なお、n3と重複しないように、n2がとる最大値はn3の最大値であるCFPMAXより1つ少ない。
n2がとり得る値の範囲内であれば(ステップS189のY)、ルーチンはステップS175へ戻り、更新されたn2に対するn3の値を設定する。そして、n1、n2、n3を用いて参照される特徴点を基準点ペアのうちの一方と仮定した場合、距離条件1〜3の何れかを満たす他方の基準点ペアがクエリ格納部61bに格納された特徴点配列内にあるか検索する。
一方、変数n2がとり得る値の範囲内になければ(ステップS189のN)、n2がとり得る範囲を網羅したものとして、今度は変数n1を1つ増加させる(ステップS191)。そして、n1が(FPMAX−2)未満か否かを調べる(ステップS193)。即ち、n1の値がインデックスとしてとり得る範囲内にあるか調べる。なお、n2およびn3と重複しないように、n1がとる最大値はn3の最大値であるFPMAXより2つ少ない。
n1がとり得る値の範囲内であれば(ステップS193のY)、ルーチンはステップS173へ戻り、更新されたn1に対するn2およびn3の値を設定する。そして、n1、n2、n3を用いて参照される特徴点を基準点ペアのうちの一方と仮定した場合、距離条件1〜3の何れかを満たす他方の基準点ペアがクエリ格納部61bに格納された特徴点配列内にあるか検索する。
一方、変数n1がとり得る値の範囲内になければ(ステップS193のN)、n1がとり得る範囲を網羅したものと判断する。
目標位置決定部11dは、n1,n2およびn3がとり得るすべての範囲で特徴点配列fp[]の特徴点の組み合わせてみても対応する3点がなかったことを示すため、変数p1にp1=−1を設定し(ステップS195)、基準点ペアの抽出処理を終了する。
以上のように、図18の処理で基準点ペアが見つからなかった場合、変数p1はp1=−1の値をとる。一方、基準点ペアが見つかった場合、対応する点を参照するインデックス変数がp1〜p4に設定される。基準点のうちfp[p1]の特徴点とcfp[p3]の特徴点とが対応し、さらにfp[p2]の特徴点とcfp[p4]の特徴点とが対応する。
≪対応点の検索処理≫
続いて、図16のステップS129に示す対応点の検索処理の詳細について説明する。
図19は、図16に示す対応点の検索処理を示すフローチャートである。図19に示すように、目標位置決定部11dは、まず、比較用特徴点配列cfp[]を参照するためのインデックス変数q2にq2=0を設定してクリアする(ステップS211)。
そして、特徴点配列fp[q1]に係る特徴点と他の任意の2点からなる3つの特徴点と、比較用特徴点配列cfp[q2]に係る特徴点と他の任意の2点からなる3つの特徴点とが、以下の距離条件A,B,Cの何れかに適合するかを調べる(ステップS213)。
前記距離条件Aは、
ABS(ds[p1][p2]−cds[p3][p4])<DLIMIT、かつ
ABS(ds[p2][q1]−cds[p4][q2])<DLIMIT、かつ
ABS(ds[q1][p1]−cds[q2][p3])<DLIMIT
である。これは、3点を頂点とする三角形の各辺の長さがいずれも許容誤差未満の範囲で等しく、三角形どうしが実質的に合同であることを表している。
前記距離条件Bは、
ABS(ds[p1][p2]−cds[p4][q2])<DLIMIT、かつ
ABS(ds[p2][q1]−cds[q2][p3])<DLIMIT、かつ
ABS(ds[q1][p1]−cds[p3][p4])<DLIMIT
である。これは、3点の対応関係が「距離条件A」と異なるものの、三角形どうしが実質的に合同であることを表している。
前記距離条件Cは、
ABS(ds[p1][p2]−cds[q2][p3])<DLIMIT、かつ
ABS(ds[p2][q1]−cds[p3][p4])<DLIMIT、かつ
ABS(ds[q1][p1]−cds[p4][q2])<DLIMIT
である。これは、3点の対応関係が「距離条件A」や「距離条件B」と異なるものの、三角形どうしが実質的に合同であることを表している。
即ち、クエリ格納部61bに格納された3つの特徴点fp[p1],fp[p2],fp[q1]と位置情報データベース中のある位置情報に係る3つの特徴点cfp[p3],cfp[p4],cfp[q2]とが同じ距離関係にあるかどうかを判断する。ここで、fp[p1],fp[p2],cfp[p3],cfp[p4]は、ステップS123の処理で決定されたマッチング用基準点である。
距離条件A,B,Cの何れかを満たしていれば(ステップS213のY)、処理を終了する。
一方、距離条件A,B,Cの何れも満たさない場合(ステップS213のN)、目標位置決定部11dは、まずインデックス変数q2を1だけ増加させて(ステップS215)、q2が特徴点数CFPMAX未満か否かを調べる(ステップS217)。特徴点配列cfp[]のすべての座標の組み合わせについてチェックするためのループ処理に係る判断である。
q2がCFPMAX未満であれば、ルーチンはステップS213へ戻り、更新されたインデックス変数q2について、前記距離条件A,B,Cの何れかに適合するか否かを調べる。
一方、q2がCFPMAXに達したら、特徴点配列cfp[]のすべてのすべての座標の組み合わせについてチェックしたが、前記距離条件A,B,Cのいずれにも適合しなかったと判断する。それを表すために、インデックス変数q2にq2=−1を設定し(ステップS219)、処理を終了する。
以上が、対応点の検索処理である。
≪特徴点のマッチングの視覚的説明≫
図16〜図19に示す特徴点配列fp[]と比較用特徴点配列cfp[]の特徴点のマッチング処理について、その処理を視覚的に説明する。
図20Aおよび図20Bは、この実施形態において、特徴点のマッチングに用いる基準点の決定処理を視覚的に示す説明図である。
図20Aに示すように、目標位置決定部11dは、基準点を決定する場合にまず特徴点配列fp[]と比較用特徴点配列cfp[]からそれぞれ3つの特徴点を選ぶ。fp[]から3つの特徴点を選ぶ組合せは複数存在し、同様にcfp[]から3つの特徴点を選ぶ組合せも複数存在する。
目標位置決定部11dは、3点のうち2点の特徴点間の距離、即ち3点を頂点とする三角形の3つの辺の長さを計算する。そして、3辺の長さが同じ三角形をfp[]とcfp[]から探す。図20Aに示す例で、fp[]は15個の特徴点からなり、cfp[]は12個の特徴点からなる。それぞれに星印で示す3つの特徴点が、合同な三角形であり、丸印は他の特徴点を示す。
合同な三角形を見出したらその3つの頂点(特徴点)のうち2点をマッチング用基準点として選び、マッチング用基準点の2点とそれ以外の特徴点との距離関係を調べる。そして、2つのマッチング用基準点と他の1つの特徴点の3点が同じ距離関係にあるもの、即ち合同な三角形をなすもの(基準点ペア)をfp[]とcfp[]から探す。見つかった合同な三角形の数をスコアとして計算する。
図20Bで、fp[]の15個の特徴点から3つの基準点を除くと、特徴点の数は12点である。それら12点と2点のマッチング用基準点がなす三角形は12通り存在する。一方、cfp[]の12個の特徴点から3つの基準点を除くと、特徴点の数は9点である。それら9点と2点のマッチング用基準点がなす三角形は9通り存在する。そこで、fp[]に係る12個の三角形とcfp[]に係る9個の三角形のうちで合同な三角形の組合せが何個存在するかをしらべて、その数をマッチングのスコアsとする。図20Bの場合、OKの特徴点が9個あるので、スコアsはs=9/12である。
なお、三角形の辺の長さを比較する際にはある程度の誤差を許容する。フローチャートの説明では、この許容誤差の値をDLIMITとしている。DLIMITの大きさは、認識精度に影響するのでカメラ特性や撮影間隔によって設計者により適宜決定されるべきである。
前述のように2点間の距離は回転および並進を伴うユークリッド変換に対して不変であるから、fp[]とcfp[]とで自走式掃除機1の向きが異なっていても高い精度でマッチングが判断できる。
図21は、この実施形態において、特徴点のマッチングによる画像検索を視覚的に示す説明図である。位置(視点)が異なると同一物体を見ても特徴点の配置関係が変化する。マッチング対象の画像と各位置における画像の特徴点の配置関係を照合して、マッチング対象の画像と配置関係が最も似た画像に基づいて視点の位置(撮影位置)を決定できる。具体的には、各特徴点に対してマッチングの基準となる2つの特徴点(マッチング用基準点)からの距離を計算し、マッチング対象と距離の関係が近いものはOK、そうでないものはNGとしてOKの特徴点数をスコアとすればよい。
図22は、この実施形態において、算出するスコアの概念を視覚的に示す説明図である。図22で、目標位置として学習させる場所の画像から特徴点配列fp[]が作成される。位置情報データベースの各位置における画像は、マッチングを行う際に比較用特徴点配列cfp[]に格納される。両者に距離関係の対応する3点が見つかった場合に、スコアsの計算が行われる。スコアsの分母は、特徴点配列fp[]の特徴点数から図22に星印で示す基準点の数3を差引いたものである。スコアsの分岐は、両者の基準点(星印で示す)を重ね合わせたとき、○印で示す他の特徴点のうち重なった特徴点の数である。
≪部屋の画像のマッチング例≫
図23は、この実施形態において、撮影された部屋の配置と撮影位置を示す説明図である。自走式掃除機は、縦横マトリクス状の区画の各位置で周囲の光景を撮影して得られる位置情報を位置情報データベース格納部に格納するが、ここでは説明を単純にするため(1)〜(5)5箇所の位置で撮影された画像で説明する。
図23において、破線で枠を示した照明A、照明Bおよびエアコンは、天井または天井付近に配置された物体である。それ以外の物体は床面に配置されているが、いずれもかなりの高さがある。
この実施形態で、撮像部133は、上方と周囲の光景が一度に撮影可能な魚眼レンズを備え、上方に向けて撮影を行う。
図24Aは、この実施形態において、図23に示す部屋内の候補位置で撮影された画像の一例を示す説明図である。自走式掃除機1に目標位置として学習させたい位置の画像である。
図24Bは、図23に示す位置(1)で撮影された画像の例を示す説明図である。
図24Aと図24Bは、両者の画像から抽出される特徴点を示している。特徴点は、基準点を星印で、他の点を○印で示している。さらに、距離関係が一致した特徴点は実線で示し、距離関係が一致しない特徴点を鎖線で示している。両者のマッチングに係るスコアは、s=4/8である。
図25Aは、図24Aと同じ位置で撮影された画像を示す説明図である。
図25Bは、図23に示す位置(2)で撮影された画像の例を示す説明図である。
特徴点の表記方法は、図24Aおよび図24Bと同様である。マッチングのスコアは、s=6/8である。
図26Aは、図24Aと同じ位置で撮影された画像を示す説明図である。
図26Bは、図23に示す位置(3)で撮影された画像の例を示す説明図である。
特徴点の表記方法は、図24Aおよび図24Bと同様である。マッチングのスコアは、s=5/8である。
図27Aは、図24Aと同じ位置で撮影された画像を示す説明図である。
図27Bは、図23に示す位置(4)で撮影された画像の例を示す説明図である。
特徴点の表記方法は、図24Aおよび図24Bと同様である。マッチングのスコアは、s=1/8である。
図28Aは、図24Aと同じ位置で撮影された画像を示す説明図である。
図28Bは、図23に示す位置(5)で撮影された画像の例を示す説明図である。
特徴点の表記方法は、図24Aおよび図24Bと同様である。マッチングのスコアは、s=1/8である。
よって、目標位置決定部11dは、最大のスコアを与える図25Bの位置を、目標位置と判断する。
図29は、図24Aに示す特徴点が画像から抽出される様子を視覚的に示す説明図である。
特徴点抽出部11cは、撮像部133で撮影された画像を二値化し、コーナーを表す画素の位置を特徴点として抽出する。
(実施の形態2)
実施の形態1で、目標位置決定部11dは、ユーザーが候補位置を学習させる段階で、位置情報データベースの最近傍探索を行って候補位置の部屋座標を取得した。それと異なる態様として、候補位置の学習段階においては、その位置で撮影した画像から特徴点情報と距離情報を作成し、その特徴点情報と距離情報をその候補位置を識別するキーワードと関連付けて記憶部61に格納してもよい。
その後、ユーザーから「テレビの前を掃除して」との指示を受けた際に、記憶部61に格納された候補位置のうち「テレビの前」のキーワードに該当する候補位置を検索し、距離情報を取得する。そして、最近傍探索を行って位置情報データベースの中で距離情報が最も類似する位置情報を見出して、その位置情報に係る部屋座標をもとめてもよい。
この態様によれば、位置情報データベースの作成が未だ行われていなくても候補位置を学習させることが可能である。位置情報データベースは、学習した候補位置へ移動すべき指示をうける次点までに作成されていればよい。
(実施の形態3)
また、ユーザーからの指示に応答して位置情報データベースの作成を行うだけでなく、例えば、自走式掃除機1が部屋の掃除をしているときに、位置情報データベースを合わせて作成してもよい。掃除の度に位置情報データベースをチェックし、更新すれば部屋の模様替えがあったことを検出できる。その場合、ユーザーに部屋の光景が代わったので候補位置の学習をやり直すべきことを知らせることができる。
(実施の形態4)
あるいは、位置情報データベースの作成が未だ行われていない段階で候補位置の学習がなされた場合に限って、候補位置の部屋座標に代えて特徴点情報と距離情報を格納していてもよい。そして、位置情報データベースが完成した時点で先近傍検索を行って候補位置の部屋座標を求め、特徴点情報と距離情報を部屋座標で置換してもよい。
(実施の形態5)
以上の実施形態で、3つの基準点の場合について説明したが、基準点の数は必ずしも3つに限定されるものでない。3以上の数であってもよい。例えば、4つの基準点を用いる場合、合同な四角形を探すことにする。三角形よりも辺の数が多ければ、偶然に合同なものが見つかる可能性はより小さくなるので精度のよいマッチングが実現できる。ただし、辺の数が多いと距離の計算量が増えるので、設計者は適当な数を選択すべきである。
なお、基準点が4点の場合、マッチング用基準点は3点にすればよい。2点でもかまわないが、その場合は任意の他の2点との組合せについてスコアを計算することになるのでスコアを計算する処理量が多くなるが、スコアが多数の組み合わせに基づいて計算されるので、マッチングの精度は高い。
なお、3つの基準点の場合、マッチング用基準点の数は2つに限らず1つでもよい。ただし、スコアの計算量が多くなる。
(実施の形態6)
以上の実施形態では、2点間の距離に基づいて特徴点の対応関係を判断した。これは、2点の距離がユークリッド変換に対して不変量であるとの考えに基づく。しかし、2点間の距離に限らず、ユークリッド変換に対する不変量(ユークリッド不変量)であれば適用可能である。例えば、二つの直線間の角度や、閉領域の面積はユークリッド不変量であるので、2点の距離に代えてその何れかの不変量を用いてもよい。
さらに、ユークリッド変換よりも変形の自由度の高い相似変換、アフィン変換や射影変換に対応できるように相似変換のもとでの不変量(相似不変量)、アフィン変換のもとでの不変量(アフィン不変量)や射影変換のもとでの不変量(射影不変量)を用いてもよい。
相似不変量としては、2直線間の角度のほかに、距離の比、面積の比などが知られている。また、アフィン不変量としては位置直線上の3点の距離の比が知られている。射影不変量としては、複比が知られている。
自由度の高い幾何学的変換に対する不変量を用いれば、異なる位置(視点)で撮影された画像の歪みの影響を受けにくくなる反面、不変量の計算処理の負荷が大きくなるので、その不変量を適用してマッチングを行うかは、設計者が適宜選択すべきである。
以上に述べたように、
(i)この発明による自走式電子機器は、走行を制御する走行制御部と、前記走行に伴って変化する位置を検出する位置検出部と、周囲の光景を撮影する撮像部と、撮影された画像から複数の特徴点を抽出する特徴点抽出部と、走行領域内の複数の位置において前記撮像部が撮影した画像に係る特徴点とその撮影が行われた位置とが関連付けられて登録された位置情報を予め格納する位置情報データベース格納部と、目標とすべき位置において前記撮像部が撮影した画像に係る特徴点を格納するクエリ格納部と、前記クエリ格納部に格納された特徴点と前記位置情報データベース格納部に格納された各位置情報に含まれる特徴点との配置関係を照合し、対応する配置関係にある特徴点を最も多く含む位置情報に基づいて目標位置を決定する目標位置決定部とを備え、前記走行制御部は、前記位置検出部が検出する現在の位置と決定された目標位置とに基づいてその目標位置への走行を制御することを特徴とする。
この発明において、位置検出部は、走行に伴って変化する位置を検出するものである。その具体的な態様は、例えば、車輪あるいは車輪を駆動する駆動モータに配置されるエンコーダである。駆動モータがステッピングモータの場合は駆動パルスをカウントしてもよい。車輪は前進と後退とで回転方向が逆になるので、回転方向を検出できる手段が必要である。
また、特徴点は、画像の特徴を表す複数の点である。画像から特徴点を抽出する手法としては、SIFT、SURF、ORB、AKAZEなどが知られており、これら周知のアルゴリズムが適用可能である。
さらにまた、特徴点の配置関係とは、照合の対象とされる双方の画像に係る複数の特徴点の中に、特徴点どうしの相対的な位置関係が対応するものがあるか否かを意味する。ここで対応するとは、ある程度の誤差を含んでいても許容範囲内であればよい。特徴点の配置関係を評価する具体的な態様としては、例えば、予め定められた数の特徴点について2点間の距離が全ての組み合わせについて等しいか否かを計算するやり方が挙げられるが、これに限らない。
さらに、この発明の好ましい態様について説明する。
(ii)前記撮像部は、走行中に逐次撮影を行い、前記走行制御部は、走行中に前記撮像部が撮影した画像に係る特徴点と前記位置情報データベースとして格納された各位置の画像に係る特徴点とを照合して、前記位置検出部が検出する位置を補正してもよい。
このようにすれば、走行中に撮影された画像に係る特徴点と位置情報データベースに係る特徴点とを照合して現在の位置を推定し、推定された現在位置を用いて前記位置検出部が検出する位置情報を補正し、安定して現在の位置を決定することができる。
(iii)1以上の候補位置で撮影された画像に係る特徴点を、各候補位置を目標として選択する場合に用いる選択指示と関連付けてそれぞれ記憶する候補位置記憶部と、目標へ走行すべき走行指示を受付ける指示受領部とをさらに備え、前記走行指示は、何れかの候補位置に係る前記選択指示を含み、前記目標位置決定部は、前記走行指示に含まれる選択指示と前記候補位置記憶部に格納された選択指示とを照合し、対応する選択指示に関連付けられた特徴点を前記クエリ格納部に格納し、前記走行制御部は、前記走行指示に応答して選択された目標への走行を開始してもよい。
このようにすれば、予め1以上の候補位置を候補位置記憶部に記憶させておくことで、その後はそれらの候補位置の一つを選択する選択指示を含んだ走行指示を与えることで、前記自走式電子機器が選択した位置へ走行することが可能になる。
走行指示が例えば音声による指示であれば、候補位置に対して、「ソファーの前」、「テレビの前」、「机の下」等の一意的な音声による選択指示を関連付けておく。それらのうち何れかの選択指示を含み、「を掃除しておいて」の音声が走行指示であることを示すものとする。そうすれば、自走式掃除機は、「ソファーの前を掃除しておいて」というユーザーの呼びかけを目標位置が「ソファーの前」に関連付けられた候補位置であり、それを目標に走行せよという指示であると認識できる。よって、ソファーの前へ走行し、スポットモードで作業を行うということが実現できる。
(iv)前記目標位置決定部は、前記クエリ格納部に格納された特徴点と、各位置情報に含まれる特徴点との間で、対応する配置関係にある特徴点の組み合わせがあるか否かを調べ、対応する配置関係にある特徴点の組み合わせが少なくとも1組存在する場合、その組み合わせに係る予め定められた数の特徴点を基準特徴点とし、少なくとも1つの基準特徴点とそれ以外の特徴点からなる特徴点の組み合わせについて特徴点の配置関係を調べ、対応する配置関係にある特徴点の組み合わせの対を最も多く含む位置情報に基づいて前記目標位置を決定してもよい。
このようにすれば、クエリ格納部に格納された特徴点と位置情報データベースとして格納された特徴点を照合する際、対応する配置関係にある特徴点の組み合わせが存在するものについて、対応する対がいくつあるかを調べて、対を最も多く含む位置情報に係る位置を目標位置に決定できる。
(v)対応する配置関係は、前記クエリ格納部に格納された特徴点のうち3点と、各位置情報に含まれる特徴点のうち3点について、3点がなす三角形の全ての辺の長さが等しいか否かに基づいて判断され、前記目標位置決定部は、配置関係が対応する一対の三角形の頂点をなすそれぞれ3つの特徴点を基準特徴点とし、各対の3つの基準特徴点のうち2つの基準特徴点と基準特徴点以外の1つの特徴点がなす三角形について、さらに配置関係が対応するものが何対あるかを調べて、対応する対を最も多く含む位置情報に基づいて前記目標位置を決定してもよい。
このようにすれば、3つの特徴点がなす三角形の辺の長さを照合することによって特徴点の配置関係が対応するか否かを判断できる。
この発明の好ましい態様には、上述した複数の態様のうちの何れかを組み合わせたものも含まれる。
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
1:自走式掃除機、 2:筐体、 2b1:天板前部、 2b11:空気孔、 2b2:蓋部、 2c1:側板前半部、 2c2:側板後半部、 2d:内部構造壁、 9:回転ブラシ、 10:サイドブラシ、 11:機器制御部、 11a:走行制御部、 11b:位置検出部、 11c:特徴点抽出部、 11d:目標位置決定部、 11S:回路基板、 12:充電池、 13:充電用接続部、 14:障害検出部、 14A:超音波受信部、 14B:超音波送信部、 14C:衝突センサー、 15:集塵部、 15a:集塵容器、 15b:集塵フィルター、 18:床面検出センサー、 20:ジャイロセンサー、 21L:左輪駆動モータ、 21R:右輪駆動モータ、 22L:左駆動輪、 22R:右駆動輪、 23:駆動部、 24:誘導信号受信部、 26:後輪、 31:吸込口、 32:第1排気口、 33:第2排気口、 55:報知部、 61:記憶部、 61a:位置情報データベース格納部、 61b:クエリ格納部、 71L:左輪エンコーダ、 71R:右輪エンコーダ、 114:ダクト部、 115:電動送風機、 119:ブラシモータ、 120:イオン発生器、 121L:左輪ドライバ、 121R:右輪ドライバ、 123:送風機ドライバ 125:ブラシドライバ、 131:無線通信部、 133:撮像部、 135:音声認識部
201:充電台、 202:充電端子部、 203:誘導信号送出部
300:部屋、 301:テーブル、 303:ソファー、 305:テレビ、 307:本棚、 309:空気清浄機

Claims (4)

  1. 走行を制御する走行制御部と、
    前記走行に伴って変化する位置を検出する位置検出部と、
    周囲の光景を撮影する撮像部と、
    撮影された画像から複数の特徴点を抽出する特徴点抽出部と、
    走行領域内の複数の位置において前記撮像部が撮影した画像に係る特徴点とその撮影が行われた位置とが関連付けられて登録された位置情報を予め格納する位置情報データベース格納部と、
    目標とすべき位置において前記撮像部が撮影した画像に係る特徴点を格納するクエリ格納部と、
    前記クエリ格納部に格納された特徴点と前記位置情報データベース格納部に格納された各位置情報に含まれる特徴点との配置関係を照合し、対応する配置関係にある特徴点を最も多く含む位置情報に基づいて目標位置を決定する目標位置決定部と
    1以上の候補位置で撮影された画像に係る特徴点を、各候補位置を目標として選択する場合に用いる選択指示と関連付けてそれぞれ記憶する候補位置記憶部と、
    目標へ走行すべき走行指示を受付ける指示受領部とを備え、
    前記走行指示は、何れかの候補位置に係る前記選択指示を含み、
    前記目標位置決定部は、前記走行指示に含まれる選択指示と前記候補位置記憶部に格納された選択指示とを照合し、対応する選択指示に関連付けられた特徴点を前記クエリ格納部に格納し、
    前記走行制御部は、前記走行指示に応答して選択された目標への走行を開始し、前記位置検出部が検出する現在の位置と決定された目標位置とに基づいてその目標位置への走行を制御する自走式電子機器。
  2. 前記撮像部は、走行中に逐次撮影を行い、
    前記走行制御部は、走行中に前記撮像部が撮影した画像に係る特徴点と前記位置情報データベースとして格納された各位置の画像に係る特徴点とを照合して、前記位置検出部が検出する位置を補正する請求項1に記載の自走式電子機器。
  3. 前記目標位置決定部は、前記クエリ格納部に格納された特徴点と、各位置情報に含まれる特徴点との間で、対応する配置関係にある特徴点の組み合わせがあるか否かを調べ、対応する配置関係にある特徴点の組み合わせが少なくとも1組存在する場合、その組み合わせに係る予め定められた数の特徴点を基準特徴点とし、少なくとも1つの基準特徴点とそれ以外の特徴点からなる特徴点の組み合わせについて特徴点の配置関係を調べ、対応する配置関係にある特徴点の組み合わせの対を最も多く含む位置情報に基づいて前記目標位置を決定する請求項1または2に記載の自走式電子機器。
  4. 対応する配置関係は、前記クエリ格納部に格納された特徴点のうち3点と、各位置情報に含まれる特徴点のうち3点について、3点がなす三角形の全ての辺の長さが等しいか否かに基づいて判断され、
    前記目標位置決定部は、配置関係が対応する一対の三角形の頂点をなすそれぞれ3つの特徴点を基準特徴点とし、各対の3つの基準特徴点のうち2つの基準特徴点と基準特徴点以外の1つの特徴点がなす三角形について、さらに配置関係が対応するものが何対あるかを調べて、対応する対を最も多く含む位置情報に基づいて前記目標位置を決定する請求項1〜3の何れか一つに記載の自走式電子機器。
JP2015226754A 2015-11-19 2015-11-19 自走式電子機器 Expired - Fee Related JP6609463B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015226754A JP6609463B2 (ja) 2015-11-19 2015-11-19 自走式電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015226754A JP6609463B2 (ja) 2015-11-19 2015-11-19 自走式電子機器

Publications (2)

Publication Number Publication Date
JP2017093626A JP2017093626A (ja) 2017-06-01
JP6609463B2 true JP6609463B2 (ja) 2019-11-20

Family

ID=58804152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015226754A Expired - Fee Related JP6609463B2 (ja) 2015-11-19 2015-11-19 自走式電子機器

Country Status (1)

Country Link
JP (1) JP6609463B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2018355224A1 (en) * 2017-10-23 2020-05-07 Stryker Corporation Autonomous waste collection assembly and medical waste collection system and methods
TWI671055B (zh) * 2018-01-31 2019-09-11 光寶電子(廣州)有限公司 充氣式裝置、具有充氣式裝置的系統及其控制方法
JP2020047188A (ja) * 2018-09-21 2020-03-26 パナソニックIpマネジメント株式会社 自律走行掃除機
US10611028B1 (en) 2018-11-30 2020-04-07 NextVPU (Shanghai) Co., Ltd. Map building and positioning of robot
CN109682368B (zh) * 2018-11-30 2021-07-06 上海肇观电子科技有限公司 机器人及地图构建方法、定位方法、电子设备、存储介质
CN111685655B (zh) * 2019-03-15 2023-07-04 北京奇虎科技有限公司 一种用于扫地机器人的任务调度方法及装置
JP6788291B1 (ja) * 2019-06-03 2020-11-25 株式会社イクシス 点検支援システム
JP7273696B2 (ja) 2019-11-15 2023-05-15 株式会社東芝 位置推定装置及びシステム
CN112806909A (zh) * 2021-01-19 2021-05-18 重庆自由汇网络科技有限公司 一种避免卡住沙发脚的智能制造用扫地机器人辅助装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002085305A (ja) * 2000-09-12 2002-03-26 Toshiba Tec Corp ロボットクリーナ及びロボットクリーナシステム
JP5898022B2 (ja) * 2012-09-18 2016-04-06 シャープ株式会社 自走式機器
JP6054136B2 (ja) * 2012-10-23 2016-12-27 シャープ株式会社 機器制御装置、および自走式電子機器

Also Published As

Publication number Publication date
JP2017093626A (ja) 2017-06-01

Similar Documents

Publication Publication Date Title
JP6609463B2 (ja) 自走式電子機器
EP3048502B1 (en) Robot cleaner and method for controlling robot cleaner
KR101366860B1 (ko) 이동 로봇 및 이의 제어 방법
KR101570377B1 (ko) 단일 카메라를 장착한 로봇 청소기의 3차원 환경 인식 방법
EP3349087B1 (en) Moving robot
US11537135B2 (en) Moving robot and controlling method for the moving robot
CN110636789B (zh) 电动吸尘器
EP3308911A1 (en) Mobile robot and method of controlling same
KR102621350B1 (ko) 로봇 청소기 시스템 및 그 동작 방법
KR20190007284A (ko) 이동 로봇 시스템 및 그 제어방법
KR20100100520A (ko) 로봇 청소기의 점진적 지도 작성 및 위치 보정 방법
SE523910C2 (sv) Rengöringsrobot, rengöringsrobotsystem och metod för en rengöringsrobot för återvändande till en extern laddningsanordning
KR101331952B1 (ko) 로봇 청소기 및 이의 제어 방법
KR101303161B1 (ko) 이동 로봇 및 이의 제어 방법
US20200293050A1 (en) Mobile robot and method of controlling the same
KR20130000278A (ko) 로봇 청소기 및 이의 제어 방법
KR20200144382A (ko) 이동 로봇 및 그 제어방법
KR20200052388A (ko) 인공지능 이동 로봇의 제어 방법
KR102500529B1 (ko) 이동 로봇 및 그 제어방법
JP2013246589A (ja) 空間情報生成装置、空間情報利用システム、空間情報生成方法、制御プログラム、および、記録媒体
JP2017041731A (ja) 自走式機器用無線通信設定システムおよび設定方法
JP2018124980A (ja) 自走式移動体及び移動体の移動制御方法
KR20200142865A (ko) 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
JP2014154010A (ja) 物体検索システム及び物体検索装置
JP2017045480A (ja) 物体検索システム及び物体検索装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191028

R150 Certificate of patent or registration of utility model

Ref document number: 6609463

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees