JP7087290B2 - 自律移動装置、自律移動方法及びプログラム - Google Patents

自律移動装置、自律移動方法及びプログラム Download PDF

Info

Publication number
JP7087290B2
JP7087290B2 JP2017131894A JP2017131894A JP7087290B2 JP 7087290 B2 JP7087290 B2 JP 7087290B2 JP 2017131894 A JP2017131894 A JP 2017131894A JP 2017131894 A JP2017131894 A JP 2017131894A JP 7087290 B2 JP7087290 B2 JP 7087290B2
Authority
JP
Japan
Prior art keywords
map
unit
drive system
self
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.)
Active
Application number
JP2017131894A
Other languages
English (en)
Other versions
JP2019016089A (ja
Inventor
泰士 前野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2017131894A priority Critical patent/JP7087290B2/ja
Priority to US16/026,168 priority patent/US10698416B2/en
Priority to CN201810727535.7A priority patent/CN109213146B/zh
Publication of JP2019016089A publication Critical patent/JP2019016089A/ja
Application granted granted Critical
Publication of JP7087290B2 publication Critical patent/JP7087290B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0016Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement characterised by the operator's input 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/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0022Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement characterised by the communication link
    • 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/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • 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/0219Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
    • 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/0242Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
    • 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
    • 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/0248Control 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 in combination with a laser

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、自律移動装置、自律移動方法及びプログラムに関する。
用途に応じて自律的に移動する自律移動装置が普及してきている。例えば、屋内の掃除のために自律的に移動する自律移動装置が知られている。一般的に、このような自律移動装置は、実空間の地図の作成と、実空間内での自己位置の推定を行う必要がある。
実空間の地図を作成するための手法としては、例えばSLAM(Simultaneous Localization And Mapping)法が知られている。SLAM法では、カメラの撮影する動画像中の複数のフレームから、同一の特徴点を追跡することによって、自己位置(自機の3次元位置)と特徴点の3次元位置とを交互に推定する処理を行う。例えば特許文献1には、SLAM法を用いて周囲の地図を作成しながら移動することができる移動式ロボットが開示されている。
特開2016-52515号公報
SLAM法は、特徴点の3次元位置を用いて自己位置を推定するため、3次元位置を推定可能な特徴点の個数が少ないと、自己位置の推定精度が低下したり、自己位置の推定が不可能(ロスト状態)になったりする。自律移動装置が作成する地図は、自己位置の情報を用いて作成するため、自己位置の推定精度が低下すると、作成する地図の精度も低下してしまう。そして、特許文献1には、高精度の地図を作成できない(作成する地図の精度が低下してしまう)場合にどのような処理をすべきかについての記載はない。したがって、従来の自律移動装置では、高精度の地図を作成できない場合の対応に改善の余地がある。
本発明は、上記問題を解決するためになされたものであり、自律移動装置の高精度の地図を作成できない場合の対応を改善することを目的とする。
上記目的を達成するため、本発明に係る自律移動装置は、駆動部からの情報に基づいて自己位置を推定する駆動系位置推定部と、前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定部と、周囲の物体の位置を取得する物体位置取得部と、前記駆動系位置推定部又は前記非駆動系位置推定部が推定した自己位置と、前記物体位置取得部が取得した物体の位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成部と、前記駆動系位置推定部と前記非駆動系位置推定部とのうち前記非駆動系位置推定部が前記自己位置を推定できなくなったロスト状態の開始タイミングから所定の時間以上前記ロスト状態が継続した場合に、前記開始タイミングと前記所定の時間とによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を前記ロスト状態から前記非駆動系位置推定部が前記自己位置を推定できるトラッキング状態になったときに使用する、地図制御部と、を備え、前記地図作成部は、前記環境地図を前記地図記憶部に作成する際は、前記トラッキング状態のときには少なくとも前記非駆動系位置推定部が推定した自己位置が活用されるように前記環境地図を前記地図記憶部に作成し、前記開始タイミングから前記基準タイミングまでの間は前記駆動系位置推定部が推定した自己位置に基づいて前記環境地図を前記地図記憶部に作成する、ことを特徴とする。
また、本発明に係る自律移動方法は、自律移動装置が実行する自律移動方法であって、駆動部からの情報に基づいて自己位置を推定する駆動系位置推定ステップと、前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定ステップと、周囲の物体の位置を取得する物体位置取得ステップと、前記駆動系位置推定ステップ又は前記非駆動系位置推定ステップで推定した自己位置と、前記物体位置取得ステップで取得した物体の位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成ステップと、前記駆動系位置推定ステップと前記非駆動系位置推定ステップとのうち前記非駆動系位置推定ステップで前記自己位置を推定できなくなったロスト状態の開始タイミングから所定の時間以上前記ロスト状態が継続した場合に、前記開始タイミングと前記所定の時間とによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を前記ロスト状態から前記非駆動系位置推定ステップで前記自己位置を推定できるトラッキング状態になったときに使用する、地図制御ステップと、を含み、前記地図作成ステップは、前記環境地図を前記地図記憶部に作成する際は、前記トラッキング状態のときには少なくとも前記非駆動系位置推定ステップで推定した自己位置が活用されるように前記環境地図を前記地図記憶部に作成し、前記開始タイミングから前記基準タイミングまでの間は前記駆動系位置推定ステップで推定した自己位置に基づいて前記環境地図を前記地図記憶部に作成する、ことを特徴とする。
また、本発明に係るプログラムは、コンピュータに、駆動部からの情報に基づいて自己位置を推定する駆動系位置推定ステップ、前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定ステップ、周囲の物体の位置を取得する物体位置取得ステップ、前記駆動系位置推定ステップ又は前記非駆動系位置推定ステップで推定した自己位置と、前記物体位置取得ステップで取得した物体の位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成ステップ、及び、前記駆動系位置推定ステップと前記非駆動系位置推定ステップとのうち前記非駆動系位置推定ステップで前記自己位置を推定できなくなったロスト状態の開始タイミングから所定の時間以上前記ロスト状態が継続した場合に、前記開始タイミングと前記所定の時間とによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を前記ロスト状態から前記非駆動系位置推定ステップで前記自己位置を推定できるトラッキング状態になったときに使用する、地図制御ステップ、を実行させ、前記地図作成ステップは、前記環境地図を前記地図記憶部に作成する際は、前記トラッキング状態のときには少なくとも前記非駆動系位置推定ステップで推定した自己位置が活用されるように前記環境地図を前記地図記憶部に作成し、前記開始タイミングから前記基準タイミングまでの間は前記駆動系位置推定ステップで推定した自己位置に基づいて前記環境地図を前記地図記憶部に作成する、ことを特徴とする。
本発明によれば、自律移動装置の高精度の地図を作成できない場合の対応を改善することができる。
本発明の実施形態1に係る自律移動装置の機能構成を示す図である。 実施形態1に係る自律移動装置の外観を示す図である。 (A)測域センサでのスキャン例を示す図である。(B)測域センサで得られる測距データの例を示す図である。 実施形態1に係る自律移動装置のソフトウェアモジュールの全体構成を示す図である。 実施形態1に係る自律移動装置が解決する課題を説明する図である。 実施形態1に係る自律移動装置による課題解決方法を説明する図である。 実施形態1に係る地図作成モジュールのフローチャートである。 実施形態1に係る自己位置推定処理のフローチャートである。 実施形態1に係る移動制御モジュールのフローチャートである。 本発明の実施形態2に係る自律移動装置による課題解決方法を説明する図である。 実施形態2に係る自律移動装置の機能構成を示す図である。 実施形態2に係る地図作成モジュールのフローチャートである。 本発明の変形例2に係る自律移動装置の機能構成を示す図である。 変形例2に係る自律移動装置の外観を示す図である。 変形例2に係る自律移動装置のソフトウェアモジュールの全体構成を示す図である。 変形例2に係る地図作成モジュールのフローチャートである。
以下、本発明の実施形態に係る自律移動装置、自律移動方法及びプログラムについて、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
(実施形態1)
本発明の実施形態に係る自律移動装置は、周囲の地図を作成しながら、用途に応じて自律的に移動する装置である。この用途とは、例えば、警備監視用、屋内掃除用、ペット用、玩具用等である。
図1に示すように、本発明の実施形態1に係る自律移動装置100は、制御部10、記憶部20、センサ部30、撮像部41、駆動部42、通信部43、を備える。
制御部10は、CPU(Central Processing Unit)等で構成され、記憶部20に記憶されたプログラムを実行することにより、後述する各部(駆動系位置推定部11、非駆動系位置推定部12、物体位置取得部13、地図作成部14、移動制御部15、地図制御部16)の機能を実現する。また、制御部10は、タイマー(図示せず)を備え、経過時間をカウントすることができる。
記憶部20は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成され、機能的に、画像記憶部21、特徴点記憶部22、地図記憶部23、地図保管部24及び測距データ記憶部25を含む。ROMには制御部10のCPUが実行するプログラムや、プログラムを実行する上で予め必要なデータが記憶されている。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
画像記憶部21には、撮像部41が撮影した画像が記憶される。ただし、記憶容量を節約するために、撮影した全ての画像を記憶しなくてもよい。自律移動装置100は、画像記憶部21に記憶された複数の画像を用いて、SLAM処理により、自機位置(自己位置及び向き)の推定を行う。自機位置の推定に用いた画像については、その画像の情報と共に、その画像を撮影した時の自機位置の情報も記憶される。
特徴点記憶部22には、画像記憶部21に記憶された画像に含まれている特徴点のうち、実空間における3次元位置(X,Y,Z)が求められた特徴点について、その3次元位置とその特徴点の特徴量とが紐付けられて記憶される。特徴点とは画像中のコーナー部分等、画像内の特徴的な部分のことであり、SIFT(Scale-Invariant Feature Transform)やSURF(Speeded Up Robust Features)等のアルゴリズムを用いて取得することができる。また、特徴点の特徴量は、例えばSIFT等で得られる特徴量である。上述のSLAM処理では、特徴点記憶部22に記憶されている特徴点の3次元位置に基づいて自己位置の推定を行うため、特徴点記憶部22は、SLAM用の地図の情報を記憶していると考えることもできる。
地図記憶部23には、センサ部30からの情報に基づいて地図作成部14が作成した環境地図が記憶される。環境地図は、床面を例えば5cm×5cmの格子(グリッド)に分割し、各格子点に対応する位置(格子点を中心とする、該格子と同一の形状の領域)における障害物の存在確率を、該格子点の値として表した占有格子地図である。なお、「各格子点に対応する位置」の代わりに、「各格子に対応する位置(格子の領域)」を用いても良い。なお、占有格子地図の各格子点の値は、その場所に障害物が存在する可能性が高いほど大きな値になり、障害物が存在しない可能性が高いほど小さな値になるので、便宜上「存在確率」と呼んでいるだけで、厳密な存在確率である必要はない。占有格子地図の各格子点の値として記録する存在確率の数値としては、存在確率P(0から1までの範囲の実数)の値そのものでも良いが、本実施形態においては対数オッズL(整数)を用いる。PとLとの関係はkを正の定数とすると、以下の式(1)で表すことができる。
P=1-1/(1+exp(kL))・・・(1)
式(1)から分かるように、P=0.5の時にL=0、P=0の時にL=-∞、P=1の時にL=∞となり、対数オッズを用いることによって、確率を整数値で扱うことができる。そして、各格子点の値Lを基準値と比較した時の大小によって、その格子点に対応する位置における障害物の存否を表すことができる。なお、本実施形態においては、Lの値として、最小値(Lmin)を-127、最大値(Lmax)を127とし、占有格子地図の各格子点の値の初期値はL=0とすることとする。そして、例えばLが存在基準値(例えば10)より大きければその格子点に障害物が存在し、Lが不存在基準値(例えば-10)未満ならその格子点には障害物は存在せず、Lが不存在基準値以上、存在基準値未満ならその格子点における障害物の存否は不明として扱うこととする。もっともこれらの値は任意に変更可能である。
地図保管部24は、地図制御部16が、地図記憶部23に記憶されている環境地図の情報を保存するために用いる記憶領域である。
測距データ記憶部25には、後述する測域センサ31が検出した物体までの距離を示す測距データが、該物体が検出された角度の情報とともに記憶される。
センサ部30は、自律移動装置100の周囲に存在する物体を検出するセンサを備える。実施形態1においては、センサ部30は、周囲に存在する物体を検出し、該物体までの距離(測距データ)を取得する測域センサ31を備える。測域センサ31は、例えば、図2に示すように自律移動装置100の上部に備えられた2次元レーザースキャナにより構成される。測域センサ31は、図3に示すように、所定の角度範囲(例えば-30度から+30度までの範囲)でレーザー光によるスキャニングをすることにより、周囲の当該角度範囲に存在する物体までの距離(測距データ)を所定の角度(例えば1度)毎に取得することができる。その方向に物体が無ければ、その角度に対する測距データは無しとなる。例えば、測域センサ31が図3(A)に示すスキャンをすると、図3(B)に示す測距データを取得できる。測域センサ31は、定期的に(例えば1秒間に30回の頻度で)、周囲を観測(スキャン)し、物体を検出すると、該物体までの距離を示す測距データと該物体が検出された角度の情報とを制御部10に送信する。すると、制御部10は、これらの情報(物体までの距離及び該物体が検出された角度)を測距データ記憶部25に登録する。
撮像部41は、図2に示すように、単眼の撮像装置(カメラ)を備える。撮像部41は、例えば、30fps(frames per second)で画像(フレーム)を取得する。自律移動装置100は、撮像部41が逐次取得した画像に基づいて、SLAM処理により、自己位置と周囲環境とをリアルタイムに認識しながら、自律移動を行う。
駆動部42は、独立2輪駆動型であって、車輪とモータとを備える移動手段である。図2では、右の車輪を駆動部42a、左の車輪を駆動部42bとして示している。自律移動装置100は、2つの車輪の同一方向駆動により前後の平行移動(並進移動)を、2つの車輪の逆方向駆動によりその場での回転(向き変更)を、2つの車輪のそれぞれ速度を変えた駆動により旋回移動(並進+回転(向き変更)移動)を、行うことができる。また、各々の車輪にはロータリエンコーダが備えられており、ロータリエンコーダで車輪の回転数を計測し、車輪の直径や車輪間の距離等の幾何学的関係を利用することで並進移動量及び回転量を計算できる。
例えば、車輪の直径をD、回転数をR(ロータリエンコーダにより測定)とすると、その車輪の接地部分での並進移動量はπ・D・Rとなる。また、車輪の直径をD、車輪間の距離をI、右車輪の回転数をR、左車輪の回転数をRとすると、向き変更の回転量は(右回転を正とすると)360°×D×(R-R)/(2×I)となる。この並進移動量や回転量を逐次足し合わせていくことで、駆動部42は、いわゆるオドメトリとして機能し、自機の位置(移動開始時の自己位置及び向きを基準とした自己位置及び向き)を推定するのに用いることができる。ここでは、自機の「向き」のことを自機の「姿勢」とも言うこととする。
ただし、オドメトリから得られる自己位置及び向きの精度は、車輪の摩耗やスリップ等により、低い精度になってしまうことが多い。特に誤差が累積していく関係上、時間経過と共に精度が悪化する。なお、車輪の代わりにクローラを備えるようにしても良いし、複数(例えば二本)の足を備えて足で歩行することによって移動を行うようにしても良い。これらの場合も、二つのクローラの動きや、足の動きに基づいて、車輪の場合と同様に自己位置や向き(姿勢)の推定が可能である。
通信部43は、外部装置と通信するためのモジュールであり、外部装置と無線通信する場合にはアンテナを含む無線モジュールである。例えば、通信部43は、Bluetooth(登録商標)に基づく近距離無線通信を行うための無線モジュールである。通信部43を用いることにより、自律移動装置100は、外部とデータの受け渡し等を行うことができる。例えば、ユーザが自律移動装置100に目的地を指示する際には、この通信部43を介して目的地の情報を伝えても良い。
次に、制御部10の機能について説明する。制御部10は、駆動系位置推定部11、非駆動系位置推定部12、物体位置取得部13、地図作成部14、移動制御部15及び地図制御部16を含み、自己位置の推定、環境地図の作成、自律移動装置100の移動制御等を行う。また、制御部10は、マルチスレッド機能に対応しており、複数のスレッド(異なる処理の流れ)を並行して実行することができる。
駆動系位置推定部11は、駆動部42からオドメトリの情報を取得して、自律移動装置100の自己位置及び姿勢を推定する。
非駆動系位置推定部12は、撮像部41が撮影し画像記憶部21に記憶された画像(撮影画像)を複数用いて、SLAM処理により自律移動装置100の自己位置及び姿勢を推定する。SLAM処理においては、画像中の特徴点の数が少ないと自己位置の推定を行うことができない。ここでは、SLAM処理で自己位置の推定を行うことが可能か否かを表す情報をトラッキング情報と呼び、非駆動系位置推定部12は、このトラッキング情報も取得する。トラッキング情報は、非駆動系位置推定部12が自己位置の推定が可能であれば「トラッキング中」又は「トラッキング状態」であり、自己位置の推定ができなければ「ロスト中」又は「ロスト状態」である。
物体位置取得部13は、センサ部30からの情報を用いて周囲の物体の位置(自律移動装置100の位置及び姿勢を基準とする相対位置)を取得する。より具体的には、物体位置取得部13は、センサ部30が備える測域センサ31が検出した物体までの距離を示す測距データと、該物体が検出された角度と、を取得する。
地図作成部14は、駆動系位置推定部11又は非駆動系位置推定部12が推定した自己位置及び姿勢と、物体位置取得部13が取得した周囲の物体の位置(自律移動装置100の位置及び姿勢を基準とする相対位置)と、に基づき、該物体の存在する位置を記録した環境地図を作成し、地図記憶部23に記憶する。この環境地図は、上述したように平面を格子に分割し、各格子点にセンサ部30で検出された物体の存在確率を示す数値を記録したものである。
移動制御部15は、地図記憶部23に記憶されている環境地図の情報に基づいて、目的地までの移動経路を設定し、設定した移動経路に沿って自機を移動させるように、駆動部42を制御する。
地図制御部16は、非駆動系位置推定部12が自己位置を推定できなくなった場合に、その時点で地図記憶部23に記憶されている環境地図の情報を固定する。ここで「環境地図の情報を固定する」とは、環境地図の情報を地図保管部24に保存することと、環境地図の情報の更新を停止することが含まれる。そして、地図制御部16は、その後、非駆動系位置推定部12が自己位置を推定できるようになった場合に、環境地図の情報の固定を解除する。ここで「環境地図の情報の固定を解除する」とは、環境地図の情報の固定を環境地図の情報を地図保管部24に保存することによって行っていた場合には、地図保管部24に保存した環境地図を地図記憶部23に戻すことを意味する。また、環境地図の情報の固定を環境地図の情報の更新を停止することによって行っていた場合には、環境地図の更新を再開することを意味する。
以上、自律移動装置100の機能構成について説明した。次に、自律移動装置100の制御部10が実行するソフトウェアモジュールの全体構成について、図4を参照して説明する。図4中、非駆動系位置推定モジュール51は上記機能構成で説明した非駆動系位置推定部12に対応し、駆動系位置推定モジュール52は上記機能構成で説明した駆動系位置推定部11に対応する。また、地図作成モジュール53は地図作成部14に対応し、移動制御モジュール54は移動制御部15に対応する。
これらのソフトウェアモジュールは、自律移動装置100の電源が入ると、それぞれ別スレッドとして起動し、並行して実行が開始される。非駆動系位置推定モジュール51は、撮像部41から取得する画像情報を用いてSLAM処理を行い、自己位置及び姿勢を推定する。駆動系位置推定モジュール52は、駆動部42から取得するオドメトリ情報を用いて、自己位置及び姿勢を推定する。地図作成モジュール53は、非駆動系位置推定モジュール51又は駆動系位置推定モジュール52が推定した自己位置及び姿勢と、測域センサ31から得られる測距データ及び角度と、に基づき、環境地図を作成する。
移動制御モジュール54は、非駆動系位置推定モジュール51又は駆動系位置推定モジュール52が推定した自己位置及び姿勢と、地図作成モジュール53が作成した環境地図と、に基づき、経路を設定し、設定した経路に基づき、駆動部42を制御する移動制御情報(主に速度情報)を生成する。そして、駆動部42は、移動制御モジュール54が生成した移動制御情報に基づいて駆動され、目的地への移動が行われる。
ここで、自律移動装置100が解決する課題について、図5を参照して説明する。図5の(1)に示すように、自律移動装置100がA地点からB地点に左旋回しながら移動して、障害物70に接近する動きをした場合を考える。この時、撮像部41で取得した画像中に特徴点が多数含まれていれば、非駆動系位置推定部12がSLAM処理により自己位置を推定でき(トラッキング中)、地図作成部14は、図5の(2)に示すような精度の高い環境地図を作成することができる。
しかし、撮像部41で取得した画像中に特徴点が基準値(例えば10個)以下しか含まれていなければ、非駆動系位置推定部12はSLAM処理による自己位置の推定が不可能(ロスト中)になる。すると、自律移動装置100は、駆動系位置推定部11のみによる自己位置の推定を行うことになるが、駆動系位置推定部11による自己位置の推定は、上述したように、車輪の摩耗やスリップ等により、低い精度になってしまうことが多い。そのため、地図作成部14が作成する環境地図は、図5の(3)に示すような精度の低い地図になってしまう。地図の精度が低いと、不適切な経路が設定されたり、経路が見つからなかったりすることがある。
そこで、図6に示すように、自律移動装置100は、SLAM処理がロスト状態になったらその時点(ロストタイミング:T11)の環境地図を保存し、SLAM処理がトラッキング状態に復帰したらその時点(トラッキングタイミング:T2)で先ほど保存した環境地図を読み込むようにすれば、ロスト中の精度の低い環境地図の情報を削除することができるので、環境地図の精度低下を防止できる。なお、環境地図を保存するタイミングを基準タイミング(T12)と呼ぶことにする。本実施形態においては、基準タイミング(T12)=ロストタイミング(T11)である。
では、自律移動装置100が、図5の(2)に示すような精度の高い環境地図をできるだけ長時間保つことができるように、SLAM処理による自己位置の推定が不可能になった場合に、環境地図を一時的に保存し、SLAM処理による自己位置の推定が可能になった時に、一時保存した環境地図を復帰させる仕組みについて、以下に説明する。まず、地図作成モジュール53の処理内容について、図7を参照して説明する。なお、以下では、地図記憶部23に記憶される環境地図を2次元配列変数MA[i,j]で表し、地図保管部24に記憶される環境地図を2次元配列MS[i,j]で表すものとする。ここで、xsizeを環境地図のX方向の最大の格子点の座標、ysizeを環境地図のY方向の最大の格子点の座標とすると、0≦i≦xsize,0≦j≦ysizeである。また、地図保管部24に環境地図が保存されているか否かを示すフラグ変数SFも地図保管部24に記憶されているものとする(SF=0なら環境地図が保存されておらず、SF=1なら保存されていることを示す)。
まず、地図作成部14は、地図記憶部23に記憶されている環境地図を初期化する(ステップS101)。また、この時、地図保管部24も初期化する。環境地図の初期化は、占有格子地図の全ての格子点の値を0にすることにより行われる。具体的には、0≦i≦xsize,0≦j≦ysizeのすべてのi及びjについて、MA[i,j]=0を実行する。そして、地図保管部24に環境地図が保存されているか否かを示すフラグ変数SFに0をセットする。
次に制御部10は、自律移動装置100が動作を終了するか否かを判定する(ステップS102)。ユーザが自律移動装置100の電源を落とした場合や、バッテリーの残量が所定量(例えば残り3%等)を下回った場合等に、自律移動装置100は動作を終了する。自律移動装置100が動作を終了するなら(ステップS102;Yes)、処理を終了する。動作を終了しないなら(ステップS102;No)、制御部10は、自己位置推定処理を行って現在の自己位置及び姿勢を取得する(ステップS103)。自己位置推定処理の詳細については、後述する。
次に地図制御部16は、非駆動系位置推定部12が自己位置を推定できなくなった(SLAM処理のトラッキング情報がトラッキング状態からロスト状態に変化した)か否かを判定する(ステップS104)。非駆動系位置推定部12が自己位置を推定できなくなった場合に(ステップS104;Yes)、地図制御部16は、地図記憶部23に記憶されている環境地図を、地図保管部24に保存する(ステップS105)。具体的には、0≦i≦xsize,0≦j≦ysizeのすべてのi及びjについて、MS[i,j]=MA[i,j]を実行し、変数SFに1をセットする。ステップS105は地図制御ステップとも呼ばれる。そして、ステップS108に進む。
トラッキング情報がトラッキング状態からロスト状態に変化していないなら(ステップS104;No)、地図制御部16は、非駆動系位置推定部12が自己位置を推定できるようになった(SLAM処理のトラッキング情報がロスト状態からトラッキング状態に変化した)か否かを判定する(ステップS106)。非駆動系位置推定部12が自己位置を推定できるようになっていなければ(ステップS106;No)、ステップS108に進む。
非駆動系位置推定部12が自己位置を推定できるようになった場合に(ステップS106;Yes)、地図制御部16は、地図記憶部23の環境地図をクリアして、地図保管部24に保存されている環境地図を地図記憶部23に読み込む(ステップS107)。具体的には、0≦i≦xsize,0≦j≦ysizeのすべてのi及びjについて、MA[i,j]=MS[i,j]を実行し、変数SFに0をセットする。そして、ステップS108に進む。
ステップS108では、物体位置取得部13は、測距データ記憶部25から測距データ及び角度を取得する。ステップS108は、物体位置取得ステップとも呼ばれる。そして、地図作成部14は、ステップS103で取得した自己位置及び姿勢の情報を用いて、物体位置取得部13が取得した測距データ及び角度を環境地図における座標に変換し、環境地図に登録する(ステップS109)。ステップS109は、地図作成ステップとも呼ばれる。そして、ステップS102に戻る。
ステップS109における、測距データを環境地図に登録する具体例を以下に説明する。例えば、測域センサ31で検出された物体の環境地図における座標が[m,n]であったとすると、地図作成部14は、まず、MA[m,n]=MA[m,n]+Δrを実行する。ここで、Δrは、測域センサ31が各格子点における物体の存在を確認した時に該格子点の値に加算する更新量であり、Δrの値は例えば10である。ただし、Δrを加算するとMA[m,n]が最大値Lmaxを超える場合には、MA[m,n]=Lmaxとする。
次に、地図作成部14は、測域センサ31の観測(スキャン)範囲内で障害物が検出されなかった格子点の値から更新量Δrを減算する。具体的には、障害物が検出された方向については[m,n]の手前の全ての[i,j]、障害物が検出されなかった方向については測域センサ31の観測範囲内のすべての[i,j]に対して、MA[i,j]=MA[i,j]-Δrを実行する。ただし、Δrを減算するとMA[i,j]が最小値Lminを下回る場合には、MA[i,j]=Lminとする。
以上の処理により、測域センサで物体が観測された格子点の値は大きくなり、測域センサの観測範囲内で物体が観測されなかった格子点の値は小さくなる。これにより、各格子点の値は、物体の存在確率を対数オッズで表したものとみなせるようになる。なお、環境地図の各格子点の値として、対数オッズLの代わりに、観測回数(該格子点を測域センサ31で観測(スキャン)した回数)と検出回数(該格子点の位置に障害物が存在することを測域センサ31が検出した回数)のペアを記録し、各格子点における障害物の存在確率を、観測回数に対する検出回数の割合として定義しても良い。
以上で、図7に示す地図作成モジュール53のフローチャートの説明を終えるが、図7の処理において、ロスト状態(ステップS104でYes)となってからトラッキング状態(ステップS106でYes)になるまでの間(ロスト期間)の環境地図は、ステップS107で地図保管部から元の環境地図(本来の環境地図)が読み込まれるまでの間の一時的な環境地図なので、簡易地図とも言う。そして、この一時的な環境地図(簡易地図)を用いている間は本来の環境地図(地図保管部24に保存されている環境地図)の更新は停止されていると考えることができる。したがって、ステップS105の処理は、環境地図(の情報)を固定する処理と言える。また、ステップS107の処理により、簡易地図は本来の環境地図に置き換わり、本来の環境地図の更新が再開されるので、ステップS107の処理は、環境地図(の情報)の固定を解除する処理と言える。
次に、図7のステップS103で行われる自己位置推定処理について、図8を参照して説明する。まず、駆動系位置推定部11が、駆動部42から得られるオドメトリ情報に基づいて、自律移動装置100の自己位置及び姿勢を取得する(ステップS201)。ステップS201は、駆動系位置推定ステップとも呼ばれる。次に、非駆動系位置推定部12は、撮像部41が撮影した画像の情報に基づくSLAM処理のトラッキング情報を取得する(ステップS202)。
そして、制御部10は、SLAM処理のトラッキング情報が「トラッキング中」であるか否かを判定する(ステップS203)。SLAM処理のトラッキング情報が「トラッキング中」なら(ステップS203;Yes)、非駆動系位置推定部12は、撮像部41が撮影した画像の情報に基づいて、SLAM処理により自律移動装置100の自己位置及び姿勢を取得する(ステップS204)。ステップS204は、非駆動系位置推定ステップとも呼ばれる。そして、非駆動系位置推定部12は、SLAM処理による自己位置及び姿勢を、制御部10に出力し(ステップS205)、処理を終了する。
一方、ステップS203で、SLAM処理のトラッキング情報が「トラッキング中」でないなら(ステップS203;No)、駆動系位置推定部11は、前回の自己位置推定処理のステップS201で取得した自己位置及び姿勢と、今回のステップS201で取得した自己位置及び姿勢と、の差分を求め、前回の自己位置推定処理で制御部10に出力した自己位置及び姿勢に該差分を加算したものを、制御部10に出力し(ステップS206)、処理を終了する。
以上で、図8に示す自己位置推定処理のフローチャートの説明を終えたので、次に、地図作成モジュール53で作成された地図を用いて目的地までの経路を設定し、目的地まで移動制御を行う移動制御モジュール54の処理内容について、図9を参照して説明する。
まず、制御部10は、自律移動装置100が動作を終了するか否かを判定する(ステップS301)。動作を終了するなら(ステップ301;Yes)、処理を終了する。動作を終了しないなら(ステップS301;No)、移動制御部15は、目的地が設定されたか否かを判定する(ステップS302)。目的地は、自律移動装置100のユーザが通信部43を介して設定することもあるし、自律移動装置100が必要に応じて(例えば、バッテリー残量が所定量(例えば10%)を下回った場合に、充電ステーションを目的地に設定する等)自律的に設定することもある。
目的地が設定されていないなら(ステップS302;No)、ステップS301に戻る。目的地が設定されているなら(ステップS302;Yes)、移動制御部15は、地図作成部14が作成した、その時点で最新の環境地図を取得する(ステップS303)。次に、移動制御部15は、図8に示す自己位置推定処理によって現在の自己位置及び姿勢を取得する(ステップS304)。そして、移動制御部15は、取得した環境地図並びに自己位置及び姿勢と設定された目的地とに基づき、現在位置から目的地までの経路を設定する(ステップS305)。
そして、移動制御部15は、経路が設定できたか否か(経路が存在するか否か)を判定する(ステップS306)。経路が存在しないなら(ステップS306;No)、ユーザにその旨を通知する等のエラー処理を行い(ステップS307)、ステップS301に戻る。経路が存在するなら(ステップS306;Yes)、移動制御部15は、自機が目的地に到着したか否かを判定する(ステップS308)。なお、経路の情報には、目的地の情報も含まれるため、移動制御部15は、現在の位置が経路に含まれる目的地と一致するか否かを判定することにより、目的地に到着したか否かを判定することができる。
目的地に到着したなら(ステップS308;Yes)、移動制御部15は、駆動部42を制御して移動を停止させ(ステップS310)、ステップS301に戻る。目的地に到着していないなら(ステップS308;No)、移動制御部15は、経路に沿って移動するように駆動部42を制御し(ステップS309)、ステップS303に戻る。
以上で、図9に示す移動制御モジュール54のフローチャートの説明を終える。SLAM処理で自己位置の推定が行えない状態(ロスト状態)が長時間続くと環境地図の精度が低くなってしまうが、以上説明したように、自律移動装置100は、SLAM処理がロスト状態になったときに環境地図を保存し、トラッキング状態に戻った時に該保存した環境地図を読み込むことによって、ロスト中に環境地図に登録された精度の低い情報を削除することができ、環境地図の精度を向上させることができる。
(実施形態2)
実施形態1にかかる自律移動装置100は、SLAM処理がロスト中に環境地図に登録されたデータ(障害物の位置等の情報)は、SLAM処理がトラッキング状態に復帰した際に、失われてしまう。SLAM処理がロスト中は自己位置の推定精度が低いため、これらのデータの精度も低くなってしまうから、自律移動装置100は、SLAM処理がロスト中のデータをSLAM処理がトラッキング状態に復帰した時にすべて消去することで、環境地図には精度の高い情報のみを残すようにしている。しかし、トラッキング状態からロスト状態になった直後の一定期間はオドメトリの情報の精度の低下はそれほど大きくない。また、トラッキング状態に復帰する直前のオドメトリの情報は、復帰後の自己位置に基づいて逆算することによって、精度の低下を抑えることができる。そこで、SLAM処理のトラッキング情報がロスト状態に変化した直後及びトラッキング状態に変化する直前のそれぞれの一定期間は、オドメトリの情報を用いて推定した自己位置の情報を利用する実施形態2について説明する。
図10に示すように、実施形態2に係る自律移動装置は、SLAM処理がロスト状態(ロストタイミング:T11)になってもオドメトリの情報で自己位置を推定し、所定の時間(基準遅延時間)が経過してからその時点(基準タイミング:T12)の環境地図を保存する。そして、SLAM処理がトラッキング状態に復帰したらその時点(トラッキングタイミング:T2)で先ほど保存した環境地図を読み込むとともに、トラッキング状態に復帰する直前のオドメトリの情報をトラッキング状態に復帰後の自己位置に基づいて補正し、この補正したオドメトリ情報に基づいてロスト中に得られた物体の位置を環境地図に登録する。このようにすれば、ロスト直後とトラッキング直前の、精度があまり低下していない環境地図の情報を失わずに、ロスト中の精度の低い環境地図の情報を削除することができるので、環境地図の精度低下を防止できる。本実施形態においては、基準タイミング(T12)=ロストタイミング(T11)+基準遅延時間である。
実施形態2に係る自律移動装置101は、図11に示すように、実施形態1に係る自律移動装置100の記憶部20に物体位置記憶部26が追加された構成である。
物体位置記憶部26には、非駆動系位置推定部12のSLAM処理のトラッキング情報がロスト状態である間に、物体位置取得部13が取得した周囲の物体の位置(自律移動装置101の位置及び姿勢を基準とする相対位置)と、駆動系位置推定部11が推定した自己位置及び姿勢と、の基準保存時間(例えば3分間)分の履歴が記憶される。物体位置取得部13は、測域センサ31が検出した物体までの距離を示す測距データと、該物体が検出された角度と、を取得するので、物体位置記憶部26は、この測距データ及び角度と、駆動系位置推定部11が推定した自己位置及び姿勢と、の履歴が記憶される。
自律移動装置101の制御部10が実行するソフトウェアモジュールの全体構成は、実施形態1に係る自律移動装置100と同じであり、図4に示される。ただし、自律移動装置101の地図作成モジュール53の処理は、実施形態1に係る地図作成モジュール53の処理(図7)と異なるため、図12を参照して説明する。この点以外は、自律移動装置101は、自律移動装置100と同じである。
なお、実施形態1と同様、以下では、地図記憶部23に記憶される環境地図を2次元配列変数MA[i,j]で表し、地図保管部24に記憶される環境地図を2次元配列MS[i,j]で表し、地図保管部24に環境地図が保存されているか否かを示すフラグ変数を変数SFで表すものとする。また、物体位置記憶部26に保存されるデータ(測域センサ31から得られる測距データ及び角度、並びに、駆動系位置推定部11から得られる自己位置及び姿勢)を、構造体の1次元配列変数BS[k]で表し、これらのデータを保存した時刻を1次元配列変数TS[k]で表し、物体位置記憶部26に保存されているデータの個数を変数BCで表すものとする。BCの初期値は0であり、kの値の範囲は0≦k<BCとなる。
まず、地図作成部14は、地図記憶部23に記憶されている環境地図を初期化する(ステップS401)。また、この時、地図保管部24及び物体位置記憶部26も初期化する。具体的には、0≦i≦xsize,0≦j≦ysizeのすべてのi及びjについて、MA[i,j]=0を実行する。そして、変数SF及び変数BCに0をセットする。
次に制御部10は、自律移動装置100が動作を終了するか否かを判定する(ステップS402)。自律移動装置100が動作を終了するなら(ステップS402;Yes)、処理を終了する。動作を終了しないなら(ステップS402;No)、物体位置取得部13は、測距データ記憶部25から測距データ及び角度を取得する(ステップS403)。そして、制御部10は、自己位置推定処理を行って現在の自己位置及び姿勢を取得する(ステップS404)。この自己位置推定処理は、実施形態1と同じであり、図8に示す処理内容である。
次に、制御部10は、SLAM処理のトラッキング状態が「ロスト中」であるか否かを判定する(ステップS405)。ここで判定対象となるトラッキング状態は、ステップS404で実行された自己位置推定処理(図8)のステップS202で取得されている。SLAM処理のトラッキング状態が「ロスト中」でなければ(ステップS405;No)、制御部10は環境地図が地図保管部24に保存されているか否かを判定する(ステップS411)。これはフラグ変数SFの値が1か0かにより判定できる。環境地図が地図保管部24に保存されていなければ(ステップS411;No)、ステップS419に進む。
環境地図が地図保管部24に保存されているなら(ステップS411;Yes)、地図制御部16は、地図記憶部23の環境地図をクリアして、地図保管部24に保存されている環境地図を地図記憶部23に読み込み、地図保管部24に保存されていた環境地図を削除する(ステップS412)。具体的には、0≦i≦xsize,0≦j≦ysizeのすべてのi及びjについて、MA[i,j]=MS[i,j]を実行し、変数SFに0をセットする。
そして、地図制御部16は物体位置記憶部26にデータが存在するか否かを判定する(ステップS413)。具体的には変数BCが1以上か0かを判定する。BCが1以上ならデータが存在し、BCが0ならデータが存在しないことを表す。物体位置記憶部26にデータが存在しなければ(ステップS413;No)、ステップS419に進む。
物体位置記憶部26にデータが存在するなら(ステップS413;Yes)、地図制御部16は物体位置記憶部26から測距データ及び角度並びに自己位置及び姿勢を取得する(ステップS414)。具体的には地図制御部16は、構造体の1次元配列変数BS[BC-1]の値を取得する。そして、地図制御部16は、ステップS414で取得した自己位置及び姿勢と、駆動系位置推定部11が推定した最新の自己位置及び姿勢と、の差分を求める(ステップS415)。次に、地図制御部16は、非駆動系位置推定部12が推定した最新の自己位置及び姿勢に、ステップS415で求めた差分を加算して、過去の自己位置を推定する(ステップS416)。
そして、地図制御部16は、推定した過去の自己位置の情報を用いて、ステップS414で取得した測距データ及び角度を環境地図における座標に変換し、環境地図に登録する(ステップS417)。そして、地図制御部16は、ステップS414で取得した測距データ及び角度並びに自己位置及び姿勢を物体位置記憶部26から削除する(ステップS418)。具体的には、変数BCの値を1減らす。そして、ステップS413に戻る。
一方、ステップS405の判定で、SLAM処理のトラッキング状態が「ロスト中」なら(ステップS405;Yes)、地図制御部16は、SLAM処理のトラッキング状態が「トラッキング中」から「ロスト中」に変化してから基準遅延時間(例えば3分)が経過したか否かを判定する(ステップS406)。基準遅延時間が経過していないなら(ステップS406;No)、ステップS419に進む。
基準遅延時間が経過したなら(ステップS406;Yes)、地図制御部16は、地図保管部24に環境地図が保存済みか否かを判定する(ステップS407)。具体的には変数SFが1か0かを判定する。環境地図が地図保管部24に保存済みなら(ステップS407;Yes)、ステップS409に進む。環境地図が地図保管部24に保存済みでないなら(ステップS407;No)、地図制御部16は、地図記憶部23に記憶されている環境地図を地図保管部24に保存する(ステップS408)。具体的には、0≦i≦xsize,0≦j≦ysizeのすべてのi及びjについて、MS[i,j]=MA[i,j]を実行し、変数SFに1をセットする。そして、ステップS409に進む。
ステップS409では、地図制御部16は、ステップS403で取得した測距データ及び角度と、ステップS404で取得した自己位置及び姿勢と、を物体位置記憶部26に保存する。具体的には構造体の1次元配列変数BS[BC]にこれらの値(測距データ及び角度並びに自己位置及び姿勢)を保存し、現在時刻を1次元配列変数TS[BC]に保存し、変数BCの値を1加算する。
次に、地図制御部16は、物体位置記憶部26に保存されているデータのうち、基準保存時間より前のデータを物体位置記憶部26から削除する(ステップS410)。具体的には0≦k<BC-1の範囲の1次元配列TS[k]の値のうち、(現在時刻-基準保存時間)より小さいものを探し、見つかったら(見つかったものをTS[p]とする)、0≦k<BC-p-1となるすべてのkについて、kの小さい方から順にBS[k]=BS[k+p+1]及びTS[k]=TS[k+p+1]を実行する。そして、変数BCからp+1を引く。
そして、地図作成部14は、ステップS404で取得した自己位置及び姿勢の情報を用いて、ステップS403で取得した測距データ及び角度を環境地図における座標に変換し、環境地図に登録する(ステップS419)。ここでの環境地図への登録の具体例は、図7のステップS109における具体例と同様である。そして、ステップS402に戻る。
以上説明した実施形態2に係る地図作成モジュールでは、非駆動系位置推定部12のSLAM処理がロスト状態になっても、基準遅延時間が経過するまでの間にSLAM処理がトラッキング状態に戻れば、その間に環境地図に記録された情報を失わずに済む。また、基準遅延時間が経過するまでの間にSLAM処理がトラッキング状態に戻れない場合でも、環境地図に情報が記録されない時間を短くすることができる。そして、基準遅延時間の間及び基準保存時間の間は、オドメトリの情報に含まれる誤差は小さいため、環境地図の精度の低下も抑えることができる。
なお、実施形態2では、図12のステップS406で、地図制御部16は、SLAM処理のトラッキング状態が「トラッキング中」から「ロスト中」に変化してから基準遅延時間が経過したか否かを判定しているが、これに限られない。例えば、ステップS406において、地図制御部16は、SLAM処理のトラッキング状態が「トラッキング中」から「ロスト中」に変化してから自律移動装置101が所定距離(例えば3m)移動したか否かを判定し、移動していたらステップS407に進み、移動していなければステップS419に進む処理を行っても良い。自律移動装置101のオドメトリの精度の低下は移動距離にも依存するので、あまり移動していない間はオドメトリによる自己位置の推定をし続けても精度の低下は少ないと考えられるからである。これにより、環境地図に情報が記録されない時間をさらに短くすることができる。
また、実施形態2では、図12のステップS410で、地図制御部16は、物体位置記憶部26に保存されているデータのうち、基準保存時間より前のデータを物体位置記憶部26から削除しているが、これに限られない。例えば、ステップS410において、地図制御部16は、物体位置記憶部26に保存されている過去のデータのうち、現在の自己位置から基準移動距離(例えば3m)よりも(移動経路に沿った道のりで)離れているデータを物体位置記憶部26から削除しても良い。これにより、自律移動装置101はトラッキング回復時に、その時点(トラッキングタイミング:T2)の自己位置から基準移動距離以内の移動範囲における物体位置記憶部のデータを環境地図に登録することができる。上述したように、移動距離が短い間はオドメトリによる自己位置の推定精度の低下は少ないと考えられるからである。これにより、環境地図に情報が記録されない時間をさらに短くすることができる。
(変形例1)
上記の各実施形態では、非駆動系位置推定部12は、SLAM処理により自律移動装置100,101の自己位置及び姿勢を推定しているが、これに限られない。例えば、自律移動装置がGPS(Global Positioning System)衛星からの電波を取得する電波受信部を備え、非駆動系位置推定部12は、GPS衛星からの電波に含まれる情報に基づいて自己位置及び姿勢を推定しても良い。また、GPS衛星からの電波に限らず、携帯電話の基地局からの電波、無線LAN(Local Area Network)の基地局からの電波、RFID(Radio Frequency Identifier)等を用いて自己位置を推定しても良い。また、この場合、自律移動装置が方位センサを備えることにより、自律移動装置の向き(姿勢)の情報を得ることができる。
非駆動系位置推定部12が電波を用いて自己位置を推定する場合、制御部10は、電波の受信状況に基づいて、非駆動系位置推定部12が自己位置を推定できるか否かを判定する。つまり、非駆動系位置推定部12が自己位置を推定できるだけの電波を受信できるならトラッキング状態であり、自己位置を推定できるだけの電波を受信できないならロスト状態である。
以上の変形例1に係る自律移動装置は、SLAM処理により自己位置の推定を行えない場合でも、電波受信部からの情報に基づいて、精度の高い環境地図を作成することができる。また、電波受信部から情報が得られなくなった場合に環境地図を保存し、電波受信部から情報が得られるようになった場合に該保存した環境地図を読み込むことによって、電波受信部で情報が得られなくなっている間に環境地図に登録された精度の低い情報を削除することができ、環境地図の精度を向上させることができる。
(変形例2)
上記の各実施形態では、センサ部30は、測域センサ31を備えているが、これに限られない。ここでは、センサ部30が物体に衝突したことを検出する衝突センサを備える変形例2について説明する。
変形例2に係る自律移動装置102は、図13に示すように、センサ部30に物体への衝突を検出する衝突センサ32が追加され、記憶部20に衝突データ記憶部27が追加された構成である。衝突データ記憶部27には、衝突を検出した衝突センサ32の自律移動装置102における位置に基づいて得られる、衝突した物体の位置(自律移動装置102の中心位置及び正面を基準とする相対位置及び方向)を示すデータ(衝突データ)が記憶される。
衝突センサ32の個数は任意であるが、図14に示す例では、自律移動装置102は、衝突センサ32として、自律移動装置102の真正面の衝突センサ32bと、正面より少し右寄りの衝突センサ32aと、正面より少し左寄りの衝突センサ32cを備える。物体がこれらの衝突センサ32に衝突すると、衝突された衝突センサ32は衝突を検出したことを制御部10に通知する。すると制御部10は、その時点における自律移動装置102の自己位置及び向きと、衝突検出を通知した衝突センサ32の自律移動装置102における位置と、に基づき、衝突した物体の位置を示す衝突データを衝突データ記憶部27に登録する。
自律移動装置102の制御部10が実行するソフトウェアモジュールの全体構成は、図15に示すように、図4を参照して説明した自律移動装置100のソフトウェアモジュールの全体構成に、衝突センサ32が追加された構成になっている。自律移動装置102の地図作成モジュール53は、衝突センサ32から得られる衝突データも用いて環境地図を作成する。この点以外は、自律移動装置100と同じである。
自律移動装置102の地図作成モジュール53の処理内容について、図16を参照して説明する。この処理は、図7を参照して説明した自律移動装置100の地図作成モジュール53の処理内容と一部を除き共通なので、異なる点を中心に説明する。
ステップS101からステップS109までの処理は、図7の処理と同じである。ステップS109の次に、物体位置取得部13は、衝突データ記憶部27から衝突データを取得する(ステップS111)。そして、地図作成部14は、ステップS103で取得した自己位置及び姿勢の情報を用いて、ステップS111で取得した衝突データを環境地図における座標に変換し、環境地図に登録する(ステップS112)。そして、ステップS102に戻る。
ステップS112における、衝突データを環境地図に登録する具体例を以下に説明する。例えば、衝突センサ32で検出された物体の環境地図における座標が[m,n]であったとすると、地図作成部14は、まず、MA[m,n]=MA[m,n]+Δcを実行する。ここで、Δcは、衝突センサ32が各格子点における物体の存在を確認した時に該格子点の値に加算する更新量であり、Δcの値は例えば10である。ただし、Δcを加算するとMA[m,n]が最大値Lmaxを超える場合には、MA[m,n]=Lmaxとする。
次に、地図作成部14は、自律移動装置102の現在の自己位置に対応する格子点の値から更新量Δcを減算する。具体的には、自己位置の座標が[p,q]であったとすると、MA[p,q]=MA[p,q]-Δcを実行する。ただし、Δcを減算するとMA[p,q]が最小値Lminを下回る場合には、MA[p,q]=Lminとする。
なお、上記は地図更新方法の一例である。測域センサ31から得られるデータは誤差が含まれることが多いが、衝突センサ32から得られるデータには誤差がほとんど含まれないと考えられる。したがって、衝突センサ32で検出された物体の環境地図における座標が[m,n]であった場合、地図作成部14はMA[m,n]=Lmaxを実行し、その時の自己位置の座標が[p,q]であった場合、地図作成部14はMA[p,q]=Lminを実行しても良い。また、Δcの値を格子点の各座標毎に値を変更できるようにしても良い。
また、地図作成部14は、測域センサ31から得られる環境地図と衝突センサ32から得られる環境地図とを別々に用意し、これらを統合した環境地図を作成しても良い。例えば、地図作成部14は、測域センサ31から得られる環境地図を2次元配列MA[i,j]に作成し、衝突センサ32から得られる環境地図を2次元配列MB[i,j]に作成し、これらを統合した環境地図として2次元配列MI[i,j]を以下のように作成しても良い。
(1)もし、MA[i,j]<0かつMB[i,j]<0ならMI[i,j]=min(MA[i,j],MB[i,j])
(2)もし、MA[i,j]≧0又はMB[i,j]≧0ならMI[i,j]=max(MA[i,j],MB[i,j])
地図作成部14が、このようにセンサ部30に含まれる複数のセンサ毎に複数の環境地図を用意する場合、地図保管部24にも複数の環境地図を保存できる領域を用意し、地図制御部16は、複数の環境地図をそれぞれ地図保管部24に保存する。例えば、地図作成部14が、測域センサ31から得られる環境地図を2次元配列MA[i,j]に作成し、衝突センサ32から得られる環境地図を2次元配列MB[i,j]に作成する場合、地図保管部24には、測域センサ31から得られる環境地図を保存するための2次元配列MAS[i,j]と、衝突センサ32から得られる環境地図を保存するための2次元配列MBS[i,j]と、が記憶される。
以上の地図作成モジュールの処理によって、変形例2に係る自律移動装置102は、測域センサ31で検出できない物体が存在しても、その物体に衝突したら、衝突センサ32によってその物体を検出でき、環境地図に登録することができる。そして、その登録の際にSLAM処理がトラッキング状態であれば、その物体の情報は精度の高い情報として扱われるので環境地図から削除されず、登録の際にSLAM処理がロスト状態であればその物体の情報は精度の低い情報として扱われトラッキング状態に復帰した際に削除される。このようにして、環境地図の精度を向上させることができる。
(変形例3)
センサ部30が備えるセンサは、測域センサ31及び衝突センサ32に限られない。センサ部30が、周囲に床面が存在するか否かを検出することによって、床面が存在しない場所であるクリフ(穴、崖等)を検出するクリフセンサを備え、地図作成部14はクリフセンサが検出したクリフの情報も環境地図に記録するようにしても良い。また、センサ部30は、例えば悪路を検出する床面センサ、床の濡れている部分や水たまりを検出する水分センサ等を備えても良い。センサ部30が備えるセンサの種類を増やすことによって、自律移動装置は様々な環境により柔軟に対応した環境地図を作成できるようになる。
なお、上記実施形態1及び変形例2では、測距データ記憶部25には、測域センサ31が検出した物体までの距離を示す測距データ(自律移動装置からの相対位置データ)が、該物体が検出された角度の情報とともに記憶されているが、これに限られない。例えば、測距データ記憶部25には、測域センサ31で周囲を観測(スキャン)した時の自律移動装置の自己位置及び向きと、測域センサ31が取得した測距データ及び角度と、に基づいて得られる、測域センサ31で検出された物体(障害物)の位置(絶対位置)を示すデータを記憶しても良い。このようにすると、地図作成モジュール(図7、図16)において、測距データを環境地図に登録する際に、測距データを地図の座標に変換する処理が不要となる。
上記変形例2における衝突データ記憶部27についても同様であり、衝突センサ32が衝突を検出した時の自律移動装置102の自己位置及び向きと、該衝突を検出した衝突センサ32の自律移動装置102における位置と、に基づいて得られる、衝突した物体(障害物)の位置(絶対位置)を示すデータを記憶しても良い。このようにすると、地図作成モジュール(図16)において、衝突データを環境地図に登録する際に、衝突データを地図の座標に変換する処理が不要となる。
また、上述する各実施形態において、測域センサ31を備えない代わりに、デプスカメラ又はソナーを備え、これらによって観測された障害物を環境地図に記録するようにしても良い。
また、上述する各実施形態において、測域センサ31を備えず、撮像部41が撮影した画像を用いたvisual SLAMによって障害物を検出するようにし、visual SLAMで検出された障害物を環境地図に記録するようにしても良い。
なお、自律移動装置100,101,102の各機能は、通常のPC(Personal Computer)等のコンピュータによっても実施することができる。具体的には、上記実施形態では、自律移動装置100,101,102が行う自律移動制御処理のプログラムが、記憶部20のROMに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)及びMO(Magneto-Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
駆動部からの情報に基づいて自己位置を推定する駆動系位置推定部と、
前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定部と、
周囲の物体の位置を取得する物体位置取得部と、
前記駆動系位置推定部又は前記非駆動系位置推定部が推定した自己位置と、前記物体位置取得部が取得した位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成部と、
前記非駆動系位置推定部が前記自己位置を推定できなくなったロストタイミングによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を、前記自己位置を推定できるトラッキングタイミングになった場合に使用する、地図制御部と、
を備える自律移動装置。
(付記2)
前記地図制御部は、前記基準タイミングに前記地図記憶部に記憶されている環境地図を地図保管部に保存し、前記トラッキングタイミングになった場合に前記地図保管部に保存した環境地図を前記地図記憶部に戻す、
付記1に記載の自律移動装置。
(付記3)
前記地図制御部は、前記基準タイミングに前記地図記憶部に記憶されている環境地図の更新を停止し、前記トラッキングタイミングになった場合に前記環境地図の更新を再開する、
付記1に記載の自律移動装置。
(付記4)
周囲の画像を取得する撮像部をさらに備え、
前記非駆動系位置推定部は、前記撮像部が取得した画像の情報に基づいて自己位置を推定する、
付記1から3のいずれか1つに記載の自律移動装置。
(付記5)
前記物体位置取得部は、前記物体までの距離である測距データを取得する測域センサからの情報を用いて前記物体の位置を取得する、
付記1から4のいずれか1つに記載の自律移動装置。
(付記6)
前記物体位置取得部は、前記物体に衝突したことを検出する衝突センサからの情報を用いて前記物体の位置を取得する、
付記1から5のいずれか1つに記載の自律移動装置。
(付記7)
前記基準タイミングは、前記非駆動系位置推定部で前記自己位置を推定できなくなったロストタイミングから基準遅延時間後または所定距離移動後である、
付記1から6のいずれか1つに記載の自律移動装置。
(付記8)
前記物体位置取得部が取得した物体の位置及び前記駆動系位置推定部が推定した自己位置の基準保存時間前まで又は基準移動距離以内の履歴を保存する物体位置記憶部をさらに備え、
前記地図制御部は、前記トラッキングタイミングになった場合に、前記非駆動系位置推定部が推定した自己位置並びに前記物体位置記憶部に保存された物体の位置及び自己位置に基づき、前記基準保存時間前まで又は前記基準移動距離以内の前記物体の位置を前記基準タイミングの環境地図に記録して使用する、
付記7に記載の自律移動装置。
(付記9)
前記地図制御部は、前記トラッキングタイミングになった場合に、前記非駆動系位置推定部が推定した自己位置と前記駆動系位置推定部が推定した自己位置との差分を求め、前記差分を前記物体位置記憶部に保存された物体の位置及び自己位置に加算することにより、前記基準保存時間前まで又は前記基準移動距離以内の前記物体の位置を推定して、前記環境地図に記録する、
付記8に記載の自律移動装置。
(付記10)
前記地図作成部は、前記物体位置取得部が取得した前記物体の位置に対応する前記環境地図上の位置における前記物体の存在確率を算出し、前記存在確率を前記環境地図に記録する、
付記1から9のいずれか1つに記載の自律移動装置。
(付記11)
前記物体位置取得部は、所定の方向毎に物体の存否を確認し、物体の存在を確認した場合には前記物体までの距離である測距データを取得し、
前記地図作成部は、前記物体位置取得部が前記物体の存否を確認した回数に対する前記測距データを取得した回数の割合を前記存在確率として前記環境地図に記録する、
付記10に記載の自律移動装置。
(付記12)
前記地図作成部は、前記存在確率を対数オッズにより前記環境地図に記録する、
付記10又は11に記載の自律移動装置。
(付記13)
前記地図作成部は、前記物体位置取得部が前記物体の位置を取得するために用いる情報の種類毎に複数の環境地図を作成し、
前記地図制御部は、前記複数の環境地図をそれぞれ別々に固定する、
付記1から12のいずれか1つに記載の自律移動装置。
(付記14)
環境地図を作成しながら自己位置を推定する自律移動装置において、
自己位置を推定できなくなった場合に前記環境地図を地図保管部に保存または前記環境地図の更新を停止し、自己位置を推定できるようになった場合に前記保存した環境地図または更新を停止した環境地図を使用する、
自律移動装置。
(付記15)
環境地図を作成するための撮影画像で自己位置を推定できなくなっているロスト期間中に、オドメトリの情報を使用して簡易地図を作成して使用し、前記撮影画像で自己位置を推定できるようになった場合に、前記簡易地図を前記自己位置を推定できなくなった場合における保存した環境地図または更新を停止した環境地図に置き換える、
付記14に記載の自律移動装置。
(付記16)
環境地図を作成するための撮影画像で自己位置を推定できなくなっているロスト期間中に、オドメトリの情報を保存しておき、前記撮影画像で自己位置を推定できるようになった場合に、前記保存しておいたオドメトリの情報から自己位置を基準として過去の自己位置を推定し、前記環境地図に反映させる、
付記14に記載の自律移動装置。
(付記17)
駆動部からの情報に基づいて自己位置を推定する駆動系位置推定ステップと、
前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定ステップと、
周囲の物体の位置を取得する物体位置取得ステップと、
前記駆動系位置推定ステップ又は前記非駆動系位置推定ステップで推定した自己位置と、前記物体位置取得ステップで取得した位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成ステップと、
前記非駆動系位置推定ステップで前記自己位置を推定できなくなったロストタイミングによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を、前記自己位置を推定できるトラッキングタイミングになった場合に使用する、地図制御ステップと、
を含む自律移動方法。
(付記18)
コンピュータに、
駆動部からの情報に基づいて自己位置を推定する駆動系位置推定ステップ、
前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定ステップ、
周囲の物体の位置を取得する物体位置取得ステップ、
前記駆動系位置推定ステップ又は前記非駆動系位置推定ステップで推定した自己位置と、前記物体位置取得ステップで取得した位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成ステップ、及び、
前記非駆動系位置推定ステップで前記自己位置を推定できなくなったロストタイミングによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を、前記自己位置を推定できるトラッキングタイミングになった場合に使用する、地図制御ステップ、
を実行させるためのプログラム。
10…制御部、11…駆動系位置推定部、12…非駆動系位置推定部、13…物体位置取得部、14…地図作成部、15…移動制御部、16…地図制御部、20…記憶部、21…画像記憶部、22…特徴点記憶部、23…地図記憶部、24…地図保管部、25…測距データ記憶部、26…物体位置記憶部、27…衝突データ記憶部、30…センサ部、31…測域センサ、32,32a,32b,32c…衝突センサ、41…撮像部、42,42a,42b…駆動部、43…通信部、51…非駆動系位置推定モジュール、52…駆動系位置推定モジュール、53…地図作成モジュール、54…移動制御モジュール、70…障害物、100,101,102…自律移動装置

Claims (9)

  1. 駆動部からの情報に基づいて自己位置を推定する駆動系位置推定部と、
    前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定部と、
    周囲の物体の位置を取得する物体位置取得部と、
    前記駆動系位置推定部又は前記非駆動系位置推定部が推定した自己位置と、前記物体位置取得部が取得した物体の位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成部と、
    前記駆動系位置推定部と前記非駆動系位置推定部とのうち前記非駆動系位置推定部が前記自己位置を推定できなくなったロスト状態の開始タイミングから所定の時間以上前記ロスト状態が継続した場合に、前記開始タイミングと前記所定の時間とによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を前記ロスト状態から前記非駆動系位置推定部が前記自己位置を推定できるトラッキング状態になったときに使用する、地図制御部と、
    を備え、
    前記地図作成部は、前記環境地図を前記地図記憶部に作成する際は、前記トラッキング状態のときには少なくとも前記非駆動系位置推定部が推定した自己位置が活用されるように前記環境地図を前記地図記憶部に作成し、前記開始タイミングから前記基準タイミングまでの間は前記駆動系位置推定部が推定した自己位置に基づいて前記環境地図を前記地図記憶部に作成する、
    自律移動装置。
  2. 前記地図制御部は、前記基準タイミングに前記地図記憶部に記憶されている環境地図を地図保管部に保存し、前記地図保管部に保存した環境地図を前記ロスト状態から前記トラッキング状態になったときに前記地図記憶部に戻す、
    請求項1に記載の自律移動装置。
  3. 前記地図制御部は、前記基準タイミングに前記地図記憶部に記憶されている環境地図の更新を停止し、前記ロスト状態から前記トラッキング状態になったときに前記環境地図の更新を再開する、
    請求項1に記載の自律移動装置。
  4. 周囲の画像を取得する撮像部をさらに備え、
    前記非駆動系位置推定部は、前記撮像部が取得した画像の情報に基づいて自己位置を推定する、
    請求項1から3のいずれか1項に記載の自律移動装置。
  5. 前記物体位置取得部は、前記物体までの距離である測距データを取得する測域センサからの情報を用いて前記物体の位置を取得する、
    請求項1から4のいずれか1項に記載の自律移動装置。
  6. 前記物体位置取得部は、前記物体に衝突したことを検出する衝突センサからの情報を用いて前記物体の位置を取得する、
    請求項1から5のいずれか1項に記載の自律移動装置。
  7. 前記地図作成部は、前記物体位置取得部が取得した前記物体の位置に対応する前記環境地図上の位置における前記物体の存在確率を算出し、前記存在確率を前記環境地図に記録する、
    請求項1から6のいずれか1項に記載の自律移動装置。
  8. 自律移動装置が実行する自律移動方法であって、
    駆動部からの情報に基づいて自己位置を推定する駆動系位置推定ステップと、
    前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定ステップと、
    周囲の物体の位置を取得する物体位置取得ステップと、
    前記駆動系位置推定ステップ又は前記非駆動系位置推定ステップで推定した自己位置と、前記物体位置取得ステップで取得した物体の位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成ステップと、
    前記駆動系位置推定ステップと前記非駆動系位置推定ステップとのうち前記非駆動系位置推定ステップで前記自己位置を推定できなくなったロスト状態の開始タイミングから所定の時間以上前記ロスト状態が継続した場合に、前記開始タイミングと前記所定の時間とによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を前記ロスト状態から前記非駆動系位置推定ステップで前記自己位置を推定できるトラッキング状態になったときに使用する、地図制御ステップと、
    を含み、
    前記地図作成ステップは、前記環境地図を前記地図記憶部に作成する際は、前記トラッキング状態のときには少なくとも前記非駆動系位置推定ステップで推定した自己位置が活用されるように前記環境地図を前記地図記憶部に作成し、前記開始タイミングから前記基準タイミングまでの間は前記駆動系位置推定ステップで推定した自己位置に基づいて前記環境地図を前記地図記憶部に作成する、
    自律移動方法。
  9. コンピュータに、
    駆動部からの情報に基づいて自己位置を推定する駆動系位置推定ステップ、
    前記駆動部以外からの情報に基づいて自己位置を推定する非駆動系位置推定ステップ、
    周囲の物体の位置を取得する物体位置取得ステップ、
    前記駆動系位置推定ステップ又は前記非駆動系位置推定ステップで推定した自己位置と、前記物体位置取得ステップで取得した物体の位置と、に基づき、前記物体の位置を記録した環境地図を地図記憶部に作成する地図作成ステップ、及び、
    前記駆動系位置推定ステップと前記非駆動系位置推定ステップとのうち前記非駆動系位置推定ステップで前記自己位置を推定できなくなったロスト状態の開始タイミングから所定の時間以上前記ロスト状態が継続した場合に、前記開始タイミングと前記所定の時間とによって定まる基準タイミングに前記地図記憶部に記憶されている環境地図を前記ロスト状態から前記非駆動系位置推定ステップで前記自己位置を推定できるトラッキング状態になったときに使用する、地図制御ステップ、
    を実行させ
    前記地図作成ステップは、前記環境地図を前記地図記憶部に作成する際は、前記トラッキング状態のときには少なくとも前記非駆動系位置推定ステップで推定した自己位置が活用されるように前記環境地図を前記地図記憶部に作成し、前記開始タイミングから前記基準タイミングまでの間は前記駆動系位置推定ステップで推定した自己位置に基づいて前記環境地図を前記地図記憶部に作成する、
    プログラム。
JP2017131894A 2017-07-05 2017-07-05 自律移動装置、自律移動方法及びプログラム Active JP7087290B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017131894A JP7087290B2 (ja) 2017-07-05 2017-07-05 自律移動装置、自律移動方法及びプログラム
US16/026,168 US10698416B2 (en) 2017-07-05 2018-07-03 Autonomous mobile apparatus and autonomous move method
CN201810727535.7A CN109213146B (zh) 2017-07-05 2018-07-04 自主移动装置、自主移动方法以及程序存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017131894A JP7087290B2 (ja) 2017-07-05 2017-07-05 自律移動装置、自律移動方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2019016089A JP2019016089A (ja) 2019-01-31
JP7087290B2 true JP7087290B2 (ja) 2022-06-21

Family

ID=64903168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017131894A Active JP7087290B2 (ja) 2017-07-05 2017-07-05 自律移動装置、自律移動方法及びプログラム

Country Status (3)

Country Link
US (1) US10698416B2 (ja)
JP (1) JP7087290B2 (ja)
CN (1) CN109213146B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11835343B1 (en) 2004-08-06 2023-12-05 AI Incorporated Method for constructing a map while performing work
US10612929B2 (en) * 2017-10-17 2020-04-07 AI Incorporated Discovering and plotting the boundary of an enclosure
US11274929B1 (en) * 2017-10-17 2022-03-15 AI Incorporated Method for constructing a map while performing work
JP6687313B1 (ja) * 2019-03-26 2020-04-22 三菱ロジスネクスト株式会社 搬送システム
WO2020235392A1 (ja) * 2019-05-17 2020-11-26 村田機械株式会社 搬送車システム、搬送車、及び、制御方法
KR102224637B1 (ko) 2019-07-05 2021-03-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102275300B1 (ko) 2019-07-05 2021-07-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102297496B1 (ko) * 2019-07-11 2021-09-02 엘지전자 주식회사 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
KR102361130B1 (ko) 2019-07-11 2022-02-09 엘지전자 주식회사 이동 로봇 및 그 제어방법
JP7293057B2 (ja) * 2019-09-13 2023-06-19 株式会社東芝 放射線量分布表示システムおよび放射線量分布表示方法
JP2021056764A (ja) * 2019-09-30 2021-04-08 日本電産株式会社 移動体
US11592570B2 (en) * 2020-02-25 2023-02-28 Baidu Usa Llc Automated labeling system for autonomous driving vehicle lidar data
JP2022065749A (ja) * 2020-10-16 2022-04-28 株式会社キビテク 移動体の制御システム
WO2022172831A1 (ja) * 2021-02-10 2022-08-18 株式会社Preferred Networks 情報処理装置
CN117589154B (zh) * 2024-01-19 2024-05-24 深圳竹芒科技有限公司 自移动设备的重定位方法、自移动设备和可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079869A (ja) 2008-08-25 2010-04-08 Murata Machinery Ltd 自律移動装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3359008B2 (ja) * 1999-08-20 2002-12-24 三菱重工業株式会社 無人搬送車の走行制御システム
JP4147916B2 (ja) * 2002-11-28 2008-09-10 株式会社豊田自動織機 軌道式ループ台車の搬送制御方法及び搬送システム
US7120521B2 (en) * 2003-01-31 2006-10-10 Hal Dwayne Lilley Anti hijacking fail-safe system with alert locator tracking capabilities
JP2004258546A (ja) * 2003-02-27 2004-09-16 Casio Comput Co Ltd カメラ装置、及びカメラ装置の起動方法、プログラム
US7502670B2 (en) * 2004-07-26 2009-03-10 Salient Systems, Inc. System and method for determining rail safety limits
US20090037039A1 (en) * 2007-08-01 2009-02-05 General Electric Company Method for locomotive navigation and track identification using video
JP5434965B2 (ja) * 2011-06-03 2014-03-05 カシオ計算機株式会社 動画生成方法、動画生成装置及びプログラム
EP2902863B1 (en) * 2012-09-28 2019-07-03 Hitachi, Ltd. Autonomous moving apparatus
GB2529847B (en) 2014-09-03 2018-12-19 Dyson Technology Ltd A mobile Robot with Independently Adjustable Light Sources
CN104858871B (zh) * 2015-05-15 2016-09-07 珠海市一微半导体有限公司 机器人系统及其自建地图和导航的方法
EP3144765B1 (en) * 2015-09-18 2020-01-08 Samsung Electronics Co., Ltd. Apparatus for localizing cleaning robot, cleaning robot, and controlling method of cleaning robot
JP6288060B2 (ja) * 2015-12-10 2018-03-07 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP6323439B2 (ja) * 2015-12-17 2018-05-16 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
CN105867381B (zh) * 2016-04-25 2019-03-29 广西大学 一种基于概率地图的工业机器人路径搜索优化算法
CN206096933U (zh) * 2016-09-29 2017-04-12 翁锦祥 一种智能物料搬运系统
CN106647734B (zh) * 2016-10-12 2020-11-24 北京京东乾石科技有限公司 自动导引车、路径规划方法与装置
CN106681323B (zh) * 2016-12-22 2020-05-19 北京光年无限科技有限公司 一种用于机器人的交互输出方法以及机器人
CN106774326A (zh) * 2016-12-23 2017-05-31 湖南晖龙股份有限公司 一种导购机器人及其导购方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079869A (ja) 2008-08-25 2010-04-08 Murata Machinery Ltd 自律移動装置

Also Published As

Publication number Publication date
US10698416B2 (en) 2020-06-30
CN109213146A (zh) 2019-01-15
CN109213146B (zh) 2021-07-13
US20190011929A1 (en) 2019-01-10
JP2019016089A (ja) 2019-01-31

Similar Documents

Publication Publication Date Title
JP7087290B2 (ja) 自律移動装置、自律移動方法及びプログラム
JP7082545B2 (ja) 情報処理方法、情報処理装置およびプログラム
Park et al. Autonomous mobile robot navigation using passive RFID in indoor environment
KR101493075B1 (ko) 이동 로봇의 위치 인식 장치 및 방법
JP5348514B2 (ja) 位置確認のために三次元位置と二次元強度のマッピングを組み合わせるための方法と装置
KR101179848B1 (ko) 측위 장치, 측위 방법, 기록 매체 및 촬상 장치
CN110967711A (zh) 数据采集方法和系统
CN109213142B (zh) 自主移动装置、自主移动方法以及存储介质
JP6870574B2 (ja) 自律移動装置、自律移動方法及びプログラム
JP6311695B2 (ja) 自律移動装置、自律移動方法及びプログラム
CN110553652A (zh) 机器人多传感器融合定位方法及其应用
JP2002511614A (ja) 物体位置の追跡・検知方法
EP3278937A1 (en) Charger, and map-constructing-based charger finding method, device and system
JP2017107425A (ja) 自律移動装置、自律移動方法及びプログラム
JP5276931B2 (ja) 移動体および移動体の位置推定誤り状態からの復帰方法
CN112729321A (zh) 一种机器人的扫图方法、装置、存储介质和机器人
US20180275663A1 (en) Autonomous movement apparatus and movement control system
JP2014203145A (ja) 自律移動装置
JP2019109773A (ja) 移動体
JP2018005470A (ja) 自律移動装置、自律移動方法及びプログラム
KR102097722B1 (ko) 빅셀그리드맵을 이용한 이동체의 자세 추정 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
JP6638753B2 (ja) 自律移動装置、自律移動方法及びプログラム
CN116465393A (zh) 基于面阵激光传感器的同步定位和建图方法及装置
CN113534805B (zh) 机器人回充控制方法、装置和存储介质
JP2016177749A (ja) 移動体制御装置、プログラムおよび集積回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210921

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220307

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220307

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220315

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220322

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: 20220510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220523

R150 Certificate of patent or registration of utility model

Ref document number: 7087290

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150