JP2018156538A - Autonomous mobile device, image processing method and program - Google Patents
Autonomous mobile device, image processing method and program Download PDFInfo
- Publication number
- JP2018156538A JP2018156538A JP2017054372A JP2017054372A JP2018156538A JP 2018156538 A JP2018156538 A JP 2018156538A JP 2017054372 A JP2017054372 A JP 2017054372A JP 2017054372 A JP2017054372 A JP 2017054372A JP 2018156538 A JP2018156538 A JP 2018156538A
- Authority
- JP
- Japan
- Prior art keywords
- map
- unit
- ceiling
- information
- storage unit
- 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.)
- Pending
Links
Images
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
【課題】作成した地図を用いる技術を改善する。【解決手段】自律移動装置100は、撮像部41と、地図作成部11と、天井推定部13と、判定部14と、判定結果処理部と、を備える。地図作成部11は、撮像部41が撮影した複数の画像の情報を用いて地図の情報を作成する。天井推定部13は、撮像部41が撮影した複数の画像の情報を用いて天井平面を推定する。判定部14は、天井推定部13が推定した天井平面を用いて地図の情報に誤差が基準以上多く含まれているか否かを判定する。判定結果処理部は、判定部14が判定した結果に応じて所定の処理を行う。【選択図】図3[Problem] To improve the technology of using created maps. An autonomous mobile device 100 includes an imaging section 41, a map creation section 11, a ceiling estimation section 13, a determination section 14, and a determination result processing section. The map creation unit 11 creates map information using information on a plurality of images taken by the imaging unit 41. The ceiling estimating unit 13 estimates a ceiling plane using information on a plurality of images taken by the imaging unit 41. The determining unit 14 uses the ceiling plane estimated by the ceiling estimating unit 13 to determine whether the map information includes more errors than a reference value. The determination result processing unit performs predetermined processing according to the result determined by the determination unit 14. [Selection diagram] Figure 3
Description
本発明は、自律移動装置、画像処理方法及びプログラムに関する。 The present invention relates to an autonomous mobile device, an image processing method, and a program.
用途に応じて自律的に移動する自律移動装置が普及してきている。例えば、屋内の掃除のために自律的に移動する自律移動装置が知られている。一般的に、このような自律移動装置は、実空間の地図の作成と、実空間内での自機位置の推定とを、両方とも行う必要がある。 Autonomous mobile devices that move autonomously according to their use have become widespread. For example, an autonomous mobile device that moves autonomously for indoor cleaning is known. In general, such an autonomous mobile device needs to both create a map in real space and estimate its own position in the real space.
実空間の地図の作成と実空間内での自機位置の推定とを同時に行う手法として、SLAM(Simultaneous Localization And Mapping)と呼ばれる手法が知られている。SLAM法では、カメラの撮影する動画像の各フレームから特徴点を抽出し、異なるフレームにおいて同一の特徴点を追跡することによって、自機の3次元位置(カメラ位置)と特徴点の3次元位置(これが集まって地図の情報を構成する)とを交互に推定する処理を行う。例えば特許文献1には、SLAM法を用いて周囲の地図を作成しながら移動することができる移動式ロボットが開示されている。
A technique called SLAM (Simultaneous Localization And Mapping) is known as a technique for simultaneously creating a map in real space and estimating its own position in the real space. In the SLAM method, a feature point is extracted from each frame of a moving image captured by a camera, and the same feature point is tracked in different frames, so that the three-dimensional position (camera position) of the own device and the three-dimensional position of the feature point are detected. (This collects and constitutes the information of a map) and the process which estimates alternately is performed. For example,
特許文献1に開示されている移動式ロボットは、SLAM法を用いることによって、地図を作成しながら移動することができる。しかし、前記の移動式ロボットでは作成した地図を用いる技術に改善の余地がある。
The mobile robot disclosed in
本発明は、作成した地図を用いる技術を改善することを目的とする。 An object of this invention is to improve the technique using the created map.
本発明の自律移動装置は、
撮像部と、
前記撮像部が撮影した複数の画像の情報を用いて地図の情報を作成する地図作成部と、
前記撮像部が撮影した複数の画像の情報を用いて天井平面を推定する天井推定部と、
前記天井推定部が推定した天井平面を用いて、前記地図の情報に誤差が基準以上多く含まれているか否かを判定する判定部と、
前記判定部が判定した結果に応じて所定の処理を行う判定結果処理部と、
を備える。
The autonomous mobile device of the present invention is
An imaging unit;
A map creation unit that creates map information using information of a plurality of images captured by the imaging unit;
A ceiling estimation unit that estimates a ceiling plane using information of a plurality of images captured by the imaging unit;
Using the ceiling plane estimated by the ceiling estimation unit, a determination unit that determines whether the map information includes more errors than the reference,
A determination result processing unit that performs a predetermined process according to a result determined by the determination unit;
Is provided.
本発明によれば、作成した地図を用いる技術を改善した自律移動装置、画像処理方法及びプログラムを提供することができる。 ADVANTAGE OF THE INVENTION According to this invention, the autonomous mobile apparatus, the image processing method, and program which improved the technique using the created map can be provided.
以下、本発明の実施形態に係る自律移動装置、自律移動方法及びプログラムについて、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。 Hereinafter, an autonomous mobile device, an autonomous mobile method, and a program according to embodiments of the present invention will be described with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals.
(実施形態1)
本発明の実施形態に係る自律移動装置は、周囲の地図を作成しながら、用途に応じて屋内を自律的に移動する装置である。この用途とは、例えば、警備監視用、屋内掃除用、ペット用、玩具用等である。
(Embodiment 1)
An autonomous mobile device according to an embodiment of the present invention is a device that autonomously moves indoors depending on the application while creating a map of the surroundings. Examples of this use include security monitoring, indoor cleaning, pets, and toys.
自律移動装置100は、図1に示すように、外観上、撮像部41、駆動部42を備える。
As shown in FIG. 1, the autonomous
撮像部41は、単眼の撮像装置(カメラ)を備える。撮像部41は、例えば、30fpsで画像(フレーム)を取得する。自律移動装置100は、撮像部41が逐次取得した画像に基づいて、自機位置と周囲環境とをリアルタイムに認識しながら、自律移動を行う。撮像部41は、天井方向の画像を取得できるように広角レンズが使用されており、図2に示すような、天井を含む画像を取得する。
The
駆動部42は、独立2輪駆動型であって、車輪とモータとを備える移動手段である。自律移動装置100は、2つの車輪の同一方向駆動により前後の平行移動(並進移動)を、2つの車輪の逆方向駆動によりその場での回転(向き変更)を、2つの車輪のそれぞれ速度を変えた駆動により旋回移動(並進+回転(向き変更)移動)を、行うことができる。また、各々の車輪にはロータリエンコーダが備えられており、ロータリエンコーダで車輪の回転数を計測し、車輪の直径や車輪間の距離等の幾何学的関係を利用することで並進移動量及び回転量を計算できる。例えば、車輪の直径をD、回転数をR(ロータリエンコーダにより測定)とすると、その車輪の接地部分での並進移動量はπ・D・Rとなる。また、車輪の直径をD、車輪間の距離をI、右車輪の回転数をRR、左車輪の回転数をRLとすると、向き変更の回転量は(右回転を正とすると)360°×D×(RL−RR)/(2×I)となる。この並進移動量や回転量を逐次足し合わせていくことで、駆動部42は、いわゆるオドメトリとして機能し、自機位置(移動開始時の位置及び向きを基準とした位置及び向き)を計測することができる。
The
オドメトリから得られる自機の位置及び向きの精度は、車輪の摩耗やスリップ等により、低い精度になってしまうことが多い。特に誤差が累積していく関係上、時間経過と共に精度が悪化する。ただし、オドメトリの回転成分(向きの情報)に関しては、角速度(単位時間あたりの角度移動量)を測定する角速度センサを用いることにより精度を向上させることができる。また、地磁気を検出して方位を特定する方位センサ(図示せず)を用いることにより、オドメトリからの取得値とは関係なく、地磁気を利用した絶対的な向きの情報を取得することもできる。 The accuracy of the position and orientation of the own aircraft obtained from odometry often becomes low due to wheel wear or slip. In particular, due to the accumulation of errors, the accuracy deteriorates with time. However, regarding the rotational component (direction information) of the odometry, the accuracy can be improved by using an angular velocity sensor that measures the angular velocity (angular movement amount per unit time). In addition, by using an azimuth sensor (not shown) that detects geomagnetism and identifies the azimuth, information on the absolute direction using geomagnetism can be obtained regardless of the obtained value from the odometry.
なお、車輪の代わりにクローラを備えるようにしても良いし、複数(例えば二本)の足を備えて足で歩行することによって移動を行うようにしても良い。これらの場合も、二つのクローラの動きや、足の動きに基づいて、車輪の場合と同様に自機の位置や向きの計測が可能である。 In addition, you may make it provide a crawler instead of a wheel, and you may make it move by providing a plurality (for example, two) leg | foot and walking with a leg | foot. In these cases as well, the position and orientation of the subject aircraft can be measured based on the movements of the two crawlers and the movements of the feet as in the case of the wheels.
図3に示すように、自律移動装置100は、撮像部41、駆動部42に加えて、制御部10、記憶部20、センサ部30、入力部43、通信部44、電源45、を備える。
As illustrated in FIG. 3, the autonomous
制御部10は、CPU(Central Processing Unit)等で構成され、記憶部20に記憶されたプログラムを実行することにより、後述する各部(地図作成部11、位置推定部12、天井推定部13、判定部14、地図編集部15)の機能を実現する。
The
記憶部20は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成され、画像記憶部21、地図記憶部22及び天井推定値記憶部23を含む。ROMには制御部10のCPUが実行するプログラム(例えば、後述するSLAM法の演算や自律移動制御処理に係るプログラム)や、プログラムを実行する上で予め必要なデータが記憶されている。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
The
画像記憶部21には、撮像部41が撮影した画像が記憶される。ただし、記憶容量の節約のため、画像記憶部21は、撮像部41が撮影したすべての画像を記憶しなくてもよく、また画像自体ではなく、画像の特徴量を記憶するようにしても良い。重要な画像(後述するキーフレーム)については、位置推定部12が後述するSLAM法で推定した、該画像を撮影した時の自機位置(自機の位置及び向き)の情報も、該画像の情報と共に(該画像に紐付けられて)画像記憶部21に記憶される。
The
地図記憶部22には、後述するSLAM法や障害物センサ31からの情報に基づいて地図作成部11が作成した地図の情報(特徴点や障害物の3次元位置の情報)が記憶される。
The
天井推定値記憶部23には、天井推定部13が推定した、天井の平面を表す方程式の係数を記憶する。天井の平面を表す方程式については後述する。
The ceiling estimated
センサ部30として、障害物センサ31及び床面センサ32を備える。障害物センサ31は、周囲に存在する物体(障害物)を検出し、該物体(障害物)までの距離を測定することができる距離センサであって、例えば、赤外線センサ、超音波センサである。なお、独立した障害物センサ31を搭載せずに、撮像部41を用いて障害物を検知するようにしても良い。また、他の物体に衝突したことを検知するバンパーセンサー(図示せず)を備えても良い。床面センサ32は、自律移動装置100が床面に接しているか否かを検知するセンサである。自律移動装置100が床面の上を移動している間は、床面センサ32は自律移動装置100が床面に接していることを検知する。例えば、人が自律移動装置100を持ち上げると、床面センサ32は自律移動装置100が床面から離れたことを検知する。
As the
入力部43として、自律移動装置100を操作するための操作ボタンを備える。操作ボタンは、例えば、電源ボタン、モード切替ボタン(掃除モード、ペットモード等を切り替える)、初期化ボタン(地図の作成をやり直しさせる)などを含む。入力部43として、音の入力を行うマイク(図示せず)と、自律移動装置100への操作指示の音声を認識する音声認識部を備えても良い。
As the
通信部44は、外部装置と通信するためのモジュールであり、外部装置と無線通信する場合にはアンテナを含む無線モジュールである。例えば、通信部44は、Bluetooth(登録商標)に基づく近距離無線通信を行うための無線モジュールである。通信部44では、自律移動装置100と外部とのデータ受け渡し等を行う。
The
電源45は、自律移動装置100を動作させる電源であり、一般的には内蔵された充電池であるが、太陽電池であっても良いし、床面から無線で電力供給されるシステムであっても良い。電源45が充電池の場合は、充電器(充電ステーション)に自律移動装置100が接続することで充電される。
The
次に、自律移動装置100の制御部10の機能的構成について説明する。制御部10は、地図作成部11、位置推定部12、天井推定部13、判定部14、地図編集部15、の機能を実現し、後述するSLAM法の演算や自律移動装置100の移動制御等を行う。また、制御部10は、マルチスレッド機能に対応しており、複数のスレッド(異なる処理の流れ)を並行して進めることができる。
Next, a functional configuration of the
地図作成部11は、画像記憶部21に記憶されている画像の情報並びに該画像撮影時の自機の位置及び向きの情報に基づいてSLAM法を用いて後述する特徴点の3次元位置を推定したり、障害物センサ31で障害物を検出したときの自機の位置及び向きの情報に基づいて該障害物の3次元位置を取得したりすることによって、地図の情報を作成する。そして、この推定された特徴点の3次元位置、取得された該障害物の3次元位置等を、地図の情報として地図記憶部22に記憶する。なお、画像上の2次元空間に存在する特徴点を、後述するSLAM座標の3次元空間上に対応させたものをMap点と言う。1つのMap点は複数の画像から観測されることもある。つまり、1つのMap点は複数の(画像上の)特徴点と対応づけられることもある。
The
位置推定部12は、後述するSLAM法に基づいて、ビジュアルオドメトリとして、自機の位置及び向きを推定する。
The
天井推定部13は、後述する3次元ハフ(Hough)変換により、地図記憶部22に記憶されている特徴点の中から天井に存在する特徴点(天井特徴点)を抽出し、天井の平面(天井平面)を推定する。そして、推定した天井平面を表す方程式の係数(天井係数)を天井推定値記憶部23に記憶する。
The
判定部14は、後述するキーフレーム中に含まれる特徴点に対応したMap点のうち、天井推定値記憶部23に記憶されている天井係数で表される天井平面との距離が基準距離(例えば10cm)以下であるMap点の個数を求め、該個数が基準個数(例えば2個)未満であるなら、地図記憶部22に記憶されている地図の情報に誤差が基準以上多く含まれていると判定する。
The
この判定部14の判定について、補足説明する。撮像部41が取得する画像は、図2に示すように、天井の部分を多く含んでいるため、通常は、キーフレーム内の特徴点に対応したMap点に天井に存在するものが多く含まれる。そして、これら天井に存在するMap点と天井平面との距離は0である。したがって、天井推定値記憶部23に記憶されている天井係数で表される天井平面が正しい天井平面であるなら、キーフレーム中に含まれる特徴点に対応したMap点のうち、天井推定値記憶部23に記憶されている天井係数で表される天井平面との距離がほぼ0(つまり基準距離以下)であるMap点は多く(基準個数以上)含まれる。
The determination of the
つまり、キーフレーム中に含まれる特徴点に対応したMap点のうち、天井推定値記憶部23に記憶されている天井係数で表される天井平面との距離が基準距離以下であるMap点の個数が基準個数未満ということは(該天井係数がほぼ正しいと仮定するなら)、Map点の3次元位置が誤っているということを意味する。Map点の3次元位置の情報は、地図記憶部22に記憶されている地図の情報の一部であるため、Map点の3次元位置が誤っているということは、地図記憶部22に記憶されている地図の情報にも誤差が多く含まれていると推測することができる。したがって、上記判定によって、地図記憶部22に記憶されている地図の情報に誤差が基準以上多く含まれているか否かを判定することができる。
That is, among the Map points corresponding to the feature points included in the key frame, the number of Map points whose distance from the ceiling plane represented by the ceiling coefficient stored in the ceiling estimated
地図編集部15は、判定部14によって地図記憶部22に記憶されている地図の情報に含まれる誤差が多いと判定された場合は、該地図を編集する。地図の編集の最も簡単な処理は、該地図を消去する処理である。
If the
以上で、自律移動装置100の機能構成を説明した。次に自律移動装置100の自律移動制御処理について、図4を参照して説明する。図4は、自律移動装置100の自律移動制御処理全体のフローチャートである。自律移動装置100は、電源が投入されると、この自律移動制御処理が開始される。まず、自律移動装置100の制御部10は、自機位置推定スレッド(ステップS101)、地図作成スレッド(ステップS102)、ループクロージングスレッド(ステップS103)、誤差判定スレッド(ステップS104)の各スレッドを起動する。これら各スレッドの詳細については後述する。
The functional configuration of the autonomous
その後、制御部10は、自律移動制御処理による動作を終了するか否かを判定し(ステップS105)、動作終了なら(ステップS105;Yes)動作を終了し、動作終了でなければ(ステップS105;No)、地図作成部11が地図の情報の作成及び更新を行う(ステップS106)。次に制御部10は自律移動するために駆動部42に所望の動作を指示し(ステップS107)、ステップS105に戻る。この自律移動制御処理により、地図の情報に基づいて自律的に移動を行いつつ、適宜地図の情報を更新することができる。
Thereafter, the
自律移動装置100による自律移動制御処理の典型的な例を紹介する。自律移動装置100は最初、充電器に置いてある状態で電源45を投入すると、障害物センサ31を頼りとして、家の各部屋をくまなく移動し、障害物センサ31によって壁等の障害物位置を特定し、障害物位置を含む地図の情報を作成することができる。地図がある程度作成されると、地図の情報がまだないが移動可能と考えられる領域を知ることができ、その領域に自律的に移動する等して、より広範囲の地図の作成を促すこともできるようになる。そして、移動可能なほぼ全域の地図の情報が作成されれば、地図の情報を利用した効率的な移動動作が可能になる。例えば部屋のどの位置からでも最短経路で充電器に戻ったり、効率的に部屋の掃除をしたりすることが可能になる。
A typical example of autonomous movement control processing by the autonomous
次に、自律移動制御処理の全体フローチャート(図4)のステップS101で起動される自機位置推定スレッドについて、図5を参照して説明する。このスレッドは、位置推定部12が、最初に初期化処理を行い、その後自機位置推定(撮像部41で取得した画像を用いてビジュアルオドメトリにより自機位置を推定する)を続ける処理である。
Next, the own position estimation thread activated in step S101 of the overall flowchart of the autonomous movement control process (FIG. 4) will be described with reference to FIG. This thread is a process in which the
位置推定部12は、まず、初期化済フラグをクリアする(ステップS201)。初期化済フラグとは、位置推定部12が、自機位置を推定するために最初に行う初期化処理が完了しているか否かを示すフラグ変数である。初期化処理が完了すると初期化済フラグには1がセットされる。次に、自律移動制御処理による動作を終了するか否かを判定する(ステップS202)。動作終了なら(ステップS202;Yes)終了し、動作終了でないなら(ステップS202;No)、初期化済であるか否かを判定する(ステップS203)。この判定は、初期化済フラグが1(初期化済)か0(初期化済でない)かにより判定する。初期化済なら(ステップS203;Yes)、図6に示すステップS231以降の自機位置推定処理を行い、初期化済でないなら(ステップS203;No)ステップS204に進んで初期化処理を行う。まず初期化処理について説明する。
The
初期化処理では、位置推定部12はまずフレームカウンタNに−1をセットする(ステップS204)。そして、位置推定部12は、床面センサ32により自律移動装置100が床面に接していることが検知されていれば撮像部41で画像を取得する(ステップS205)。ステップS205は撮影ステップとも呼ばれる。床面センサ32により床面に接していない(持ち上げられている)ことが検知されている間は、床面に接したことが検知されるまで位置推定部12はステップS205以降の処理を行わずに待ち続ける。画像は例えば30fpsで取得することができる。なお、撮像部41が取得した画像はフレームとも呼ばれる。次に、取得した画像内から特徴点を取得する(ステップS206)。特徴点とは画像中のコーナー部分など、画像内の特徴的な部分のことを言う。特徴点は、SIFT(Scale−Invariant Future Transform)やSURF(Speed−Up Robust Features)等のアルゴリズムを用いて取得することができる。なお、特徴点を取得するのにこれら以外のアルゴリズムを使っても良い。ステップS206において、位置推定部12は、特徴点取得部として機能する。
In the initialization process, the
取得した特徴点の個数が少ないと、後述するTwo−view Structure from Motion法による姿勢の計算ができない。そのため、位置推定部12は、特徴点の取得数が基準値(例えば10個)以上か否かを判定する(ステップS207)。特徴点の取得数が基準値未満だった場合(ステップS207;No)はステップS205に戻り、基準値以上の特徴点数が得られるまで、画像の取得と特徴点の取得とを繰り返す。なお、この時点ではまだ地図の情報は作成できていないが、例えば上述した典型的な例では、障害物センサ31を頼りとして、家の各部屋をくまなく移動し始めているため、この初期化処理で画像取得と特徴点取得とを繰り返していれば、移動しながら画像取得を繰り返すことになるので、様々な画像が取得でき、いずれは特徴点の数が多い画像を取得できることが期待できる。
If the number of acquired feature points is small, the posture cannot be calculated by the two-view structure from motion method described later. Therefore, the
特徴点の取得数が基準値以上だった場合は(ステップS207;Yes)、位置推定部12はフレームカウンタNをインクリメントする(ステップS208)。そして、フレームカウンタNが0かどうかを判定する(ステップS209)。フレームカウンタNが0なら(ステップS209;Yes)、画像をまだ一つしか取得していないということなので、2枚目の画像を取得するためにステップS205に戻る。なお、図5に示すフローチャートには記載していないが、1枚目の画像を取得した時の自機の位置と2枚目の画像を取得する時の自機の位置とがある程度離れていた方が、これ以降の処理で推定する姿勢の精度が向上する。そこで、ステップS209からステップS205に戻る際に、全体フローチャート(図4)のステップS107での駆動部42への動作指示により、オドメトリによる並進距離が所定の距離(例えば1m)以上となるまで待つ処理を追加しても良い。
If the number of feature points acquired is equal to or greater than the reference value (step S207; Yes), the
フレームカウンタNが0でないなら(ステップS209;No)、二つの画像を取得したということなので、位置推定部12は、これら二つの画像間で特徴点の対応を取得する(ステップS210)。ここで、この特徴点の対応について、補足説明する。実環境上の同一の点が、これら二つの画像それぞれの中に特徴点として存在する場合に、この二つの特徴点の組を特徴点の対応と呼ぶ。そして、このような特徴点の組を取得することを特徴点の対応の取得と呼び、取得できた特徴点の組の数を特徴点の対応数と呼ぶ。
If the frame counter N is not 0 (step S209; No), it means that two images have been acquired, so the
そして、特徴点の対応数が5未満であれば、後述する二つの画像間の相対姿勢の推定ができないため、位置推定部12は特徴点の対応数が5未満か否かを判定する(ステップS211)。特徴点の対応数が5点未満であれば(ステップS211;Yes)、初期画像を取得し直すために、ステップS204に戻る。特徴点の対応数が5点以上であれば(ステップS211;No)、位置推定部12は、Two−view Structure from Motion法を用いることにより、二つの画像間の相対姿勢(それぞれの画像を取得した位置の差分(並進ベクトルt)及び向きの差分(回転行列R))を計算する(ステップS212)。
If the number of corresponding feature points is less than 5, it is impossible to estimate the relative posture between two images, which will be described later. Therefore, the
この二つの画像間の相対姿勢の計算は、具体的には、対応する特徴点から基礎行列Eを求め、基礎行列Eを並進ベクトルtと回転行列Rとに分解することによって行う。なお、この計算で得られる並進ベクトルt(3次元空間内で移動することを想定すると、最初の画像を取得した位置を原点として、X,Y,Zの3要素を持つ)の各要素の値は実環境上での値とは異なる(Two−view Structure from Motion法では実環境上の値自体を得ることはできず、実環境と相似する空間上での値を得ることになる。)ため、これらをSLAM空間上での値とみなし、以下ではSLAM空間上での座標(SLAM座標)を用いて説明する。 Specifically, the calculation of the relative posture between the two images is performed by obtaining a basic matrix E from corresponding feature points and decomposing the basic matrix E into a translation vector t and a rotation matrix R. In addition, the value of each element of the translation vector t obtained by this calculation (having three elements of X, Y, and Z with the position where the first image is acquired as the origin, assuming movement in a three-dimensional space) Is different from the value in the real environment (the Two-view Structure from Motion method cannot obtain the value in the real environment itself, but obtains the value in a space similar to the real environment). These are regarded as values on the SLAM space, and will be described below using coordinates on the SLAM space (SLAM coordinates).
二つの画像間の相対姿勢(並進ベクトルt及び回転行列R)が求まると、その値は、最初の画像を基準(最初の画像を取得した位置をSLAM座標の原点、並進ベクトルは0ベクトル、回転行列は単位行列Iとする。)にした場合の、二枚目の画像の姿勢(二つ目の画像を取得した時の自機の位置(並進ベクトルt)及び向き(回転行列R))となる。ここで、二つの画像それぞれの姿勢(該画像(フレーム)撮影時の自機の位置(並進ベクトルt)及び向き(回転行列R)で、フレーム姿勢とも言う。)が求まっている場合、その二つの画像間で対応が取れている特徴点(対応特徴点)のSLAM座標での3次元位置を、以下の考え方に基づき、地図作成部11が求める(ステップS213)。この処理において、地図作成部11は、3次元位置取得部として機能する。
When the relative orientation (translation vector t and rotation matrix R) between the two images is obtained, the values are based on the first image (the position where the first image was acquired is the origin of the SLAM coordinates, the translation vector is the 0 vector, the rotation When the matrix is the unit matrix I), the orientation of the second image (position (translation vector t) and orientation (rotation matrix R) of the own image when the second image is acquired)) and Become. Here, when the postures of the two images (the position (translation vector t) and direction (rotation matrix R) of the own device at the time of photographing the image (frame) are also referred to as frame postures) are obtained. Based on the following concept, the
特徴点の画像中の座標(フレーム座標:既知)を(u,v)とし、その特徴点のSLAM座標での3次元位置(未知)を(X,Y,Z)とすると、これらを同次座標で表したときのこれらの関係は、透視投影行列Pを用いて下記の式(1)で表される。ここで、「〜」の記号は「非零の定数倍を除いて等しい」(つまり、等しいか又は定数(非零)倍になっている)ことを表し、「’」の記号は「転置」を表す。
(u v 1)’〜P(X Y Z 1)’…(1)
If the coordinates (frame coordinates: known) of the feature point in the image are (u, v) and the three-dimensional position (unknown) of the feature point in the SLAM coordinates is (X, Y, Z), these are homogeneous. These relationships when expressed in coordinates are expressed by the following formula (1) using the perspective projection matrix P. Here, the symbol “to” represents “equal except for a non-zero constant multiple” (that is, equal or is a constant (non-zero) multiple), and the symbol “′” represents “transpose”. Represents.
(U v 1) ′ to P (XY Y 1) ′ (1)
上記の式(1)において、Pは3×4の行列で、カメラの内部パラメータを示す3×3の行列Aと、その画像の姿勢(フレーム姿勢)を示す外部パラメータR及びtから以下の式(2)で表される。ここで、(R|t)は、回転行列Rの右に並進列ベクトルtを並べた行列を表す。
P=A(R|t)…(2)
In the above equation (1), P is a 3 × 4 matrix, and from the 3 × 3 matrix A indicating the internal parameters of the camera and the external parameters R and t indicating the posture (frame posture) of the image, the following equation It is represented by (2). Here, (R | t) represents a matrix in which the translation column vector t is arranged to the right of the rotation matrix R.
P = A (R | t) (2)
上記の式(2)において、R及びtは上述したようにそのフレーム姿勢として求められている。また、カメラの内部パラメータAは、焦点距離と撮像素子サイズにより決まるので、撮像部41を決めておけば定数となる。
In the above equation (2), R and t are obtained as the frame postures as described above. Further, since the internal parameter A of the camera is determined by the focal length and the image sensor size, it is a constant if the
二つの画像間で対応が取れている特徴点のうちの一つが、一つ目の画像のフレーム座標(u1,v1)と、二つ目の画像のフレーム座標(u2,v2)に写っているとすると、以下の式(3)及び式(4)ができる。ここで、Iは単位行列、0はゼロベクトル、(L|r)は、行列Lの右に列ベクトルrを並べた行列を表す。
(u1 v1 1)’〜A(I|0)(X Y Z 1)’…(3)
(u2 v2 1)’〜A(R|t)(X Y Z 1)’…(4)
One of the feature points corresponding to the two images is the frame coordinates (u 1 , v 1 ) of the first image and the frame coordinates (u 2 , v 2 ) of the second image. The following equations (3) and (4) can be obtained. Here, I is a unit matrix, 0 is a zero vector, and (L | r) is a matrix in which a column vector r is arranged to the right of the matrix L.
(U 1 v 1 1) ′ to A (I | 0) (XY Z 1) ′ (3)
(U 2 v 2 1) ′ to A (R | t) (XY Z 1) ′ (4)
上記の式(3)及び式(4)において、u1,v1,u2,v2それぞれについての式ができるため、式は4つできるが、未知数はX,Y,Zの3つなので、X,Y,Zを求めることができ、これがその特徴点のSLAM座標における3次元位置となる。なお、式の個数の方が未知数の個数よりも多いため、例えばu1,v1,u2で求めたX,Y,Zとu1,v1,v2で求めたX,Y,Zとが異なる場合がありうる。このような場合は、過剰条件の連立一次方程式となり、一般には解が存在しないが、地図作成部11は、最小二乗法を用いて、最も確からしいX,Y,Zを求める。
In the above formulas (3) and (4), because there are formulas for u 1 , v 1 , u 2 , and v 2, there are four formulas, but there are three unknowns, X, Y, and Z. , X, Y, Z can be obtained, and this is the three-dimensional position of the feature point in the SLAM coordinates. Since the number of equations is larger than the number of unknowns, for example, X, Y, Z obtained from u 1 , v 1 , u 2 and X, Y, Z obtained from u 1 , v 1 , v 2 are used. May be different. In such a case, it becomes a simultaneous linear equation with an excess condition, and there is generally no solution, but the
特徴点のSLAM座標における3次元位置(X,Y,Z)が求まったら、それをMap点として、地図作成部11がMap点データベース(Map点DB(Database)とも言い、地図記憶部22に格納される)に登録する(ステップS214)。Map点データベースに登録する要素としては、少なくとも、「特徴点のSLAM座標における3次元位置であるX,Y,Z」と、「その特徴点の特徴量」(例えばSIFT等で得た特徴量)が必要である。また、「タイムスタンプ」(後述するキーフレームカウンタNKF(現在のキーフレーム番号を表す変数)のMap点データベースへの登録時点での値等)をMap点データベースへの登録要素に追加しておくと、Map点データベースを編集(過去の状態に戻す等)する際に便利である。
When the three-dimensional position (X, Y, Z) of the feature point in the SLAM coordinate is obtained, it is used as a Map point, and the
そして、地図作成部11は、二つの画像間で対応が取れている特徴点(対応特徴点)の全てをMap点データベースに登録したかを判定する(ステップS215)。まだ全てを登録していないなら(ステップS215;No)、ステップS213に戻り、全て登録したら(ステップS215;Yes)、ステップS216に進む。
Then, the
次に位置推定部12は、NKF(キーフレーム(後に続くスレッドでの処理対象となる画像を指す)のカウンタを表す変数)を0に初期化し(ステップS216)、二つ目の画像をキーフレームとしてフレームデータベース(フレームDB(Database)とも言い、画像記憶部21に格納される)に登録する(ステップS217)。
Next, the
フレームデータベースに登録する要素は、「キーフレーム番号」(登録時点でのキーフレームカウンタNKFの値)、「姿勢」(その画像撮影時の自機のSLAM座標内での位置(並進ベクトルt)及び向き(回転行列R))、「抽出した全ての特徴点」、「全ての特徴点の中でMap点として3次元位置が既知の点」、「キーフレーム自体の特徴」、である。 Elements to be registered in the frame database are “key frame number” (value of the key frame counter NKF at the time of registration), “posture” (position (translation vector t) in the SLAM coordinates of the own device at the time of image capture) Direction (rotation matrix R)), “all extracted feature points”, “a point where a three-dimensional position is known as a Map point among all feature points”, and “a feature of the key frame itself”.
上記中、「キーフレーム自体の特徴」とは、キーフレーム間の画像類似度を求める処理を効率化するためのデータであり、通常は画像中の特徴点のヒストグラム等を用いるのが良いが、画像自体を「キーフレーム自体の特徴」としても良い。 Among the above, “feature of the key frame itself” is data for improving the processing for obtaining the image similarity between the key frames, and it is usually preferable to use a histogram of feature points in the image, The image itself may be a “characteristic of the key frame itself”.
次に、位置推定部12は、キーフレームが生成されたことを地図作成スレッドに知らせるために、地図作成スレッドのキーフレームキュー(キュー(Queue)は、先入れ先出しのデータ構造になっている)に、キーフレームカウンタNKFをセットする(ステップS218)。
Next, in order to notify the map creation thread that the key frame has been generated, the
以上で自機位置推定スレッドの初期化処理が完了したので、位置推定部12は、初期化済フラグに1をセットする(ステップS219)。
Since the initialization process of the own position estimation thread is completed as described above, the
そして、位置推定部12は、SLAM座標と実環境座標とのスケール対応を得るために、オドメトリによる並進距離(実環境での座標で求められる)を、上記の処理で推定したSLAM座標での並進距離sdで除することによって、スケールScを求める(ステップS220)。なお、実際には、スケールScは、撮像範囲、撮像画素数等によって定まる値なので、撮像部41を決めておけば定数となる。そこで、予め実環境での並進距離とSLAM座標での並進距離との比を実験的に求め、それをスケールScとして予め設定しておいてもよい。スケールScを予め設定しておくことにより、駆動部42がオドメトリの機能を有していなくても、後述するようにビジュアルオドメトリをオドメトリ代わりに利用できるようになる。
Then, in order to obtain the scale correspondence between the SLAM coordinates and the real environment coordinates, the
そして、制御部10は、後述する誤差判定スレッドで用いられる変数pa,pb,pc,pd(これらは天井推定値記憶部23に記憶されている)をクリアする(ステップS221)。そして、ステップS202及びステップS203を経由して、初期化済の場合の処理である図6に示すステップS231へ進む。
Then, the
では、図6を参照して、初期化済の場合の処理を説明する。この処理が、自機位置推定スレッドの通常時の処理であり、位置推定部12が、逐次、現在の自機の位置及び向き(SLAM座標内での並進ベクトルtと回転行列R)を推定する処理である。
Now, with reference to FIG. 6, the process in the case of initialization is described. This process is a normal process of the own machine position estimation thread, and the
位置推定部12は、床面センサ32により自律移動装置100が床面に接していることが検知されていれば撮像部41で画像を取得する(ステップS231)。ステップS231は、撮影ステップとも呼ばれる。床面センサ32により床面に接していない(持ち上げられている)ことが検知されている間は、床面に接したことが検知されるまで位置推定部12はステップS231以降の処理を行わずに待ち続ける。床面に接している場合は、その後、位置推定部12は、フレームカウンタNをインクリメントし(ステップS232)、撮影した画像に含まれている特徴点を取得する(ステップS233)。ステップS233において、位置推定部12は特徴点取得部として機能する。次に、フレームデータベースに登録されている以前のキーフレーム(例えばキーフレーム番号がNKFである画像)の情報から、その画像の情報に含まれている特徴点のうち、3次元位置が既知である(Map点データベースに登録されているMap点になっている)特徴点を取得し、今撮影した画像との間で対応が取れる特徴点(対応特徴点)を抽出する(ステップS234)。
If it is detected by the
そして、位置推定部12は、対応特徴点の個数が所定の個数(例えば10。以下「基準対応特徴点数」という。)未満かどうかを判定し(ステップS235)、基準対応特徴点数未満の場合(ステップS235;Yes)はSLAM法で推定する姿勢の精度が悪くなるので、位置の推定は行わずにステップS231での画像の取得に戻る。ここで、すぐにステップS231に戻るのではなく、ステップS234に戻って、フレームデータベースに登録されているキーフレームの中から対応特徴点の個数が基準対応特徴点数以上のものを検索するようにしても良い。この場合は、フレームデータベースに登録されているキーフレームの中に対応特徴点の個数が基準対応特徴点数以上のものが見つからなかった場合にステップS231に戻る。
Then, the
位置推定部12は、基準対応特徴点数以上の対応特徴点が抽出できたら(ステップS235;No)、対応特徴点それぞれの3次元位置(Xi,Yi,Zi)をMap点データベースから取得する(ステップS236)。今撮影した画像に含まれている対応特徴点のフレーム座標を(ui,vi)とし、その対応特徴点の3次元位置を(Xi,Yi,Zi)とする(iは1から対応特徴点数までの値を取る)と、各対応特徴点の3次元位置(Xi,Yi,Zi)を以下の式(5)によってフレーム座標系に投影した値(uxi,vxi)とフレーム座標(ui,vi)とは理想的には一致するはずである。
(uxi vxi 1)’〜A(R|t)(Xi Yi Zi 1)’…(5)
When the
(Ux i vx i 1) ′ to A (R | t) (X i Y i Z i 1) ′ (5)
実際には(Xi,Yi,Zi)にも(ui,vi)にも誤差が含まれているため、(uxi,vxi)と(ui,vi)とが一致することはめったにない。そして、未知数はRとt(3次元空間ではそれぞれ3次元となり、3+3=6が未知数の個数である)だけなのに、数式は対応特徴点の個数の2倍存在する(対応特徴点一つに対して、フレーム座標のu,vそれぞれに対する式が存在するため)ことになるため、過剰条件の連立一次方程式になり、上述したように最小二乗法で求めることになる。具体的には、位置推定部12は、以下の式(6)のコスト関数E1を最小化する姿勢(並進ベクトルt及び回転行列R)を求めることになる。これがSLAM法で求めたSLAM座標での自機の姿勢(並進ベクトルt及び回転行列Rで表される自機の位置及び向き)となる。このようにして、位置推定部12は自機の姿勢を推定する(ステップS237)。
SLAM座標での現在の自機の姿勢(並進ベクトルt及び回転行列R)が求められたので、位置推定部12は、これにスケールScを乗算することで、VO(ビジュアルオドメトリ)を求める(ステップS238)。VOは実環境での自機の位置及び向きとして利用できる。
Since the current attitude (translation vector t and rotation matrix R) in the SLAM coordinates has been obtained, the
次に、位置推定部12は、フレームDBに登録されている直前のキーフレーム(キーフレーム番号がNKFである画像)を撮影した時の自機の位置から所定の距離(例えば1m。以下「基準並進距離」という。)以上移動しているかを判定する(ステップS239)。なお、基準並進距離と比較する自機の移動距離は、直前のキーフレームから現フレームまでの並進距離(両フレームの並進ベクトルの差のベクトルの絶対値(要素の二乗和の平方根))をオドメトリから取得しても良いし、上述したVO(ビジュアルオドメトリ)から求めても良い。フレームDBに登録する内容は上述したように、「キーフレーム番号」、「姿勢」、「抽出した全ての特徴点」、「全ての特徴点の中でMap点として3次元位置が既知の点」、「キーフレーム自体の特徴」、である。
Next, the
基準並進距離未満しか移動していないなら(ステップS239;No)、図5のステップS202に戻る。基準並進距離以上移動しているなら(ステップS239;Yes)キーフレームカウンタNKFをインクリメントしてから(ステップS240)、現フレームをキーフレームとしてフレームDBに登録する(ステップS241)。 If it has moved less than the reference translation distance (step S239; No), the process returns to step S202 of FIG. If it has moved beyond the reference translational distance (step S239; Yes), after incrementing the key frame counter NKF (step S240), the current frame is registered as a key frame in the frame DB (step S241).
そして、位置推定部12は、新たなキーフレームが発生したことを地図作成スレッドに知らせるために、地図作成スレッドのキーフレームキューにキーフレームカウンタNKFをセットする(ステップS242)。そして、図5のステップS202に戻る。なお、キーフレームカウンタNKF、スケールSc、Map点DB、フレームDBはスレッドをまたいで値を参照することができるように記憶部20に記憶されている。
Then, the
次に、自律移動制御処理の全体フローチャート(図4)のステップS102で起動される地図作成スレッドについて、図7を参照して説明する。このスレッドは地図作成部11が、キーフレーム中の対応特徴点の3次元位置を計算して、地図の情報(Map点DB)を作成している。
Next, the map creation thread activated in step S102 of the overall flowchart of the autonomous movement control process (FIG. 4) will be described with reference to FIG. In this thread, the
まず、地図作成部11は、自律移動制御処理による動作を終了するか否かを判定する(ステップS301)。動作終了なら(ステップS301;Yes)終了し、動作終了でないなら(ステップS301;No)、キーフレームキューが空かどうかを判定する(ステップS302)。キーフレームキューが空だったら(ステップS302;Yes)ステップS301に戻り、空でなければ(ステップS302;No)、キーフレームキューからデータを取り出してMKF(地図作成スレッドで処理するキーフレームのキーフレーム番号を表す変数)にセットする(ステップS303)。地図作成部11は、MKFが0より大きいか判定し(ステップS304)、MKFが0である場合は(ステップS304;No)ステップS301に戻ってキーフレームキューにデータが入るのを待つ。MKFが1以上の場合は(ステップS304;Yes)、以下の処理に進む。
First, the
地図作成部11は、フレームDBを参照し、前キーフレーム(キーフレーム番号がMKF−1のキーフレーム)の特徴点と現キーフレーム(キーフレーム番号がMKFのキーフレーム)の特徴点とで対応が取れる特徴点(対応特徴点)を抽出する(ステップS305)。フレームDBにはそれぞれのキーフレームの姿勢(並進ベクトルtと回転行列R)も登録されているので、自機位置推定スレッドの初期化時の処理の時と同様の方法で対応特徴点の3次元位置を計算できる。地図作成部11は、3次元位置が計算できた対応特徴点の3次元位置をMap点としてMap点DBに登録する(ステップS306)。ステップS306は、地図作成ステップとも呼ばれる。地図作成部11は、フレームDBに対しても今回3次元位置を計算できた特徴点に対して3次元位置を登録する(ステップS307)。
The
なお、地図作成部11が抽出した対応特徴点がすでにMap点DBに登録済だった場合は、3次元位置計算をスキップして次の対応特徴点(Map点DBに未登録のもの)に対する処理に進んでも良いし、改めて3次元位置計算を行って、Map点DBに登録済の3次元位置や、フレームDB中の対応特徴点に対する3次元位置を更新するようにしても良い。
If the corresponding feature point extracted by the
次に、地図作成部11は、キーフレームキューが空かどうかを判定する(ステップS308)。空であれば(ステップS308;Yes)、全キーフレームの姿勢と全Map点の3次元位置に対して、バンドルアジャストメント処理を行って、精度向上を図ってから(ステップS309)ステップS310に進む。キーフレームキューが空でなければ(ステップS308;No)ステップS310に進む。次に地図作成部11は、ループクロージングスレッドのキーフレームキューにMKFをセットして(ステップS310)、ステップS301に戻る。
Next, the
なお、バンドルアジャストメント処理とは、カメラ姿勢(キーフレーム姿勢)とMap点の3次元位置とを同時に推定する非線形最適化法であり、Map点をキーフレーム上に投影させたときに発生する誤差が最小になるような最適化を行うものである。 The bundle adjustment process is a non-linear optimization method that simultaneously estimates the camera posture (key frame posture) and the three-dimensional position of the Map point, and an error that occurs when the Map point is projected onto the key frame. The optimization is performed so that is minimized.
このバンドルアジャストメントの処理を行うことで、キーフレーム姿勢とMap点の3次元位置の精度向上を図ることができる。しかし、この処理を行わなくても精度向上が図れないだけで特別問題が発生するわけではない。したがって、他の処理がない状態のとき(例えば、キーフレームキューが空の状態)であっても、この処理を毎回行う必要はない。 By performing the bundle adjustment process, it is possible to improve the accuracy of the key frame posture and the three-dimensional position of the Map point. However, even if this process is not performed, the accuracy cannot be improved and a special problem does not occur. Therefore, even when there is no other process (for example, the key frame queue is empty), this process does not need to be performed every time.
また、バンドルアジャストメントの処理を行うと、キーフレーム上に投影させたときの誤差が所定の値よりも大きいMap点が見つかることがある。このような誤差の大きなMap点については、SLAM推定に悪影響を及ぼすため、Map点DB及びフレームDBから削除したり、誤差の大きな注意を要するMap点であることを識別するためのフラグを立てておいたりしても良い。なお、バンドルアジャストメントの処理は本実施形態においてはオプション的な扱いになるため、ここでは処理の詳細については省略する。 Further, when bundle adjustment processing is performed, a Map point may be found in which an error when projected onto a key frame is larger than a predetermined value. Such a Map point with a large error has an adverse effect on SLAM estimation. Therefore, a flag for identifying the Map point that requires a large error and is deleted from the Map point DB and the frame DB is set. You can put it. Note that the bundle adjustment process is treated as an option in the present embodiment, and the details of the process are omitted here.
次に、自律移動制御処理の全体フローチャート(図4)のステップS103で起動されるループクロージングスレッドについて、図8を参照して説明する。このスレッドでは制御部10は、ループクロージング処理ができるかどうかをチェックし続け、できる場合にはループクロージング処理を行っている。なお、ループクロージング処理とは、以前来たことのある同じ場所に戻ってきたことを認識した場合に、以前この同じ場所にいた時の姿勢の値と現在の姿勢の値とのずれを用いて、以前来た時から今までの軌跡中のキーフレームや、関連するMap点の3次元位置を修正することを言う。
Next, the loop closing thread activated in step S103 in the overall flowchart of the autonomous movement control process (FIG. 4) will be described with reference to FIG. In this thread, the
まず、制御部10は、自律移動制御処理による動作を終了するか否かを判定する(ステップS401)。動作終了なら(ステップS401;Yes)終了する。動作終了でないなら(ステップS401;No)キーフレームキューが空かどうかを判定する(ステップS402)。キーフレームキューが空なら(ステップS402;Yes)ステップS401に戻り、キーフレームキューが空でないなら(ステップS402;No)、キーフレームキューからデータを取り出してLKF(ループクロージングスレッドで処理するキーフレームのキーフレーム番号を表す変数)にセットする(ステップS403)。次に制御部10は、LKFが1より大きいかを判定する(ステップS404)。LKFが0又は1である場合(ステップS404;No)はステップS401に戻ってキーフレームキューにデータが入るのを待つ。そして、LKFが2以上の場合(ステップS404;Yes)は、以下の処理を行う。
First, the
制御部10は、フレームDBを参照し、現キーフレーム(キーフレーム番号がLKFのキーフレーム)と「キーフレーム自体の特徴」の類似度が所定の類似度(例えば0.9。以下「基準画像類似度」という。)以上になるキーフレームをフレームDBから検索する(ステップS405)。ここで、この類似度は、画像(キーフレーム)の特徴を特徴ベクトルで表している場合は、二つの画像の特徴ベクトルの内積の絶対値を1に正規化したものや、二つの画像の特徴ベクトルの絶対値(要素の二乗和の平方根)を1に正規化したもの同士の内積を、その二つの画像の類似度とすることができる。また、二つの画像の特徴ベクトル(絶対値を1に正規化したもの)の距離(各要素の差の二乗和の平方根)の逆数を類似度としても良い。
The
制御部10は、「キーフレーム自体の特徴」の類似度が基準画像類似度以上になるキーフレームが発見されたかどうかを判定し(ステップS406)、発見されなければ(ステップS406;No)ステップS408へ行き、発見されたら(ステップS406;Yes)、発見されたキーフレームから現キーフレームまでの軌跡中のキーフレームの姿勢と、軌跡中のキーフレームに含まれるMap点の3次元位置を修正する(ステップS407)。例えば、制御部10は、現キーフレームの姿勢を発見されたキーフレームの姿勢と同じ姿勢として修正する。そして、発見されたキーフレームの姿勢と現キーフレームの姿勢との差分を用いて、発見されたキーフレームから現キーフレームまでの軌跡中の各キーフレームの姿勢に線形的に補正を加える。さらにこれらの各キーフレームに含まれるMap点の3次元位置についても各キーフレームの姿勢の補正量に応じて修正する。
The
次に制御部10は、誤差判定スレッドのキーフレームキューにLKFをセットしてステップS401に戻る(ステップS408)。
Next, the
次に、自律移動制御処理の全体フローチャート(図4)のステップS104で起動される誤差判定スレッドについて説明する。この誤差判定スレッドは、撮像部41が取得する画像には天井の一部が含まれていることが多いということを前提として、撮像部41が取得した画像中に天井付近に存在する特徴点が含まれていない状態が続くようであれば、判定部14が地図の情報に含まれている誤差が大きい(地図の情報に誤差が基準以上多く含まれている)と判定する。そして、判定部14が地図の情報に含まれている誤差が大きい(地図の情報に誤差が基準以上多く含まれている)と判定したら、地図編集部15が地図の情報を消去する処理を行う。具体的には、天井推定部13が3次元ハフ変換により天井平面を推定し、判定部14が該天井平面との距離が基準天井距離ncd(例えば10cm)以下のMap点の個数Kが基準個数(例えば2個)未満なら、地図の情報に含まれている誤差が大きい(地図の情報に誤差が基準以上多く含まれている)と判定する。
Next, the error determination thread activated in step S104 of the overall flowchart of the autonomous movement control process (FIG. 4) will be described. This error determination thread assumes that the image acquired by the
通常部屋の中は、床にはテーブル、椅子等の様々な物が置いてあることが多いが、天井には照明以外は特に何も存在しないことが多い。したがって、撮像部41が取得する画像に含まれる特徴点のうち、天井の平面上に存在する特徴点は安定的に取得できることが想定できる。誤差判定スレッドはこの想定を前提として、地図の情報に含まれている誤差が大きいか否か(地図の情報に誤差が基準以上多く含まれているか否か)を判定している。
Usually, various things such as tables and chairs are often placed on the floor in the room, but nothing in particular exists on the ceiling except lighting. Therefore, it can be assumed that among the feature points included in the image acquired by the
では、図9を参照して、誤差判定スレッドの処理を説明する。まず、制御部10が、自律移動制御処理による動作を終了するか否かどうかを判定し(ステップS501)、動作終了なら(ステップS501;Yes)終了し、動作終了でないなら(ステップS501;No)、誤差判定スレッドのキーフレームキューが空か否かを判定する(ステップS502)。キーフレームキューが空なら(ステップS502;Yes)ステップS501に戻って、キーフレームキューにデータが入るのを待つ。
Now, with reference to FIG. 9, the processing of the error determination thread will be described. First, the
キーフレームキューが空でなければ(ステップS502;No)、制御部10はキーフレームキューからデータを取り出してIKF(誤差判定スレッドで処理するキーフレームのキーフレーム番号を表す変数)にセットする(ステップS503)。次に、制御部10は、天井推定値記憶部23に記憶されている変数pa,pb,pc,pdが全て0であるか否かを判定する(ステップS504)。変数pa,pb,pc,pdは、後述するように、天井推定部13が推定した天井平面を表す方程式の係数の値がセットされるが、上述したように、図5のステップS221で初期化され、全て0にクリアされている。したがって、変数pa,pb,pc,pdが全て0か否かにより、天井推定部13による天井平面の推定がまだ行われていないか否かを判定できる。
If the key frame queue is not empty (step S502; No), the
変数pa,pb,pc,pdが全て0であるなら(ステップS504;Yes)、天井推定部13は、現キーフレーム(キーフレーム番号がIKFのキーフレーム)の天井方向に存在するMap点を用いて、3次元ハフ変換により、天井平面を推定する(ステップS505)。自律移動装置100は、図5に示す自機位置推定スレッドの初期化処理で床面を水平に移動してSLAM座標の初期化をしているので、SLAM座標に基づき天井方向に存在するMap点をMap点DBから抽出することができる。簡単には、画像中の上半分の領域に含まれるMap点を「天井方向に存在するMap点」としてもよい。
If the variables pa, pb, pc, and pd are all 0 (step S504; Yes), the
ステップS505における天井平面の推定は、天井方向に存在するMap点群をMap点DBから取得し、通常の(2次元の)ハフ変換の拡張である3次元ハフ変換を用いることによって行う。そこで、3次元ハフ変換について説明する。実空間上の点(Xp,Yp,Zp)を含む平面Sは、図10Aに示すように、原点からの距離ρsと2つの角度(方位角θs及び仰角φs)で表すことができる。この時、これらの関係は以下の式で表すことができる。
Xp=ρs・cosφs・cosθs …(7)
Yp=ρs・cosφs・sinθs …(8)
Zp=ρs・sinφs …(9)
X p = ρ s · cos φ s · cos θ s (7)
Y p = ρ s · cos φ s · sin θ s (8)
Z p = ρ s · sinφ s (9)
すると、XYZ座標系の実空間における平面S上の任意の点p(Xp,Yp,Zp)は、図10Bに示すようにρφθ座標系のハフ空間における1つの点s(ρs,φs,θs)として表される。つまり、実空間における平面S上の任意の点p(Xp,Yp,Zp)は、上記3次元ハフ変換を行うことによって、ハフ空間上の1つの点s(ρs,φs,θs)に変換される。 Then, an arbitrary point p (X p , Y p , Z p ) on the plane S in the real space of the XYZ coordinate system becomes one point s (ρ s ,) in the Hough space of the ρφθ coordinate system as shown in FIG. 10B. φ s , θ s ). That is, an arbitrary point p (X p , Y p , Z p ) on the plane S in the real space is converted into one point s (ρ s , φ s , θ s ).
したがって、各Map点の(X,Y,Z)座標を3次元ハフ変換により(ρ,φ,θ)座標に変換すると、実空間上の平面に対応するハフ空間上の点に、より多くのMap点が変換されることになる。そこで、ρφθ空間を格子状の領域(グリッド)に分割し、各Map点の(X,Y,Z)座標を3次元ハフ変換により(ρ,φ,θ)座標に変換した場合に、最も多くのMap点が変換されたグリッドに着目し、このグリッドを最多変換グリッドと呼ぶことにする。するとその最多変換グリッドに対応するハフ空間上の座標(例えば最多変換グリッドの中心点のρφθ座標)に対応する実空間上の平面を天井平面と推定することができる。ステップS505では、天井推定部13は、この最多変換グリッドに変換されたMap点がいくつあるかを求める。このMap点の個数は、その最多変換グリッドに変換された平面をサポートする点の個数ということになる。
Therefore, when the (X, Y, Z) coordinates of each Map point are converted into (ρ, φ, θ) coordinates by three-dimensional Hough transform, more points are added to the points on the Hough space corresponding to the plane in the real space. Map points will be converted. Therefore, when the ρφθ space is divided into grid-like regions (grids), the (X, Y, Z) coordinates of each Map point are converted to (ρ, φ, θ) coordinates by three-dimensional Hough transform, and the most Focusing on the grid in which the Map points are converted, this grid is called the most frequent conversion grid. Then, the plane in the real space corresponding to the coordinates on the Hough space corresponding to the most frequent transformation grid (for example, the ρφθ coordinate of the center point of the most frequent transformation grid) can be estimated as the ceiling plane. In step S505, the
そして、天井推定部13は、最多変換グリッドに変換されたMap点の個数(平面をサポートする点の個数)が基準変換個数(例えば10個)以下か否かを判定する(ステップS506)。もし、最多変換グリッドに変換されたMap点が基準変換個数以下なら(ステップS506;No)、天井平面の推定を行うための情報が少ないため、推定失敗として、ステップS501に戻る。
Then, the
最多変換グリッドに変換されたMap点が基準変換個数(例えば10個)よりも多ければ(ステップS506;Yes)、天井推定部13は、平面方程式の係数を推定し、推定した係数を変数ca,cb,cc,cdにセットする(ステップS507)。ステップS507は、天井推定ステップとも呼ばれる。この平面方程式の係数の推定について説明する。まず、実空間上の平面は、以下の平面方程式で表すことができる。
A×x+B×y+C×z+D=0 …(13)
式(13)で、A,B,C,Dが平面方程式の係数である。そして、上記最多変換グリッドに変換された各Map点のXYZ座標を式(13)に代入すると、A,B,C,Dを未知数とする方程式になる。未知数はA,B,C,Dの4個であるが、式(13)に代入するMap点の個数は10個よりも多いため、平面方程式の係数A,B,C,Dは、過剰条件の連立一次方程式として、最小二乗法で解くことができる。
If the number of Map points converted to the most frequent conversion grid is larger than the reference conversion number (for example, 10) (step S506; Yes), the
A × x + B × y + C × z + D = 0 (13)
In Expression (13), A, B, C, and D are coefficients of the plane equation. Then, if the XYZ coordinates of each Map point converted to the most frequent conversion grid are substituted into Expression (13), an equation having A, B, C, and D as unknowns is obtained. There are four unknowns, A, B, C, and D, but since the number of Map points to be substituted into Equation (13) is more than 10, the coefficients A, B, C, and D of the plane equation are over-conditions. Can be solved by the least squares method.
そして、求められたA,B,C,Dを、それぞれ変数ca,cb,cc,cdにセットする。これらの変数は、平面方程式の係数を一時的に保存する変数である。この時、推定した天井平面の法線ベクトルは(ca,cb,cc)で表されるが、この法線ベクトルの傾きは、理想的には床面(XY平面)と垂直のはずである(なお、床面とXY平面が異なる場合には、座標を変換して床面がXY平面になるように座標を事前に変換しておく。)。つまり、ccの値は、caに比べて十分大きく、かつ、cbと比べても十分大きい値になっているはずである(例えば、cc>10×caかつcc>10×cb)。そこで、天井推定部13は、法線ベクトル(ca,cb,cc)の傾きが異常な値(床面と垂直に近い値になっていない)であるか否かを判定する(ステップS508)。法線ベクトルの傾きが異常なら(ステップS508;Yes)、ステップS501に戻る。
Then, the obtained A, B, C, and D are set in variables ca, cb, cc, and cd, respectively. These variables are variables that temporarily store the coefficients of the plane equation. At this time, the estimated normal vector of the ceiling plane is represented by (ca, cb, cc), and the inclination of the normal vector should ideally be perpendicular to the floor surface (XY plane) ( When the floor surface and the XY plane are different, the coordinates are converted in advance so that the floor surface becomes the XY plane.) That is, the value of cc should be sufficiently larger than ca and sufficiently larger than cb (for example, cc> 10 × ca and cc> 10 × cb). Therefore, the
法線ベクトルの傾きが異常でないなら(ステップS508;No)、変数ca,cb,cc,cdをそれぞれ、変数pa,pb,pc,pdにセットする(ステップS509)。そして、誤差判定用のカウンタ変数ECTをクリアし(ステップS510)、ステップS501に戻る。 If the inclination of the normal vector is not abnormal (step S508; No), the variables ca, cb, cc, cd are set to the variables pa, pb, pc, pd, respectively (step S509). Then, the counter variable ECT for error determination is cleared (step S510), and the process returns to step S501.
一方、上記ステップS504で、変数pa,pb,pc,pdの少なくともいずれかが0でないなら(ステップS504;No)、天井平面の推定は既に行われているということなので、天井推定部13は、現キーフレーム(キーフレーム番号がIKFのキーフレーム)の天井方向に存在するMap点のうち、係数pa,pb,pc,pdで表される平面方程式との距離が基準天井距離ncd(例えば10cm)以下のMap点の個数を変数Kにセットする(ステップS511)。 On the other hand, if at least one of the variables pa, pb, pc, pd is not 0 in step S504 (step S504; No), the ceiling plane is already estimated. Among the Map points existing in the ceiling direction of the current key frame (key frame number is IKF), the distance from the plane equation represented by the coefficients pa, pb, pc, pd is the reference ceiling distance ncd (for example, 10 cm) The number of the following Map points is set in the variable K (step S511).
そして、判定部14は、変数Kの値が基準個数(例えば2個)未満か否かを判定する(ステップS512)。ステップS512は、判定ステップとも呼ばれる。変数Kの値が基準個数以上なら(ステップS512;No)、ステップS510へ進む。変数Kの値が基準個数未満なら(ステップS512;Yes)、誤差判定用のカウンタ変数ECTをインクリメントする(ステップS513)。
Then, the
そして、判定部14は、カウンタ変数ECTが基準カウンタ値(例えば5)以下か否かを判定する(ステップS514)。カウンタ変数ECTが基準カウンタ値以下なら(ステップS514;No)、ステップS501に戻る。
Then, the
カウンタ変数ECTが基準カウンタ値よりも大きければ(ステップS514;Yes)、作成した地図の情報(Map点DBの情報や、フレームDBの情報)に誤差が基準以上多く含まれているということなので、地図編集部15は初期化済フラグ、Map点DB、フレームDB、各スレッドのキーフレームキューを全てクリアする(ステップS515)。ステップS515において、地図編集部15は、判定部14が判定した結果に応じて所定の処理を行う判定結果処理部として機能する。また、ステップS515は、判定結果処理ステップとも呼ばれる。そして制御部10は、ステップS501に戻って最初からやり直す。
If the counter variable ECT is larger than the reference counter value (step S514; Yes), the generated map information (Map point DB information and frame DB information) includes more errors than the reference. The
以上説明した誤差判定スレッドの処理により、地図の情報に誤差が基準以上多く含まれる場合には、初期化済フラグ、Map点DB、フレームDB、各スレッドのキーフレームキューが全てクリアされるので、全てのスレッドが最初からやり直されることになる。このため、作成した地図に誤差が基準以上多く含まれた状態で自律移動装置100が動き続けてしまうことを防ぐことができる。
As a result of the error determination thread processing described above, if the map information includes more errors than the standard, the initialized flag, the Map point DB, the frame DB, and the key frame queue of each thread are all cleared. All threads will be redone from the beginning. For this reason, it is possible to prevent the autonomous
煩雑になるため図9には示していないが、ステップS508で天井推定部13が推定した天井平面の放線ベクトルの傾きが異常であると判定した場合に、すぐにステップS501に戻るのではなく、傾き異常カウンタ変数LACをインクリメントするようにし、このカウンタ変数の値が規定回数(例えば10回)以上になったら、やはり地図の情報に誤差が基準以上多く含まれているとして、ステップS515の処理に進むようにしても良い。
Although not shown in FIG. 9 for the sake of complexity, when it is determined in step S508 that the inclination of the normal vector of the ceiling plane estimated by the
なお、ステップS512で変数Kの値が基準個数以上(ステップS512;No)なら、その時点における地図の情報にはまだそれほど誤差が含まれていなかった可能性もある。そこで、ステップS512の判定がNoだった場合は、地図編集部15がその時点の地図の情報(Map点DB)を「確からしい地図」として地図保存部(図示せず)に保存してからステップS510に進み、ステップS515では地図編集部15は初期化済フラグ、フレームDB、各スレッドのキーフレームキューをクリアすることなく、Map点DBを保存してある以前のMap点DBの状態に戻すようにしても良い。このようにすることによって、過去に作成した地図の情報を有効活用できる。
If the value of the variable K is greater than or equal to the reference number in step S512 (step S512; No), there is a possibility that the map information at that time does not yet contain much error. Therefore, if the determination in step S512 is No, the
Map点DBを以前の状態に戻す方法としては、Map点DB全体の情報を「確からしい地図」として保存しておく方法以外に、Map点DBの各要素にタイムスタンプ(時刻情報を使っても良いが、キーフレームカウンタNKFの値を使うのが合理的である)の情報も一緒に格納しておく方法もある。この方法では、ステップS512での判定がNoだった場合(地図の情報に誤差が基準以上多く含まれていない場合)は、ステップS510に進む前に、地図編集部15がその時点のタイムスタンプ(時刻又はNKF)を時刻記憶部である変数TSにセットしておき(このTS自体もスタック状にして、次々に過去に戻れるようにしておいても良い)、ステップS515では地図編集部15は、Map点DB内の情報のうち、タイムスタンプがTSより後になっているものを消去し、TS以前の情報はそのまま残す処理を行う。このような処理を行えば、過去の確からしいMap点の情報は保存したまま、最近の(誤差が大きい(誤差を多く含む)と考えられる)Map点の情報のみを消去できる。
As a method of returning the Map point DB to the previous state, in addition to the method of saving the information of the entire Map point DB as a “probable map”, time stamps (even if time information is used) are used for each element of the Map point DB. There is also a method of storing the information of the key frame counter NKF (which is reasonable). In this method, when the determination in step S512 is No (when the map information does not include more errors than the reference), the
この考え方はフレームDBにも適用でき、地図編集部15は、ステップS515で、フレームDB内の情報のうち、キーフレーム番号(そのフレームが撮影された時刻を表す)が変数TS(地図の情報に誤差が基準以上多く含まれていない時点の時刻を表す)よりも大きいものを消去し、TS以前の情報はそのまま残すようにしても良い。このようにすることで、過去の確からしいキーフレームの情報は保存したまま、最近の(誤差が大きい(誤差を多く含む)と考えられる)キーフレームの情報のみを消去できる。
This concept can also be applied to the frame DB. In step S515, the
(実施形態2)
実施形態1では、現キーフレーム(キーフレーム番号がIKFのキーフレーム)の天井平面に特徴点が複数存在することを前提に誤差判定スレッドの処理を行っている。自律移動装置100が部屋の中を移動する際、図11に示すように、前方の壁までの距離が近くなるにつれて、撮像部41が取得する画像に含まれる天井部分の面積が小さくなる。したがって、前方の壁までの距離が前方距離基準値(例えば1m)を下回った状態では、撮像部41が取得する画像には十分な面積の天井部分が含まれておらず、判定部14は十分な精度で誤差判定をすることはできないと考えられる。そこで、前方の壁までの距離が前方距離基準値未満の場合には、誤差判定をしないようにした実施形態2について説明する。実施形態2は実施形態1と比較すると誤差判定スレッドの一部が異なるだけで、他は実施形態1同じである。そこで、誤差判定スレッドの変更部分について、図12を参照して説明する。
(Embodiment 2)
In the first embodiment, the error determination thread process is performed on the assumption that there are a plurality of feature points on the ceiling plane of the current key frame (key frame whose key frame number is IKF). When the autonomous
実施形態2に係る誤差判定スレッドにおける変更部分は、図9のステップS503とステップS504の間にステップS521の処理を追加しただけであり、それ以外は実施形態1と同じである。そこで、追加した処理について説明する。 The change part in the error determination thread according to the second embodiment is the same as that of the first embodiment except that the process of step S521 is added between step S503 and step S504 in FIG. Therefore, the added process will be described.
ステップS521では、判定部14は、現キーフレーム(キーフレーム番号がIKFのキーフレーム)を取得した時の自機位置と前方の壁との間の距離が前方距離基準値(例えば1m)未満か否かを判定する。判定部14は、該自機位置をフレームDBから取得できるので、前方の壁の位置を障害物センサ31によって取得できていれば、この距離を算出できる。まだ前方の壁の位置を取得できていない場合は、判定部14は、この距離を前方距離基準値以上とみなす。そして、この距離が前方距離基準値未満なら(ステップS521;Yes)、ステップS501に戻り、前方距離基準値以上なら(ステップS521;No)、ステップS504に進む。
In step S521, the
上記ステップS521が追加されることにより、実施形態2に係る自律移動装置100は、キーフレームに十分な面積の天井部分が含まれていると想定される時のみ、天井平面の推定及び誤差判定を行うようになる。したがって、キーフレームに十分な面積の天井部分が含まれないことに起因して誤差判定に失敗する可能性を小さくすることができる。
By adding the above step S521, the autonomous
(実施形態3)
なお、上記の実施形態1及び実施形態2では、ステップS511では、天井平面との距離が基準天井距離ncd以下のMap点の個数を変数Kにセットし、ステップS512で変数Kが基準個数未満か否かを判定することによって、判定部14は地図情報の誤差が大きいか否かを判定している。しかし、天井推定部13がキーフレーム番号IKFのキーフレーム中のMap点により天井平面(第1の天井平面)を推定し、この天井平面とステップS505で推定した天井平面(第2の天井平面)との距離が基準天井距離以下か否かを判定することによって地図情報の誤差が大きいか否かを判定部14が判定してもよい。このような判定を行う実施形態3について説明する。実施形態3は実施形態1と比較すると誤差判定スレッドの一部が異なるだけで、他は実施形態1同じである。そこで、誤差判定スレッドの変更部分について、図13を参照して説明する。
(Embodiment 3)
In the first and second embodiments described above, in step S511, the number of Map points whose distance from the ceiling plane is equal to or less than the reference ceiling distance ncd is set as the variable K. In step S512, whether the variable K is less than the reference number. By determining whether or not, the
実施形態3に係る誤差判定スレッドにおける変更部分は、図9のステップS511からステップS512までの処理を、図13のステップS531からステップS534までの処理に置き換えただけであり、それ以外は実施形態1と同じである。そこで、置き換えた部分について説明する。 The change part in the error determination thread according to the third embodiment is merely replacing the processing from step S511 to step S512 in FIG. 9 with the processing from step S531 to step S534 in FIG. Is the same. Therefore, the replaced part will be described.
ステップS531では、ステップS505と同様に、天井推定部13は、現キーフレーム(キーフレーム番号がIKFのキーフレーム)の天井方向に存在するMap点を用いて、3次元ハフ変換により、天井平面を推定する。具体的には、上述した最多変換グリッドに変換されたMap点がいくつあるかを求める。そして、ステップS532では、ステップS506と同様に、天井推定部13は、最多変換グリッドに変換されたMap点の個数(平面をサポートする点の個数)が基準変換個数(例えば10個)以下か否かを判定する。もし、最多変換グリッドに変換されたMap点が基準変換個数以下なら(ステップS532;No)、天井平面の推定を行うための情報が少ないため、誤差判定不可能として、ステップS501に戻る。
In step S531, as in step S505, the
最多変換グリッドに変換されたMap点が基準変換個数(例えば10個)よりも多ければ(ステップS532;Yes)、ステップS507と同様に、天井推定部13は、平面方程式の係数を推定する(ステップS533)。ステップS533は、天井推定ステップとも呼ばれる。そして、判定部14は、ステップS533で推定した係数で表される平面と、変数pa,pb,pc,pdで表される平面との距離が基準天井距離ncd以下か否かを判定する(ステップS534)。ステップS534は、判定ステップとも呼ばれる。
If the number of Map points converted to the most conversion grid is larger than the reference conversion number (for example, 10) (step S532; Yes), the
この平面同士の距離の判定においては、判定部14は、まず法線ベクトル同士を比較し、2つの法線ベクトルの角度の差が基準角度(例えば10度)未満であるか否かを判定する。基準角度以上の差があるなら、判定部14は、地図情報の誤差が基準以上多く含まれていると判定し、天井平面同士の距離が基準天井距離ncdより大きいとみなして(ステップS534;No)、ステップS513に進む。
In determining the distance between the planes, the
2つの法線ベクトルの角度の差が基準角度未満であるなら、それぞれの平面の原点からの距離の差を2つの平面の距離として、基準天井距離ncdと比較する。そして、各平面の原点からの距離の差が基準天井距離ncd以下なら(ステップS534;Yes)、ステップS510に進み、基準天井距離ncdよりも大きければ(ステップS534;No)、ステップS513に進む。 If the difference between the angles of the two normal vectors is less than the reference angle, the difference in distance from the origin of each plane is compared with the reference ceiling distance ncd as the distance between the two planes. If the difference in distance from the origin of each plane is equal to or less than the reference ceiling distance ncd (step S534; Yes), the process proceeds to step S510, and if greater than the reference ceiling distance ncd (step S534; No), the process proceeds to step S513.
上記実施形態3に係る誤差判定スレッドでは、キーフレーム中に含まれるMap点数が多ければ、実施形態1に係る誤差判定スレッドよりも精度の高い誤差判定を行うことができる。 The error determination thread according to the third embodiment can perform error determination with higher accuracy than the error determination thread according to the first embodiment if the number of Map points included in the key frame is large.
上記、各実施形態は任意に組み合わせることが可能である。例えば、実施形態2に係る誤差判定スレッドの処理(ステップS521)と、実施形態3に係る誤差判定スレッドの処理(ステップS531からステップS534)とを両方とも行うことが可能である。また、実施形態1に係る誤差判定スレッドの処理と、実施形態3に係る誤差判定スレッドの処理とを組み合わせてもよい。例えば、キーフレーム中に含まれるMap点の個数が所定の個数未満の場合は、実施形態1に係る誤差判定スレッドの処理を行い、所定の個数以上の場合は、実施形態3に係る誤差判定スレッドの処理を行うようにしてもよい。また、例えば、ステップS511からステップS512までの処理による判定と、ステップS531からステップS534までの処理による判定とを両方とも行って、両方の判定が「地図情報に誤差が多い」だった場合に、カウンタ変数ECTをインクリメントするようにしても良い。 The above embodiments can be arbitrarily combined. For example, it is possible to perform both the error determination thread processing (step S521) according to the second embodiment and the error determination thread processing (step S531 to step S534) according to the third embodiment. Further, the error determination thread processing according to the first embodiment may be combined with the error determination thread processing according to the third embodiment. For example, when the number of Map points included in the key frame is less than a predetermined number, the error determination thread according to the first embodiment is processed, and when the number is more than the predetermined number, the error determination thread according to the third embodiment is performed. You may make it perform the process of. Further, for example, when both the determination by the processing from step S511 to step S512 and the determination by the processing from step S531 to step S534 are performed, and both determinations are “there is a lot of error in the map information”, The counter variable ECT may be incremented.
なお、上記実施形態では、天井平面の推定を3次元ハフ変換によって行う例を示したが、他の方法(例えばRANSAC(RANdom SAmple Consensus)アルゴリズム等)を用いて天井平面の推定を行ってもよい。
また、上記実施形態では、天井推定部13が推定した天井平面を用いて、地図記憶部22に記憶されている地図の情報に誤差が基準以上多く含まれているか否かを判定部14が判定した結果を用いて、地図編集部15が地図記憶部22に記憶されている地図の情報の編集を行った。しかし、これに限ることなく、判定部14が地図記憶部22に記憶されている地図の情報に誤差が基準以上多く含まれていることを判定したら、制御部10(判定結果処理部)は、地図に誤差が多いことをユーザに知らせるため何らかの報知を行うようにしてもよいし、移動動作を一時的に停止するようにしてもよい。
In the above-described embodiment, an example in which the ceiling plane is estimated by three-dimensional Hough transform has been described. However, the ceiling plane may be estimated by using another method (for example, a RANSAC (RANdom Sample Consensus) algorithm). .
In the above embodiment, the
また、上記実施形態では、撮像部41が単眼である単眼SLAMの例を示したが、複数の撮像部を用いた複眼SLAMでも同様の構成を採ることができる。例えば自律移動装置100が二台の撮像部41を備えている場合は、移動しなくても同じ位置から二つの画像を取得できるため、自機位置推定スレッドの初期化処理においてはステップS205の一回の動作で二つの画像が取得できる。それら二つの画像それぞれに基準値以上の特徴点が含まれていれば(ステップS207で判定する)、ステップS208では「N=N+2」を行い、ステップS209は常に「No」に進むことになる。そして、二つの画像の一方を前フレーム、もう一方を現フレームとして処理を行う場合は、ステップS220でスケールScを計算する際の「オドメトリ並進距離」は、二つの撮像部間の距離を用いれば良い。これによりオドメトリからの取得する位置の精度が低い場合でも安定して初期化を行うことができる。
In the above-described embodiment, an example of a monocular SLAM in which the
ただし、二つの撮像部間の距離が、特徴点までの距離に対して小さい場合には充分な精度がとれない。(例えば、二つの撮像部間の距離が30mmで、5m先の特徴点までの距離を測定するときなど。)つまり、オドメトリから得られる並進距離の精度が高い場合は、むしろ単眼SLAMと同様の初期化処理(例えば複数ある撮像部のうちの第一撮像部のみを使った初期化処理)を行った方が高い精度が得られることもある。そこで、単眼SLAMと同様の初期化処理と、前段落で記載した二つの撮像部による初期化処理とを両方とも行って、それぞれで地図の情報(Map点DBやフレームDB)を作成し始め、途中で誤差判定スレッドと同様の処理を行ってそれぞれの誤差を判定し、その後は誤差の小さい方の地図の情報を採用するようにしても良い。 However, sufficient accuracy cannot be obtained when the distance between the two imaging units is smaller than the distance to the feature point. (For example, when the distance between two imaging units is 30 mm and the distance to a feature point 5 m ahead is measured, etc.) That is, when the accuracy of the translation distance obtained from odometry is high, it is rather similar to monocular SLAM. Higher accuracy may be obtained by performing initialization processing (for example, initialization processing using only the first imaging unit among a plurality of imaging units). Therefore, both the initialization process similar to the monocular SLAM and the initialization process by the two imaging units described in the previous paragraph are performed, and map information (Map point DB and frame DB) is started to be created respectively. A process similar to the error determination thread may be performed in the middle to determine each error, and thereafter, the map information with the smaller error may be adopted.
なお、上述の各実施形態では、基準並進距離の値を「例えば1m」と設定したが、自律移動装置自体の大きさや速度、自律移動する環境や移動範囲等に応じて、最適な基準並進距離は変わるので、基準並進距離の設定方法について補足しておく。 In each of the above-described embodiments, the value of the reference translation distance is set to “for example, 1 m”. However, the optimal reference translation distance is determined according to the size and speed of the autonomous mobile device itself, the environment in which the autonomous movement is performed, the movement range, and the like. Since it changes, it supplements about the setting method of reference | standard translation distance.
基準並進距離の設定方法として、キーフレーム上の全てのMap点(3次元位置が既知の特徴点)の3次元位置から自機位置までの距離を平均した値(=キーフレームで観察される全てのMap点までの奥行きの平均距離)と並進距離との比で設定しても良い(例えば、Map点までの奥行きの平均距離の5%の距離を基準並進距離とする等)。ここで用いる「全てのMap点」は制御部10がMap点DBを参照することで抽出できる。また、実環境上での並進距離の大きさに応じて、例えばテーブルの上を動くなら10cm、部屋を動き回るなら1m、屋外の広場等を動き回るなら10m等を基準並進距離に設定しても良いし、駆動部42の車輪の直径に応じた値(例えば車輪の直径の10倍)を基準並進距離に設定しても良い。
As a method for setting the reference translation distance, a value obtained by averaging the distances from the three-dimensional position of all Map points (feature points whose three-dimensional position is known) on the key frame to the own position (= all observed in the key frame) (The average distance of the depth to the Map point) and the translation distance may be set (for example, a distance of 5% of the average distance of the depth to the Map point is set as the reference translation distance). The “all Map points” used here can be extracted by the
基準並進距離として実環境上の距離で設定する場合は、SLAM座標での並進距離にはスケールScを乗算して実環境上の距離に変換してから比較を行う(この逆も同様であり、基準並進距離としてSLAM座標での距離を設定する場合は、実環境上の距離はスケールScで除算してSLAM座標での距離に変換してから比較を行う)。 When setting the reference translation distance as a distance in the actual environment, the translation distance in the SLAM coordinates is multiplied by the scale Sc and converted into the distance in the actual environment (the reverse is also true). When setting the distance in the SLAM coordinates as the reference translation distance, the distance in the real environment is divided by the scale Sc and converted into the distance in the SLAM coordinates for comparison).
なお、自律移動装置100の各機能は、通常のPC(Personal Computer)等のコンピュータによっても実施することができる。具体的には、上記実施形態では、自律移動装置100が行う自律移動制御処理のプログラムが、記憶部20のROMに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)及びMO(Magneto−Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
Each function of the autonomous
また、このコンピュータは自律移動装置100に内蔵してもよいし、自律移動装置100とは別個に存在してもよい。すなわち、図14に示すように、制御部50や記憶部60を外部のサーバー200に設けてもよい。クラウドコンピューティング技術により、自律移動装置100の制御部10は、撮像部41やセンサ部30等で取得したデータを通信部44を介して外部のサーバー200に送信し、演算処理を該サーバー200にさせた後に、サーバー200が行った演算結果を通信部44を介して受信し、駆動部42等を制御してもよい。図14では、サーバー200の制御部50が地図作成部11、位置推定部12、天井推定部13、判定部14及び地図編集部15を備える構成となっているが、サーバー200の制御部50と自律移動装置100の制御部10とのどちらかに各部が備わっていればよい。各部をサーバー200の制御部50が備えるか自律移動装置100の制御部10が備えるかについては、任意である。
また、情報を消去するとは、記憶媒体上から情報を物理的に無くしてもよいし、消去フラグを立てる等して論理的に消去したことにしてもよい。
The computer may be built in the autonomous
Further, erasing the information may be that the information is physically deleted from the storage medium, or may be logically erased by setting an erasure flag.
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。 As mentioned above, although preferable embodiment of this invention was described, this invention is not limited to the specific embodiment which concerns, This invention includes the invention described in the claim, and its equivalent range It is. Hereinafter, the invention described in the scope of claims of the present application will be appended.
(付記1)
撮像部と、
前記撮像部が撮影した複数の画像の情報を用いて地図の情報を作成する地図作成部と、
前記撮像部が撮影した複数の画像の情報を用いて天井平面を推定する天井推定部と、
前記天井推定部が推定した天井平面を用いて、前記地図の情報に誤差が基準以上多く含まれているか否かを判定する判定部と、
前記判定部が判定した結果に応じて所定の処理を行う判定結果処理部と、
を備える自律移動装置。
(Appendix 1)
An imaging unit;
A map creation unit that creates map information using information of a plurality of images captured by the imaging unit;
A ceiling estimation unit that estimates a ceiling plane using information of a plurality of images captured by the imaging unit;
Using the ceiling plane estimated by the ceiling estimation unit, a determination unit that determines whether the map information includes more errors than the reference,
A determination result processing unit that performs a predetermined process according to a result determined by the determination unit;
An autonomous mobile device comprising:
(付記2)
前記地図作成部が作成した地図の情報を記憶する地図記憶部を備え、
前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記判定結果処理部は前記地図記憶部に記憶されている地図の情報を編集する、
付記1に記載の自律移動装置。
(Appendix 2)
A map storage unit for storing information of the map created by the map creation unit;
When the determination unit determines that the map information stored in the map storage unit includes more errors than the reference, the determination result processing unit uses the map information stored in the map storage unit. To edit,
The autonomous mobile device according to
(付記3)
前記判定結果処理部は、前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記地図記憶部に記憶されている地図の情報を消去する、
付記2に記載の自律移動装置。
(Appendix 3)
When the determination unit determines that the map information stored in the map storage unit includes more errors than a reference, the determination result processing unit stores the map information stored in the map storage unit. Erase
The autonomous mobile device according to
(付記4)
前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていないと判定した場合に前記地図記憶部に記憶されている地図の情報を保存する地図保存部を備え、
前記判定結果処理部は、前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記地図保存部に保存されている地図の情報を前記地図記憶部に記憶させる、
付記2又は3に記載の自律移動装置。
(Appendix 4)
A map storage unit for storing the map information stored in the map storage unit when the determination unit determines that the map information stored in the map storage unit does not include more errors than the reference. Prepared,
When the determination unit determines that the map information stored in the map storage unit includes more errors than the reference, the determination result processing unit stores the map information stored in the map storage unit. Is stored in the map storage unit,
The autonomous mobile device according to
(付記5)
前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていないと判定した時刻の情報を記憶する時刻記憶部を備え、
前記地図記憶部は、地図を作成した時刻の情報と共に地図の情報を記憶し、
前記判定結果処理部は、前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記地図記憶部に記憶されている地図の情報のうち、前記時刻記憶部に記憶されている時刻よりも後に作成された地図の情報を消去する、
付記2から4のいずれか1つに記載の自律移動装置。
(Appendix 5)
A time storage unit that stores information on the time when the determination unit determines that the map information stored in the map storage unit does not include more errors than the reference;
The map storage unit stores information on the map together with information on the time when the map was created,
When the determination unit determines that the map information stored in the map storage unit includes more errors than a reference, the determination result processing unit stores the map information stored in the map storage unit. Among them, erase the information of the map created after the time stored in the time storage unit,
The autonomous mobile device according to any one of
(付記6)
撮影した画像の情報を、撮影した時刻の情報と共に記憶する画像記憶部を備え、
前記判定結果処理部は、前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記画像記憶部に記憶されている画像の情報のうち、前記時刻記憶部に記憶されている時刻よりも後に撮影された画像の情報を消去する、
付記5に記載の自律移動装置。
(Appendix 6)
An image storage unit that stores information on the captured image together with information on the time of shooting,
When the determination unit determines that the map information stored in the map storage unit includes more errors than the reference, the determination result processing unit stores information on the image stored in the image storage unit. Among them, the information of images taken after the time stored in the time storage unit is deleted,
The autonomous mobile device according to
(付記7)
前記撮像部が撮影した画像の中から該画像に含まれている特徴的な部分である特徴点の3次元位置を取得する3次元位置取得部を備え、
前記判定部は、前記3次元位置取得部が取得した3次元位置のうち、前記天井推定部が推定した天井平面との距離が基準天井距離以下の3次元位置の個数が基準個数未満の場合に、前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定する、
付記2から6のいずれか1つに記載の自律移動装置。
(Appendix 7)
A three-dimensional position acquisition unit that acquires a three-dimensional position of a feature point that is a characteristic part included in the image captured by the imaging unit;
When the number of three-dimensional positions whose distance from the ceiling plane estimated by the ceiling estimation unit is less than or equal to a reference ceiling distance among the three-dimensional positions acquired by the three-dimensional position acquisition unit is less than the reference number , It is determined that the map information stored in the map storage unit includes more errors than the standard,
The autonomous mobile device according to any one of
(付記8)
前記判定部は、前記天井推定部が推定した天井平面の傾きと、自律移動装置が移動している床面の傾きと、の角度の差が基準角度以上なら、前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定する、
付記2から7のいずれか1つに記載の自律移動装置。
(Appendix 8)
If the difference between the inclination of the ceiling plane estimated by the ceiling estimation unit and the inclination of the floor surface on which the autonomous mobile device is moving is equal to or greater than a reference angle, the determination unit is stored in the map storage unit. It is determined that the map information contains more errors than the standard.
The autonomous mobile device according to any one of
(付記9)
前記判定部は、前記天井推定部が推定した第1の天井平面の傾きと、前記天井推定部が前記第1の天井平面よりも前に推定した第2の天井平面の傾きと、の角度の差が基準角度以上なら、前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定する、
付記2から8のいずれか1つに記載の自律移動装置。
(Appendix 9)
The determination unit has an angle between the inclination of the first ceiling plane estimated by the ceiling estimation unit and the inclination of the second ceiling plane estimated by the ceiling estimation unit before the first ceiling plane. If the difference is greater than or equal to a reference angle, it is determined that the map information stored in the map storage unit includes more errors than the reference.
The autonomous mobile device according to any one of
(付記10)
前記判定部は、自機と前方の壁との距離を取得し、該距離が前方距離基準値未満のときには、前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定しない、
付記2から9のいずれか1つに記載の自律移動装置。
(Appendix 10)
The determination unit obtains the distance between the aircraft and the front wall, and when the distance is less than a forward distance reference value, the map information stored in the map storage unit includes more errors than the reference. Do not judge
The autonomous mobile device according to any one of
(付記11)
前記天井推定部は、3次元ハフ変換によって天井平面を推定する、
付記1から10のいずれか1つに記載の自律移動装置。
(Appendix 11)
The ceiling estimation unit estimates a ceiling plane by a three-dimensional Hough transform,
The autonomous mobile device according to any one of
(付記12)
前記撮像部は、単眼の撮像部であり、
前記地図作成部は前記単眼の撮像部が撮影した複数の画像の情報に基づいて地図の情報を作成する、
付記1から11のいずれか1つに記載の自律移動装置。
(Appendix 12)
The imaging unit is a monocular imaging unit,
The map creation unit creates map information based on information of a plurality of images taken by the monocular imaging unit;
The autonomous mobile device according to any one of
(付記13)
床と接しているか否かを検出する床面センサを備え、
前記床面センサが、床と接していると検出している時のみ、前記地図作成部は地図の情報を作成する、
付記1から12のいずれか1つに記載の自律移動装置。
(Appendix 13)
It has a floor sensor that detects whether it is in contact with the floor,
Only when the floor sensor detects that it is in contact with the floor, the map creation unit creates map information,
The autonomous mobile device according to any one of
(付記14)
撮影した複数の画像の情報を用いて地図の情報を作成するとともに天井平面を推定し、
前記推定した天井平面を用いて前記作成した地図の情報に誤差が基準以上多く含まれているか否かを判定し、
前記判定した結果に応じて所定の処理を行う、
画像処理方法。
(Appendix 14)
Create map information using information from multiple images taken and estimate the ceiling plane.
Determine whether the map information created using the estimated ceiling plane contains more errors than the standard,
A predetermined process is performed according to the determined result.
Image processing method.
(付記15)
撮影ステップと、
前記撮影ステップで撮影した複数の画像の情報を用いて地図の情報を作成する地図作成ステップと、
前記撮影ステップで撮影した複数の画像の情報を用いて天井平面を推定する天井推定ステップと、
前記天井推定ステップで推定した天井平面を用いて前記地図作成ステップで作成した地図の情報に誤差が基準以上多く含まれているか否かを判定する判定ステップと、
前記判定ステップで判定した結果に応じて所定の処理を行う判定結果処理ステップと、
を備える画像処理方法。
(Appendix 15)
Shooting steps,
A map creating step for creating map information using information of a plurality of images photographed in the photographing step;
A ceiling estimation step of estimating a ceiling plane using information of a plurality of images captured in the imaging step;
A determination step of determining whether or not an error includes more than a reference in the map information created in the map creation step using the ceiling plane estimated in the ceiling estimation step;
A determination result processing step for performing predetermined processing according to the result determined in the determination step;
An image processing method comprising:
(付記16)
コンピュータに、
撮影ステップ、
前記撮影ステップで撮影した複数の画像の情報を用いて地図の情報を作成する地図作成ステップ、
前記撮影ステップで撮影した複数の画像の情報を用いて天井平面を推定する天井推定ステップ、
前記天井推定ステップで推定した天井平面を用いて前記地図作成ステップで作成した地図の情報に誤差が基準以上多く含まれているか否かを判定する判定ステップ、及び、
前記判定ステップで判定した結果に応じて所定の処理を行う判定結果処理ステップ、
を実行させるためのプログラム。
(Appendix 16)
On the computer,
Shooting steps,
A map creating step for creating map information using information of a plurality of images photographed in the photographing step;
A ceiling estimation step for estimating a ceiling plane using information of a plurality of images photographed in the photographing step;
A determination step of determining whether or not an error includes more than a reference in the map information created in the map creation step using the ceiling plane estimated in the ceiling estimation step; and
A determination result processing step for performing a predetermined process according to the result determined in the determination step;
A program for running
10,50…制御部、11…地図作成部、12…位置推定部、13…天井推定部、14…判定部、15…地図編集部、20,60…記憶部、21…画像記憶部、22…地図記憶部、23…天井推定値記憶部、30…センサ部、31…障害物センサ、32…床面センサ、41…撮像部、42…駆動部、43…入力部、44,71…通信部、45…電源、100…自律移動装置、200…サーバー
DESCRIPTION OF
Claims (16)
前記撮像部が撮影した複数の画像の情報を用いて地図の情報を作成する地図作成部と、
前記撮像部が撮影した複数の画像の情報を用いて天井平面を推定する天井推定部と、
前記天井推定部が推定した天井平面を用いて、前記地図の情報に誤差が基準以上多く含まれているか否かを判定する判定部と、
前記判定部が判定した結果に応じて所定の処理を行う判定結果処理部と、
を備える自律移動装置。 An imaging unit;
A map creation unit that creates map information using information of a plurality of images captured by the imaging unit;
A ceiling estimation unit that estimates a ceiling plane using information of a plurality of images captured by the imaging unit;
Using the ceiling plane estimated by the ceiling estimation unit, a determination unit that determines whether the map information includes more errors than the reference,
A determination result processing unit that performs a predetermined process according to a result determined by the determination unit;
An autonomous mobile device comprising:
前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記判定結果処理部は前記地図記憶部に記憶されている地図の情報を編集する、
請求項1に記載の自律移動装置。 A map storage unit for storing information of the map created by the map creation unit;
When the determination unit determines that the map information stored in the map storage unit includes more errors than the reference, the determination result processing unit uses the map information stored in the map storage unit. To edit,
The autonomous mobile device according to claim 1.
請求項2に記載の自律移動装置。 When the determination unit determines that the map information stored in the map storage unit includes more errors than a reference, the determination result processing unit stores the map information stored in the map storage unit. Erase
The autonomous mobile device according to claim 2.
前記判定結果処理部は、前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記地図保存部に保存されている地図の情報を前記地図記憶部に記憶させる、
請求項2又は3に記載の自律移動装置。 A map storage unit for storing the map information stored in the map storage unit when the determination unit determines that the map information stored in the map storage unit does not include more errors than the reference. Prepared,
When the determination unit determines that the map information stored in the map storage unit includes more errors than the reference, the determination result processing unit stores the map information stored in the map storage unit. Is stored in the map storage unit,
The autonomous mobile device according to claim 2 or 3.
前記地図記憶部は、地図を作成した時刻の情報と共に地図の情報を記憶し、
前記判定結果処理部は、前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記地図記憶部に記憶されている地図の情報のうち、前記時刻記憶部に記憶されている時刻よりも後に作成された地図の情報を消去する、
請求項2から4のいずれか1項に記載の自律移動装置。 A time storage unit that stores information on the time when the determination unit determines that the map information stored in the map storage unit does not include more errors than the reference;
The map storage unit stores information on the map together with information on the time when the map was created,
When the determination unit determines that the map information stored in the map storage unit includes more errors than a reference, the determination result processing unit stores the map information stored in the map storage unit. Among them, erase the information of the map created after the time stored in the time storage unit,
The autonomous mobile device according to any one of claims 2 to 4.
前記判定結果処理部は、前記判定部が前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定した場合、前記画像記憶部に記憶されている画像の情報のうち、前記時刻記憶部に記憶されている時刻よりも後に撮影された画像の情報を消去する、
請求項5に記載の自律移動装置。 An image storage unit that stores information on the captured image together with information on the time of shooting,
When the determination unit determines that the map information stored in the map storage unit includes more errors than the reference, the determination result processing unit stores information on the image stored in the image storage unit. Among them, the information of images taken after the time stored in the time storage unit is deleted,
The autonomous mobile device according to claim 5.
前記判定部は、前記3次元位置取得部が取得した3次元位置のうち、前記天井推定部が推定した天井平面との距離が基準天井距離以下の3次元位置の個数が基準個数未満の場合に、前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定する、
請求項2から6のいずれか1項に記載の自律移動装置。 A three-dimensional position acquisition unit that acquires a three-dimensional position of a feature point that is a characteristic part included in the image captured by the imaging unit;
When the number of three-dimensional positions whose distance from the ceiling plane estimated by the ceiling estimation unit is less than or equal to a reference ceiling distance among the three-dimensional positions acquired by the three-dimensional position acquisition unit is less than the reference number , It is determined that the map information stored in the map storage unit includes more errors than the standard,
The autonomous mobile device according to any one of claims 2 to 6.
請求項2から7のいずれか1項に記載の自律移動装置。 If the difference between the inclination of the ceiling plane estimated by the ceiling estimation unit and the inclination of the floor surface on which the autonomous mobile device is moving is equal to or greater than a reference angle, the determination unit is stored in the map storage unit. It is determined that the map information contains more errors than the standard.
The autonomous mobile device according to any one of claims 2 to 7.
請求項2から8のいずれか1項に記載の自律移動装置。 The determination unit has an angle between the inclination of the first ceiling plane estimated by the ceiling estimation unit and the inclination of the second ceiling plane estimated by the ceiling estimation unit before the first ceiling plane. If the difference is greater than or equal to a reference angle, it is determined that the map information stored in the map storage unit includes more errors than the reference.
The autonomous mobile device according to any one of claims 2 to 8.
請求項2から9のいずれか1項に記載の自律移動装置。 The determination unit obtains the distance between the aircraft and the front wall, and when the distance is less than a forward distance reference value, the map information stored in the map storage unit includes more errors than the reference. Do not judge
The autonomous mobile device according to any one of claims 2 to 9.
請求項1から10のいずれか1項に記載の自律移動装置。 The ceiling estimation unit estimates a ceiling plane by a three-dimensional Hough transform,
The autonomous mobile device according to any one of claims 1 to 10.
前記地図作成部は前記単眼の撮像部が撮影した複数の画像の情報に基づいて地図の情報を作成する、
請求項1から11のいずれか1項に記載の自律移動装置。 The imaging unit is a monocular imaging unit,
The map creation unit creates map information based on information of a plurality of images taken by the monocular imaging unit;
The autonomous mobile device according to any one of claims 1 to 11.
前記床面センサが、床と接していると検出している時のみ、前記地図作成部は地図の情報を作成する、
請求項1から12のいずれか1項に記載の自律移動装置。 It has a floor sensor that detects whether it is in contact with the floor,
Only when the floor sensor detects that it is in contact with the floor, the map creation unit creates map information,
The autonomous mobile device according to any one of claims 1 to 12.
前記推定した天井平面を用いて前記作成した地図の情報に誤差が基準以上多く含まれているか否かを判定し、
前記判定した結果に応じて所定の処理を行う、
画像処理方法。 Create map information using information from multiple images taken and estimate the ceiling plane.
Determine whether the map information created using the estimated ceiling plane contains more errors than the standard,
A predetermined process is performed according to the determined result.
Image processing method.
前記撮影ステップで撮影した複数の画像の情報を用いて地図の情報を作成する地図作成ステップと、
前記撮影ステップで撮影した複数の画像の情報を用いて天井平面を推定する天井推定ステップと、
前記天井推定ステップで推定した天井平面を用いて前記地図作成ステップで作成した地図の情報に誤差が基準以上多く含まれているか否かを判定する判定ステップと、
前記判定ステップで判定した結果に応じて所定の処理を行う判定結果処理ステップと、
を備える画像処理方法。 Shooting steps,
A map creating step for creating map information using information of a plurality of images photographed in the photographing step;
A ceiling estimation step of estimating a ceiling plane using information of a plurality of images captured in the imaging step;
A determination step of determining whether or not an error includes more than a reference in the map information created in the map creation step using the ceiling plane estimated in the ceiling estimation step;
A determination result processing step for performing predetermined processing according to the result determined in the determination step;
An image processing method comprising:
撮影ステップ、
前記撮影ステップで撮影した複数の画像の情報を用いて地図の情報を作成する地図作成ステップ、
前記撮影ステップで撮影した複数の画像の情報を用いて天井平面を推定する天井推定ステップ、
前記天井推定ステップで推定した天井平面を用いて前記地図作成ステップで作成した地図の情報に誤差が基準以上多く含まれているか否かを判定する判定ステップ、及び、
前記判定ステップで判定した結果に応じて所定の処理を行う判定結果処理ステップ、
を実行させるためのプログラム。 On the computer,
Shooting steps,
A map creating step for creating map information using information of a plurality of images photographed in the photographing step;
A ceiling estimation step for estimating a ceiling plane using information of a plurality of images photographed in the photographing step;
A determination step of determining whether or not an error includes more than a reference in the map information created in the map creation step using the ceiling plane estimated in the ceiling estimation step; and
A determination result processing step for performing a predetermined process according to the result determined in the determination step;
A program for running
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017054372A JP2018156538A (en) | 2017-03-21 | 2017-03-21 | Autonomous mobile device, image processing method and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017054372A JP2018156538A (en) | 2017-03-21 | 2017-03-21 | Autonomous mobile device, image processing method and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018156538A true JP2018156538A (en) | 2018-10-04 |
Family
ID=63718106
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017054372A Pending JP2018156538A (en) | 2017-03-21 | 2017-03-21 | Autonomous mobile device, image processing method and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018156538A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020144710A (en) * | 2019-03-07 | 2020-09-10 | 三菱重工業株式会社 | Self-position estimation device, self-position estimation method and program |
| JP2020161141A (en) * | 2019-03-27 | 2020-10-01 | エルジー エレクトロニクス インコーポレイティド | Mobile robot and method of controlling the same |
| JP2023004517A (en) * | 2021-06-28 | 2023-01-17 | Necソリューションイノベータ株式会社 | Position estimation deice, position estimation method, and program |
-
2017
- 2017-03-21 JP JP2017054372A patent/JP2018156538A/en active Pending
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020144710A (en) * | 2019-03-07 | 2020-09-10 | 三菱重工業株式会社 | Self-position estimation device, self-position estimation method and program |
| CN111664857A (en) * | 2019-03-07 | 2020-09-15 | 三菱重工业株式会社 | Self-position estimating device, self-position estimating method and recording medium |
| JP7220591B2 (en) | 2019-03-07 | 2023-02-10 | 三菱重工業株式会社 | Self-position estimation device, self-position estimation method and program |
| CN111664857B (en) * | 2019-03-07 | 2023-09-19 | 三菱重工业株式会社 | Self-position estimating device, self-position estimating method, and recording medium |
| JP2020161141A (en) * | 2019-03-27 | 2020-10-01 | エルジー エレクトロニクス インコーポレイティド | Mobile robot and method of controlling the same |
| US11400600B2 (en) | 2019-03-27 | 2022-08-02 | Lg Electronics Inc. | Mobile robot and method of controlling the same |
| JP7150773B2 (en) | 2019-03-27 | 2022-10-11 | エルジー エレクトロニクス インコーポレイティド | Mobile robot and its control method |
| AU2020247141B2 (en) * | 2019-03-27 | 2023-05-11 | Lg Electronics Inc. | Mobile robot and method of controlling the same |
| JP2023004517A (en) * | 2021-06-28 | 2023-01-17 | Necソリューションイノベータ株式会社 | Position estimation deice, position estimation method, and program |
| JP7740683B2 (en) | 2021-06-28 | 2025-09-17 | Necソリューションイノベータ株式会社 | Position estimation device, position estimation method, and program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6311695B2 (en) | Autonomous mobile device, autonomous mobile method and program | |
| JP6288060B2 (en) | Autonomous mobile device, autonomous mobile method and program | |
| JP6323439B2 (en) | Autonomous mobile device, autonomous mobile method and program | |
| JP6187623B1 (en) | Autonomous mobile device, autonomous mobile method and program | |
| JP6759307B2 (en) | Adaptive mapping using spatial aggregation of sensor data | |
| JP5222971B2 (en) | Walking robot apparatus and control program therefor | |
| JP6724439B2 (en) | Autonomous mobile device, autonomous mobile system, autonomous mobile method and program | |
| Chen | Kalman filter for robot vision: a survey | |
| CN106813672B (en) | Navigation method of mobile robot and mobile robot | |
| Hornung et al. | Monte Carlo localization for humanoid robot navigation in complex indoor environments | |
| Zhang et al. | An indoor navigation aid for the visually impaired | |
| JP7661231B2 (en) | Self-location estimation device, autonomous moving body, self-location estimation method and program | |
| JP2018156538A (en) | Autonomous mobile device, image processing method and program | |
| JP7067130B2 (en) | Autonomous mobile device, memory organization method and program | |
| JP6638753B2 (en) | Autonomous mobile device, autonomous mobile method and program | |
| Jäger et al. | Efficient navigation based on the Landmark-Tree map and the Z∞ algorithm using an omnidirectional camera | |
| Oberländer et al. | A multi-resolution 3-D environment model for autonomous planetary exploration | |
| CN114995459A (en) | Robot control method, device, equipment and storage medium | |
| Cao et al. | Omni-directional vision localization based on particle filter | |
| JP7354528B2 (en) | Autonomous mobile device, method and program for detecting dirt on lenses of autonomous mobile device | |
| JP7327596B2 (en) | Autonomous mobile device, method and program for detecting dirt on lens of autonomous mobile device | |
| JP2010009370A (en) | Traveling object control system and traveling object control method | |
| Hsieh et al. | Mobile robot localization and path planning using an omnidirectional camera and infrared sensors |