JP6609463B2 - 自走式電子機器 - Google Patents
自走式電子機器 Download PDFInfo
- 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
Links
- 238000003860 storage Methods 0.000 claims description 73
- 238000001514 detection method Methods 0.000 claims description 41
- 238000003384 imaging method Methods 0.000 claims description 32
- 238000000605 extraction Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 6
- 238000000034 method Methods 0.000 description 86
- 230000008569 process Effects 0.000 description 66
- 238000012545 processing Methods 0.000 description 31
- 238000004140 cleaning Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 239000011159 matrix material Substances 0.000 description 20
- 230000009466 transformation Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 13
- 239000000428 dust Substances 0.000 description 12
- 230000006698 induction Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000000844 transformation Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 229930091051 Arenine Natural products 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Description
自走式電子機器は、作業領域の目的に沿って走行を制御するために走行に関して様々なモードを有する。一例としてある自走式掃除機の場合、走行の制御に関して、「自動運転モード」、「壁際モード」および「スポットモード」を有する。「自動運転モード」は不在時に宅内をくまなく掃除させる為のモードである。「壁際モード」は、自走式掃除機が壁に沿って進みながら掃除をするモードである。「壁際モード」を選択することで、壁際をきれいにできる。また、「スポットモード」では、ユーザーが指定した領域の周辺のみ掃除するためのモードである。領域を指定する単純な方法は、ユーザーがその領域に自走式掃除機を運んで持って行くというものである。
しかし、「スポットモード」の場合、ユーザーが意図する領域を自走式電子機器が自動的に推測することはできない。意図する領域を自走式電子機器に指示する単純な方法として、ユーザーは掃除等の作業をさせたい位置へ自走式電子機器を移動させ、そのうえでリモコン等によってスポットモードでの作業開始の指示を与え、これによって領域を指定することができる。このようにスポットモードについては、作業をさせる前に作業をさせたい場所まで自走式機器を移動させる必要がある。利便性の側面からは他のモードに劣るといえる。
例えば自走式掃除機が、移動方向を検出するジャイロセンサー、移動量を検出するエンコーダ、障害物を検出して自走式電子機器を自律的に走行させる自律走行部、およびユーザーが有するスマートフォンと通信する無線LAN等の通信手段を備えているものとする。このように構成された自走式電子機器に、基点である充電台からの相対位置をユーザーのスマートフォンから指示すると、その指示に応答して自走式電子機器が目的の位置へ移動させる制御が考えられる。
ここで、自走式電子機器に指示を与えるスマートフォンは、その画面上に、部屋の間取りおよび障害物となる家具や家電等の「モノ」の配置を示すマップを表示するアプリを用意しておくことが考えられる。
さらにいえば、このようなシステムではユーザーがスマートフォンを所有していないと自走式掃除機に位置を指示できない。スマートフォンを所有していないユーザーはこのシステムを使えない。また、スマートフォンの操作が苦手なユーザーもある。そのようなユーザーにとって、このシステムは使うのが難しく、利便性の観点からも改善が望まれる。
近年では音声認識技術が進歩しており、話者の意図を的確に認識することが可能になってきた。つまり、「ソファーの前を掃除しておいて」という指示の意図は、機械でも容易に識別できる。よって、自走式電子機器が、「ソファーの前」がどこであるかを認識し、その位置を目標位置に設定して自律走行できれば直感的で簡単な指示が可能になる。
さらに、目標位置で撮影した画像を、音声等による直感的な指示と対応付ければ、位置に関して自走式電子機器に対して直感的な指示が可能になる。例えば「ソファーの前」のように人間が直感的に理解できる位置情報を自走式電子機器が認識可能な位置情報、即ち、基点からの相対位置の情報と対応付けて認識するための重要な要素となる技術を提供するものである。
(実施の形態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の前部表面の外部から視認できる位置に誘導信号受信部24、撮像部133および充電用接続部13が設けられている。充電用接続部13は、後述する充電台201との接続端子およびその接続端子と充電池12とを結ぶ配線を含む。
第2排気口33は、前方へ向かって開口し、集塵部15および電動送風機115を通過した空気流を前方へ向けて吹き出すように構成されている。なお、ここで言う「前方」とは、自走式掃除機が直進する方向と平行方向を意味するが、厳密に平行方向でなくてもよく、多少の斜め方向も含まれる。
自走式掃除機1は、設置された場所の床面を自走しながら、床面(走行面)上の塵埃を含む空気を吸い込み、塵埃を除去した空気を排気することにより床面上を掃除する。自走式掃除機1は、障害検出部14により検出された障害物を自律的に回避して走行し、掃除が終了すると自律的に図示しない充電ステーションに帰還する機能を有する。
なお、この明細書で床面は木製の平らな床に限らない。カーペット、マット、畳などであっても自走式掃除機1が走行可能な面であればよい。また、床面は平面に限らず、例えばある程度曲がった面や凹凸のある面や段差のある面であっても走行可能であればよい。
駆動部23は、左輪駆動モータ21L、右輪駆動モータ21R、左駆動輪22L、右駆動輪22Rを備える。左輪駆動モータ21L、右輪駆動モータ21R、左輪エンコーダ71Lおよび右輪エンコーダ71R、左駆動輪22Lおよび右駆動輪22Rを有して自走式掃除機1を走行させる。なお、左輪駆動モータ21Lおよび右輪駆動モータ21Rがステッピングモータの場合は、エンコーダに代えてモータの駆動パルス数を用いてもよい。この実施例では、左輪エンコーダ71Lおよび右輪エンコーダ71Rが実際にエンコーダを備えるものとして説明する。
左輪ドライバ121Lは、左輪駆動モータ21Lを電気的に駆動し、右輪ドライバ121Rは、右輪駆動モータ21Rを電気的に駆動する。ジャイロセンサー20は、走行方向の変化を検出する。送風機ドライバ123は、電動送風機115を電気的に駆動する。ブラシドライバ125は、ブラシモータ119を電気的に駆動する。
また、機器制御部11は、自走式掃除機1の走行を制御する走行制御部11a、位置検出部11b、特徴点抽出部11cおよび目標位置決定部11dの機能を包含する。
走行制御部11aは、左輪エンコーダ71Lおよび右輪エンコーダ71Rからのエンコーダの信号を用いて左輪駆動モータ21Lおよび右輪駆動モータ21Rの回転を制御することにより自走式掃除機1の走行を制御する。
位置検出部11bは、前記エンコーダ信号に基づいてホームポジションから自走式掃除機1が走行した距離および方向を取得する。なお、この実施形態でホームポジションは、後述する充電台201に自走式掃除機1がドッキングした状態における自走式掃除機1の部屋内の位置であって、位置検出部11bが検出する位置の基準となる位置である。
図6Bは、自走式掃除機1が部屋座標原点からx軸方向にマイナス15センチメートル、y軸方向に20センチメートルの位置にあることを示している。
位置検出部11bは、図6Aに示すホームポジションを基準としてx方向およびy方向の座標値で自走式掃除機1の位置を検出する。
機器制御部11は、自走式掃除機1の各構成要素の動作を制御する部分であり、主として、CPU、RAM、I/Oコントローラ、タイマー等からなるマイクロコンピュータによって実現される。
記憶部61は、自走式掃除機1の各種機能を実現するために必要な情報や、制御プログラムを記憶するメモリである。この実施形態では、不揮発性メモリとしてフラッシュメモリとRAMとが組み合わせて用いられる。記憶部61は、位置情報データベース格納部61aおよびクエリ格納部61bを含む。
なお、図1には図示していないが、記憶部61は、目標位置の候補となる候補位置で撮影された画像に係る特徴点を、各候補位置を目標として選択する場合に用いる選択指示と関連付けてそれぞれ記憶する候補位置記憶部を含んでもよい。
障害検出部14、特に超音波受信部14Aおよび超音波送信部14Bは、自走式掃除機1が走行中に、室内の壁や机、いすなどの障害物に接触又は近づいたことを検出する部分である。壁面や障害物を検出しながらそれに沿って自走式掃除機1が走行するために用いられる。また、超音波受信部14Aは、障害物までのおおよその距離を測定することができる。障害検出部14は、超音波受信部14Aおよび超音波送信部14Bを用いて障害物への近接を検出する。超音波受信部14Aおよび超音波送信部14Bに代えて、あるいは超音波受信部14Aおよび超音波送信部14Bと共に、赤外線測距センサーなど他の方式の非接触センサーを用いてもよい。
衝突センサー14Cは、自走式掃除機1が走行時に障害物と接触したことを検出するために、例えば、筐体2の側板前半部2c1の内部に配置される。CPUは、衝突センサー14Cからの出力信号に基づいて側板前半部2c1が障害物に衝突したことを知る。
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は、障害検出部14の各センサーにより掃除領域の周縁に到達したと判断したら、左駆動輪22Lおよび右駆動輪22Rを減速させた後に停止させる。その後、左駆動輪22Lおよび右駆動輪22Rを互いに逆方向に回転させて自走式掃除機1を90°旋回させ、吸込口31の開口幅に等しい距離だけ進んでさらに90°旋回させて元の進路と逆方向へ走行させる。つづら折り状に前述の旋回を繰り返して自走式掃除機1をジグザグ走行させて、清掃領域内をくまなく清掃できるように制御する。
さらに自走式掃除機1は左輪エンコーダ71Lおよび右輪エンコーダ71Rを備えているので、左駆動輪22Lおよび右駆動輪22Rがそれぞれどれだけ回転したかを検出して自走式掃除機1が走行する際の旋回角を検出したり、移動した距離を検出したりできる。つまり、ホームポジションから目標位置までの距離と方向が与えられると、その目標位置へ自律的に移動することが可能である。
なお、この実施形態で、前方とは、自走式掃除機1の前進方向、即ち図3において後輪26から吸込口31へ向かう方向をいうものとし、後方とは、自走式掃除機1の後退方向、即ち図3において吸込口31から後輪26へ向かう方向をいうものとする。
機器制御部11は、充電台201の誘導信号送出部203から出射される信号を誘導信号受信部24で検知し、充電台201のある方向を認識する。走行制御部11aは、掃除が終了した場合、充電池12の充電残量が少なくなった場合、あるいは予め定められた清掃作業の期間が経過した場合などに、充電台201のある方向へ走行させて、自走式掃除機1を充電台201まで帰還させる。ただし、障害物があれば、それを避けながら充電台201の方向へ移動させる。
報知部55は、自走式掃除機1の状態をユーザーに知らせるものである。この実施形態において、報知部55は、音を出力する音響出力回路とスピーカである。別の態様として、筐体2の上部、より具体的には例えば天板前部2b1や側板後半部2c2にLEDランプ等を用いた表示部を設けてもよい。さらに別の態様として、ユーザーの所有するスマートフォン等通信機能を有する情報処理装置に無線通信部131を通じて通知してもよい。
なお、図1には図示していないが、無線通信部131は、目標へ走行すべき走行指示を受付ける指示受領部としての機能を包含してもよい。
撮像部133の具体的態様は、機器組込型のカメラモジュールである。静止画だけでなく、動画撮影が可能であってもよい。撮像部133は、図2に示すように誘導信号受信部24の上方に取り付けられ、自走式掃除機1の上方および周囲の光景を撮影する。撮像部133としてのカメラモジュールは広角レンズを備えており、上方だけでなく側方の光景も撮影する。
音声認識部135は、ユーザーが発する音声を感知して予め定められた指示か否かを認識するマイクおよび音声認識回路である。図1には図示していないが、音声認識部は、目標へ走行すべき走行指示を受付ける指示受領部としての機能を包含してもよい。即ち、指示受領部としての機能は、前述の無線通信部131によって実現されてもよく、この音声認識部135によって実現されてもよく、両者がそれぞれ指示受領部の機能を実現してもよい。
以上が、この実施形態に係る自走式掃除機の構成の説明である。
充電台201は、一般に部屋の隅など、邪魔にならない場所に置かれることが多く、一旦置き位置が決めたらずっとその位置に置かれることが多い。自走式掃除機1は掃除が終わると充電のために充電台201に帰還し、充電池12を充電する。つまり、自走式掃除機1は掃除をしていないときは充電台で充電池12の充電をしながら待機している。
次に、この実施形態において位置情報データベースを作成する手順の概要を説明する。
位置情報データベースの作成は、自走式掃除機1が走行する部屋の複数の位置、好ましくは実質的に任意の位置といえる程多数の位置において、撮像部133が撮影する周囲の光景をデータベースに登録する処理である。平易にいえば、自走式掃除機にその部屋の各位置における光景を覚えさせる処理ともいえる。
位置情報データベースを作成する指示が、例えばユーザーの「部屋の特長を覚えて」という音声メッセージとして予め定められているとする。音声認識部135がこの音声を受けて指示と認識すると、それに応答して機器制御部11は、走行制御部11aとしてホームポジションから予め決められたルールに従って自走式掃除機1を部屋内の各所に走行させる。そして、撮像部133に各位置での光景を撮影させる。さらに機器制御部11は特徴点抽出部11cとして、撮影された各位置での画像から特徴点をそれぞれ抽出する。その画像が部屋内のどの位置で撮影されたものかを示す部屋座標は、左輪エンコーダ71Lおよび右輪エンコーダ71Rからのエンコーダ信号を用いて位置検出部11bとしての機器制御部11が検出する。位置検出部11bは、さらにジャイロセンサー20を用いて部屋座標の精度を高めてもよい。
部屋内のある位置で撮影された画像に基づいて作成された特徴点情報とその位置を表す部屋座標とが関連付けられた情報をその位置の位置情報と呼ぶ。機器制御部11は、各撮影位置における位置情報を位置情報データベース格納部61aに格納する。部屋内の複数の位置において位置情報を作成して位置情報データベース格納部61aに格納する処理を「位置情報データベースの作成」という。
充電台201とドッキングした状態で位置情報データベースの作成を求める指示を受付けると、機器制御部11は走行制御部11aとして、自走式掃除機1を部屋内の各所に走行させるように制御する。掃除を行う場合にも、自走式掃除機1は部屋内をくまなく走行して掃除を行うので、位置情報データベースを作成する場合と掃除を行う場合とで同じ走行パターンを適用してもよい。このとき、部屋内の走行面を予め定められたサイズの縦横マトリクス状に区画割りし、区画毎に写真を撮影して特徴点を抽出して特徴点情報を作成し、特徴点情報と部屋座標とが関連付けられた位置情報を位置情報データベースに格納していく。
この実施形態において、位置情報データベースの作成の際に自走式掃除機1が部屋内を走行するルールは、予め定められた間隔(ピッチ)で往復路をシフトさせながらジグザグ運転を行うことを基本とする。即ち、自走式掃除機1は、走行路前方に障害物が検出されるまでは直進し、障害物である壁を検出したらその障害物との衝突を避けるように側方(この実施形態では右側とする)へ90°旋回する。そして、予め定められたピッチの30cmだけ進むとさらに右側へ90°旋回して折り返す。その後、再び障害物を見つけるまで直進するといったルールに従って走行する。
なお、位置情報データベースを作成する際のジグザグ運転の折返しピッチ、言い換えれば区画のピッチは、掃除を行う場合の折返しピッチと同じであってもよいが異なってもよい。
図8に示す縦横マトリックス状の区画は、一つの区画の大きさが縦横それぞれ30cmであるとする。その場合、機器制御部11は、自走式掃除機1が30cm直進する毎にその位置で撮像部133に周囲の光景を撮影させる。30cm直進したことは、位置検出部11bが検出した現在位置の部屋座標を前回撮影した位置の部屋座標と比較して判断する。そして、特徴点抽出部11cは、撮影された画像から特徴点を抽出する。そして、抽出された複数の特徴点の画像内におけるそれぞれの座標値(特徴点座標)とそれらの特徴点の配置関係とを表す特徴点情報を作成する。なお、この明細書において特徴点座標を表す場合には、大文字のXおよびYを用いることとする。図6Aおよび図6Bで、部屋内の自走式掃除機1の位置を表す部屋座標に小文字のxおよびyを用いたので、それとの区別を明確にするためである。
機器制御部11は、自走式掃除機1を走行させながら走行可能な区画の位置情報と部屋座標とを位置情報データベース格納部61aに格納していく。ただし、現在位置が既に位置情報データベース格納部61aに格納された区画内であれば、重複した撮影および位置情報の格納は行わない。このようにして、部屋内の走行可能な領域の各区画について位置情報を位置情報データベース格納部61aに格納したら、機器制御部11は、自走式掃除機1を充電台201に帰還させてホームポジションへ戻す。
以上が、位置情報データベース作成の概要である。
上述のように作成された位置情報データベースは、自走式掃除機1を走行させるべき目標位置を決定するために用いられる。
この実施形態において、自走式掃除機1は、ユーザーの操作によって目標位置を学習する。一旦その目標位置を学習したら、その後ユーザーが指示を与えるだけで、自走式掃除機1は学習した位置へ走行することが可能になる。学習させる目標位置は1つに限らない。複数の位置を学習させておくことができる。自走式掃除機1に学習させた位置は、その後の目標位置となり得るので候補位置とよぶ。
音声認識部135がこの音声を受けて指示と認識すると、指示に応答して自走式掃除機1は、その位置で撮像部133により周囲の光景を撮影する。さらに、撮影された画像から複数の特徴点を抽出し、抽出された各特徴点に係る特徴点情報を作成し、さらに特徴点情報を用いて距離情報を作成し、クエリ格納部61bに格納する。ここで、特徴点を抽出する手法、特徴点情報および距離情報の作成手順は、位置情報データベースの作成の局面と同様の処理である。
目標位置決定部11dとして機器制御部11は、クエリ格納部61bに格納された距離情報に最も類似する距離情報を持つ位置情報を位置情報データベースの中から検索する。この明細書では、この処理を「位置の推定」という。即ち、候補位置での距離情報に基づいて最近傍探索の処理を行う。なお、探索に要する処理時間やメモリ量を削減するために厳密な最近傍探索に代えて近似最近傍探索を行ってもよい。
さらに、学習した候補位置を他の候補位置と識別するキーワードと関連付ける。即ち、「ソファー前だよ」の部分から、学習した位置を候補位置の部屋座標と関連付けて記憶部61に格納する。
あるいは、ユーザーが単に「この位置を覚えて」という指示を与えると、それに応答して画像を撮影して特徴点を抽出し、位置情報データベースを検索して部屋座標を決定する。その後、機器制御部11は、報知部55に「この位置の名前を言って!」と質問の音声メッセージを出力させる。それに応えてユーザーが、例えば「テレビの前」と言うと、音声認識部135がその音声を認識する。機器制御部11は、認識した音声を候補位置の部屋座標と関連付けて記憶部61に格納する。
同様に、ユーザーの「テレビの前を掃除して」の音声を認識すると、機器制御部11は、すでに学習したテレビの前の位置へ自走式掃除機1を走行させ、その周囲を掃除し、掃除を終えたらホームポジションに戻るように制御する。
さらに位置情報データベース作成のより詳しい処理を説明する。
位置情報データベースは、部屋内の各位置で撮像部133が撮影した周囲の光景の画像から得られる特徴点情報と、その撮影がなされた位置について位置検出部11bが検出した部屋座標原点からの相対位置とが紐付けられて登録されたデータベースである。
図9〜図11は、この実施形態において、機器制御部11が位置情報データベースを作成する際に実行する処理を示すフローチャートである。図9は全体の処理を示し、図10は特徴点情報の作成を示し、図11は距離情報の作成を示す。
ユーザーからの指示を受付けたら、機器制御部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)。
(ステップS19)。新たな区画の撮影位置に到達したら、その位置で既に位置情報を位置情報データベースに登録したか否かを調べる(ステップS21)。既に登録済の場合(ステップS21のY)、ルーチンはステップS29へ進む。
さらに機器制御部11は、作成された特徴点情報に基づいて距離情報を作成する(ステップS25)。距離情報を作成する詳細な処理は図11に示しており、図11の説明で詳しく述べるが、1つの画像中の2つの特徴点の距離を全ての組合せについて表したものであり、2つの特徴点に対応する2次元配列ds[][]として表される。
そして、部屋内の走行可能なすべての区画について位置情報を位置情報データベースに登録したか否かを判断する(ステップS29)。
まだ、走行を試みるべき区画が残っていれば(ステップS29のN)、ルーチンはステップS13へ戻り、障害物を避けながら走行して各区画での位置情報の登録を繰り返す。
一方、全ての区画が登録されたと判断したら(ステップS29のY)、処理を終了する。
前述のステップS19で述べた部屋座標算出の詳細について述べる。
位置検出部11bは、自走式掃除機1のホームポジションからの相対位置を逐次検出する。
前回、自走式掃除機1の位置を検出してから、今回位置を検出するまでの間に、自走式掃除機が距離D走行したとする。この距離Dは、左輪エンコーダ71Lおよび右輪エンコーダ71Rからのエンコーダ信号に基づいて算出する。両者のエンコーダ信号のカウント数が等しければ直進していると判断する。両者の符号が異なるが絶対値が等しい場合、自走式掃除機が旋回していると判断する。ここで、エンコーダ信号の符号は駆動輪の回転方向を表すものとする。
R=0の場合、今回の部屋座標(xj,yj)は、前回の部屋座標値に対してy座標値にDを加えた位置と算出する。即ち、
xj=xi, yj=yi+D
とする。
R=1の場合、前回の部屋座標値に対してx座標値にDを加えた位置と算出する。
xj=xi+D, yj=yi
R=2の場合、前回の部屋座標値に対してy座標値からDを減じた位置と算出する。
xj=xi, yj=yi−D
R=3の場合、前回の部屋座標値に対してx座標値からDを減じた位置と算出する。
xj=xi−D, yj=yi
なお、自走式掃除機1が旋回のみの場合、今回の部屋座標(xj,yj)は、前回の部屋座標値と等しく、変数Rが変化する。
部屋座標の座標値の単位としては、例えば図7に示す縦横マトリックス状の1区画の大きさを1単位としてもよい。前述の座標値(xj,yj)がセンチメートルの単位で計測され、1区画の大きさが縦横共に30センチメートルの場合、部屋座標の座標値は、xjおよびyjをそれぞれ30cmで除した値になる。
続いて、図9のステップS23に示す特徴点情報の作成処理の詳細について、図10のフローチャートを用いて説明する。図10は、図9のステップS23に示す処理の詳細を示すフローチャートである。
図10で、特徴点抽出部11cとして機器制御部11は、撮像部133に周囲の光景を撮影させる(ステップS31)。そして、撮影した画像を白と黒の2値化する(ステップS33)。2値化処理は、例えばP−タイル法、モード法など既知のアルゴリズムを適用すればよい。なお、2値化処理で得られた画像の横幅(X方向の画素数)を「WIDTH」で表し、その画像の高さ(Y方向の画素数)を「HEIGHT」で表すこととする。
注目画素を含む画素マトリックスがコーナーのパターンにマッチしている場合(ステップS37のY)、次の処理を行う。注目画素が特徴点であるとして、注目画素(X+1,Y+1)の特徴点座標値を特徴点配列fp[]に格納してポインタiの値を1増やす(ステップS39)。
一方、注目画素を含む画素マトリックスがコーナーのパターンにマッチしていない場合(ステップS37のN)、特徴点配列fp[]への格納は行わない。
右端に達していなければ(ステップS43のY)、ルーチンはステップS37へ戻り、シフト後の注目画素がコーナーのパターンに該当するか否かを調べる。
一方、シフト後の画素マトリックスが画像の右端からはみ出した場合(ステップS43のN)、特徴点抽出部11cは、変数Yを1増やして注目画素を下方向にシフトさせる。それと共に、変数XにX=0を設定してシフト後のラインの左端に注目画素を移動させる(ステップS45)。このようにして、次のラインの走査する準備をするが、その前に走査開始前に下方向へシフトした画素マトリックスが画像の下端に達しているかを確認する(ステップS47)。即ち、変数Yの値が「HEIGHT」−2に達したか否かを調べる。「−2」は、3画素分の幅を持つ3×3画素マトリックスが画像からはみ出さないという条件に基づく。
一方、シフト後の画素マトリックスが画像の下端からはみ出した場合(ステップ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)。
d=√{(X1−X0)^2+(Y0−Y1)^2}
で求められる。即ち、2次元平面のユークリッド距離として計算できる。
例えば、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[][]に格納するものとして説明する。
h2がFPMAXに達していない、即ち、h2<FPMAXの場合(ステップS65のY)、ルーチンはステップS55へ戻って新たな2つの特徴点の距離を計算して距離情報配列ds[][]に格納する。
一方、h2がFPMAXに達した場合(ステップS65のN)、ルーチンはステップS67へ進み、1つ目の特徴点を参照するインデックス変数h1を1つ増加させたうえで(ステップS67)、h1がすべての特徴点を参照したかどうかを調べる(ステップS69)。
一方、前記ステップ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画素マトリックスの中央の画素を特徴点座標とする。
ただし、これは一例であって、コーナーに加えてエッジも特徴点として抽出する態様も考えられる。また、3×3画素マトリックスは一例に過ぎず、他の大きさの画素マトリックスをマッチングに適用する態様も考えられる。
なお、画像から特徴点を抽出する手法としては、SIFT、SURF、ORB、AKAZEなどが知られており、これら周知のアルゴリズムを適用すればよい。
続いて、この実施形態における位置の推定の詳細を説明する。
なお、「位置の推定」処理においてデータの検索は演算時間がかかるので、特徴点の演算処理は自走式掃除機1が充電台201にドッキングしている待機中に行ってもよい。
また、予め学習させたい位置で撮像部133に撮影を行わせるが、位置情報データベースの作成処理は掃除をしながら行うようにしてもよい。そして、位置情報データベースの作成を終えてデータベースが完成してから「位置の推定」処理のためのデータ検索を行ってもよい。
例えば、「ソファー前だよ、この場所を覚えて」といった位置推定を要求するユーザーの指示に応答して機器制御部11は、目標位置決定部11dとして次の処理を実行する。
まず、その位置で撮像部133に周囲の光景を撮影させる。撮影された画像から特徴点情報を作成する(ステップS101)。特徴点情報の作成処理は、図10で述べた処理と同様であるため詳細説明は省略するが、画像から複数の特徴点を抽出し、各特徴点を要素とする特徴点配列fp[]に特徴点情報を作成する。そして、その特徴点配列fp[]および特徴点数の値を示すFPMAXの内容をクエリ格納部61bに格納する。
さらに、目標位置決定部11dは、以下の処理で使用する変数を初期化する(ステップS105)。まず、位置情報データベースを参照するためのインデックス変数jにj=0(ゼロ)を設定して位置情報データベースに格納されている複数の位置情報のうち最初の位置情報を指すようにする。また、最大スコアを格納する一時変数smaxにsmax=0(ゼロ)を設定してクリアする。そして、最大スコアを参照するためのインデックス変数kにk=−1を設定する。また、比較用の特徴点配列cfp[]、比較用の特徴点数の変数CFPMAXおよび比較用の距離情報配列cds[][]をクリアする。
まず、位置情報データベースを参照するインデックスjが、位置情報データベースに格納された位置情報の数を示す値、RMAX未満か否かを調べる(ステップS107)。変数jの初期値はゼロであるからその場合のステップS107の判定はYesとなりルーチンはステップS109へ進む。一方、判定がNo、即ち、すべての位置情報についてマッチングを終えた場合は処理を終了する。
なお、比較対象とされた位置情報は、ステップS117からステップS107へ戻るループ処理によって順次変更され、位置情報データベース中のすべての位置情報と比較がなされるまでループする。
目標位置決定部11dは、算出されたスコアsがsmaxより大きいか否かを調べる(ステップS113)。スコアsがsmaxより大きい場合(ステップS113のY)、変数smaxにスコアsを設定する。また、最大スコア参照用のインデックス変数kにjで更新する(ステップS115)。即ち、変数smaxにこれまでのうちで一番高いスコアを格納し、そのスコアを持つ位置情報を参照するインデックスを変数kに格納する。
そして、インデックス変数jを1つ増加させた後(ステップS117)、ルーチンはステップS107へ戻る。
処理が終了した時点で、変数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[]とのマッチングを調べるに際して、マッチングの基準とする特徴点(基準点)を決定する。
変数q1がFPMAX未満であれば(ステップS127のY)、対応点を検索する処理(ステップS129)を行う。対応点の検索処理については、図19でその詳細を説明するが、比較対象の特徴点配列cfp[]の中に、対応する三角形に係る対応点があるかどうか調べる。その結果、対応点があれば(ステップS131のY)スコアsを1だけ増加させる(ステップS133)。対応点がなければ(ステップS131のN)スコアsはそのままにする。なお、図19で説明するが、前記ステップS129で、同じ距離関係にある3点が見つからない場合、変数m1の値にm1=−1が設定されて戻る。
以上のようにして、特徴点配列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は、基準点の検索処理を実行する(ステップS147)。即ち、クエリ格納部61bに格納されている特徴点配列fp[]のうち、現在のm1、m2およびm3を用いてそれぞれ参照される特徴点配列fp[m1]、fp[m2]、fp[m3]の3つの特徴点を得る。それらを基準点のうち一方の3点と仮定した場合、それと同じ距離関係にある特徴点(基準点の他方)が位置情報データベース内の比較対象とされている位置情報にあるか検索する。対応する3点を探索する処理の詳細は、図18で説明する。
まず、目標位置決定部11dは、m1,m2およびm3の3つのインデックス変数のうちでもっとも大きな値をとるm3を1つ増加させて(ステップS151)、特徴点数FPMAX未満か否かを調べる(ステップS153)。即ち、インデックスが特徴点配列の範囲内を指しているか調べる。
特徴点配列の範囲内であれば(ステップS153のY)、ルーチンはステップS147へ戻る。そして、更新されたm3とm1とm2を用いて参照される特徴点を基準点のうちの一方と仮定し、それと同じ距離関係にある特徴点が位置情報データベース内の各位置情報にあるか検索する。
m2がとり得る値の範囲内であれば(ステップS157のY)、ルーチンはステップS145へ戻り、更新された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点の距離関係を用いて対応関係をチェックしているのは、比較する2つの画像に収められている特徴点が回転や水平・垂直移動していることを考慮したものである。
即ち、自走式掃除機1が床面を走行して位置が変わると、位置が変化に対応して撮像部133で撮影される画像が変化する。この実施形態に於いて、撮像部133は上方とその周囲の光景を撮影するところ、床面と平行な天井面にある物体あるいは天井面に近くにある物体から抽出される特徴点は、平行移動および回転のみの変化を受ける。
自走式掃除機1の位置の変化に伴う画像の変化を幾何学的変換と捉えると、天井面は回転および並進のみの幾何学的変換、即ちユークリッド変換として考えることができる。2点間の距離は、画像がユークリッド変換を受けても変わらない。即ち、2点の距離は平行移動(並進)および回転の幾何学的変換に対する不変量(幾何学的返還を受けても変わらない量)として知られている。
以上のように、回転と並進を伴うユークリッド変換を考慮して対応する画像を検索すればよい。従って、ユークリッド変換に対する不変量である特徴点間の距離関係を用いた検索は有効である。
図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は、インデックス変数n3にn3=n2+1を設定する(ステップS175)。ステップS175はループ内にあって繰り返し処理されるが、初回はn2が1であってn3はそれより1つ大きな値、n3=1+1=2である。
ここで、特徴点配列fp[]に基づく距離情報配列がds[][]、比較用特徴点配列cfp[]に基づく比較用距離情報配列がcds[][]であり、距離を比較する場合の許容誤差をDLIMITとし、Xの絶対値をABS(X)で表すものとする。
許容誤差DLIMITについて述べると、位置情報が登録された位置と候補位置とが全く同じ位置とは限らないので、撮影された画像を照合する場合に、ある程度の誤差を許容する必要ある。ただし、この許容誤差は認識精度に影響するので十分考慮して設定されるべきである。
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点を頂点とする三角形の各辺の長さの相違がいずれも許容誤差未満の範囲にあって三角形どうしが実質的に合同であることを表している。
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」と異なるものの、距離関係がいずれも許容誤差以下の範囲にあることを表している。
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は、クエリ格納部61bに格納された特徴点配列fp[]を参照するためのインデックス変数p1にp1=m1を設定し、同様にp2にp2=m2を設定する(ステップS207)。そして、処理を終了する。
前記距離条件2が満たされない場合(ステップS179のN)、ルーチンはステップS181へ進み、前記距離条件3が満たされているかを調べる。距離条件3が満たされていれば(ステップS181のY)、比較用特徴点配列cfp[]を参照するためのインデックス変数p3にp3=n3を設定し、同様にp4にp4=n1を設定する(ステップS205)。その後、ルーチンは前述のステップS207へ進み、インデックス変数p1にp1=m1を設定し、同様にp2にp2=m2を設定して処理を終了する。
一方、距離条件1〜3の何れも満たされない場合(ステップS181のN)、目標位置決定部11dは、次の処理を行う。まず、n1,n2およびn3の3つのインデックス変数のうちでもっとも大きな値をとるn3を1つ増加させる(ステップS183)。そして、特徴点数CFPMAX未満か否かを調べる(ステップS185)。即ち、インデックスが比較用特徴点配列の範囲内を指しているか調べる。
比較用特徴点配列の範囲内であれば(ステップS185のY)、ルーチンはステップS177へ戻る。そして、更新されたn3とn1とn2を用いて参照される比較用特徴点を基準点ペアのうちの一方と仮定した場合、距離条件1〜3の何れかを満たす他方の基準点ペアがクエリ格納部61bに格納された特徴点配列内にあるか検索する。
n2がとり得る値の範囲内であれば(ステップS189のY)、ルーチンはステップS175へ戻り、更新されたn2に対するn3の値を設定する。そして、n1、n2、n3を用いて参照される特徴点を基準点ペアのうちの一方と仮定した場合、距離条件1〜3の何れかを満たす他方の基準点ペアがクエリ格納部61bに格納された特徴点配列内にあるか検索する。
n1がとり得る値の範囲内であれば(ステップS193のY)、ルーチンはステップS173へ戻り、更新されたn1に対するn2およびn3の値を設定する。そして、n1、n2、n3を用いて参照される特徴点を基準点ペアのうちの一方と仮定した場合、距離条件1〜3の何れかを満たす他方の基準点ペアがクエリ格納部61bに格納された特徴点配列内にあるか検索する。
目標位置決定部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)。
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点を頂点とする三角形の各辺の長さがいずれも許容誤差未満の範囲で等しく、三角形どうしが実質的に合同であることを表している。
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」と異なるものの、三角形どうしが実質的に合同であることを表している。
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のN)、目標位置決定部11dは、まずインデックス変数q2を1だけ増加させて(ステップS215)、q2が特徴点数CFPMAX未満か否かを調べる(ステップS217)。特徴点配列cfp[]のすべての座標の組み合わせについてチェックするためのループ処理に係る判断である。
q2がCFPMAX未満であれば、ルーチンはステップS213へ戻り、更新されたインデックス変数q2について、前記距離条件A,B,Cの何れかに適合するか否かを調べる。
以上が、対応点の検索処理である。
図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つの特徴点が、合同な三角形であり、丸印は他の特徴点を示す。
図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の向きが異なっていても高い精度でマッチングが判断できる。
図23は、この実施形態において、撮影された部屋の配置と撮影位置を示す説明図である。自走式掃除機は、縦横マトリクス状の区画の各位置で周囲の光景を撮影して得られる位置情報を位置情報データベース格納部に格納するが、ここでは説明を単純にするため(1)〜(5)5箇所の位置で撮影された画像で説明する。
図23において、破線で枠を示した照明A、照明Bおよびエアコンは、天井または天井付近に配置された物体である。それ以外の物体は床面に配置されているが、いずれもかなりの高さがある。
図24Aは、この実施形態において、図23に示す部屋内の候補位置で撮影された画像の一例を示す説明図である。自走式掃除機1に目標位置として学習させたい位置の画像である。
図24Bは、図23に示す位置(1)で撮影された画像の例を示す説明図である。
図24Aと図24Bは、両者の画像から抽出される特徴点を示している。特徴点は、基準点を星印で、他の点を○印で示している。さらに、距離関係が一致した特徴点は実線で示し、距離関係が一致しない特徴点を鎖線で示している。両者のマッチングに係るスコアは、s=4/8である。
図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である。
図28Bは、図23に示す位置(5)で撮影された画像の例を示す説明図である。
特徴点の表記方法は、図24Aおよび図24Bと同様である。マッチングのスコアは、s=1/8である。
よって、目標位置決定部11dは、最大のスコアを与える図25Bの位置を、目標位置と判断する。
図29は、図24Aに示す特徴点が画像から抽出される様子を視覚的に示す説明図である。
特徴点抽出部11cは、撮像部133で撮影された画像を二値化し、コーナーを表す画素の位置を特徴点として抽出する。
実施の形態1で、目標位置決定部11dは、ユーザーが候補位置を学習させる段階で、位置情報データベースの最近傍探索を行って候補位置の部屋座標を取得した。それと異なる態様として、候補位置の学習段階においては、その位置で撮影した画像から特徴点情報と距離情報を作成し、その特徴点情報と距離情報をその候補位置を識別するキーワードと関連付けて記憶部61に格納してもよい。
その後、ユーザーから「テレビの前を掃除して」との指示を受けた際に、記憶部61に格納された候補位置のうち「テレビの前」のキーワードに該当する候補位置を検索し、距離情報を取得する。そして、最近傍探索を行って位置情報データベースの中で距離情報が最も類似する位置情報を見出して、その位置情報に係る部屋座標をもとめてもよい。
この態様によれば、位置情報データベースの作成が未だ行われていなくても候補位置を学習させることが可能である。位置情報データベースは、学習した候補位置へ移動すべき指示をうける次点までに作成されていればよい。
また、ユーザーからの指示に応答して位置情報データベースの作成を行うだけでなく、例えば、自走式掃除機1が部屋の掃除をしているときに、位置情報データベースを合わせて作成してもよい。掃除の度に位置情報データベースをチェックし、更新すれば部屋の模様替えがあったことを検出できる。その場合、ユーザーに部屋の光景が代わったので候補位置の学習をやり直すべきことを知らせることができる。
あるいは、位置情報データベースの作成が未だ行われていない段階で候補位置の学習がなされた場合に限って、候補位置の部屋座標に代えて特徴点情報と距離情報を格納していてもよい。そして、位置情報データベースが完成した時点で先近傍検索を行って候補位置の部屋座標を求め、特徴点情報と距離情報を部屋座標で置換してもよい。
以上の実施形態で、3つの基準点の場合について説明したが、基準点の数は必ずしも3つに限定されるものでない。3以上の数であってもよい。例えば、4つの基準点を用いる場合、合同な四角形を探すことにする。三角形よりも辺の数が多ければ、偶然に合同なものが見つかる可能性はより小さくなるので精度のよいマッチングが実現できる。ただし、辺の数が多いと距離の計算量が増えるので、設計者は適当な数を選択すべきである。
なお、基準点が4点の場合、マッチング用基準点は3点にすればよい。2点でもかまわないが、その場合は任意の他の2点との組合せについてスコアを計算することになるのでスコアを計算する処理量が多くなるが、スコアが多数の組み合わせに基づいて計算されるので、マッチングの精度は高い。
なお、3つの基準点の場合、マッチング用基準点の数は2つに限らず1つでもよい。ただし、スコアの計算量が多くなる。
以上の実施形態では、2点間の距離に基づいて特徴点の対応関係を判断した。これは、2点の距離がユークリッド変換に対して不変量であるとの考えに基づく。しかし、2点間の距離に限らず、ユークリッド変換に対する不変量(ユークリッド不変量)であれば適用可能である。例えば、二つの直線間の角度や、閉領域の面積はユークリッド不変量であるので、2点の距離に代えてその何れかの不変量を用いてもよい。
さらに、ユークリッド変換よりも変形の自由度の高い相似変換、アフィン変換や射影変換に対応できるように相似変換のもとでの不変量(相似不変量)、アフィン変換のもとでの不変量(アフィン不変量)や射影変換のもとでの不変量(射影不変量)を用いてもよい。
自由度の高い幾何学的変換に対する不変量を用いれば、異なる位置(視点)で撮影された画像の歪みの影響を受けにくくなる反面、不変量の計算処理の負荷が大きくなるので、その不変量を適用してマッチングを行うかは、設計者が適宜選択すべきである。
(i)この発明による自走式電子機器は、走行を制御する走行制御部と、前記走行に伴って変化する位置を検出する位置検出部と、周囲の光景を撮影する撮像部と、撮影された画像から複数の特徴点を抽出する特徴点抽出部と、走行領域内の複数の位置において前記撮像部が撮影した画像に係る特徴点とその撮影が行われた位置とが関連付けられて登録された位置情報を予め格納する位置情報データベース格納部と、目標とすべき位置において前記撮像部が撮影した画像に係る特徴点を格納するクエリ格納部と、前記クエリ格納部に格納された特徴点と前記位置情報データベース格納部に格納された各位置情報に含まれる特徴点との配置関係を照合し、対応する配置関係にある特徴点を最も多く含む位置情報に基づいて目標位置を決定する目標位置決定部とを備え、前記走行制御部は、前記位置検出部が検出する現在の位置と決定された目標位置とに基づいてその目標位置への走行を制御することを特徴とする。
また、特徴点は、画像の特徴を表す複数の点である。画像から特徴点を抽出する手法としては、SIFT、SURF、ORB、AKAZEなどが知られており、これら周知のアルゴリズムが適用可能である。
(ii)前記撮像部は、走行中に逐次撮影を行い、前記走行制御部は、走行中に前記撮像部が撮影した画像に係る特徴点と前記位置情報データベースとして格納された各位置の画像に係る特徴点とを照合して、前記位置検出部が検出する位置を補正してもよい。
このようにすれば、走行中に撮影された画像に係る特徴点と位置情報データベースに係る特徴点とを照合して現在の位置を推定し、推定された現在位置を用いて前記位置検出部が検出する位置情報を補正し、安定して現在の位置を決定することができる。
走行指示が例えば音声による指示であれば、候補位置に対して、「ソファーの前」、「テレビの前」、「机の下」等の一意的な音声による選択指示を関連付けておく。それらのうち何れかの選択指示を含み、「を掃除しておいて」の音声が走行指示であることを示すものとする。そうすれば、自走式掃除機は、「ソファーの前を掃除しておいて」というユーザーの呼びかけを目標位置が「ソファーの前」に関連付けられた候補位置であり、それを目標に走行せよという指示であると認識できる。よって、ソファーの前へ走行し、スポットモードで作業を行うということが実現できる。
このようにすれば、クエリ格納部に格納された特徴点と位置情報データベースとして格納された特徴点を照合する際、対応する配置関係にある特徴点の組み合わせが存在するものについて、対応する対がいくつあるかを調べて、対を最も多く含む位置情報に係る位置を目標位置に決定できる。
このようにすれば、3つの特徴点がなす三角形の辺の長さを照合することによって特徴点の配置関係が対応するか否かを判断できる。
この発明の好ましい態様には、上述した複数の態様のうちの何れかを組み合わせたものも含まれる。
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
201:充電台、 202:充電端子部、 203:誘導信号送出部
300:部屋、 301:テーブル、 303:ソファー、 305:テレビ、 307:本棚、 309:空気清浄機
Claims (4)
- 走行を制御する走行制御部と、
前記走行に伴って変化する位置を検出する位置検出部と、
周囲の光景を撮影する撮像部と、
撮影された画像から複数の特徴点を抽出する特徴点抽出部と、
走行領域内の複数の位置において前記撮像部が撮影した画像に係る特徴点とその撮影が行われた位置とが関連付けられて登録された位置情報を予め格納する位置情報データベース格納部と、
目標とすべき位置において前記撮像部が撮影した画像に係る特徴点を格納するクエリ格納部と、
前記クエリ格納部に格納された特徴点と前記位置情報データベース格納部に格納された各位置情報に含まれる特徴点との配置関係を照合し、対応する配置関係にある特徴点を最も多く含む位置情報に基づいて目標位置を決定する目標位置決定部と、
1以上の候補位置で撮影された画像に係る特徴点を、各候補位置を目標として選択する場合に用いる選択指示と関連付けてそれぞれ記憶する候補位置記憶部と、
目標へ走行すべき走行指示を受付ける指示受領部とを備え、
前記走行指示は、何れかの候補位置に係る前記選択指示を含み、
前記目標位置決定部は、前記走行指示に含まれる選択指示と前記候補位置記憶部に格納された選択指示とを照合し、対応する選択指示に関連付けられた特徴点を前記クエリ格納部に格納し、
前記走行制御部は、前記走行指示に応答して選択された目標への走行を開始し、前記位置検出部が検出する現在の位置と決定された目標位置とに基づいてその目標位置への走行を制御する自走式電子機器。 - 前記撮像部は、走行中に逐次撮影を行い、
前記走行制御部は、走行中に前記撮像部が撮影した画像に係る特徴点と前記位置情報データベースとして格納された各位置の画像に係る特徴点とを照合して、前記位置検出部が検出する位置を補正する請求項1に記載の自走式電子機器。 - 前記目標位置決定部は、前記クエリ格納部に格納された特徴点と、各位置情報に含まれる特徴点との間で、対応する配置関係にある特徴点の組み合わせがあるか否かを調べ、対応する配置関係にある特徴点の組み合わせが少なくとも1組存在する場合、その組み合わせに係る予め定められた数の特徴点を基準特徴点とし、少なくとも1つの基準特徴点とそれ以外の特徴点からなる特徴点の組み合わせについて特徴点の配置関係を調べ、対応する配置関係にある特徴点の組み合わせの対を最も多く含む位置情報に基づいて前記目標位置を決定する請求項1または2に記載の自走式電子機器。
- 対応する配置関係は、前記クエリ格納部に格納された特徴点のうち3点と、各位置情報に含まれる特徴点のうち3点について、3点がなす三角形の全ての辺の長さが等しいか否かに基づいて判断され、
前記目標位置決定部は、配置関係が対応する一対の三角形の頂点をなすそれぞれ3つの特徴点を基準特徴点とし、各対の3つの基準特徴点のうち2つの基準特徴点と基準特徴点以外の1つの特徴点がなす三角形について、さらに配置関係が対応するものが何対あるかを調べて、対応する対を最も多く含む位置情報に基づいて前記目標位置を決定する請求項1〜3の何れか一つに記載の自走式電子機器。
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)
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)
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 | シャープ株式会社 | 機器制御装置、および自走式電子機器 |
-
2015
- 2015-11-19 JP JP2015226754A patent/JP6609463B2/ja not_active Expired - Fee Related
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 |