[go: up one dir, main page]

JP2018156538A - Autonomous mobile device, image processing method and program - Google Patents

Autonomous mobile device, image processing method and program Download PDF

Info

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
Application number
JP2017054372A
Other languages
Japanese (ja)
Inventor
中嶋 光康
Mitsuyasu Nakajima
光康 中嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2017054372A priority Critical patent/JP2018156538A/en
Publication of JP2018156538A publication Critical patent/JP2018156538A/en
Pending legal-status Critical Current

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, Patent Document 1 discloses a mobile robot that can move while creating a surrounding map using the SLAM method.

特開2016−52515号公報JP, 2006-52515, A

特許文献1に開示されている移動式ロボットは、SLAM法を用いることによって、地図を作成しながら移動することができる。しかし、前記の移動式ロボットでは作成した地図を用いる技術に改善の余地がある。   The mobile robot disclosed in Patent Document 1 can move while creating a map by using the SLAM method. However, there is room for improvement in the technique using the created map in the mobile robot.

本発明は、作成した地図を用いる技術を改善することを目的とする。   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.

本発明の実施形態1に係る自律移動装置の外観を示す図である。It is a figure which shows the external appearance of the autonomous mobile apparatus which concerns on Embodiment 1 of this invention. 実施形態1に係る自律移動装置の備える撮像部が取得する画像の一例を示す図である。It is a figure which shows an example of the image which the imaging part with which the autonomous mobile device which concerns on Embodiment 1 is provided. 実施形態1に係る自律移動装置の構成を示す図である。It is a figure which shows the structure of the autonomous mobile apparatus which concerns on Embodiment 1. FIG. 実施形態1に係る自律移動制御処理全体のフローチャートを示す図である。It is a figure which shows the flowchart of the whole autonomous movement control process which concerns on Embodiment 1. FIG. 実施形態1に係る自律移動制御処理の中の自機位置推定スレッドの初期化処理のフローチャートを示す図である。It is a figure which shows the flowchart of the initialization process of the own position estimation thread | sled in the autonomous movement control process which concerns on Embodiment 1. FIG. 実施形態1に係る自律移動制御処理の中の自機位置推定スレッドの初期化処理後の自機位置推定処理のフローチャートを示す図である。It is a figure which shows the flowchart of the own position estimation process after the initialization process of the own position estimation thread | sled in the autonomous movement control process which concerns on Embodiment 1. FIG. 実施形態1に係る自律移動制御処理の中の地図作成スレッドの処理のフローチャートを示す図である。It is a figure which shows the flowchart of the process of the map creation thread | sled in the autonomous movement control process which concerns on Embodiment 1. FIG. 実施形態1に係る自律移動制御処理の中のループクロージングスレッドの処理のフローチャートを示す図である。It is a figure which shows the flowchart of the process of the loop closing thread | sled in the autonomous movement control process which concerns on Embodiment 1. FIG. 実施形態1に係る自律移動制御処理の中の誤差判定スレッドの処理のフローチャートを示す図である。It is a figure which shows the flowchart of the process of the error determination thread | sled in the autonomous movement control process which concerns on Embodiment 1. FIG. 3次元ハフ変換における実空間を説明する図である。It is a figure explaining real space in three-dimensional Hough transform. 3次元ハフ変換におけるハフ空間を説明する図である。It is a figure explaining the Hough space in three-dimensional Hough transform. 前方の壁までの距離が小さくなると取得できる天井の画像が小さくなることを説明する図である。It is a figure explaining that the image of the ceiling which can be acquired becomes small when the distance to a front wall becomes small. 本発明の実施形態2に係る誤差判定スレッドの処理のフローチャートを示す図である。It is a figure which shows the flowchart of a process of the error determination thread | sled concerning Embodiment 2 of this invention. 本発明の実施形態3に係る誤差判定スレッドの処理のフローチャートを示す図である。It is a figure which shows the flowchart of the process of the error determination thread | sled which concerns on Embodiment 3 of this invention. 制御部等の一部を外部のサーバーに設ける構成の一例を示す図である。It is a figure which shows an example of a structure which provides one part, such as a control part, in an external server.

以下、本発明の実施形態に係る自律移動装置、自律移動方法及びプログラムについて、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。   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 mobile device 100 includes an imaging unit 41 and a drive unit 42 in appearance.

撮像部41は、単眼の撮像装置(カメラ)を備える。撮像部41は、例えば、30fpsで画像(フレーム)を取得する。自律移動装置100は、撮像部41が逐次取得した画像に基づいて、自機位置と周囲環境とをリアルタイムに認識しながら、自律移動を行う。撮像部41は、天井方向の画像を取得できるように広角レンズが使用されており、図2に示すような、天井を含む画像を取得する。   The imaging unit 41 includes a monocular imaging device (camera). The imaging unit 41 acquires an image (frame) at 30 fps, for example. The autonomous mobile device 100 performs autonomous movement while recognizing its own position and surrounding environment in real time based on images sequentially acquired by the imaging unit 41. The imaging unit 41 uses a wide-angle lens so that an image in the ceiling direction can be acquired, and acquires an image including the ceiling as shown in FIG.

駆動部42は、独立2輪駆動型であって、車輪とモータとを備える移動手段である。自律移動装置100は、2つの車輪の同一方向駆動により前後の平行移動(並進移動)を、2つの車輪の逆方向駆動によりその場での回転(向き変更)を、2つの車輪のそれぞれ速度を変えた駆動により旋回移動(並進+回転(向き変更)移動)を、行うことができる。また、各々の車輪にはロータリエンコーダが備えられており、ロータリエンコーダで車輪の回転数を計測し、車輪の直径や車輪間の距離等の幾何学的関係を利用することで並進移動量及び回転量を計算できる。例えば、車輪の直径をD、回転数をR(ロータリエンコーダにより測定)とすると、その車輪の接地部分での並進移動量はπ・D・Rとなる。また、車輪の直径をD、車輪間の距離をI、右車輪の回転数をR、左車輪の回転数をRとすると、向き変更の回転量は(右回転を正とすると)360°×D×(R−R)/(2×I)となる。この並進移動量や回転量を逐次足し合わせていくことで、駆動部42は、いわゆるオドメトリとして機能し、自機位置(移動開始時の位置及び向きを基準とした位置及び向き)を計測することができる。 The drive unit 42 is an independent two-wheel drive type, and is a moving means including wheels and a motor. The autonomous mobile device 100 translates back and forth (translation) by driving the two wheels in the same direction, and rotates (changes direction) on the spot by driving the two wheels in the reverse direction. A swivel movement (translation + rotation (direction change) movement) can be performed by the changed drive. Each wheel is also equipped with a rotary encoder, which measures the rotational speed of the wheel with the rotary encoder and uses the geometric relationship such as the wheel diameter and the distance between the wheels to translate and move. The amount can be calculated. For example, if the wheel diameter is D and the rotation speed is R (measured by a rotary encoder), the translational movement amount at the ground contact portion of the wheel is π · D · R. Further, if the wheel diameter is D, the distance between the wheels is I, the rotation speed of the right wheel is R R , and the rotation speed of the left wheel is RL , the rotation amount of the direction change is 360 (when the right rotation is positive). ° × D × (R L −R R ) / (2 × I). By sequentially adding the translational movement amount and the rotation amount, the drive unit 42 functions as a so-called odometry, and measures its own position (position and orientation with reference to the position and orientation at the start of movement). Can do.

オドメトリから得られる自機の位置及び向きの精度は、車輪の摩耗やスリップ等により、低い精度になってしまうことが多い。特に誤差が累積していく関係上、時間経過と共に精度が悪化する。ただし、オドメトリの回転成分(向きの情報)に関しては、角速度(単位時間あたりの角度移動量)を測定する角速度センサを用いることにより精度を向上させることができる。また、地磁気を検出して方位を特定する方位センサ(図示せず)を用いることにより、オドメトリからの取得値とは関係なく、地磁気を利用した絶対的な向きの情報を取得することもできる。   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 mobile device 100 includes a control unit 10, a storage unit 20, a sensor unit 30, an input unit 43, a communication unit 44, and a power supply 45 in addition to the imaging unit 41 and the drive unit 42.

制御部10は、CPU(Central Processing Unit)等で構成され、記憶部20に記憶されたプログラムを実行することにより、後述する各部(地図作成部11、位置推定部12、天井推定部13、判定部14、地図編集部15)の機能を実現する。   The control unit 10 is configured by a CPU (Central Processing Unit) or the like, and by executing a program stored in the storage unit 20, each unit described later (a map creation unit 11, a position estimation unit 12, a ceiling estimation unit 13, a determination) The functions of the unit 14 and the map editing unit 15) are realized.

記憶部20は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成され、画像記憶部21、地図記憶部22及び天井推定値記憶部23を含む。ROMには制御部10のCPUが実行するプログラム(例えば、後述するSLAM法の演算や自律移動制御処理に係るプログラム)や、プログラムを実行する上で予め必要なデータが記憶されている。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。   The storage unit 20 includes a ROM (Read Only Memory), a RAM (Random Access Memory), and the like, and includes an image storage unit 21, a map storage unit 22, and a ceiling estimated value storage unit 23. The ROM stores a program executed by the CPU of the control unit 10 (for example, a program related to an SLAM method calculation and an autonomous movement control process described later) and data necessary for executing the program in advance. The RAM stores data that is created or changed during program execution.

画像記憶部21には、撮像部41が撮影した画像が記憶される。ただし、記憶容量の節約のため、画像記憶部21は、撮像部41が撮影したすべての画像を記憶しなくてもよく、また画像自体ではなく、画像の特徴量を記憶するようにしても良い。重要な画像(後述するキーフレーム)については、位置推定部12が後述するSLAM法で推定した、該画像を撮影した時の自機位置(自機の位置及び向き)の情報も、該画像の情報と共に(該画像に紐付けられて)画像記憶部21に記憶される。   The image storage unit 21 stores an image captured by the imaging unit 41. However, in order to save the storage capacity, the image storage unit 21 may not store all the images captured by the imaging unit 41, and may store the feature amount of the image instead of the image itself. . For important images (key frames, which will be described later), information on the position of the own device (the position and orientation of the own device) estimated by the position estimation unit 12 using the SLAM method described later is also used. It is stored in the image storage unit 21 together with information (in association with the image).

地図記憶部22には、後述するSLAM法や障害物センサ31からの情報に基づいて地図作成部11が作成した地図の情報(特徴点や障害物の3次元位置の情報)が記憶される。   The map storage unit 22 stores map information (feature points and information on three-dimensional positions of obstacles) created by the map creation unit 11 based on information from the SLAM method and the obstacle sensor 31 described later.

天井推定値記憶部23には、天井推定部13が推定した、天井の平面を表す方程式の係数を記憶する。天井の平面を表す方程式については後述する。   The ceiling estimated value storage unit 23 stores the coefficient of the equation representing the plane of the ceiling estimated by the ceiling estimation unit 13. The equation representing the ceiling plane will be described later.

センサ部30として、障害物センサ31及び床面センサ32を備える。障害物センサ31は、周囲に存在する物体(障害物)を検出し、該物体(障害物)までの距離を測定することができる距離センサであって、例えば、赤外線センサ、超音波センサである。なお、独立した障害物センサ31を搭載せずに、撮像部41を用いて障害物を検知するようにしても良い。また、他の物体に衝突したことを検知するバンパーセンサー(図示せず)を備えても良い。床面センサ32は、自律移動装置100が床面に接しているか否かを検知するセンサである。自律移動装置100が床面の上を移動している間は、床面センサ32は自律移動装置100が床面に接していることを検知する。例えば、人が自律移動装置100を持ち上げると、床面センサ32は自律移動装置100が床面から離れたことを検知する。   As the sensor unit 30, an obstacle sensor 31 and a floor sensor 32 are provided. The obstacle sensor 31 is a distance sensor that can detect an object (obstacle) present in the surroundings and measure the distance to the object (obstacle), and is, for example, an infrared sensor or an ultrasonic sensor. . In addition, you may make it detect an obstruction using the imaging part 41, without mounting the independent obstruction sensor 31. FIG. Moreover, you may provide the bumper sensor (not shown) which detects having collided with the other object. The floor sensor 32 is a sensor that detects whether or not the autonomous mobile device 100 is in contact with the floor surface. While the autonomous mobile device 100 is moving on the floor surface, the floor sensor 32 detects that the autonomous mobile device 100 is in contact with the floor surface. For example, when a person lifts the autonomous mobile device 100, the floor sensor 32 detects that the autonomous mobile device 100 has left the floor.

入力部43として、自律移動装置100を操作するための操作ボタンを備える。操作ボタンは、例えば、電源ボタン、モード切替ボタン(掃除モード、ペットモード等を切り替える)、初期化ボタン(地図の作成をやり直しさせる)などを含む。入力部43として、音の入力を行うマイク(図示せず)と、自律移動装置100への操作指示の音声を認識する音声認識部を備えても良い。   As the input unit 43, an operation button for operating the autonomous mobile device 100 is provided. The operation buttons include, for example, a power button, a mode switching button (switching between the cleaning mode, the pet mode, and the like), an initialization button (re-creating the map), and the like. As the input unit 43, a microphone (not shown) that inputs sound and a voice recognition unit that recognizes a voice of an operation instruction to the autonomous mobile device 100 may be provided.

通信部44は、外部装置と通信するためのモジュールであり、外部装置と無線通信する場合にはアンテナを含む無線モジュールである。例えば、通信部44は、Bluetooth(登録商標)に基づく近距離無線通信を行うための無線モジュールである。通信部44では、自律移動装置100と外部とのデータ受け渡し等を行う。   The communication unit 44 is a module for communicating with an external device, and is a wireless module including an antenna when performing wireless communication with the external device. For example, the communication unit 44 is a wireless module for performing short-range wireless communication based on Bluetooth (registered trademark). The communication unit 44 exchanges data between the autonomous mobile device 100 and the outside.

電源45は、自律移動装置100を動作させる電源であり、一般的には内蔵された充電池であるが、太陽電池であっても良いし、床面から無線で電力供給されるシステムであっても良い。電源45が充電池の場合は、充電器(充電ステーション)に自律移動装置100が接続することで充電される。   The power source 45 is a power source for operating the autonomous mobile device 100, and is generally a built-in rechargeable battery, but may be a solar cell or a system that is wirelessly powered from the floor. Also good. When the power supply 45 is a rechargeable battery, it is charged by connecting the autonomous mobile device 100 to a charger (charging station).

次に、自律移動装置100の制御部10の機能的構成について説明する。制御部10は、地図作成部11、位置推定部12、天井推定部13、判定部14、地図編集部15、の機能を実現し、後述するSLAM法の演算や自律移動装置100の移動制御等を行う。また、制御部10は、マルチスレッド機能に対応しており、複数のスレッド(異なる処理の流れ)を並行して進めることができる。   Next, a functional configuration of the control unit 10 of the autonomous mobile device 100 will be described. The control unit 10 realizes the functions of the map creation unit 11, the position estimation unit 12, the ceiling estimation unit 13, the determination unit 14, and the map editing unit 15, the SLAM method calculation described later, movement control of the autonomous mobile device 100, and the like. I do. The control unit 10 supports a multi-thread function, and can proceed with a plurality of threads (different processing flows) in parallel.

地図作成部11は、画像記憶部21に記憶されている画像の情報並びに該画像撮影時の自機の位置及び向きの情報に基づいてSLAM法を用いて後述する特徴点の3次元位置を推定したり、障害物センサ31で障害物を検出したときの自機の位置及び向きの情報に基づいて該障害物の3次元位置を取得したりすることによって、地図の情報を作成する。そして、この推定された特徴点の3次元位置、取得された該障害物の3次元位置等を、地図の情報として地図記憶部22に記憶する。なお、画像上の2次元空間に存在する特徴点を、後述するSLAM座標の3次元空間上に対応させたものをMap点と言う。1つのMap点は複数の画像から観測されることもある。つまり、1つのMap点は複数の(画像上の)特徴点と対応づけられることもある。   The map creation unit 11 estimates a three-dimensional position of a feature point, which will be described later, using the SLAM method based on information on the image stored in the image storage unit 21 and information on the position and orientation of the own device at the time of image capture. Map information is created by acquiring the three-dimensional position of the obstacle based on the position and orientation information of the own device when the obstacle sensor 31 detects the obstacle. Then, the estimated three-dimensional position of the feature point, the acquired three-dimensional position of the obstacle, and the like are stored in the map storage unit 22 as map information. A feature point corresponding to a feature point existing in a two-dimensional space on an image in a three-dimensional space of SLAM coordinates described later is referred to as a Map point. One Map point may be observed from a plurality of images. That is, one Map point may be associated with a plurality of feature points (on the image).

位置推定部12は、後述するSLAM法に基づいて、ビジュアルオドメトリとして、自機の位置及び向きを推定する。   The position estimation unit 12 estimates the position and orientation of its own device as visual odometry based on the SLAM method described later.

天井推定部13は、後述する3次元ハフ(Hough)変換により、地図記憶部22に記憶されている特徴点の中から天井に存在する特徴点(天井特徴点)を抽出し、天井の平面(天井平面)を推定する。そして、推定した天井平面を表す方程式の係数(天井係数)を天井推定値記憶部23に記憶する。   The ceiling estimation unit 13 extracts a feature point (ceiling feature point) existing on the ceiling from the feature points stored in the map storage unit 22 by a three-dimensional Hough transformation described later, and the ceiling plane ( Estimate the ceiling plane. Then, the coefficient of the equation representing the estimated ceiling plane (ceiling coefficient) is stored in the ceiling estimated value storage unit 23.

判定部14は、後述するキーフレーム中に含まれる特徴点に対応したMap点のうち、天井推定値記憶部23に記憶されている天井係数で表される天井平面との距離が基準距離(例えば10cm)以下であるMap点の個数を求め、該個数が基準個数(例えば2個)未満であるなら、地図記憶部22に記憶されている地図の情報に誤差が基準以上多く含まれていると判定する。   The determination unit 14 determines that a distance from a ceiling plane represented by a ceiling coefficient stored in the ceiling estimated value storage unit 23 among the Map points corresponding to feature points included in a key frame described later is a reference distance (for example, If the number of Map points equal to or less than 10 cm) is obtained and the number is less than the reference number (for example, 2), the map information stored in the map storage unit 22 includes more errors than the reference. judge.

この判定部14の判定について、補足説明する。撮像部41が取得する画像は、図2に示すように、天井の部分を多く含んでいるため、通常は、キーフレーム内の特徴点に対応したMap点に天井に存在するものが多く含まれる。そして、これら天井に存在するMap点と天井平面との距離は0である。したがって、天井推定値記憶部23に記憶されている天井係数で表される天井平面が正しい天井平面であるなら、キーフレーム中に含まれる特徴点に対応したMap点のうち、天井推定値記憶部23に記憶されている天井係数で表される天井平面との距離がほぼ0(つまり基準距離以下)であるMap点は多く(基準個数以上)含まれる。   The determination of the determination unit 14 will be supplementarily described. As shown in FIG. 2, the image acquired by the imaging unit 41 includes a large portion of the ceiling. Therefore, usually, a map point corresponding to a feature point in the key frame includes a large number of images existing on the ceiling. . The distance between the Map point existing on the ceiling and the ceiling plane is zero. Therefore, if the ceiling plane represented by the ceiling coefficient stored in the ceiling estimated value storage unit 23 is the correct ceiling plane, the ceiling estimated value storage unit among the Map points corresponding to the feature points included in the key frame. Many Map points whose distance from the ceiling plane represented by the ceiling coefficient stored in 23 is almost 0 (that is, not more than the reference distance) are included (more than the reference number).

つまり、キーフレーム中に含まれる特徴点に対応した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 value storage unit 23 is equal to or less than the reference distance. Is less than the reference number (assuming that the ceiling coefficient is almost correct) means that the three-dimensional position of the Map point is incorrect. Since the information on the 3D position of the Map point is a part of the map information stored in the map storage unit 22, the fact that the 3D position of the Map point is incorrect is stored in the map storage unit 22. It can be inferred that the map information contains many errors. Therefore, by the above determination, it can be determined whether or not the map information stored in the map storage unit 22 includes more errors than the reference.

地図編集部15は、判定部14によって地図記憶部22に記憶されている地図の情報に含まれる誤差が多いと判定された場合は、該地図を編集する。地図の編集の最も簡単な処理は、該地図を消去する処理である。   If the determination unit 14 determines that there are many errors included in the map information stored in the map storage unit 22, the map editing unit 15 edits the map. The simplest process for editing a map is to delete the map.

以上で、自律移動装置100の機能構成を説明した。次に自律移動装置100の自律移動制御処理について、図4を参照して説明する。図4は、自律移動装置100の自律移動制御処理全体のフローチャートである。自律移動装置100は、電源が投入されると、この自律移動制御処理が開始される。まず、自律移動装置100の制御部10は、自機位置推定スレッド(ステップS101)、地図作成スレッド(ステップS102)、ループクロージングスレッド(ステップS103)、誤差判定スレッド(ステップS104)の各スレッドを起動する。これら各スレッドの詳細については後述する。   The functional configuration of the autonomous mobile device 100 has been described above. Next, the autonomous movement control process of the autonomous mobile device 100 will be described with reference to FIG. FIG. 4 is a flowchart of the entire autonomous movement control process of the autonomous mobile device 100. The autonomous mobile device 100 starts this autonomous movement control process when the power is turned on. First, the control unit 10 of the autonomous mobile device 100 starts each of the own machine position estimation thread (step S101), the map creation thread (step S102), the loop closing thread (step S103), and the error determination thread (step S104). To do. Details of these threads will be described later.

その後、制御部10は、自律移動制御処理による動作を終了するか否かを判定し(ステップS105)、動作終了なら(ステップS105;Yes)動作を終了し、動作終了でなければ(ステップS105;No)、地図作成部11が地図の情報の作成及び更新を行う(ステップS106)。次に制御部10は自律移動するために駆動部42に所望の動作を指示し(ステップS107)、ステップS105に戻る。この自律移動制御処理により、地図の情報に基づいて自律的に移動を行いつつ、適宜地図の情報を更新することができる。   Thereafter, the control unit 10 determines whether or not to end the operation by the autonomous movement control process (step S105). If the operation ends (step S105; Yes), the operation ends. If not, the operation ends (step S105; No), the map creation unit 11 creates and updates map information (step S106). Next, in order to move autonomously, the control unit 10 instructs the drive unit 42 to perform a desired operation (step S107), and returns to step S105. By this autonomous movement control process, the map information can be updated as appropriate while autonomously moving based on the map information.

自律移動装置100による自律移動制御処理の典型的な例を紹介する。自律移動装置100は最初、充電器に置いてある状態で電源45を投入すると、障害物センサ31を頼りとして、家の各部屋をくまなく移動し、障害物センサ31によって壁等の障害物位置を特定し、障害物位置を含む地図の情報を作成することができる。地図がある程度作成されると、地図の情報がまだないが移動可能と考えられる領域を知ることができ、その領域に自律的に移動する等して、より広範囲の地図の作成を促すこともできるようになる。そして、移動可能なほぼ全域の地図の情報が作成されれば、地図の情報を利用した効率的な移動動作が可能になる。例えば部屋のどの位置からでも最短経路で充電器に戻ったり、効率的に部屋の掃除をしたりすることが可能になる。   A typical example of autonomous movement control processing by the autonomous mobile device 100 will be introduced. When the autonomous mobile device 100 first turns on the power supply 45 in a state where it is placed on the charger, it relies on the obstacle sensor 31 to move through each room of the house, and the obstacle sensor 31 positions obstacles such as walls. And map information including obstacle positions can be created. When a map is created to some extent, it is possible to know an area that has no map information but is considered to be movable, and it is possible to encourage the creation of a wider map by moving autonomously to that area. It becomes like this. And if the information of the map of the almost movable whole area is created, the efficient movement operation | movement using the information of a map will be attained. For example, it is possible to return to the charger through the shortest route from any position in the room or to efficiently clean the room.

次に、自律移動制御処理の全体フローチャート(図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 position estimation unit 12 first performs an initialization process, and then continues its own position estimation (estimating its own position by visual odometry using an image acquired by the imaging unit 41).

位置推定部12は、まず、初期化済フラグをクリアする(ステップS201)。初期化済フラグとは、位置推定部12が、自機位置を推定するために最初に行う初期化処理が完了しているか否かを示すフラグ変数である。初期化処理が完了すると初期化済フラグには1がセットされる。次に、自律移動制御処理による動作を終了するか否かを判定する(ステップS202)。動作終了なら(ステップS202;Yes)終了し、動作終了でないなら(ステップS202;No)、初期化済であるか否かを判定する(ステップS203)。この判定は、初期化済フラグが1(初期化済)か0(初期化済でない)かにより判定する。初期化済なら(ステップS203;Yes)、図6に示すステップS231以降の自機位置推定処理を行い、初期化済でないなら(ステップS203;No)ステップS204に進んで初期化処理を行う。まず初期化処理について説明する。   The position estimation unit 12 first clears the initialized flag (step S201). The initialized flag is a flag variable indicating whether or not the initializing process that the position estimating unit 12 first performs in order to estimate the position of the aircraft has been completed. When the initialization process is completed, 1 is set to the initialized flag. Next, it is determined whether or not to end the operation by the autonomous movement control process (step S202). If the operation ends (step S202; Yes), the operation ends. If the operation does not end (step S202; No), it is determined whether or not the operation has been completed (step S203). This determination is made based on whether the initialized flag is 1 (initialized) or 0 (not initialized). If it has been initialized (step S203; Yes), the own position estimation process from step S231 shown in FIG. 6 is performed. If it has not been initialized (step S203; No), the process proceeds to step S204 to perform the initialization process. First, the initialization process will be described.

初期化処理では、位置推定部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 position estimation unit 12 first sets −1 to the frame counter N (step S204). Then, if it is detected by the floor sensor 32 that the autonomous mobile device 100 is in contact with the floor surface, the position estimation unit 12 acquires an image with the imaging unit 41 (step S205). Step S205 is also called an imaging step. While the floor sensor 32 detects that the floor sensor 32 is not in contact with the floor surface (lifted), the position estimation unit 12 does not perform the processes in and after step S205 until it is detected that the floor sensor 32 has contacted the floor surface. Keep on waiting. The image can be acquired at 30 fps, for example. The image acquired by the imaging unit 41 is also called a frame. Next, feature points are acquired from the acquired image (step S206). A feature point refers to a characteristic part in an image such as a corner part in the image. The feature points can be acquired by using an algorithm such as SIFT (Scale-Invariant Future Transform) or SURF (Speed-Up Robust Features). Note that algorithms other than these may be used to obtain feature points. In step S206, the position estimation unit 12 functions as a feature point acquisition unit.

取得した特徴点の個数が少ないと、後述する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 position estimation unit 12 determines whether or not the number of feature points acquired is greater than or equal to a reference value (for example, 10) (step S207). If the number of feature points acquired is less than the reference value (step S207; No), the process returns to step S205, and image acquisition and feature point acquisition are repeated until the number of feature points equal to or greater than the reference value is obtained. At this point, the map information has not yet been created. However, in the above-described typical example, for example, the initialization process is started because the obstacle sensor 31 is being relied on to start moving all rooms. If the image acquisition and the feature point acquisition are repeated, the image acquisition is repeated while moving, so that various images can be acquired, and any of them can be expected to acquire an image with a large number of feature points.

特徴点の取得数が基準値以上だった場合は(ステップ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 position estimation unit 12 increments the frame counter N (step S208). Then, it is determined whether or not the frame counter N is 0 (step S209). If the frame counter N is 0 (step S209; Yes), it means that only one image has been acquired, so the process returns to step S205 to acquire the second image. Although not shown in the flowchart shown in FIG. 5, the position of the own machine when the first image is acquired is somewhat distant from the position of the own machine when the second image is acquired. However, the accuracy of the posture estimated in the subsequent processing is improved. Therefore, when returning from step S209 to step S205, a process of waiting until the translation distance by odometry becomes a predetermined distance (for example, 1 m) or more according to an operation instruction to the drive unit 42 in step S107 of the overall flowchart (FIG. 4). May be added.

フレームカウンタ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 position estimation unit 12 acquires the correspondence of the feature points between these two images (step S210). Here, a supplementary explanation will be given regarding the correspondence between the feature points. When the same point in the real environment exists as a feature point in each of these two images, the set of these two feature points is called a feature point correspondence. Acquiring such a set of feature points is referred to as acquisition of feature point correspondences, and the number of feature point sets that can be acquired is referred to as feature point correspondence numbers.

そして、特徴点の対応数が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 position estimation unit 12 determines whether the number of corresponding feature points is less than 5 (step) S211). If the number of corresponding feature points is less than 5 (step S211; Yes), the process returns to step S204 to reacquire the initial image. If the number of corresponding feature points is 5 or more (step S211; No), the position estimation unit 12 uses the Two-view Structure from Motion method to acquire a relative posture between the two images (respective images are acquired). The difference between the positions (translation vector t) and the difference between the directions (rotation matrix R)) are calculated (step S212).

この二つの画像間の相対姿勢の計算は、具体的には、対応する特徴点から基礎行列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 map creation unit 11 obtains the three-dimensional position in the SLAM coordinates of the feature points (corresponding feature points) that can be matched between the two images (step S213). In this process, the map creation unit 11 functions as a three-dimensional position acquisition unit.

特徴点の画像中の座標(フレーム座標:既知)を(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 image capturing unit 41 is determined.

二つの画像間で対応が取れている特徴点のうちの一つが、一つ目の画像のフレーム座標(u,v)と、二つ目の画像のフレーム座標(u,v)に写っているとすると、以下の式(3)及び式(4)ができる。ここで、Iは単位行列、0はゼロベクトル、(L|r)は、行列Lの右に列ベクトルrを並べた行列を表す。
(u 1)’〜A(I|0)(X Y Z 1)’…(3)
(u 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)において、u,v,u,vそれぞれについての式ができるため、式は4つできるが、未知数はX,Y,Zの3つなので、X,Y,Zを求めることができ、これがその特徴点のSLAM座標における3次元位置となる。なお、式の個数の方が未知数の個数よりも多いため、例えばu,v,uで求めたX,Y,Zとu,v,vで求めた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 map creation unit 11 finds the most probable X, Y, and Z using the least square method.

特徴点の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 map creation unit 11 is also referred to as a Map point database (Map point DB (Database), which is stored in the map storage unit 22. Registered) (step S214). As elements to be registered in the Map point database, at least “X, Y, Z which is a three-dimensional position of a feature point in SLAM coordinates” and “a feature amount of the feature point” (for example, a feature amount obtained by SIFT or the like) is necessary. Further, if a “time stamp” (a value at the time of registration in the Map point database of a key frame counter NKF (a variable representing the current key frame number) described later) is added to the registered elements in the Map point database. This is convenient when editing the Map point database (such as returning to the past state).

そして、地図作成部11は、二つの画像間で対応が取れている特徴点(対応特徴点)の全てをMap点データベースに登録したかを判定する(ステップS215)。まだ全てを登録していないなら(ステップS215;No)、ステップS213に戻り、全て登録したら(ステップS215;Yes)、ステップS216に進む。   Then, the map creating unit 11 determines whether or not all the feature points (corresponding feature points) corresponding to each other between the two images are registered in the Map point database (step S215). If not all have been registered yet (step S215; No), the process returns to step S213, and if all have been registered (step S215; Yes), the process proceeds to step S216.

次に位置推定部12は、NKF(キーフレーム(後に続くスレッドでの処理対象となる画像を指す)のカウンタを表す変数)を0に初期化し(ステップS216)、二つ目の画像をキーフレームとしてフレームデータベース(フレームDB(Database)とも言い、画像記憶部21に格納される)に登録する(ステップS217)。   Next, the position estimation unit 12 initializes NKF (a variable representing a counter of a key frame (pointing to an image to be processed in a subsequent thread)) to 0 (step S216), and the second image is a key frame. Is registered in a frame database (also referred to as a frame DB (Database), which is stored in the image storage unit 21) (step S217).

フレームデータベースに登録する要素は、「キーフレーム番号」(登録時点でのキーフレームカウンタ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 position estimation unit 12 stores the key frame queue of the map creation thread (the queue has a first-in first-out data structure). The key frame counter NKF is set (step S218).

以上で自機位置推定スレッドの初期化処理が完了したので、位置推定部12は、初期化済フラグに1をセットする(ステップS219)。   Since the initialization process of the own position estimation thread is completed as described above, the position estimation unit 12 sets 1 to the initialized flag (step S219).

そして、位置推定部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 position estimation unit 12 translates the translation distance (obtained by the coordinates in the real environment) by odometry in the SLAM coordinates estimated by the above processing. The scale Sc is obtained by dividing by the distance sd (step S220). Actually, the scale Sc is a value determined by the imaging range, the number of imaging pixels, and the like, and therefore becomes a constant if the imaging unit 41 is determined. Therefore, a ratio between the translation distance in the actual environment and the translation distance in the SLAM coordinates may be experimentally obtained in advance and set as the scale Sc in advance. By setting the scale Sc in advance, the visual odometry can be used instead of the odometry as will be described later, even if the drive unit 42 does not have the odometry function.

そして、制御部10は、後述する誤差判定スレッドで用いられる変数pa,pb,pc,pd(これらは天井推定値記憶部23に記憶されている)をクリアする(ステップS221)。そして、ステップS202及びステップS203を経由して、初期化済の場合の処理である図6に示すステップS231へ進む。   Then, the control unit 10 clears variables pa, pb, pc, and pd (these are stored in the estimated ceiling value storage unit 23) used in an error determination thread described later (step S221). And it progresses to step S231 shown in FIG. 6 which is a process in the case of having completed initialization via step S202 and step S203.

では、図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 position estimation unit 12 sequentially estimates the current position and orientation of the own machine (translation vector t and rotation matrix R in SLAM coordinates). It is processing.

位置推定部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 floor sensor 32 that the autonomous mobile device 100 is in contact with the floor surface, the position estimation unit 12 acquires an image with the imaging unit 41 (step S231). Step S231 is also called a photographing step. While it is detected by the floor sensor 32 that it is not in contact with the floor surface (lifted), the position estimation unit 12 does not perform the processing after step S231 until it is detected that the floor sensor 32 is in contact with the floor surface. Keep on waiting. If it is in contact with the floor, then the position estimation unit 12 increments the frame counter N (step S232), and acquires the feature points included in the captured image (step S233). In step S233, the position estimation unit 12 functions as a feature point acquisition unit. Next, from the information of the previous key frame registered in the frame database (for example, the image whose key frame number is NKF), the three-dimensional position is known among the feature points included in the information of the image. A feature point (which is a Map point registered in the Map point database) is acquired, and a feature point (corresponding feature point) that can be correlated with the image that has just been captured is extracted (step S234).

そして、位置推定部12は、対応特徴点の個数が所定の個数(例えば10。以下「基準対応特徴点数」という。)未満かどうかを判定し(ステップS235)、基準対応特徴点数未満の場合(ステップS235;Yes)はSLAM法で推定する姿勢の精度が悪くなるので、位置の推定は行わずにステップS231での画像の取得に戻る。ここで、すぐにステップS231に戻るのではなく、ステップS234に戻って、フレームデータベースに登録されているキーフレームの中から対応特徴点の個数が基準対応特徴点数以上のものを検索するようにしても良い。この場合は、フレームデータベースに登録されているキーフレームの中に対応特徴点の個数が基準対応特徴点数以上のものが見つからなかった場合にステップS231に戻る。   Then, the position estimation unit 12 determines whether or not the number of corresponding feature points is less than a predetermined number (for example, 10; hereinafter referred to as “reference corresponding feature number”) (step S235). In step S235; Yes), since the accuracy of the posture estimated by the SLAM method is deteriorated, the process returns to the image acquisition in step S231 without estimating the position. Here, instead of immediately returning to step S231, the process returns to step S234 to search the key frame registered in the frame database for the number of corresponding feature points equal to or greater than the reference corresponding feature number. Also good. In this case, if no key feature registered in the frame database has a number of corresponding feature points equal to or greater than the reference corresponding feature number, the process returns to step S231.

位置推定部12は、基準対応特徴点数以上の対応特徴点が抽出できたら(ステップS235;No)、対応特徴点それぞれの3次元位置(X,Y,Z)をMap点データベースから取得する(ステップS236)。今撮影した画像に含まれている対応特徴点のフレーム座標を(u,v)とし、その対応特徴点の3次元位置を(X,Y,Z)とする(iは1から対応特徴点数までの値を取る)と、各対応特徴点の3次元位置(X,Y,Z)を以下の式(5)によってフレーム座標系に投影した値(ux,vx)とフレーム座標(u,v)とは理想的には一致するはずである。
(ux vx 1)’〜A(R|t)(X1)’…(5)
When the position estimation unit 12 can extract the corresponding feature points that are equal to or more than the reference corresponding feature points (step S235; No), the position estimation unit 12 acquires the three-dimensional positions (X i , Y i , Z i ) of the corresponding feature points from the Map point database. (Step S236). The frame coordinates of the corresponding feature point included in the image that has just been taken are (u i , v i ), and the three-dimensional position of the corresponding feature point is (X i , Y i , Z i ) (i is 1 To the number of corresponding feature points) and the values (ux i , vx) obtained by projecting the three-dimensional positions (X i , Y i , Z i ) of the corresponding feature points onto the frame coordinate system by the following equation (5) i ) and the frame coordinates (u i , v i ) should ideally match.
(Ux i vx i 1) ′ to A (R | t) (X i Y i Z i 1) ′ (5)

実際には(X,Y,Z)にも(u,v)にも誤差が含まれているため、(ux,vx)と(u,v)とが一致することはめったにない。そして、未知数はRとt(3次元空間ではそれぞれ3次元となり、3+3=6が未知数の個数である)だけなのに、数式は対応特徴点の個数の2倍存在する(対応特徴点一つに対して、フレーム座標のu,vそれぞれに対する式が存在するため)ことになるため、過剰条件の連立一次方程式になり、上述したように最小二乗法で求めることになる。具体的には、位置推定部12は、以下の式(6)のコスト関数E1を最小化する姿勢(並進ベクトルt及び回転行列R)を求めることになる。これがSLAM法で求めたSLAM座標での自機の姿勢(並進ベクトルt及び回転行列Rで表される自機の位置及び向き)となる。このようにして、位置推定部12は自機の姿勢を推定する(ステップS237)。

Figure 2018156538
Actually, since (X i , Y i , Z i ) and (u i , v i ) also contain errors, (ux i , vx i ) and (u i , v i ) match. I rarely do it. And the unknowns are only R and t (three-dimensional in the three-dimensional space, and 3 + 3 = 6 is the number of unknowns), but there are twice the number of corresponding feature points (for one corresponding feature point) Since there are equations for u and v of the frame coordinates), it becomes a simultaneous linear equation with an excess condition, and is obtained by the least square method as described above. Specifically, the position estimation unit 12 obtains an attitude (translation vector t and rotation matrix R) that minimizes the cost function E1 of the following equation (6). This is the attitude of the own machine in the SLAM coordinates obtained by the SLAM method (the position and orientation of the own machine represented by the translation vector t and the rotation matrix R). In this way, the position estimation unit 12 estimates the attitude of the own device (step S237).
Figure 2018156538

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 position estimation unit 12 obtains VO (visual odometry) by multiplying this by the scale Sc (step S238). The VO can be used as the position and orientation of the aircraft in the real environment.

次に、位置推定部12は、フレームDBに登録されている直前のキーフレーム(キーフレーム番号がNKFである画像)を撮影した時の自機の位置から所定の距離(例えば1m。以下「基準並進距離」という。)以上移動しているかを判定する(ステップS239)。なお、基準並進距離と比較する自機の移動距離は、直前のキーフレームから現フレームまでの並進距離(両フレームの並進ベクトルの差のベクトルの絶対値(要素の二乗和の平方根))をオドメトリから取得しても良いし、上述したVO(ビジュアルオドメトリ)から求めても良い。フレームDBに登録する内容は上述したように、「キーフレーム番号」、「姿勢」、「抽出した全ての特徴点」、「全ての特徴点の中でMap点として3次元位置が既知の点」、「キーフレーム自体の特徴」、である。   Next, the position estimating unit 12 captures a predetermined distance (for example, 1 m, for example, “reference” below) from the position of the own device when the immediately preceding key frame registered in the frame DB (an image having a key frame number of NKF) is captured. It is referred to as “translation distance”.) It is determined whether or not it is moving (step S239). The travel distance of the aircraft compared to the reference translation distance is the odometry of the translation distance from the previous key frame to the current frame (the absolute value of the difference vector between the translation vectors of both frames (the square root of the sum of the squares of the elements)). Or may be obtained from the above-described VO (visual odometry). As described above, the contents to be registered in the frame DB are “key frame number”, “posture”, “all extracted feature points”, and “a point whose 3D position is known as a Map point among all feature points”. , “Characteristics of the key frame itself”.

基準並進距離未満しか移動していないなら(ステップ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 position estimation unit 12 sets the key frame counter NKF in the key frame queue of the map creation thread in order to notify the map creation thread that a new key frame has occurred (step S242). Then, the process returns to step S202 in FIG. The key frame counter NKF, the scale Sc, the map point DB, and the frame DB are stored in the storage unit 20 so that values can be referred to across threads.

次に、自律移動制御処理の全体フローチャート(図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 map creation unit 11 creates the map information (Map point DB) by calculating the three-dimensional position of the corresponding feature point in the key frame.

まず、地図作成部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 map creation unit 11 determines whether or not to end the operation by the autonomous movement control process (step S301). If the operation ends (step S301; Yes), the operation ends. If the operation does not end (step S301; No), it is determined whether the key frame queue is empty (step S302). If the key frame queue is empty (step S302; Yes), the process returns to step S301. If the key frame queue is not empty (step S302; No), data is extracted from the key frame queue and is processed by the MKF (key frame processed by the map creation thread). (A variable representing a number) (step S303). The map creation unit 11 determines whether MKF is greater than 0 (step S304). If MKF is 0 (step S304; No), the map creation unit 11 returns to step S301 and waits for data to enter the key frame queue. When MKF is 1 or more (step S304; Yes), the process proceeds to the following process.

地図作成部11は、フレームDBを参照し、前キーフレーム(キーフレーム番号がMKF−1のキーフレーム)の特徴点と現キーフレーム(キーフレーム番号がMKFのキーフレーム)の特徴点とで対応が取れる特徴点(対応特徴点)を抽出する(ステップS305)。フレームDBにはそれぞれのキーフレームの姿勢(並進ベクトルtと回転行列R)も登録されているので、自機位置推定スレッドの初期化時の処理の時と同様の方法で対応特徴点の3次元位置を計算できる。地図作成部11は、3次元位置が計算できた対応特徴点の3次元位置をMap点としてMap点DBに登録する(ステップS306)。ステップS306は、地図作成ステップとも呼ばれる。地図作成部11は、フレームDBに対しても今回3次元位置を計算できた特徴点に対して3次元位置を登録する(ステップS307)。   The map creation unit 11 refers to the frame DB and corresponds to the feature point of the previous key frame (key frame number MKF-1) and the feature point of the current key frame (key frame number MKF key frame). Feature points (corresponding feature points) that can be taken are extracted (step S305). Since the posture (translation vector t and rotation matrix R) of each key frame is also registered in the frame DB, the corresponding feature points are three-dimensionally processed in the same manner as in the process of initializing the own position estimation thread. The position can be calculated. The map creation unit 11 registers the three-dimensional position of the corresponding feature point for which the three-dimensional position has been calculated as a Map point in the Map point DB (step S306). Step S306 is also called a map creation step. The map creation unit 11 also registers the three-dimensional position for the feature points for which the current three-dimensional position has been calculated in the frame DB (step S307).

なお、地図作成部11が抽出した対応特徴点がすでにMap点DBに登録済だった場合は、3次元位置計算をスキップして次の対応特徴点(Map点DBに未登録のもの)に対する処理に進んでも良いし、改めて3次元位置計算を行って、Map点DBに登録済の3次元位置や、フレームDB中の対応特徴点に対する3次元位置を更新するようにしても良い。   If the corresponding feature point extracted by the map creation unit 11 has already been registered in the Map point DB, the processing for the next corresponding feature point (one that has not been registered in the Map point DB) is skipped. Alternatively, the three-dimensional position calculation may be performed again to update the three-dimensional position registered in the Map point DB and the corresponding three-dimensional position in the frame DB.

次に、地図作成部11は、キーフレームキューが空かどうかを判定する(ステップS308)。空であれば(ステップS308;Yes)、全キーフレームの姿勢と全Map点の3次元位置に対して、バンドルアジャストメント処理を行って、精度向上を図ってから(ステップS309)ステップS310に進む。キーフレームキューが空でなければ(ステップS308;No)ステップS310に進む。次に地図作成部11は、ループクロージングスレッドのキーフレームキューにMKFをセットして(ステップS310)、ステップS301に戻る。   Next, the map creating unit 11 determines whether or not the key frame queue is empty (step S308). If it is empty (step S308; Yes), bundle adjustment processing is performed on the orientations of all key frames and the three-dimensional positions of all map points to improve accuracy (step S309), and the process proceeds to step S310. . If the key frame queue is not empty (step S308; No), the process proceeds to step S310. Next, the map creating unit 11 sets MKF in the key frame queue of the loop closing thread (step S310), and returns to step S301.

なお、バンドルアジャストメント処理とは、カメラ姿勢(キーフレーム姿勢)と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 control unit 10 continues to check whether or not the loop closing process can be performed, and if possible, performs the loop closing process. Note that the loop closing process uses the difference between the posture value and the current posture value when you were in the same location before when you recognized that you have returned to the same location that you have been before. This refers to correcting the three-dimensional position of the key frame and the related Map point in the trajectory from the previous time to the present.

まず、制御部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 control unit 10 determines whether or not to end the operation by the autonomous movement control process (step S401). If the operation ends (step S401; Yes), the process ends. If the operation is not finished (step S401; No), it is determined whether or not the key frame queue is empty (step S402). If the key frame queue is empty (step S402; Yes), the process returns to step S401. If the key frame queue is not empty (step S402; No), data is extracted from the key frame queue and processed by the LKF (loop closing thread). It is set to a variable representing a key frame number (step S403). Next, the control unit 10 determines whether LKF is greater than 1 (step S404). If LKF is 0 or 1 (step S404; No), the process returns to step S401 and waits for data to enter the key frame queue. When LKF is 2 or more (step S404; Yes), the following processing is performed.

制御部10は、フレームDBを参照し、現キーフレーム(キーフレーム番号がLKFのキーフレーム)と「キーフレーム自体の特徴」の類似度が所定の類似度(例えば0.9。以下「基準画像類似度」という。)以上になるキーフレームをフレームDBから検索する(ステップS405)。ここで、この類似度は、画像(キーフレーム)の特徴を特徴ベクトルで表している場合は、二つの画像の特徴ベクトルの内積の絶対値を1に正規化したものや、二つの画像の特徴ベクトルの絶対値(要素の二乗和の平方根)を1に正規化したもの同士の内積を、その二つの画像の類似度とすることができる。また、二つの画像の特徴ベクトル(絶対値を1に正規化したもの)の距離(各要素の差の二乗和の平方根)の逆数を類似度としても良い。   The control unit 10 refers to the frame DB, and the similarity between the current key frame (key frame whose key frame number is LKF) and “characteristic of the key frame itself” is a predetermined similarity (for example, 0.9, hereinafter “reference image”). (Referred to as “similarity”) Key frames having the above values are searched from the frame DB (step S405). Here, when the feature of the image (key frame) is represented by a feature vector, the similarity is obtained by normalizing the absolute value of the inner product of the feature vectors of the two images to 1, or the features of the two images. An inner product of those obtained by normalizing the absolute value of the vector (the square root of the square sum of the elements) to 1 can be used as the similarity between the two images. Also, the reciprocal of the distance (square root of the sum of squares of the differences between the elements) of the feature vectors of the two images (the absolute value normalized to 1) may be used as the similarity.

制御部10は、「キーフレーム自体の特徴」の類似度が基準画像類似度以上になるキーフレームが発見されたかどうかを判定し(ステップS406)、発見されなければ(ステップS406;No)ステップS408へ行き、発見されたら(ステップS406;Yes)、発見されたキーフレームから現キーフレームまでの軌跡中のキーフレームの姿勢と、軌跡中のキーフレームに含まれるMap点の3次元位置を修正する(ステップS407)。例えば、制御部10は、現キーフレームの姿勢を発見されたキーフレームの姿勢と同じ姿勢として修正する。そして、発見されたキーフレームの姿勢と現キーフレームの姿勢との差分を用いて、発見されたキーフレームから現キーフレームまでの軌跡中の各キーフレームの姿勢に線形的に補正を加える。さらにこれらの各キーフレームに含まれるMap点の3次元位置についても各キーフレームの姿勢の補正量に応じて修正する。   The control unit 10 determines whether or not a key frame with a similarity of “characteristic of the key frame itself” equal to or higher than the reference image similarity is found (step S406), and if not found (step S406; No), step S408. If it is found (step S406; Yes), the posture of the key frame in the locus from the found key frame to the current key frame and the three-dimensional position of the Map point included in the key frame in the locus are corrected. (Step S407). For example, the control unit 10 corrects the posture of the current key frame as the same posture as the found key frame. Then, using the difference between the attitude of the found key frame and the attitude of the current key frame, linear correction is applied to the attitude of each key frame in the trajectory from the found key frame to the current key frame. Further, the three-dimensional position of the Map point included in each key frame is also corrected according to the correction amount of the posture of each key frame.

次に制御部10は、誤差判定スレッドのキーフレームキューにLKFをセットしてステップS401に戻る(ステップS408)。   Next, the control unit 10 sets LKF in the key frame queue of the error determination thread and returns to step S401 (step S408).

次に、自律移動制御処理の全体フローチャート(図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 imaging unit 41 often includes a part of the ceiling, and the feature point existing in the vicinity of the ceiling in the image acquired by the imaging unit 41. If the state that is not included continues, the determination unit 14 determines that the error included in the map information is large (the map information includes more errors than the reference). When the determination unit 14 determines that the error included in the map information is large (the map information includes more errors than the reference), the map editing unit 15 performs a process of deleting the map information. . Specifically, the ceiling estimation unit 13 estimates a ceiling plane by three-dimensional Hough transform, and the determination unit 14 is the number K of map points whose distance from the ceiling plane is a reference ceiling distance ncd (for example, 10 cm) or less. If it is less than (for example, two), it is determined that the error included in the map information is large (the map information includes more errors than the reference).

通常部屋の中は、床にはテーブル、椅子等の様々な物が置いてあることが多いが、天井には照明以外は特に何も存在しないことが多い。したがって、撮像部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 imaging unit 41, the feature points present on the plane of the ceiling can be acquired stably. Based on this assumption, the error determination thread determines whether or not the error included in the map information is large (whether or not the map information includes more errors than the reference).

では、図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 control unit 10 determines whether or not to end the operation by the autonomous movement control process (step S501). If the operation ends (step S501; Yes), the operation ends. If not, the operation ends (step S501; No). Then, it is determined whether or not the key frame queue of the error determination thread is empty (step S502). If the key frame queue is empty (step S502; Yes), the process returns to step S501 to wait for data to enter the key frame queue.

キーフレームキューが空でなければ(ステップ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 control unit 10 extracts the data from the key frame queue and sets it to IKF (a variable representing the key frame number of the key frame to be processed by the error determination thread) (step S502). S503). Next, the control unit 10 determines whether or not the variables pa, pb, pc, and pd stored in the ceiling estimated value storage unit 23 are all 0 (step S504). The variables pa, pb, pc, and pd are set with the values of the coefficients of the equations representing the ceiling plane estimated by the ceiling estimation unit 13 as described later. As described above, the variables pa, pb, pc, and pd are initialized in step S221 of FIG. All cleared to zero. Therefore, it is possible to determine whether the ceiling plane estimation by the ceiling estimation unit 13 has not yet been performed based on whether the variables pa, pb, pc, pd are all 0 or not.

変数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 ceiling estimation unit 13 uses the Map point that exists in the ceiling direction of the current key frame (key frame number is IKF). Then, the ceiling plane is estimated by the three-dimensional Hough transform (step S505). Since the autonomous mobile device 100 initializes the SLAM coordinates by horizontally moving the floor surface in the initialization process of the own position estimation thread shown in FIG. 5, the Map point existing in the ceiling direction based on the SLAM coordinates. Can be extracted from the Map point DB. For simplicity, the Map point included in the upper half area in the image may be “Map point existing in the ceiling direction”.

ステップS505における天井平面の推定は、天井方向に存在するMap点群をMap点DBから取得し、通常の(2次元の)ハフ変換の拡張である3次元ハフ変換を用いることによって行う。そこで、3次元ハフ変換について説明する。実空間上の点(X,Y,Z)を含む平面Sは、図10Aに示すように、原点からの距離ρと2つの角度(方位角θ及び仰角φ)で表すことができる。この時、これらの関係は以下の式で表すことができる。
=ρ・cosφ・cosθ …(7)
=ρ・cosφ・sinθ …(8)
=ρ・sinφ …(9)

Figure 2018156538
Figure 2018156538
Figure 2018156538
The estimation of the ceiling plane in step S505 is performed by acquiring a Map point group existing in the ceiling direction from the Map point DB and using a three-dimensional Hough transform that is an extension of a normal (two-dimensional) Hough transform. Therefore, the three-dimensional Hough transform will be described. A plane S including a point (X p , Y p , Z p ) in the real space is represented by a distance ρ s from the origin and two angles (azimuth angle θ s and elevation angle φ s ) as shown in FIG. 10A. be able to. At this time, these relationships can be expressed by the following equations.
X p = ρ s · cos φ s · cos θ s (7)
Y p = ρ s · cos φ s · sin θ s (8)
Z p = ρ s · sinφ s (9)
Figure 2018156538
Figure 2018156538
Figure 2018156538

すると、XYZ座標系の実空間における平面S上の任意の点p(X,Y,Z)は、図10Bに示すようにρφθ座標系のハフ空間における1つの点s(ρ,φ,θ)として表される。つまり、実空間における平面S上の任意の点p(X,Y,Z)は、上記3次元ハフ変換を行うことによって、ハフ空間上の1つの点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 ceiling estimation unit 13 determines how many Map points have been converted to the most frequent conversion grid. The number of Map points is the number of points that support the plane converted into the most frequent conversion grid.

そして、天井推定部13は、最多変換グリッドに変換されたMap点の個数(平面をサポートする点の個数)が基準変換個数(例えば10個)以下か否かを判定する(ステップS506)。もし、最多変換グリッドに変換されたMap点が基準変換個数以下なら(ステップS506;No)、天井平面の推定を行うための情報が少ないため、推定失敗として、ステップS501に戻る。   Then, the ceiling estimation unit 13 determines whether or not the number of Map points converted to the most frequent conversion grid (the number of points that support a plane) is equal to or less than a reference conversion number (for example, 10) (Step S506). If the Map point converted into the most frequent conversion grid is equal to or less than the reference conversion number (step S506; No), there is little information for estimating the ceiling plane, and the process returns to step S501 as an estimation failure.

最多変換グリッドに変換された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 ceiling estimation unit 13 estimates the coefficient of the plane equation, and uses the estimated coefficient as the variable ca, Set to cb, cc, cd (step S507). Step S507 is also called a ceiling estimation step. The estimation of the coefficient of this plane equation will be described. First, a plane in real space can be expressed by the following plane equation.
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 ceiling estimation unit 13 determines whether or not the inclination of the normal vector (ca, cb, cc) is an abnormal value (not a value close to perpendicular to the floor surface) (step S508). If the slope of the normal vector is abnormal (step S508; Yes), the process returns to step S501.

法線ベクトルの傾きが異常でないなら(ステップ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 determination unit 14 determines whether or not the value of the variable K is less than a reference number (for example, 2) (step S512). Step S512 is also called a determination step. If the value of the variable K is equal to or greater than the reference number (step S512; No), the process proceeds to step S510. If the value of the variable K is less than the reference number (step S512; Yes), the counter variable ECT for error determination is incremented (step S513).

そして、判定部14は、カウンタ変数ECTが基準カウンタ値(例えば5)以下か否かを判定する(ステップS514)。カウンタ変数ECTが基準カウンタ値以下なら(ステップS514;No)、ステップS501に戻る。   Then, the determination unit 14 determines whether or not the counter variable ECT is equal to or less than a reference counter value (for example, 5) (step S514). If the counter variable ECT is less than or equal to the reference counter value (step S514; No), the process returns to step S501.

カウンタ変数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 editing unit 15 clears all of the initialized flag, the Map point DB, the frame DB, and the key frame queue of each thread (step S515). In step S515, the map editing unit 15 functions as a determination result processing unit that performs a predetermined process according to a result determined by the determination unit 14. Step S515 is also called a determination result processing step. Then, the control unit 10 returns to step S501 and starts again.

以上説明した誤差判定スレッドの処理により、地図の情報に誤差が基準以上多く含まれる場合には、初期化済フラグ、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 mobile device 100 from continuing to move in a state where the generated map includes more errors than the reference.

煩雑になるため図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 ceiling estimation unit 13 is abnormal, the process does not immediately return to step S501, The inclination abnormality counter variable LAC is incremented, and when the value of the counter variable exceeds a specified number of times (for example, 10 times), it is assumed that the map information includes more errors than the reference, and the process of step S515 is performed. You may make it go.

なお、ステップ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 editing unit 15 stores the map information (Map point DB) at that time as a “probable map” in the map storage unit (not shown), and then the step. In S510, the map editing unit 15 returns to the previous Map point DB state in which the Map point DB is stored without clearing the initialized flag, the frame DB, and the key frame queue of each thread in Step S515. Anyway. By doing in this way, the information of the map created in the past can be used effectively.

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 map editing unit 15 determines the time stamp ( (Time or NKF) is set in a variable TS that is a time storage unit (this TS itself may be stacked so that it can be returned to the past one after another). In step S515, the map editing unit 15 Of the information in the Map point DB, the information whose time stamp is after the TS is deleted, and the information before the TS is left as it is. By performing such processing, it is possible to delete only the latest Map point information (considered that the error is large (contains many errors)) while preserving the past Map point information.

この考え方はフレームDBにも適用でき、地図編集部15は、ステップS515で、フレームDB内の情報のうち、キーフレーム番号(そのフレームが撮影された時刻を表す)が変数TS(地図の情報に誤差が基準以上多く含まれていない時点の時刻を表す)よりも大きいものを消去し、TS以前の情報はそのまま残すようにしても良い。このようにすることで、過去の確からしいキーフレームの情報は保存したまま、最近の(誤差が大きい(誤差を多く含む)と考えられる)キーフレームの情報のみを消去できる。   This concept can also be applied to the frame DB. In step S515, the map editing unit 15 sets the key frame number (representing the time at which the frame was captured) among the information in the frame DB to the variable TS (map information). It is also possible to delete information that is larger than (represents the time at which the error is not greater than the reference) and leave the information before the TS as it is. By doing this, it is possible to delete only the latest key frame information (considered to have a large error (including many errors)) while preserving the information of the past probable key frames.

(実施形態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 mobile device 100 moves in the room, as shown in FIG. 11, the area of the ceiling part included in the image acquired by the imaging unit 41 becomes smaller as the distance to the front wall becomes shorter. Therefore, in a state where the distance to the front wall is less than the front distance reference value (for example, 1 m), the image acquired by the imaging unit 41 does not include a ceiling portion having a sufficient area, and the determination unit 14 is sufficient. It is considered that error determination cannot be performed with high accuracy. Therefore, Embodiment 2 in which error determination is not performed when the distance to the front wall is less than the front distance reference value will be described. The second embodiment is the same as the first embodiment except that only a part of the error determination thread is different from the first embodiment. Therefore, the changed part of the error determination thread will be described with reference to FIG.

実施形態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 determination unit 14 determines whether the distance between the own device position and the front wall when acquiring the current key frame (key frame with the key frame number IKF) is less than the front distance reference value (for example, 1 m). Determine whether or not. Since the determination unit 14 can acquire the position of the own device from the frame DB, the distance can be calculated if the position of the front wall can be acquired by the obstacle sensor 31. When the position of the front wall has not been acquired yet, the determination unit 14 regards this distance as being equal to or greater than the front distance reference value. If the distance is less than the forward distance reference value (step S521; Yes), the process returns to step S501. If the distance is greater than the forward distance reference value (step S521; No), the process proceeds to step S504.

上記ステップS521が追加されることにより、実施形態2に係る自律移動装置100は、キーフレームに十分な面積の天井部分が含まれていると想定される時のみ、天井平面の推定及び誤差判定を行うようになる。したがって、キーフレームに十分な面積の天井部分が含まれないことに起因して誤差判定に失敗する可能性を小さくすることができる。   By adding the above step S521, the autonomous mobile device 100 according to the second embodiment estimates the ceiling plane and determines the error only when it is assumed that the key frame includes a ceiling part with a sufficient area. To do. Therefore, it is possible to reduce the possibility of failure in error determination due to the fact that the key frame does not include a ceiling portion with a sufficient area.

(実施形態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 determination unit 14 determines whether or not the map information has a large error. However, the ceiling estimation unit 13 estimates the ceiling plane (first ceiling plane) from the Map point in the key frame with the key frame number IKF, and this ceiling plane and the ceiling plane estimated in step S505 (second ceiling plane). The determination unit 14 may determine whether or not the map information has a large error by determining whether or not the distance to the reference ceiling distance is less than or equal to the reference ceiling distance. A third embodiment for making such a determination will be described. The third embodiment is the same as the first embodiment except that a part of the error determination thread is different from the first embodiment. Therefore, the changed part of the error determination thread will be described with reference to FIG.

実施形態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 ceiling estimation unit 13 uses a Map point existing in the ceiling direction of the current key frame (key frame number is IKF) to perform a ceiling plane by three-dimensional Hough transform. presume. More specifically, the number of Map points converted to the above-described maximum conversion grid is obtained. In step S532, as in step S506, the ceiling estimation unit 13 determines whether the number of Map points (the number of points that support a plane) converted to the most frequent conversion grid is equal to or less than the reference conversion number (for example, 10). Determine whether. If the number of Map points converted to the most frequent conversion grid is equal to or less than the reference conversion number (step S532; No), there is little information for estimating the ceiling plane, so that error determination is impossible and the process returns to step S501.

最多変換グリッドに変換された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 ceiling estimation unit 13 estimates the coefficient of the plane equation as in step S507 (step S507). S533). Step S533 is also called a ceiling estimation step. Then, the determination unit 14 determines whether or not the distance between the plane represented by the coefficient estimated in step S533 and the plane represented by the variables pa, pb, pc, pd is equal to or less than the reference ceiling distance ncd (step). S534). Step S534 is also called a determination step.

この平面同士の距離の判定においては、判定部14は、まず法線ベクトル同士を比較し、2つの法線ベクトルの角度の差が基準角度(例えば10度)未満であるか否かを判定する。基準角度以上の差があるなら、判定部14は、地図情報の誤差が基準以上多く含まれていると判定し、天井平面同士の距離が基準天井距離ncdより大きいとみなして(ステップS534;No)、ステップS513に進む。   In determining the distance between the planes, the determination unit 14 first compares the normal vectors to determine whether or not the difference between the angles of the two normal vectors is less than a reference angle (for example, 10 degrees). . If there is a difference greater than the reference angle, the determination unit 14 determines that the map information includes more errors than the reference, and considers that the distance between the ceiling planes is greater than the reference ceiling distance ncd (Step S534; No). ), The process proceeds to step S513.

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 determination unit 14 determines whether or not the map information stored in the map storage unit 22 includes more errors than the reference using the ceiling plane estimated by the ceiling estimation unit 13. Using the result, the map editing unit 15 edits the map information stored in the map storage unit 22. However, without being limited to this, if the determination unit 14 determines that the map information stored in the map storage unit 22 includes more errors than the reference, the control unit 10 (determination result processing unit) Some notification may be made to inform the user that there are many errors in the map, or the movement operation may be temporarily stopped.

また、上記実施形態では、撮像部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 imaging unit 41 is a single eye has been described. However, a similar configuration can be adopted even with a compound eye SLAM using a plurality of imaging units. For example, when the autonomous mobile device 100 includes two image capturing units 41, two images can be acquired from the same position without moving. Two images can be acquired by one operation. If each of the two images includes a feature point equal to or greater than the reference value (determined in step S207), “N = N + 2” is performed in step S208, and step S209 always proceeds to “No”. When processing is performed using one of the two images as the previous frame and the other as the current frame, the “odometry translation distance” when calculating the scale Sc in step S220 is the distance between the two imaging units. good. Thereby, even when the accuracy of the position acquired from odometry is low, initialization can be performed stably.

ただし、二つの撮像部間の距離が、特徴点までの距離に対して小さい場合には充分な精度がとれない。(例えば、二つの撮像部間の距離が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 control unit 10 referring to the Map point DB. Further, according to the size of the translation distance in the actual environment, for example, 10 cm may be set as the reference translation distance if moving on the table, 1 m if moving around the room, 10 m if moving around the open space, etc. Then, a value corresponding to the wheel diameter of the drive unit 42 (for example, 10 times the wheel diameter) may be set as the reference translational distance.

基準並進距離として実環境上の距離で設定する場合は、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 mobile device 100 can also be implemented by a computer such as a normal PC (Personal Computer). Specifically, in the above embodiment, the autonomous movement control processing program performed by the autonomous mobile device 100 has been described as being stored in advance in the ROM of the storage unit 20. However, the program is stored and distributed on a computer-readable recording medium such as a flexible disk, CD-ROM (Compact Disc Read Only Memory), DVD (Digital Versatile Disc), and MO (Magneto-Optical Disc). A computer capable of realizing each of the functions described above may be configured by reading and installing the program on a computer.

また、このコンピュータは自律移動装置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 mobile device 100 or may exist separately from the autonomous mobile device 100. That is, as shown in FIG. 14, the control unit 50 and the storage unit 60 may be provided in the external server 200. With the cloud computing technology, the control unit 10 of the autonomous mobile device 100 transmits data acquired by the imaging unit 41, the sensor unit 30, and the like to the external server 200 via the communication unit 44, and performs arithmetic processing on the server 200. Then, the calculation result performed by the server 200 may be received via the communication unit 44 to control the drive unit 42 and the like. In FIG. 14, the control unit 50 of the server 200 includes the map creation unit 11, the position estimation unit 12, the ceiling estimation unit 13, the determination unit 14, and the map editing unit 15. Each part should just be provided in either of the control parts 10 of the autonomous mobile device 100. Whether each unit is provided in the control unit 50 of the server 200 or the control unit 10 of the autonomous mobile device 100 is arbitrary.
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 attachment 1.

(付記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 attachment 2.

(付記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 appendix 2 or 3.

(付記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 appendices 2 to 4.

(付記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 attachment 5.

(付記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 appendices 2 to 6.

(付記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 appendices 2 to 7.

(付記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 appendices 2 to 8.

(付記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 appendices 2 to 9.

(付記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 supplementary notes 1 to 10.

(付記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 appendices 1 to 11.

(付記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 appendices 1 to 12.

(付記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 SYMBOLS 10,50 ... Control part, 11 ... Map preparation part, 12 ... Position estimation part, 13 ... Ceiling estimation part, 14 ... Determination part, 15 ... Map editing part, 20, 60 ... Storage part, 21 ... Image storage part, 22 DESCRIPTION OF SYMBOLS ... Map storage part, 23 ... Ceiling estimated value storage part, 30 ... Sensor part, 31 ... Obstacle sensor, 32 ... Floor sensor, 41 ... Imaging part, 42 ... Drive part, 43 ... Input part, 44, 71 ... Communication Part 45 ... power source 100 ... autonomous mobile device 200 ... server

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次元位置取得部が取得した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.
前記判定部は、前記天井推定部が推定した第1の天井平面の傾きと、前記天井推定部が前記第1の天井平面よりも前に推定した第2の天井平面の傾きと、の角度の差が基準角度以上なら、前記地図記憶部に記憶されている地図の情報に誤差が基準以上多く含まれていると判定する、
請求項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.
前記天井推定部は、3次元ハフ変換によって天井平面を推定する、
請求項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
JP2017054372A 2017-03-21 2017-03-21 Autonomous mobile device, image processing method and program Pending JP2018156538A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (10)

* Cited by examiner, † Cited by third party
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