JP2020160594A - 自己位置推定方法 - Google Patents

自己位置推定方法 Download PDF

Info

Publication number
JP2020160594A
JP2020160594A JP2019057026A JP2019057026A JP2020160594A JP 2020160594 A JP2020160594 A JP 2020160594A JP 2019057026 A JP2019057026 A JP 2019057026A JP 2019057026 A JP2019057026 A JP 2019057026A JP 2020160594 A JP2020160594 A JP 2020160594A
Authority
JP
Japan
Prior art keywords
self
moving body
algorithm
estimated
processing 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.)
Granted
Application number
JP2019057026A
Other languages
English (en)
Other versions
JP7336223B2 (ja
Inventor
長谷川 雄二
Yuji Hasegawa
雄二 長谷川
燦心 松▲崎▼
Sango Matsuzaki
燦心 松▲崎▼
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.)
Honda Motor Co Ltd
Original Assignee
Honda Motor 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 Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP2019057026A priority Critical patent/JP7336223B2/ja
Priority to CN202010112109.XA priority patent/CN111738047B/zh
Priority to US16/820,725 priority patent/US11662742B2/en
Publication of JP2020160594A publication Critical patent/JP2020160594A/ja
Application granted granted Critical
Publication of JP7336223B2 publication Critical patent/JP7336223B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0225Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving docking at a fixed facility, e.g. base station or loading bay
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Optics & Photonics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

【課題】SLAMのアルゴリズムによる自己位置の推定値を適切に補正しながら、移動体の自己位置の推定(特定)を適切に行うことを可能とする方法を提供する。【解決手段】自己位置推定方法は、複数のアルゴリズムによりそれぞれ推定した自己位置から、移動体1の実際の自己位置を特定(確定)する。複数のアルゴリズムは、SLAMのアルゴリズム(12)と、SLAMと異なるアルゴリズム(11)とを含む。SLAMのアルゴリズムにより得られる自己位置の推定値を、SLAM以外のアルゴリズムにより得られた自己位置の推定値と、特定済の自己位置とのうちのいずれか一方の自己位置に応じて補正することが補正処理部16で間欠的に実行される。【選択図】図2

Description

本発明は、移動体の自己位置を推定する方法に関する。
従来より、移動ロボット等の移動体の自己位置を、複数のセンサの検出情報を用いて推定する種々様々な技術が提案されている。例えば、特許文献1には、エンコーダもしくはジャイロスコープ等の内界センサの検出情報と、測距センサ、IRセンサ、超音波センサ、カメラ等の外界センサの検出情報とを用いて移動体の自己位置を推定する技術が提案されている。
また、一つ以上のセンサの検出情報を用いて、移動体の自己位置を推定するアルゴリズムも、従来より、種々様々なアルゴリズムが提案されている。
特開2007−149088号公報
ところで、複数のセンサの検出情報から複数のアルゴリズムにより、それぞれ自己位置を推定し、これらの複数の自己位置の推定値から移動体の自己位置を特定する場合、該複数のアルゴリズムのうちの1つのアルゴリズムとして、SLAM(Simultaneous Localization and Mapping)のアルゴリズムを採用し得る。
しかしながら、SLAMのアルゴリズムは、移動体の初期位置を基準とするローカル座標系で、該移動体の移動量(位置変化量)を逐次算出し、この移動量を積算することにより初期位置に対する移動体の移動位置を推定するように構成されている。このため、移動体の移動環境に対して任意に設定されたグローバル座標系での移動体の自己位置を推定する場合、グローバル座標系で見た移動体の初期位置の設定値の誤差、あるいは、逐次算出する移動量の誤差等に起因して、SLAMのアルゴリズムにより得られる移動体の自己位置の誤差が積算的に増大していく場合がある。ひいては、SLAMのアルゴリズムにより得られた移動体の自己位置を反映させて移動体の自己位置を特定すると、当該特定した自己位置の信頼性が損なわれてしまう虞がある。
本発明はかかる背景に鑑みてなされたものであり、SLAMのアルゴリズムを含む複数のアルゴリズムを用いて移動体の自己位置を推定する方法において、SLAMのアルゴリズムによる自己位置の推定値を適切に補正しながら、移動体の自己位置の推定(特定)を適切に行うことを可能とする方法を提供することを目的とする。
本発明の自己位置推定方法は、上記の目的を達成するために、複数のセンサの検出情報から、該複数のセンサのうちの一つ以上のセンサの検出情報を各々用いる複数のアルゴリズムのそれぞれにより移動体の自己位置を推定し、該複数のアルゴリズムのそれぞれにより得られた前記自己位置の推定値から、前記移動体の自己位置を特定する自己位置推定方法であって、
前記複数のアルゴリズムは、SLAM(Simultaneous Localization and Mapping)のアルゴリズムである第Aアルゴリズムと、該SLAMと異なるアルゴリズムである第Bアルゴリズムとを含んでおり、
前記第Bアルゴリズムにより得られた前記自己位置の推定値である第B自己位置推定値と、前記特定した自己位置である自己位置特定値とのうちのいずれか一方の自己位置に応じて、前記第Aアルゴリズムにより得られる前記自己位置の推定値である第A自己位置推定値を補正することを間欠的に実行する補正ステップを備えることを特徴とする(第1発明)。
なお、本発明において、移動体の「自己位置」は特にことわらない限り、移動体の移動環境に任意に設定されたグローバル座標系で見た自己位置を意味する。また、該「自己位置」は、通常の意味での移動体の位置(座標位置)に限らず、該移動体の姿勢(向き)を含み得る。
上記第1発明によれば、前記補正ステップを備えているため、前記一方の自己位置(前記第B自己位置推定値又は前記自己位置特定値)に応じて、SLAMのアルゴリズムである第Aアルゴリズムにより得られる第A自己位置推定値を補正することが間欠的に(例えば、所定時間の経過毎に)実行される。これにより、第A自己位置推定値の誤差が積算的に拡大していくのが防止される。ひいては、信頼性の高い第A自己位置推定値を用いて、移動体の自己位置を特定する(自己位置特定値を得る)ことが可能となる。
よって、第1発明によれば、SLAMのアルゴリズムによる自己位置の推定値を適切に補正しながら、移動体の自己位置の推定(特定)を適切に行うことを可能となる。
上記第1発明の前記補正ステップでは、所定期間における前記第B自己位置推定値及び前記自己位置特定値うちの前記一方の自己位置の時系列と、該所定期間における前記第A自己位置推定値の時系列とに基づいて、前記第A自己位置推定値の時系列により示される軌道を、前記一方の自己位置の時系列により示される軌道に近づけるように前記第A自己位置推定値を補正するためのパラメータを決定し、当該決定したパラメータを用いて前記所定期間以後の前記第A自己位置推定値を補正することが好ましい(第2発明)。
これによれば、前記第1自己位置推定値を補正するためのパラメータとして、信頼性の高いパラメータを決定できる。ひいては、当該決定したパラメータを用いて前記所定期間以後の前記第A自己位置推定値を補正することで、該第A自己位置推定値を好適に補正することが可能となる。
上記第1発明又は第2発明では、前記複数のセンサは、前記移動体の外界を撮像するカメラを含み得る。この場合、前記第Aアルゴリズは、前記移動体の自己位置の推定のために、前記カメラの撮像画像から特徴点を検出し、当該検出された特徴点と、該撮像画像よりも過去の撮像画像から検出された特徴点とのマッチングを行う処理を逐次実行するように構成されたVisual_SLAMのアルゴリズムであることが好ましい(第3発明)。
これによれば、第Aアルゴリズムが、Visual_SLAMのアルゴリズムであるので、該第Aアルゴリズムによる自己位置の推定を好適に行うことが可能となる。
また、上記第1〜第3発明では、前記複数のセンサは、前記移動体の外界物までの距離を測定する測距センサを含み得る。この場合、前記第Bアルゴリズムは、前記測距センサによる測距データと、粒子フィルタとを用いて前記移動体の自己位置を推定するアルゴリズムであることが好ましい(第4発明)。
これによれば、移動体の周囲に他の移動物体が存在しない状況等では、前記第Bアルゴリズムによって、信頼性の高い(換言すれば、前記確からしさが高い)第B自己位置推定値を得ることが可能である。さらには、該第Bアルゴリズムによって得られた第B自己位置推定値をベースとして、信頼性の高い自己位置特定値を得ることが可能である。
このため、前記一方の自己位置(前記第B自己位置推定値又は前記自己位置特定値)に応じて前記第A自己位置推定を補正することの信頼性を好適に高めることが可能となる。
上記第1〜第4発明では、前記複数のアルゴリズムのそれぞれ毎に、各アルゴリズムの推定処理により得られる一つ以上の状態量であって、各アルゴリズムにより推定された前記自己位置の確からしさに関連する状態量を学習済のニューラルネットワークに入力し、当該入力された状態量から該ニューラルネットワークにより前記複数のアルゴリズムのそれぞれ毎の重み係数を決定するステップをさらに備えており、
前記複数のアルゴリズムのそれぞれにより推定された前記自己位置を、前記決定された重み係数により合成して得られる自己位置を、前記移動体の自己位置特定値として特定することが好ましい(第5発明)。
前記複数のアルゴリズムのそれぞれ毎の重み係数を決定するニューラルネットワークは、各アルゴリズム毎に、各アルゴリズムの推定処理(移動体の自己位置を推定する処理)により得られる一つ以上の状態量が入力され、これらの状態量から、各アルゴリズム毎の重み係数を決定する。
この場合、各アルゴリズム毎の状態量は、各アルゴリズムにより推定された移動体の自己位置の確からしさに関連する状態量であるので、各アルゴリズム毎の当該状態量は、該アルゴリズムの推定処理が、移動体の自己位置の信頼性の高い推定値を求める上で、どの程度適切になされたかの度合いを反映したものとなる。
このため、前記ニューラルネットワークの事前学習によって、該ニューラルネットワークは、各アルゴリズムに対応する重み係数が、該アルゴリズムによる自己位置の推定処理を他のアルゴリズムよりも適切に行い得る状況では相対的に高くなり、且つ、該アルゴリズムによる自己位置の推定処理を適切に行うことが他のアルゴリズムよりも困難な状況では相対的に低くなるように、入力される各アルゴリズム毎の状態量の全体に応じて各アルゴリズム毎の重み係数を決定できるようになる。
また、前記ニューラルネットワークにより決定される各アルゴリズム毎の重み係数は、各アルゴリズムにより推定された移動体の自己位置の精度ではなく、各アルゴリズム毎の前記状態量に依存して決定されるものであるので、該重み係数は、移動体の移動環境の場所の影響を受けにくいものとなる。
そして、第5発明によれば、前記複数のアルゴリズムのそれぞれにより推定された前記自己位置を、上記の如く決定された重み係数により合成して得られる位置が、前記移動体の自己位置特定値として特定される。
これにより、第5発明によれば、移動体の移動環境の影響を受け難い態様で移動体の自己位置の推定を行うことが可能となる。
補足すると、第5発明において、前記第Aアルゴリズムが、前記第3発明におけるアルゴリズム(Visual_SLAMのアルゴリズム)である場合には、前記第Aアルゴリズムに係る前記状態量は、例えば、前記撮像画像から検出された特徴点の総数のうち、前記マッチングによる対応付けがなされた特徴点の個数の割合を示す状態量を含むことが好ましい。これにより、該状態量は、第Aアルゴリズムにより推定される移動体の自己位置の確からしさに関連する状態量として適正なものとなる。
また、第5発明において、前記第Bアルゴリズムが、前記第4発明におけるアルゴリズムである場合には、前記第Bアルゴリズムに係る前記状態量は、該第Bアルゴリズムが前記移動体の自己位置を推定する過程で生成する共分散を含むことが好ましい。これにより、該状態量は、第Bアルゴリズムにより推定される移動体の自己位置の確からしさに関連する状態量として適正なものとなる。
本発明の実施形態における移動体の概略構成を示す図。 図1に示す自己位置推定処理装置による処理を示すブロック図。 図3A、図3B及び図3Cは図2に示す補正処理部の処理を説明するための図。
本発明の一実施形態を図1〜図3Cを参照して以下に説明する。図1を参照して、本実施形態での移動体1は、例えば車輪型の移動体であり、その移動環境の床面上に、複数の車輪2を介して支持される機体3を有する。そして、移動体1は、図示を省略する電動モータ等のアクチュエータにより、一つ以上の車輪2を回転駆動することにより、あるいは、一つ以上の車輪2の回転駆動と操舵(方向転換)とを行うことにより、床面上を移動する。
この移動体1には、自己位置を推定するために使用する複数のセンサが搭載されている。例えば、一つ以上の車輪2の回転角を検出する角度センサ等のオドメトリ用のセンサ5と、移動体1の周囲に存在する外界物までの距離を測定する測距センサとしてのレーザ・レンジ・ファインダ6(以降、LRF6という)と、移動体1の上方に存在する天井を撮像するカメラ7とが移動体1に搭載されている。なお、オドメトリ用のセンサ5は、車輪2の回転角を検出する角度センサの他、車輪2のうちの操舵輪の操舵角を検出するセンサを含み得る。また、カメラ7は、本実施形態では、ステレオカメラである。
移動体1には、これらのセンサの検出情報を用いて自己位置推定を行う自己位置推定処理装置10が搭載されている。該自己位置推定処理装置10は、例えば、マイコン、メモリ、インターフェース回路等を含む一つ以上の電子回路ユニットにより構成される。
そして、自己位置推定処理装置10は、実装されたハードウェア構成及びプログラム(ソウフトウェア構成)の両方又は一方により実現される機能として、図2のブロック図で示す如く、第1自己位置推定処理部11と、第2自己位置推定処理部12と、重み係数学習処理部14と、自己位置特定処理部15と、補正処理部16とを含む。なお、自己位置推定処理装置10は、上記の機能に限らず、例えば移動体1の移動制御等を行う機能も含み得る、
第1自己位置推定処理部11は、LRF6の検出情報とオドメトリ用センサ5の検出情報とを用いて移動体1の自己位置を推定する処理を実行する機能部、第2自己位置推定処理部11は、カメラ7の検出情報を用いて移動体1の自己位置を推定する処理を逐次実行する機能部である。
なお、本実施形態では、第1及び第2自己位置推定処理部11,12がそれぞれ推定する移動体1の自己位置は、より詳しくは、移動体1の移動環境に任意に設定されるグローバル座標系で見た、移動体1の位置と姿勢(向き)との組である。第1自己位置推定処理部11が推定する移動体1の自己位置は本発明における第B自己位置推定値に相当し、第2自己位置推定処理部12が推定する移動体1の自己位置は本発明における第A自己位置推定値に相当する。以降の説明では、第1及び第2自己位置推定処理部11,12によりそれぞれ推定される自己位置を、推定位置姿勢ということがある。
また、重み係数学習処理部14は、第1及び第2自己位置推定処理部11,12のそれぞれから入力される後述の状態量A,Bに応じて、第1及び第2自己位置推定処理部11,12のそれぞれに対応する重み係数(詳しくは、第1及び第2自己位置推定処理部11,12のそれぞれから出力される移動体1の推定位置姿勢に対する重み係数)を出力する機能部、自己位置特定処理部15は、第1及び第2自己位置推定処理部11,12のそれぞれから出力される移動体1の推定位置姿勢を、重み係数学習処理部14から出力される重み係数に応じて合成することによって、移動体1の自己位置を特定する(移動体1の推定位置姿勢を確定する)機能部である。該自己位置特定処理部15が特定する移動体1の自己位置は、本発明における自己位置特定値に相当する。
また、補正処理部16は、第2自己位置推定処理部12が推定する自己位置(推定位置姿勢)を補正するための補正用パラメータを適宜生成して、第2自己位置推定処理部12に入力する機能部である。
以下に、上記各機能部の詳細と併せて、自己位置推定処理装置10の全体の処理を説明する。
第1及び第2自己位置推定処理部11,12の処理が以下に説明する如く実行される。第1自己位置推定処理部11には、LRF6及びオドメトリ用センサ5のそれぞれの検出情報が入力されると共に、移動体1の移動環境のマップデータ(例えば、2次元の占有格子地図等)とが入力される。この場合、マップデータは、自己位置推定処理装置10のメモリにあらかじめ記憶保持され、あるいは、外部のサーバ等から随時、ダウンロードされる。
そして、第1自己位置推定処理部11は、LRF6の検出情報(移動体1の周囲の外界物の測距データ)と、オドメトリ用センサ5の検出情報と、マップデータとから、自己位置推定用の所定のアルゴリズムにより、移動体1の自己位置を逐次推定する(推定位置姿勢を逐次決定する)。
本実施形態では、第1自己位置推定処理部11は、自己位置推定用のアルゴリズムとして、粒子フィルタを用いて自己位置推定を行うアルゴリズム、例えば、AMCL(Adaptive Monte Carlo Localization)という公知の手法のアルゴリズムを使用する。該アルゴリズムは、本発明における第Bアルリズムに相当するものである。
このAMCLのアルゴリズムでは、次のような処理によって、移動体1の自己位置(グローバル座標系で見た自己位置)が逐次推定される。すなわち、まず、移動体1の初期位置及び初期姿勢(向き)に応じて、移動体1の近辺に、粒子フィルタにおける複数の粒子(パーティクル)が生成される。なお、移動体1の初期位置及び初期姿勢は、例えば、移動体1の移動開始時又はその直前に、LRF6の検出データ(移動体1の周囲の外界物の測距データ)とマップとを用いて特定される。
そして、オドメトリ用センサ5の検出情報から推定される移動体1の移動速度(並進速度及び角速度)に応じて、各粒子の新たな移動位置が推定される。次いで、LRF6による移動体1の周囲の外界物の測距データを取得し、この測距データと、マップデータとに基づいて、各粒子の新たな移動位置の尤度が算出される。そして、リサンプリング処理によって、尤度が低い粒子が消滅され、さらに、尤度の高い粒子の近辺に新たな粒子が生成される。
AMCLのアルゴリズムでは、以上の如き処理を逐次実行することで得られる尤度の高い粒子の位置の時系列に基づいて、移動体1の自己位置が逐次推定される(移動体1の推定位置姿勢が逐次決定される)。ただし、本実施形態では、AMCLのアルゴリズムより推定する移動体1の自己位置(推定位置姿勢)のうちの姿勢は、ヨー方向(上下方向の軸周り方向)での移動体1の姿勢であり、ロール方向(移動体1の前後方向の軸周り方向)及びピッチ方向(移動体1の左右方向の軸周り方向)の姿勢は含まれない。
また、AMCLのアルゴリズムでは、移動体1の自己位置の推定処理の実行過程で、推定位置姿勢の確からしさに関連する状態量としての共分散(詳しくは分散共分散)が生成される。そして、第1自己位置推定処理部11は、上記の如くAMCLのアルゴリズムにより推定した移動体1の自己位置(推定位置姿勢)と該推定時の時刻である推定時刻とを逐次出力すると共に、該推定位置姿勢の確からしさに関連する状態量(以降、状態量1という)として、上記共分散(分散共分散)を出力する。
補足すると、第1自己位置推定処理部11は、AMCLのアルゴリズムにより決定した移動体1の推定位置姿勢が所定の範囲から逸脱したり、該推定位置姿勢の変化量(推定処理周期毎の変化量)が所定の範囲から逸脱する等の異常が発生した場合には、推定位置姿勢を自己位置特定処理部15により後述する如く特定された移動体1の自己位置に応じて補正する。例えば、移動体1の推定位置姿勢が、自己位置特定処理部15が直前に特定した自己位置に一致し、もしくは近づけるように補正される。
第2自己位置推定処理部12には、カメラ7の検出情報としての撮像画像(移動体1の上方の天井の撮像画像)が入力される。なお、本実施形態では、カメラ7はステレオカメラであるので、第2自己位置推定処理部12に入力されるカメラ7の検出情報(撮像画像)はステレオ画像(一対の撮像画像)である。ただし、カメラ7は、ステレオカメラに限らず、単眼カメラであってもよい。
そして、第2自己位置推定処理部12は、入力された撮像画像から、自己位置推定用の所定のアルゴリズムにより、移動体1の自己位置を逐次推定する(推定位置姿勢を逐次決定する)。
本実施形態では、第2自己位置推定処理部12は、自己位置推定用のアルゴリズムとして、入力された撮像画像からの特徴点の検出と、該特徴点と、過去に入力された撮像画像から検出された特徴点とのマッチングとを行うアルゴリズムを使用する。より具体的には、第2自己位置推定処理部12は、当該アルゴリズムとして、例えば、Visual_SLAMの一手法としてのORB_SLAMという公知の手法のアルゴリズムを使用する。該アルゴリズムは、本発明における第Aアルリズムに相当するものである。
このORB_SLAMのアルゴリズムでは、次のような処理によって、移動体1の自己位置が逐次推定される。すなわち、移動体1の初期位置姿勢(グローバル座標系で見た移動体1の初期位置及び初期姿勢の組)を設定した上で、カメラ7による撮像画像(ステレオ画像)が第2自己位置推定処理部12に逐次入力されると共に、入力された撮像画像毎に、該撮像画像からORB特徴点を検出する処理が逐次実行される。なお、第2自己位置推定処理部12の処理での移動体1の初期位置姿勢は、例えば、移動体1の移動開始時には、該移動開始時又はその直前に前記第1自己位置推定処理部11が求めた移動体1の推定位置姿勢が設定される。ただし、該初期位置姿勢は、補正処理部16の後述する処理により、適宜、リセット(再設定)される。
そして、新たに入力された撮像画像(時刻tの撮像画像)から検出されたORB特徴点と、一つ前に入力された過去の撮像画像(時刻t−Δtの撮像画像)から検出されたORB特徴点とが比較され、ORB特徴点同士のマッチングが行われる。このマッチングでは、特徴量の差の大きさ(絶対値)が所定の閾値以下となるORB特徴点同士が互いに同じORB特徴点(互いに対応するORB特徴点)であると判定される。なお、Δtは、撮像画像のサンプリング周期である。
そして、当該マッチングに基づいて、上記二つの時刻t,t−Δtの間の期間での移動体1の移動量及び移動方向が推定され、さらに、この移動量及び移動方向の推定値と、時刻t−Δtでの移動体1の推定位置姿勢とから、時刻tでの移動体1の推定位置姿勢が決定される。
より詳しくは、二つの時刻t,t−Δtの間の期間での移動体1の移動量及び移動方向は、ORB_SLAMのアルゴリズムによる自己位置の推定処理用のローカル座標系(初期位置を原点とするローカル座標系)で見た移動量及び移動方向として推定される。そして、時刻t,t−Δtの間の期間での移動体1の移動量及び移動方向の推定値を、グローバル座標系で見た移動量及び移動方向に座標変換し、この座標変換後の移動量及び移動方向を、時刻t−Δtでの移動体1の推定位置姿勢(グローバル座標系での推定位置姿勢)に加えることよって、時刻tでの移動体1の推定位置姿勢(グローバル座標系での推定位置姿勢)が求められる。この場合、上記座標変換は、グローバル座標系で見た移動体1の初期位置姿勢により規定される上記ローカル座標系とグローバル座標系との相対的な位置及び姿勢関係に応じて決定される。
ORB_SLAMのアルゴリズムでは、基本的には、以上の如き処理を逐次実行することで、移動体1の自己位置が逐次推定される(移動体1の推定位置姿勢が逐次決定される)。この場合、ORB_SLAMのアルゴリズムにより求められる推定位置姿勢のうちの姿勢には、ヨー方向の姿勢だけでなくロール方向及びピッチ方向の姿勢も含まれる。
なお、本実施形態では、第2自己位置推定処理部12は、補正処理部16により後述する如く決定される補正パラメータが該補正処理部16から与えられた場合には、上記の如く推定した自己位置(推定位置姿勢)を該補正用パラメータに応じて補正する。この補正処理については後述する。
また、ORB_SLAMのアルゴリズムでは、移動体1の自己位置の推定処理の実行過程で、推定位置姿勢の確からしさに関連する状態量として、移動体1の推定速度・角速度(並進速度及び角速度の推定値)と、検出されたORB特徴点の個数(総数)及びマッチング個数(前記マッチングにより互いに同じあると判定されたORB特徴点の個数)と、誤差関数の誤差値(前記マッチングにおける特徴量の差)と、推定状態(移動体1の推定速度・角速度の推定精度の高低度合い)とが生成される。
そして、第2自己位置推定処理部12は、推定した移動体1の自己位置(推定位置姿勢)と該推定時の時刻である推定時刻とを逐次出力すると共に、該推定位置姿勢の確からしさに関連する状態量(以降、状態量2という)として、移動体1の推定速度・角速度(並進速度及び角速度の推定値)と、検出されたORB特徴点の個数及びマッチング個数と、誤差関数の誤差値(前記マッチングにおける特徴量の差)と、推定状態(移動体1の推定速度・角速度の推定精度の高低度合い)とを出力する。なお、ORB特徴点の個数及びマッチング個数の代わりに、ORB特徴点の個数(総数)に対するマッチング個数の割合を出力するようにしてもよい。
第1及び第2自己位置推定処理部11,12からそれぞれ出力される前記状態量1,2は、重み係数学習処理部14に入力される。この重み係数学習処理部14は、本実施形態では、ニューラルネットワークにより構成される。そして、このニューラルネットワークは、前記状態量1,2から構成される特徴ベクトルをマルチモーダル情報として用いるマルチモーダル学習があらかじめ実施されている。
このマルチモーダル学習は、より詳しくは、種々様々な状態量1,2から構成される特徴ベクトルから、第1及び第2自己位置推定処理部11,12のそれぞれのアルゴリズムによる移動体1の自己位置の推定処理が、他のアルゴリズムに比してどの程度適切になされているかの度合いに相当する重み係数(第1及び第2自己位置推定処理部11,12から出力される推定位置姿勢のそれぞれに対応する重み係数)を生成する学習である。
重み係数学習処理部14のニューラルネットワークは、このようなマルチモーダル学習があらかじめ実施されている。このため、第1及び第2自己位置推定処理部11,12のそれぞれから状態量1,2が入力された重み係数学習処理部14は、該状態量B,Aにより構成される特徴ベクトルから、第1及び第2自己位置推定処理部11,12のそれぞれに対応する重み係数をニューラルネットワークにより生成して出力する。
この場合、当該ニューラルネットワークは、基本的には、第1及び第2自己位置推定処理部11,12のそれぞれが出力する移動体1の推定位置姿勢のそれぞれの確からしさがより高いものほど、重み係数が大きな値となるように第1及び第2自己位置推定処理部11,12のそれぞれに対応する重み係数を生成して出力する。
例えば第1自己位置推定処理部11による移動体1の自己位置の推定処理が、第2自己位置推定処理部12に比して、より適切になされる状況では、第1自己位置推定処理部13に対応する重み係数が、第2自己位置推定処理部14に対応する重み係数よりも大きな値になるようにそれぞれの重み係数が生成される。
また、例えば、第2自己位置推定処理部12による移動体1の自己位置の推定処理が、第1自己位置推定処理部11に比して、より適切になされる状況では、第2自己位置推定処理部12に対応する重み係数が、第1自己位置推定処理部11に対応する重み係数よりも大きな値になるようにそれぞれの重み係数が生成される。
重み係数学習処理部14から出力される第1及び第2自己位置推定処理部11,12のそれぞれに対応する重み係数は、自己位置特定処理部15に入力される。また、該自己位置特定処理部15には、第1及び第2自己位置推定処理部11,12のそれぞれから、移動体1の推定位置姿勢及び推定時刻が入力される。
そして、自己位置特定処理部15は、第1及び第2自己位置推定処理部11,12のそれぞれの互いに同一時刻での推定位置姿勢を、入力された重み係数に応じて合成してなる位置姿勢を、移動体1の自己位置として特定する。すなわち、第1及び第2自己位置推定処理部11,12のそれぞれの推定位置姿勢に,それぞれに対応する重み係数を乗じたもの総和が移動体1の自己位置として特定される。なお、このとき各重み係数の和は1である。また、本実施形態では、自己位置特定処理部15が特定する移動体1の自己位置のうちの姿勢は、ヨー方向での移動体1の姿勢であり、ロール方向及びピッチ方向の姿勢は含まれない。
本実施形態では、自己位置特定処理部15は、以上説明した如く移動体1の自己位置を逐次特定する。そして、自己位置特定処理部15は、特定した自己位置と、それに対応する推定時刻との組を出力する。
本実施形態の自己位置推定処理装置10は、上記の如く第1及び第2自己位置推定処理部11,12,重み係数学習処理部14及び自己位置特定処理部15の処理を実行しながら、さらに補正処理部16の処理を実行する。なお、以降の説明では、第1自己位置推定処理部11が推定した自己位置(推定位置姿勢)を第1推定位置姿勢、第2自己位置推定処理部12が推定した自己位置(推定位置姿勢)を第2推定位置姿勢、自己位置特定処理部15が特定した自己位置を特定位置姿勢ということがある。
補正処理部16には、第1自己位置推定処理部11から出力される第1推定位置姿勢及び推定時刻の組と、第2自己位置推定処理部12から出力される第2推定位置姿勢及び推定時刻の組と、自己位置特定処理部15から出力される特定位置姿勢及び推定時刻の組とが入力される。そして、補正処理部16は、入力された第1推定位置姿勢、第2推定位置姿勢及び特定位置姿勢のデータをそれぞれに対応する推定時刻と共に、図示しないメモリに時系列的に記憶保持する。この場合、メモリに記憶保持されるデータは、最新のものから所定時間前までの期間で補正処理部15に入力されたデータである。
そして、補正処理部16は、まず、第2推定位置姿勢が入力される毎に、第2自己位置推定処理部12による推定処理が正常になされているか否かを判断する。ここで、本実施形態では、移動体1は、天井を有する建物内の床面上を移動するので、該移動体1の姿勢は、ロール方向(移動体1の前後方向の軸周り方向)、あるいは、ピッチ方向(移動体1の左右方向の軸周り方向)にはさほど変化しない。そこで、補正処理部16は、例えば、第2自己位置推定処理部12が最新の処理周期の時刻で新たに決定した第2推定位置姿勢のうちの姿勢が、その1つ前の処理周期の時刻で決定した第2推定位置姿勢のうちの姿勢から、ロール方向又はピッチ方向に所定量よりも大きく変化した場合には、第2自己位置推定処理部12による移動体1の自己位置の推定処理が正常になされていないと判断する。
そして、この場合には、補正処理部16は、最新の第2推定位置姿勢に対応する推定時刻又はこれにほぼ一致する時刻で第1自己位置推定処理部11から出力された第1推定位置姿勢を、第2自己位置推定処理部12の処理での移動体1の新たな初期位置姿勢として再設定するように第2自己位置推定処理部12に指令すると共に、該第1推定位置姿勢を第1自己位置推定処理部12に入力する。
このとき、第2自己位置推定処理部12は、入力された第1推定位置姿勢を、移動体1の新たな初期位置姿勢として再設定し、ひいては、第2自己位置推定処理部12の推定処理でのローカル座標系を再設定する。そして、第2自己位置推定処理部12は、以後は、再設定したローカル座標系を用いて移動体1の自己位置の推定処理を実行する。
また、第2推定位置姿勢のうちの姿勢の、ロール方向及びピッチ方向への変化が所定量以下に留まっている場合には、補正処理部16は、第2自己位置推定処理部12による移動体1の自己位置の推定処理が正常になされていると判断する。
この場合には、補正処理部16は、例えば、所定期間が経過する毎に(ひいては、間欠的に)、以下に説明する補正パラメータの決定処理を実行する。なお、該所定期間は、例えば、その期間の開始時から、第2自己位置推定処理部12が取得するカメラ7の撮像画像のサンプリング数(フレーム数)が所定数に達するまでの期間である。
上記補正パラメータの決定処理では、補正処理部16は、移動体1の移動開始後、1回目の所定期間が経過したときには、該1回目の所定期間内で、第2自己位置推定処理部12から出力された第2推定位置姿勢の時系列データと、第1自己位置推定処理部11から出力された第1推定位置姿勢の時系列データとを図示しないメモリから抽出する。また、2回目以降の所定期間が経過したときには、各回の所定期間内で、第1自己位置推定処理部11から出力された第1推定位置姿勢の時系列データと、自己位置特定処理部15から出力された特定位置姿勢の時系列データとを図示しないメモリから抽出する。なお、2回目以降の所定期間の起点のタイミングは、第2自己位置指定処理部12での移動体1の初期位置姿勢を前記した如く再設定したときには、その再設定時が、新たな所定期間の起点のタイミングとされる。
ここで、第2自己位置推定処理部12の推定処理は、移動体1の初期位置姿勢から、逐次求める移動体1の移動量及び移動方向を積算していく処理である。このため、移動体1の初期位置姿勢(グローバル座標系で見た初期位置姿勢)の誤差、あるいは、第2自己位置推定処理部12が、逐次求める移動体1の移動量及び移動方向の推定誤差等に起因して、該第2自己位置推定処理部12が逐次求める移動体1の第2推定位置姿勢の誤差が積算的に増大していく場合がある。
ひいては、第2推定位置姿勢の時系列データにより示される移動体1の移動軌道(以降、移動軌道Lbという)が、第1推定位置姿勢の時系列データ又は特定位置姿勢の時系列データにより示される移動体1の移動軌道(以降、移動軌道Laという)に対して、図3Aに例示する如く乖離していく場合がある。また、本実施形態では、自己位置特定処理部15は、前記した如く移動体1の特定位置姿勢を求めるので、移動体1の移動開始直後では、該自己位置特定処理部15が求める特定位置姿勢の安定性が乏しい可能性がある。
そこで、補正処理部16は、移動体1の移動開始直後の1回目の所定期間の経過時には、該所定期間内で、第2自己位置推定処理部12から出力された第2推定位置姿勢の時系列データと、第1自己位置推定処理部11から出力された第1推定位置姿勢の時系列データとを用いて、第2推定位置姿勢の時系列データにより示される移動体1の移動軌道Lbを、第1推定位置姿勢の時系列データにより示される移動体1の移動軌道Laに近づけように回転変換させる回転変換行列Rを決定する。該回転変換行列Rは、例えば、公知の点群処理ライブラリであるPCL(Point Cloud Library)を用いて決定される。図3Bに示す移動軌道Lb’は、移動軌道Lbを回転変換行列Rにより回転変換した後の移動軌道を表している。
さらに、補正処理部16は、第2推定位置姿勢の時系列データにより示される移動体1の移動軌道Lbを回転変換行列Rにより回転変換してなる移動軌道Lb’の終端を、図3Cに例示する如く、第1推定位置姿勢の時系列データにより示される移動体1の移動軌道Laの終端に一致させるよう並進移動させる並進変換操作量T(例えば並進移動ベクトル)を決定する、該並進変換操作量Tは、回転変換後の移動軌道Lb’の終端の位置(グローバル座標系での位置)と、移動軌道L2の移動体1の移動軌道の終端の位置(グローバル座標系での位置)とから求められる。図3Cに示す移動軌道Lb’’は、移動軌道Lb’を並進変換操作量Tにより並進変換した後の移動軌道を表している。
2回目以降の各回の所定域間の経過時には、補正処理部16は、第1推定位置姿勢の時系列データの代わりに、自己位置特定処理部15から出力された特定位置姿勢の時系列データを用いて、上記と同様に、回転変換行列R及び並進変換操作量Tを決定する。
本実施形態では、補正処理部16は、基本的には、所定期間の経過毎に、上記の如く決定する回転変換行列R及び並進変換操作量Tを、第2推定位置姿勢を補正するための補正パラメータとして第2自己位置推定処理部12に出力する。ただし、本実施形態では、第1自己位置推定処理部11が求める推定位置姿勢の姿勢と、自己位置特定処理部15が特定する特定位置姿勢の姿勢とは、ヨー方向の姿勢であるので、回転変換行列Rは、第2推定位置姿勢をヨー方向又は、ほぼヨー方向に回転させるものであることが望ましい。
そこで、本実施形態では、補正処理部16は、上記の如く決定した回転変換行列Rのうちのヨー方向の回転変換に係る成分(具体的には、3行3列の成分)が「1」に十分近い値である場合(詳しくは、該成分と「1」との偏差の絶対値がゼロ近辺の所定の閾値よりも小さい場合)にだけ、回転変換行列R及び並進変換操作量Tを、補正パラメータとして第2自己位置推定処理部12に出力すると共に、該補正パラメータによる第2推定位置姿勢の補正を第2自己位置推定処理部12に指令する。
このとき、第2自己位置推定処理部12は、以後の推定処理において、前記した如くORB_SLAMのアルゴリズムにより求めた第2推定位置姿勢を、補正処理部16から入力された補正パラメータ(回転変換行列R及び並進変換操作量T)により補正する。すなわち、第2自己位置推定処理部12は、ORB_SLAMのアルゴリズムにより求めた第2推定位置姿勢を、回転変換行列Rにより回転変換する共に、並進変換操作量Tにより並進変換することで、該2推定位置姿勢を補正する。そして、第2自己位置推定処理部12は、この補正後の第2推定位置姿勢を出力する。
また、補正処理部16は、回転変換行列Rのうちのヨー方向の回転変換に係る成分が「1」に十分近い値でない場合(該成分と「1」との偏差の絶対値がゼロ近辺の所定の閾値よりも大きい場合)には、第2自己位置推定処理部12に、第2推定位置姿勢の補正を指令しないと共に、回転変換行列R及び並進変換操作量Tを出力しない。このとき、第2自己位置推定処理部12は、ORB_SLAMのアルゴリズムにより求めた第2推定位置姿勢を補正せずに出力する。
本実施形態では、以上説明した如く、自己位置推定処理装置10の処理が実行される。この場合、VISUAL_SLAMの一例としてのORB_SLAMのアルゴリズムにより移動体1の自己位置を推定する第2自己位置推定処理部12が求める第2推定位置姿勢は、補正処理部17が所定期間の経過毎に(間欠的に)、第1自己位置推定処理部11が出力する第1推定位置姿勢又は自己位置特定処理部12が出力する特定位置姿勢を用いて決定する補正パラメータ(回転変換行列R及び並進変換操作量T)に応じて補正される。これにより、第2自己位置推定処理部12の推定処理での移動体1の初期位置姿勢の誤差や、該推定処理で逐次求める移動体1の移動量及び移動方向の誤差に起因して、第2推定位置姿勢の誤差が積算的に増大していくのが防止される。ひいては、自己位置特定処理部15が出力する特定位置姿勢の信頼性を維持することを高いロバスト性で実現できる。
また、補正パラメータとしての回転変換行列R及び並進変換操作量Tは、第2自己位置推定処理部12が出力する第2推定位置姿勢の時系列データにより示される移動軌道Lbを、第1自己位置推定処理部11が出力する第1推定位置姿勢又は自己位置特定処理部12が出力する特定位置姿勢の時系列データより示される移動軌道Laに近づけるように決定される。このため、補正パラメータとして適切な回転変換行列R及び並進変換操作量Tを決定することができる。
また、実施形態では、第1及び第2自己位置推定処理部11,12のそれぞれにより推定された自己位置(第1推定位置姿勢及び第2推定位置姿勢)を、重み係数学習処理部14により第1及び第2自己位置推定処理部11〜13のそれぞれ毎の状態量1,2に応じて決定される重み係数により合成することによって移動体1の自己位置が特定される。
そして、この場合、重み係数学習処理部14は、第1及び第2自己位置推定処理部11,12のそれぞれ毎の状態量1,2を入力情報とするものであるので、移動体1の種々様々な移動環境で、状態量1,2に応じて出力すべき重み係数を事前に学習しておくことができる。
そのため、自己位置推定処理装置10は、移動体1の種々様々な移動環境で、移動体1の自己位置を高い信頼性で推定(特定)することができる。
なお、本発明は以上説明した実施形態に限定されるものではなく、他の実施形態を採用することもできる。以下に、他の実施形態をいくつか例示する。
前記実施形態では、推定処理部16は、2回目以降の各所定期間の経過時には、自己位置特定処理部15から出力された特定位置姿勢の時系列データを用いて補正パラメータ(回転変換行列R及び並進変換操作量T)を決定した。ただし、2回目以降の各所定期間の経過時においても、第1自己位置推定処理部11から出力された第1推定位置姿勢の時系列データを用いて補正パラメータ(回転変換行列R及び並進変換操作量T)を決定してもよい。
あるいは、例えば、第1自己位置推定処理部11から出力される状態量1、もしくは、重み係数学習処理部14が決定する重み係数に基づいて、第1自己位置推定処理部11から出力された第1推定位置姿勢の信頼性又は確からしさの高低を判断し、その判断結果に応じて、第1推定位置姿勢の時系列データと特定位置姿勢の時系列データとのいずれを補正パラメータを決定するために使用するかを選定するようにしてもよい。より具体的には、第1推定位置姿勢の信頼性又は確からしさが高いと判断される場合には、第1推定位置姿勢の時系列データを補正パラメータを決定するために使用し、そうでない場合には、特定位置姿勢の時系列データを補正パラメータを決定するために使用するようにしてもよい。
また、前記実施計形態では、第1自己位置推定処理部11により求める第1推定位置姿勢のうちの姿勢と、自己位置特定処理15により求める特定位置姿勢のうちの姿勢とは、ヨー方向の姿勢だけであるが、ロール方向の姿勢及びピッチ方向の姿勢を含んでいてもよい。
また、第2自己位置推定処理部12の推定処理用のアルゴリズムは、ORG_SLAMに限らず、他のSLAMのアルゴリズムであってもよい。
また、前記実施形態では、自己位置推定処理部として、二つの自己位置推定処理部(第1及び第2自己位置推定処理部11,12)を備えたものを例示したが、例えば第1自己位置推定処理部11の代わりに、あるいは、第1及び第2自己位置推定処理部11,12に加えて、他のアルゴリズムにより移動体1の自己位置を推定し得る他の自己位置推定処理部を備えていてもよい。当該他の自己位置推定処理部としては、例えば、移動体1に搭載され得る磁気センサと、前記オドメトリ用センサ5と、移動体1の移動環境の磁気状態のマップとを用いて移動体1の自己位置を推定する自己位置推定処理部を採用し得る。この場合の自己位置の推定処理のアルゴリズとしては、第1自己位置推定処理部11と同様のアルゴリズム(AMCLのアルゴリズム)を使用し得る。
なお、自己位置推定処理装置に、3つ以上の自己位置推定処理部を備えた場合には、前記実施形態と同様の手法で、各自己位置推定処理部に対応する重み係数を重み係数学習処理部14により決定し、それらの重み係数を用いて、各自己位置推定処理部により推定した自己位置を合成することで、移動体1の自己位置を特定すればよい。
また、前記実施形態では、重み係数学習処理部14として、マルチモーダル学習を行うニューラルネットワークを例示した。ただし、重み係数学習処理部14として、例えば、LSTM(Long short-term memory)等の再帰型ニューラルネットワーク(RNN)等を使用してもよい。
また、前記実施形態では第2自己位置推定処理部12に係る状態量2として、移動体1の推定速度・角速度(並進速度及び角速度の推定値)と、検出されたORB特徴点の個数及びマッチング個数と、誤差関数の誤差値(前記マッチングにおける特徴量の差)と、推定状態とを用いた。ただし、これらの状態量のうちの一部の状態量、例えば移動体1の推定速度・角速度、誤差関数の誤差値、推定状態等を省略してもよい。
また、複数の自己位置推定処理部によりそれぞれ推定した自己位置から、移動体1の実際の自己位置を特定する手法は、前記実施形態で説明した手法に限られない。例えば、移動体1の動作状態、あるいは周囲環境の状態に基づいて、複数の自己位置推定処理部から選定した1つの自己位置推定処理部で推定された自己位置を、そのまま移動体1の実際の自己位置として特定するようにしてもよい。
また、前記実施形態では、測距センサとしてLRF6を使用した。ただし、LRF6の代わりに、例えば超音波式の測距センサ等を使用してもよい。
また、前記実施形態では、移動体として、車輪型の移動体1を例示した。ただし、本発明の適用対象の移動体は、車輪型の移動体に限らず、例えば、脚式の移動体、倒立振子型の移動体等であってよい。
1…移動体、5…オドメトリ用センサ、6…レーザ・レンジ・ファインダ(測距センサ)、7…カメラ(センサ)。

Claims (5)

  1. 複数のセンサの検出情報から、該複数のセンサのうちの一つ以上のセンサの検出情報を各々用いる複数のアルゴリズムのそれぞれにより移動体の自己位置を推定し、該複数のアルゴリズムのそれぞれにより得られた前記自己位置の推定値から、前記移動体の自己位置を特定する自己位置推定方法であって、
    前記複数のアルゴリズムは、SLAM(Simultaneous Localization and Mapping)のアルゴリズムである第Aアルゴリズムと、該SLAMと異なるアルゴリズムである第Bアルゴリズムとを含んでおり、
    前記第Bアルゴリズムにより得られた前記自己位置の推定値である第B自己位置推定値と、前記特定した自己位置である自己位置特定値とのうちのいずれか一方の自己位置に応じて、前記第Aアルゴリズムにより得られる前記自己位置の推定値である第A自己位置推定値を補正することを間欠的に実行する補正ステップを備えることを特徴とする自己位置推定方法。
  2. 請求項1記載の自己位置推定方法において、
    前記補正ステップでは、所定期間における前記第B自己位置推定値及び前記自己位置特定値うちの前記一方の自己位置の時系列と、該所定期間における前記第A自己位置推定値の時系列とに基づいて、前記第A自己位置推定値の時系列により示される軌道を、前記一方の自己位置の時系列により示される軌道に近づけるように前記第A自己位置推定値を補正するためのパラメータを決定し、当該決定したパラメータを用いて前記所定期間以後の前記第A自己位置推定値を補正することを特徴とする自己位置指定方法。
  3. 請求項1又は2記載の自己位置推定方法において、
    前記複数のセンサは、前記移動体の外界を撮像するカメラを含み、
    前記第Aアルゴリズは、前記移動体の自己位置の推定のために、前記カメラの撮像画像から特徴点を検出し、当該検出された特徴点と、該撮像画像よりも過去の撮像画像から検出された特徴点とのマッチングを行う処理を逐次実行するように構成されたVisual_SLAMのアルゴリズムであることを特徴とする自己位置推定方法。
  4. 請求項1〜3のいずれか1項に記載の自己位置推定方法において、
    前記複数のセンサは、前記移動体の外界物までの距離を測定する測距センサを含み、
    前記第Bアルゴリズムは、前記測距センサによる測距データと、粒子フィルタとを用いて前記移動体の自己位置を推定するアルゴリズムであることを特徴とする自己位置推定方法。
  5. 請求項1〜4のいずれか1項に記載の自己位置推定方法において、
    前記複数のアルゴリズムのそれぞれ毎に、各アルゴリズムの推定処理により得られる一つ以上の状態量であって、各アルゴリズムにより推定された前記自己位置の確からしさに関連する状態量を学習済のニューラルネットワークに入力し、当該入力された状態量から該ニューラルネットワークにより前記複数のアルゴリズムのそれぞれ毎の重み係数を決定するステップをさらに備えており、
    前記複数のアルゴリズムのそれぞれにより推定された前記自己位置を、前記決定された重み係数により合成して得られる自己位置を、前記移動体の自己位置特定値として特定することを特徴とする自己位置推定方法。
JP2019057026A 2019-03-25 2019-03-25 自己位置推定方法 Active JP7336223B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019057026A JP7336223B2 (ja) 2019-03-25 2019-03-25 自己位置推定方法
CN202010112109.XA CN111738047B (zh) 2019-03-25 2020-02-24 自身位置推测方法
US16/820,725 US11662742B2 (en) 2019-03-25 2020-03-17 Self-position estimation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019057026A JP7336223B2 (ja) 2019-03-25 2019-03-25 自己位置推定方法

Publications (2)

Publication Number Publication Date
JP2020160594A true JP2020160594A (ja) 2020-10-01
JP7336223B2 JP7336223B2 (ja) 2023-08-31

Family

ID=72605828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019057026A Active JP7336223B2 (ja) 2019-03-25 2019-03-25 自己位置推定方法

Country Status (3)

Country Link
US (1) US11662742B2 (ja)
JP (1) JP7336223B2 (ja)
CN (1) CN111738047B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023520278A (ja) * 2021-02-25 2023-05-17 シェンチェン テトラス.エーアイ テクノロジー カンパニー リミテッド 測位方法、装置、電子機器、記憶媒体、プログラム及び製品
DE112022005562T5 (de) 2022-01-24 2024-09-12 Mitsubishi Electric Corporation Slam-einrichtung, slam-angriff-gegenmassnahmeprogramm und autonomes mobilitätsmittel

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022042630A (ja) * 2020-09-03 2022-03-15 本田技研工業株式会社 自己位置推定方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014115247A (ja) * 2012-12-12 2014-06-26 Honda Motor Co Ltd 車両位置推定装置およびセンサ情報統合装置
JP2014211862A (ja) * 2013-04-02 2014-11-13 パナソニック株式会社 自律移動装置及び自律移動装置の自己位置推定方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19859169A1 (de) * 1997-12-19 1999-06-24 Univ Carnegie Mellon Lernsystem und Verfahren zur Optimierung der Steuerung autonomer Erdbewegungsmaschinen
KR100834761B1 (ko) 2005-11-23 2008-06-05 삼성전자주식회사 이동 로봇의 자기 위치 인식 방법 및 장치
JP5370122B2 (ja) * 2009-12-17 2013-12-18 富士通株式会社 移動体位置推定装置及び移動体位置推定方法
KR102016551B1 (ko) * 2014-01-24 2019-09-02 한화디펜스 주식회사 위치 추정 장치 및 방법
JP2015201734A (ja) * 2014-04-07 2015-11-12 キヤノン株式会社 画像処理装置、画像処理装置の制御方法およびプログラム
WO2016185659A1 (ja) * 2015-05-15 2016-11-24 株式会社デンソー 移動体位置検出装置、移動体位置検出方法
JP6516261B2 (ja) * 2015-10-08 2019-05-22 国立大学法人東京工業大学 計測システム
WO2017130397A1 (ja) * 2016-01-29 2017-08-03 富士通株式会社 位置推定装置、位置推定方法および位置推定プログラム
US10593060B2 (en) * 2017-04-14 2020-03-17 TwoAntz, Inc. Visual positioning and navigation device and method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014115247A (ja) * 2012-12-12 2014-06-26 Honda Motor Co Ltd 車両位置推定装置およびセンサ情報統合装置
JP2014211862A (ja) * 2013-04-02 2014-11-13 パナソニック株式会社 自律移動装置及び自律移動装置の自己位置推定方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023520278A (ja) * 2021-02-25 2023-05-17 シェンチェン テトラス.エーアイ テクノロジー カンパニー リミテッド 測位方法、装置、電子機器、記憶媒体、プログラム及び製品
JP7387002B2 (ja) 2021-02-25 2023-11-27 シェンチェン テトラス.エーアイ テクノロジー カンパニー リミテッド 測位方法、装置、電子機器、記憶媒体、プログラム及び製品
DE112022005562T5 (de) 2022-01-24 2024-09-12 Mitsubishi Electric Corporation Slam-einrichtung, slam-angriff-gegenmassnahmeprogramm und autonomes mobilitätsmittel

Also Published As

Publication number Publication date
US20200310435A1 (en) 2020-10-01
US11662742B2 (en) 2023-05-30
CN111738047B (zh) 2024-08-13
JP7336223B2 (ja) 2023-08-31
CN111738047A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN106780608B (zh) 位姿信息估计方法、装置和可移动设备
CN112985416B (zh) 激光与视觉信息融合的鲁棒定位和建图方法及系统
CN112097768B (zh) 机器人位姿的确定方法、装置、机器人及存储介质
US9386209B2 (en) Method and apparatus for estimating position
US9377310B2 (en) Mapping and positioning system
JP7034264B2 (ja) 自己位置推定方法
US11662742B2 (en) Self-position estimation method
KR20190041315A (ko) 관성 기반 항법 장치 및 상대사전적분에 따른 관성 기반 항법 방법
JP4171459B2 (ja) 移動体の回転移動量利用方法とその装置、及びコンピュータプログラムを保存するコンピュータ読取り可能な記録媒体
JP2008006519A (ja) ロボット装置及びロボット装置の制御方法
JP6229041B2 (ja) 基準方向に対する移動要素の角度偏差を推定する方法
Oriolo et al. Vision-based odometric localization for humanoids using a kinematic EKF
CN114111772B (zh) 一种基于数据手套的水下机器人软体作业手位置跟踪方法
JP2002046087A (ja) 3次元位置計測方法及び計測装置並びにロボット制御装置
JP2022042630A (ja) 自己位置推定方法
CN117015719A (zh) 用于确定刚体的运动状态的方法
Malartre et al. Digital elevation map estimation by vision-lidar fusion
Nguyen et al. Development of a smart shoe for building a real-time 3d map
CN114791284B (zh) 机器人之中电子罗盘的标定方法、装置及机器人
CN118500388B (zh) 一种飞行器的姿态校准方法、飞行器、程序产品及介质
WO2023162017A1 (ja) 位置姿勢推定装置、位置姿勢推定システム、およびセンサ設置方法
Folio et al. A sensor-based controller able to treat total image loss and to guarantee non-collision during a vision-based navigation task
Kim et al. A robotic pan and tilt 3-d target tracking system by data fusion of vision, encoder, accelerometer, and gyroscope measurements
Le Gentil et al. A Gaussian Process approach for IMU to Pose Spatiotemporal Calibration
Unterholzner et al. Vision-based online-calibration of inertial gaze stabilization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221025

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230630

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230821

R150 Certificate of patent or registration of utility model

Ref document number: 7336223

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150