IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カシオ計算機株式会社の特許一覧

特許7127303自律移動装置、自律移動方法及びプログラム
<>
  • 特許-自律移動装置、自律移動方法及びプログラム 図1
  • 特許-自律移動装置、自律移動方法及びプログラム 図2
  • 特許-自律移動装置、自律移動方法及びプログラム 図3
  • 特許-自律移動装置、自律移動方法及びプログラム 図4
  • 特許-自律移動装置、自律移動方法及びプログラム 図5
  • 特許-自律移動装置、自律移動方法及びプログラム 図6
  • 特許-自律移動装置、自律移動方法及びプログラム 図7
  • 特許-自律移動装置、自律移動方法及びプログラム 図8
  • 特許-自律移動装置、自律移動方法及びプログラム 図9
  • 特許-自律移動装置、自律移動方法及びプログラム 図10
  • 特許-自律移動装置、自律移動方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-22
(45)【発行日】2022-08-30
(54)【発明の名称】自律移動装置、自律移動方法及びプログラム
(51)【国際特許分類】
   G05D 1/02 20200101AFI20220823BHJP
【FI】
G05D1/02 H
【請求項の数】 15
(21)【出願番号】P 2018042608
(22)【出願日】2018-03-09
(65)【公開番号】P2019159520
(43)【公開日】2019-09-19
【審査請求日】2021-03-05
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】中嶋 光康
【審査官】牧 初
(56)【参考文献】
【文献】特開2018-028489(JP,A)
【文献】特開2011-209845(JP,A)
【文献】特開2017-204132(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00- 1/12
G08G 1/00-99/00
G01C 21/00-21/36
G01C 23/00-25/00
(57)【特許請求の範囲】
【請求項1】
自律移動装置であって、
制御部と記憶部とを備え、
前記制御部は、
前記自律移動装置の周囲の環境の情報である環境情報として少なくとも点灯している電灯の数を取得し、
前記環境情報に基づいて、前記記憶部に保存されている環境地図の中から、前記取得した前記周囲の環境に適合する環境地図を、推定用環境地図として選択し、
前記選択した環境地図と、撮像部で撮像された前記自律移動装置の周囲の画像とを用いて位置を推定する、
自律移動装置。
【請求項2】
前記制御部は、
前記自律移動装置の位置の推定に加え、前記撮像部で撮影された前記自律移動装置の周囲の画像を用いて前記環境地図の作成を行い、
前記作成した環境地図を、前記環境地図を作成しているときに取得した前記環境情報と対応付けて前記記憶部に保存する、
請求項1に記載の自律移動装置。
【請求項3】
前記制御部は、前記撮像部で前記自律移動装置の周囲の画像を撮影することによって前記環境情報を取得する、
請求項1又は2に記載の自律移動装置。
【請求項4】
さらに充電器と通信する通信部を備え、
前記制御部は、前記充電器が備える充電器撮像部で撮影した画像を前記通信部で受信することによって前記環境情報を取得する、
請求項1から3のいずれか1項に記載の自律移動装置。
【請求項5】
さらにユーザが入力した情報を取得する入力部を備え、
前記制御部は、前記ユーザが入力した情報を前記入力部で取得することによって前記環境情報を取得する、
請求項1から4のいずれか1項に記載の自律移動装置。
【請求項6】
前記制御部が取得する前記環境情報は、前記周囲の環境の明るさの情報を含む、
請求項1から5のいずれか1項に記載の自律移動装置。
【請求項7】
前記制御部は、前記環境情報の取得を一定の位置で行う、
請求項1から6のいずれか1項に記載の自律移動装置。
【請求項8】
前記制御部は、前記環境情報の取得を充電器の上で行う、
請求項7に記載の自律移動装置。
【請求項9】
前記制御部は、
前記記憶部に保存されている環境地図の中から、以後利用する環境地図の候補となる複数の候補環境地図を抽出し、
前記抽出した複数の候補環境地図のそれぞれを用いて推定した位置の誤差が基準誤差以下となる候補環境地図を、以後利用する環境地図として選択する、
請求項1から8のいずれか1項に記載の自律移動装置。
【請求項10】
前記記憶部に保存されている環境地図の中から、現在の前記環境情報との類似度の高い環境情報が付加された環境地図を、前記候補環境地図として、類似度の高い順に所定の候補数抽出する、
請求項9に記載の自律移動装置。
【請求項11】
前記制御部は、前記記憶部に保存されている環境地図の中から、ランダムに選択した環境地図を、前記候補環境地図として抽出する、
請求項9又は10に記載の自律移動装置。
【請求項12】
前記制御部は、前記記憶部に保存されている環境地図の中から、ユーザが選択した環境地図を、前記候補環境地図として抽出する、
請求項9から11のいずれか1項に記載の自律移動装置。
【請求項13】
前記制御部は、
前記推定用環境地図を用いて推定した前記自律移動装置の位置の誤差が基準誤差を超える場合、前記記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を選択し直し、
前記選択し直された推定用環境地図を用いて、前記自律移動装置の位置を推定する、
請求項1から12のいずれか1項に記載の自律移動装置。
【請求項14】
自律移動方法であって、
自律移動装置の周囲の環境の情報である環境情報として少なくとも点灯している電灯の数を取得し、
前記環境情報に基づいて、記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を、推定用環境地図として選択し、
前記選択した環境地図と、撮像部で撮像された前記自律移動装置の周囲の画像とを用いて位置を推定する、
自律移動方法。
【請求項15】
自律移動装置のコンピュータに、
前記自律移動装置の周囲の環境の情報である環境情報として少なくとも点灯している電灯の数を取得し、
前記環境情報に基づいて、記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を、推定用環境地図として選択し、
前記選択した環境地図と、撮像部で撮像された前記自律移動装置の周囲の画像とを用いて位置を推定する、
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律移動装置、自律移動方法及びプログラムに関する。
【背景技術】
【0002】
屋内を自動的に掃除する掃除機ロボットのような、環境地図を作成して自律的に移動する自律移動装置が普及してきている。環境地図を作成する際にカメラで撮影した画像を用いる場合、作成される環境地図の内容は照明等の環境に大きく影響を受ける。そのため、環境地図を作成した際の照明等の環境と異なる環境において、その環境地図を利用して自己位置の推定を行うと、位置推定の性能が大幅に悪化してしまう。この問題を解決する技術として、特許文献1には、周囲環境のランドマーク配置をもとに自己位置推定することにより、外乱による影響を抑制した自己位置推定をすることができる自律移動装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2016/016955号
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されている自律移動装置は、照明変化等の外乱要因(環境の変化)に影響されないランドマークを選択し、選択したランドマークを追跡するようにカメラを制御し、そのように追跡制御されているカメラで撮影したランドマークの配置をもとに自己位置を推定するため、環境の変化に対してロバストな自己位置推定ができる。しかし、環境の変化に影響されないランドマークとは、床の白線等の明確な形状を持つランドマーク(マーカー)であり、周囲にこのような明確なランドマークがない環境では、自律移動装置の動作が不安定になる可能性があった。したがって、従来の自律移動装置では、環境の変化に対してロバストな自己位置推定を可能にする技術に改善の余地がある。
【0005】
本発明は、上記問題を解決するためになされたものであり、環境の変化に対してロバストな自己位置推定を可能にする技術を改善した自律移動装置、自律移動方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の自律移動装置は、
制御部と記憶部とを備え、
前記制御部は、
前記自律移動装置の周囲の環境の情報である環境情報として少なくとも点灯している電灯の数を取得し、
前記環境情報に基づいて、前記記憶部に保存されている環境地図の中から、前記取得した前記周囲の環境に適合する環境地図を、推定用環境地図として選択し、
前記選択した環境地図と、撮像部で撮像された前記自律移動装置の周囲の画像とを用いて位置を推定する。
また、本発明の自律移動方法は、
自律移動装置の周囲の環境の情報である環境情報として少なくとも点灯している電灯の数を取得し、
前記環境情報に基づいて、記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を、推定用環境地図として選択し、
前記選択した環境地図と、撮像部で撮像された前記自律移動装置の周囲の画像とを用いて位置を推定する。
また、本発明のプログラムは、
自律移動装置のコンピュータに、
前記自律移動装置の周囲の環境の情報である環境情報として少なくとも点灯している電灯の数を取得し、
前記環境情報に基づいて、記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を、推定用環境地図として選択し、
前記選択した環境地図と、撮像部で撮像された前記自律移動装置の周囲の画像とを用いて位置を推定する、
処理を実行させる。
【発明の効果】
【0007】
本発明によれば、環境の変化に対してロバストな自己位置推定を可能にする技術を改善することができる。
【図面の簡単な説明】
【0008】
図1】本発明の実施形態1に係る自律移動装置の外観を示す図である。
図2】実施形態1に係る充電器の外観を示す図である。
図3】実施形態1に係る充電器が送信する帰還信号を説明する図である。
図4】実施形態1に係る自律移動装置の機能構成を示す図である。
図5】実施形態1に係る自律移動装置が作成する環境地図のデータ構造を示す図である。
図6】実施形態1に係る自律移動装置の起動時の処理のフローチャートである。
図7】実施形態1に係る自律移動装置の自己位置推定スレッドのフローチャートである。
図8】実施形態1に係る自律移動装置の環境地図保存処理のフローチャートである。
図9】実施形態1に係る自律移動装置の環境地図抽出処理のフローチャートである。
図10】実施形態1に係る自律移動装置のRelocalization処理のフローチャートである。
図11】本発明の実施形態1の変形例2に係る自律移動装置の自己位置推定スレッドのフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態に係る自律移動装置について、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【0010】
(実施形態1)
本発明の実施形態に係る自律移動装置は、地図(環境地図)を作成しながら、用途に応じて自律的に移動する装置である。この用途とは、例えば、警備監視用、屋内掃除用、ペット用、玩具用等である。
【0011】
自律移動装置100は、図1に示すように、外観上、帰還信号受信部31(31a,31b)、駆動部32(32a,32b)、撮像部33、充電接続部35、を備える。なお、図1には示されていないが、自律移動装置100は、周囲に存在する物体(障害物)を検出する障害物センサを備えてもよい。また、自律移動装置100の電池を充電するための充電器200は、図2に示すように、外観上、帰還信号送信部51(51a,51b)、電力供給部52、充電器撮像部53を備える。
【0012】
自律移動装置100の充電接続部35と充電器200の電力供給部52とが接続することにより、充電器200から電力の供給を受けて、自律移動装置100は内蔵している電池を充電することができる。なお、充電接続部35及び電力供給部52は、それぞれがお互いと接続するための接続端子である。これらは、駆動部32により自律移動装置100が充電器200の上に移動することによって、接続される。この接続は、充電接続部35と電力供給部52とが接触することによって接続してもよいし、充電接続部35と電力供給部52とが近接することによって電磁誘導等により接続してもよい。
【0013】
撮像部33は、自律移動装置100の前方から上部までの広範囲を撮影できる広角レンズを備える。このため、撮像部33は天井の電灯が点灯しているか否かを判別可能な画像を撮影することができる。そして、自律移動装置100は、撮像部33を利用して単眼SLAM(Simultaneous Localization And Mapping)処理を行うことができる。
【0014】
実施形態1では使用されないが、充電器撮像部53も、充電器200の周囲から上部までの広範囲を撮影できる広角レンズを備える。充電器撮像部53も、撮像部33と同様に、天井の電灯が点灯しているか否かを判別可能な画像を撮影することができる。
【0015】
自律移動装置100の帰還信号受信部31は、充電器200から送信される帰還信号(赤外線ビーコン)を受信するためのデバイスである。自律移動装置100の正面に向かって左に帰還信号受信部31a、右に帰還信号受信部31bと、合計2つの帰還信号受信部31が備えられている。また、充電器200の帰還信号送信部51は、自律移動装置100に帰還信号を送信するためのデバイスである。充電器200の正面に向かって右に帰還信号送信部51aが、左に帰還信号送信部51bが、それぞれ備えられている。そして、帰還信号送信部51aから送信される帰還信号と、帰還信号送信部51bから送信される帰還信号とは、異なる信号になっている。したがって、帰還信号受信部31は、各々左右どちらの帰還信号送信部51からの帰還信号を受信したのかを判別することができる。
【0016】
充電器200の帰還信号送信部51から送信される帰還信号の左右それぞれの受信可能範囲54(54a,54b)の一例を図3に示す。帰還信号送信部51aから送信される帰還信号は、受信可能範囲54aの内部に自律移動装置100の帰還信号受信部31が入ると受信できる。そして、帰還信号送信部51bから送信される帰還信号は、受信可能範囲54bの内部に自律移動装置100の帰還信号受信部31が入ると受信できる。したがって、自律移動装置100は、受信可能範囲54の内部に入ると充電器200の存在する方向を把握することができる。そして、自律移動装置100は、帰還信号送信部51aからの帰還信号を帰還信号受信部31aが受信し、帰還信号送信部51bからの帰還信号を帰還信号受信部31bが受信するように向きを調整しながら進むことによって、充電器200の上に移動することができる。自律移動装置100は、充電器200の上に移動すると、充電接続部35と電力供給部52とが接続し、自律移動装置100に内蔵されている電池を充電することができる。
【0017】
駆動部32は、独立2輪駆動型であって、車輪とモータとを備える移動手段である。自律移動装置100は、2つの車輪の同一方向駆動により前後の平行移動(並進移動)を、2つの車輪の逆方向駆動によりその場での回転(向き変更)を、2つの車輪のそれぞれ速度を変えた駆動により旋回移動(並進+回転(向き変更)移動)を、行うことができる。また、各々の車輪にはロータリエンコーダが備えられており、ロータリエンコーダで車輪の回転数を計測し、車輪の直径や車輪間の距離等の幾何学的関係を利用することで並進移動量及び回転量を計算できる。例えば、車輪の直径をD、回転数をR(ロータリエンコーダにより測定)とすると、その車輪の接地部分での並進移動量はπ・D・Rとなる。また、車輪の直径をD、車輪間の距離をI、右車輪の回転数をR、左車輪の回転数をRとすると、向き変更の回転量は(右回転を正とすると)360°×D×(R-R)/(2×I)となる。この並進移動量及び回転量を逐次足し合わせていくことで、駆動部32は、いわゆるオドメトリ(メカオドメトリ)として機能し、自己位置(移動開始時の位置及び向きを基準とした位置及び向き)を計測することができる。
【0018】
図4に示すように、自律移動装置100は、帰還信号受信部31(31a,31b)、駆動部32(32a,32b)、撮像部33、充電接続部35、に加えて、制御部10、記憶部20、通信部34、を備える。
【0019】
制御部10は、CPU(Central Processing Unit)等で構成され、記憶部20に記憶されたプログラムを実行することにより、後述する各部(環境情報取得部11、地図作成部12、自己位置推定部13、行動計画部14、移動制御部15)の機能を実現する。また、制御部10は、時計(図示せず)を備え、現在日時の取得や経過時間のカウントをすることができる。
【0020】
記憶部20は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成され、ROMの一部又は全部は電気的に書き換え可能なメモリ(フラッシュメモリ等)で構成されている。記憶部20は、機能的に、地図記憶部21と、地図保存部22と、を含む。ROMには制御部10のCPUが実行するプログラム及びプログラムを実行する上で予め必要なデータが記憶されている。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
【0021】
地図記憶部21には、撮像部33が撮影した画像の情報に基づいてSLAM処理によって地図作成部12が作成した環境地図が記憶される。環境地図は、図5に示すように、キーフレーム情報群及びMapPoint情報群並びにこれらの情報を取得した際の環境情報を含み、各環境地図には地図ID(Identifier)が割り振られる。地図IDは環境地図を一意に識別するためのIDである。
【0022】
なお、キーフレームとは、SLAM処理において、撮像部33が撮影した画像(フレーム)のうち3次元(3D)位置の推定に用いるフレームのことをいう。そして、図5に示すように、キーフレーム情報は、キーフレームを撮影した時の撮像部33(自律移動装置100)の環境地図(3次元空間)内での3D姿勢(位置(3D座標)及び向き)と、キーフレーム中に含まれる複数の特徴点の情報を含む。また、各キーフレーム情報には、当該キーフレームを一意に識別するためのIDであるキーフレームIDが割り振られる。
【0023】
キーフレーム中に含まれる特徴点とは、キーフレーム(画像)中の、エッジ部分やコーナー部分等、画像内の特徴的な部分の点のことをいう。特徴点は、例えばSIFT(Scale-Invariant Feature Transform)、SURF(Speeded Up Robust Features)、FAST(Features from Accelerated Segment Test)等のアルゴリズムで検出することができる。そして、図5に示すように、特徴点の情報として、その特徴点のキーフレーム内における2D座標、特徴点の特徴量、そして、その特徴点の環境地図内における3D座標点が推定済であるならその特徴点に対応するMapPointのIDを含む。その特徴点の環境地図内における3D座標がまだ推定されていないなら「対応するMapPointのID」には、3D座標が未推定であることを示す特別なID(例えば0)が格納される。
【0024】
なお、特徴点の特徴量としては、例えばORB(Oriented FAST and Rotated BRIEF)特徴を用いることができる。また、MapPointとは、SLAM処理によって、環境地図内における3D座標が推定できた特徴点の3D座標点のことをいう。MapPointの情報には図5に示すように、MapPoint ID(MapPointを一意に識別するためのID)と、そのMapPointの環境地図内における3D座標が含まれる。したがって、特徴点の情報に含まれる「対応するMapPointのID」から、その特徴点の環境地図内における3D座標を取得することができる。
【0025】
また、環境情報とは、電灯のON/OFF、明るさ情報、時刻等、自律移動装置100の位置推定に影響を及ぼすと考えられる周囲の環境の情報である。環境情報として重要なものは主に明るさに関係する情報(照明のON/OFF、カーテンの開け閉め、窓からの日光の条件(朝と夕、天候)等)であるが、人の数、家具の配置等を含めてもよい。また、気温、湿度、気圧等は位置推定には直接は影響しないが、これらによって部屋の配置や人の出入りが変化するのであれば、これらの情報を環境情報に含めてもよい。
【0026】
地図保存部22は、記憶部20の電気的に書き換え可能なROM(フラッシュメモリ等)内に存在し、地図記憶部21に記憶されている環境地図を、自律移動装置100の電源が落とされた後も消滅しないように保存する。
【0027】
通信部34は、充電器200やその他の外部装置と無線通信するためのアンテナを含む無線モジュールである。例えば、通信部34は、Bluetooth(登録商標)に基づく近距離無線通信を行うための無線モジュールである。通信部34を用いることにより、自律移動装置100は、充電器200の備える充電器撮像部53が撮影した画像データの受信や、外部装置とデータの受け渡し等を行うことができる。
【0028】
次に、自律移動装置100の制御部10の機能的構成について説明する。制御部10は、環境情報取得部11、地図作成部12、自己位置推定部13、行動計画部14、移動制御部15、の機能を実現し、環境地図の作成、自己位置の推定、移動制御等を行う。また、制御部10は、マルチスレッド機能に対応しており、複数のスレッド(異なる処理の流れ)を並行して実行することができる。
【0029】
環境情報取得部11は、撮像部33が撮影した画像データに基づき、電灯のON/OFF、明るさ情報等の、周囲の環境を表す環境情報を取得する。また、環境情報に日時情報が含まれる場合は、環境情報取得部11は、制御部10が備える時計から現在日時を取得する。
【0030】
地図作成部12は、撮像部33が撮影した画像データを用いてSLAM処理により、図5に示すキーフレーム情報群とMapPoint情報群とからなる環境地図のデータを作成し、地図記憶部21に書き込む。
【0031】
自己位置推定部13は、撮像部33が撮影した画像データと地図作成部12が作成した環境地図のデータとを用いてSLAM処理により、自律移動装置100の環境地図内の姿勢(位置(3D座標)及び向き)を推定する。なお、毎回「姿勢(位置及び向き)」と記載するのは煩雑であるため、本明細書及び特許請求の範囲では、単に「位置」と記載している場合でも、位置だけでなく向きも含むものとする。つまり「姿勢(位置及び向き)」を表す言葉として「位置」が用いられる場合がある。
【0032】
行動計画部14は、地図記憶部21に記憶されている環境地図及び動作モードに基づき、移動先及び経路を設定する。なお、動作モードとは、自律移動装置100の行動様式を定めるものである。自律移動装置100は、例えば、ランダムに移動する「自由散歩モード」、地図の作成範囲を広げていく「地図作成モード」、後述するメインスレッド等から指定された場所に移動する「移動先指定モード」等の複数の動作モードを持つ。動作モードは、例えば、初期値は地図作成モードで、地図がある程度作成されたら(例えば地図作成モードで10分経過したら)自由散歩モードになり、電池残量が少なくなったら充電器200の位置を移動先に指定された移動先指定モードになるというように、予め変化する条件が設定されていてもよいし、外部(ユーザ、メインスレッド等)からの指示により、設定されてもよい。行動計画部14が経路を設定する際には、地図作成部12が作成した環境地図に基づき、自律移動装置100の現在位置から移動先までの経路を設定する。
【0033】
移動制御部15は、行動計画部14が設定した経路に沿って、自律移動装置100を移動させるように駆動部32を制御する。
【0034】
以上、自律移動装置100の機能構成について説明した。次に、自律移動装置100で起動される各種処理について説明する。自律移動装置100は、電源オフ時は充電器200に接続して充電されており、電源が投入されると、充電器200に接続された位置で、後述する起動処理が実行され、メインスレッドをはじめとする各種スレッドが並行して実行される。なお、メインスレッドとは、自律移動装置100が用途に応じた処理を実行するためのスレッドであり、例えば屋内掃除用の処理を実行するスレッドである。では、自律移動装置100の起動時の処理について、図6を参照して説明する。図6は、自律移動装置100の起動時の処理のフローチャートである。
【0035】
まず、自律移動装置100の制御部10は、メインスレッドを起動する(ステップS101)。メインスレッドは、次のステップで起動される自己位置推定スレッドから自律移動装置100の現在の姿勢(環境地図内の3D座標及び向き)の情報を受けて、用途に応じた処理(例えば屋内掃除用の処理)を行うスレッドである。
【0036】
次に、制御部10は、SLAM処理用の各種スレッドを起動する(ステップS102)。SLAM処理用の各種スレッドとは、自律移動装置100の位置を推定する自己位置推定スレッド、環境地図を作成する地図作成スレッド、ループクロージング処理を行うループクロージングスレッド等である。なお、ループクロージング処理とは、自律移動装置100が、以前来たことのある同じ場所に戻ってきたことを認識した場合に、以前この同じ場所にいた時の姿勢の値と現在の姿勢の値とのずれを用いて、以前来た時から今までの移動軌跡中のキーフレームや、関連するMapPointの3D位置を修正する処理をいう。
【0037】
次に、制御部10は、移動スレッドを起動する(ステップS103)。移動スレッドは、メインスレッドから移動命令を受けて、移動制御部15が駆動部32を制御して自律移動装置100を移動させる処理を行うスレッドである。そして、これ以後は、自律移動装置100は、この起動時の処理によって起動された各スレッドにより制御される。
【0038】
SLAM処理用のスレッドのうち、自己位置推定スレッドについて、図7を参照して説明する。自己位置推定スレッドは、地図保存部22に保存されている環境地図のうち現在の環境に適合した環境地図を選択し、その選択した環境地図を用いて追跡処理(自己位置の推定処理)を行うスレッドである。
【0039】
まず、制御部10は、地図保存部22に環境地図が保存されているか否かを判定する(ステップS201)。地図保存部22に環境地図が保存されていなければ(ステップS201;No)、制御部10は初期状態からSLAM処理を開始し、変数MODEにTRACKINGをセットし(ステップS202)、ステップS211に進む。なお、変数MODEは、自律移動装置100が現在、自己位置を推定可能な状態(TRACKING状態)なのか、推定できない状態(LOST状態)なのかを表す変数である。
【0040】
地図保存部22に環境地図が保存されていれば(ステップS201;Yes)、制御部10は、地図保存部22に保存されている環境地図の中から現在の環境に適合する可能性の高い環境地図を抽出する処理である環境地図抽出処理を行う(ステップS203)。環境地図抽出処理の詳細については後述する。
【0041】
そして、制御部10は、現在の自己位置が不明な状態において環境地図を利用して自己位置を推定する処理であるRelocalization処理を行う(ステップS204)。Relocalization処理の詳細については後述する。
【0042】
そして、制御部10は、Relocalization処理が成功したか否かを判定する(ステップS205)。Relocalization処理が失敗したら(ステップS205;No)、制御部10はメインスレッドやユーザから終了指示があるか否かを判定する(ステップS206)。終了指示があるなら(ステップS206;Yes)、自己位置推定スレッドを終了する。終了指示がないなら(ステップS206;No)、移動スレッドに移動指示を出して移動し(ステップS207)、ステップS204に戻って再度Relocalization処理を行う。なお、ステップS207での移動は、Relocalization処理の最初に取得する画像を変化させるための移動であり、例えば並行動作している他のスレッドの処理により自律移動装置100が移動している場合は、ステップS207で改めて移動する必要はない。
【0043】
一方、Relocalization処理が成功したら(ステップS205;Yes)、制御部10は、Relocalization処理が成功した際に選択していた環境地図を地図記憶部21に読み込んで、その後の自己位置推定に利用する(ステップS208)。そして、制御部10は、変数MODEにTRACKINGをセットし(ステップS209)、ステップS211に進む。
【0044】
ステップS211では、SLAMによる追跡処理により、自己位置を推定する。この追跡処理は、まず、撮像部33が撮影した画像データから特徴点を抽出し、抽出した特徴点と、環境地図に含まれる3D座標が推定済みであるキーフレームの特徴点との対応を、特徴量を利用して取得する。対応が取れた特徴点(対応特徴点)の数が追跡可能基準数(例えば10)以上あれば、対応特徴点の画像中の2D座標と、環境地図内における3D座標との関係から、制御部10は自己位置を推定することができる。この場合は追跡成功となる。対応特徴点の数が追跡可能基準数未満の場合は自己位置を推定しても誤差が大きくなってしまうため、制御部10は、追跡失敗と判断して、自己位置の推定は行わない。
【0045】
制御部10は、追跡処理の後、追跡処理が成功したか否かを判定する(ステップS212)。追跡処理が成功したなら(ステップS212;Yes)、制御部10は、追跡処理で取得した自己位置をメインスレッドに送信する(ステップS213)。そして、制御部10は、規定時間(例えば10秒)スリープする(ステップS214)。
【0046】
一方、追跡処理が失敗したなら(ステップS212;No)、制御部10は、変数MODEにLOSTをセットし(ステップS220)、メインスレッドに自己位置取得を失敗した旨を送信し(ステップS221)、ステップS214に進んで規定時間スリープする。
【0047】
その後、制御部10は、メインスレッドやユーザから終了指示があるか否かを判定する(ステップS215)。終了指示があるなら(ステップS215;Yes)、自己位置推定スレッドを終了する。終了指示がないなら(ステップS215;No)、環境地図を保存する処理である環境地図保存処理を行う(ステップS216)。環境地図保存処理の詳細については後述する。
【0048】
次に、制御部10は、変数MODEにセットされている値がLOSTであるか否かを判定する(ステップS210)。変数MODEにセットされている値がLOSTでないなら(ステップS210;No)、TRACKING中であるということなので、ステップS211に進んで追跡処理を行う。
【0049】
変数MODEにセットされている値がLOSTなら(ステップS210;Yes)、制御部10は、現在利用している(地図記憶部21に読み込まれている)環境地図を用いてRelocalization処理を行い(ステップS217)、そのRelocalization処理が成功したか否かを判定する(ステップS218)。Relocalization処理が成功したなら(ステップS218;Yes)、制御部10は、変数MODEにTRACKINGをセットし(ステップS219)、ステップS213に進む。Relocalization処理が失敗したなら(ステップS218;No)、ステップS221に進む。
【0050】
以上、自己位置推定スレッドの処理について説明した。次に、自己位置推定スレッド(図7)のステップS216で実行される環境地図保存処理について、図8を参照して説明する。この処理は、所定の時間(例えば1時間)毎に、地図記憶部21に記憶されている地図を地図保存部22に保存する処理である。
【0051】
まず制御部10は、環境地図を前回、地図保存部22に保存してから、所定時間(例えば1時間)経過したか否かを判定する(ステップS301)。所定時間経過していないなら(ステップS301;No)、環境地図保存処理を終了する。所定時間経過しているなら(ステップS301;Yes)、制御部10は、撮像部33で画像を撮影する(ステップS302)。そして、制御部10は、画像中の輝度が高い領域の数を数えることにより、点灯している電灯の数を取得する(ステップS303)。なお、画像中の輝度が高い領域とは、具体的には所定の輝度基準値以上の明るさをもつ領域である。撮像部33は前方から上部までの広範囲を撮影できる広角レンズを備えるので、天井が撮像範囲に含まれており、天井の電灯の数を判別可能な画像を撮影することができる。ステップS303において、制御部10は、環境情報取得部11として機能する。
【0052】
そして、制御部10は、取得した点灯電灯数を環境情報として、地図記憶部21に書き込む(ステップS304)。そして、制御部10は、地図記憶部21に記憶されている環境地図(図5に示すように環境情報が付加されている環境地図)を地図保存部22に保存する(ステップS305)。
【0053】
以上説明した環境地図保存処理により、地図保存部22には所定時間毎に環境情報が付加された環境地図のデータが保存されていく。次に、自己位置推定スレッド(図7)のステップS203で実行される環境地図抽出処理について、図9を参照して説明する。この処理は、地図保存部22に保存されている複数の環境地図の中から、現在の環境情報と一致又は類似する環境情報を含んだ環境地図を抽出する処理である。
【0054】
まず、制御部10は、撮像部33で画像を撮影する(ステップS401)。そして、画像中の輝度が高い領域(所定の輝度基準値以上の明るさをもつ領域)の数を求めることにより、点灯している電灯の数を検出する(ステップS402)。
【0055】
そして、制御部10は、地図保存部22に保存されている複数の環境地図の中から、環境情報(点灯電灯数)が同じか又は類似する環境地図を所定の候補数(N個)抽出し(ステップS403)、環境地図抽出処理を終了する。環境地図を抽出する際は、環境地図に付加されている環境情報が現在の環境情報に類似する順にN個抽出する。抽出されたN個の環境地図は、今後利用される環境地図の候補となるので、候補環境地図と呼ばれる。なお、Nには例えば5等、任意の数を設定してよいが、地図保存部22に保存されている環境地図の個数が少ない場合には、N未満の個数の候補環境地図しか抽出できない場合もありうる。
【0056】
以上説明した環境地図抽出処理により、地図保存部22に保存されている複数の環境地図の中から環境情報が現在の環境情報と一致又は類似する候補環境地図がN個抽出される。次に、自己位置推定スレッド(図7)のステップS204で実行されるRelocalization処理について、図10を参照して説明する。
【0057】
まず、制御部10は、撮像部33で画像を撮影する(ステップS501)。そして、画像中の特徴点を検出し、検出した各特徴点の特徴量を算出する(ステップS502)。特徴点の検出方法や、用いる特徴量は任意だが、例えば、検出方法としてFASTを用い、特徴量としてORBを用いることができる。
【0058】
次に、制御部10は、先に行われていた環境地図抽出処理で抽出されたN個の候補環境地図全てについて、特徴点の対応を確認したか否かを判定する(ステップS503)。全ての候補環境地図について特徴点対応を確認したなら(ステップS503;Yes)、Relocalization処理は失敗とし(ステップS504)、Relocalization処理を終了する。
【0059】
まだ特徴点対応を確認していない候補環境地図が残っているなら(ステップS503;No)、制御部10は、その残っている候補環境地図の中から1つを選択する(ステップS505)。そして、選択した候補環境地図のキーフレーム情報群の中から、ステップS501で取得した画像(取得画像)に類似するキーフレームを検索する(ステップS506)。この類似キーフレームの検索方法は任意だが、例えば、選択した候補環境地図内の全キーフレームを特徴量のヒストグラムで分類し、取得画像の特徴量のヒストグラムとヒストグラムの類似度によって類似検索をすると高速に検索することができる。
【0060】
そして、制御部10は、ステップS506で検索された類似キーフレームの3D座標が推定済の特徴点とステップS501で取得した取得画像の特徴点とで、特徴量により対応を取る。例えば、類似キーフレーム内のある特徴点(3D座標推定済)の特徴量と、取得画像内のある特徴点の特徴量との類似度が所定の基準類似度よりも高い場合、この2つの特徴点は対応が取れた特徴点(対応特徴点)であることとする。そして、このように対応が取れた特徴点の数を求める(ステップS507)。
【0061】
そして、制御部10は、対応特徴点の数が3より大きいか否かを判定する(ステップS508)。対応特徴点の数が3以下であれば(ステップS508;No)、ステップS503に戻る。なお、ステップS503に戻る前に、ステップS506に戻って、ステップS501で取得した画像に類似するキーフレームのうち、前回検索されなかった(つまり類似度の高さが2番以下の)類似キーフレームを検索してもよい。類似度が高くなくても、対応特徴点数が多い場合はあり得るからである。所定の回数(例えば3回)ステップS506に戻って別の類似キーフレームで対応特徴点の数を求めても、それが3以下なら(ステップS508;No)、ステップS503に戻る。
【0062】
一方、対応特徴点の数が3より大きければ(ステップS508;Yes)、ステップS509に進む。取得画像内の特徴点のうち4点以上が類似キーフレーム内の特徴点(3D座標推定済)と対応が取れた場合、PnP問題(Perspective-n-Point Problem)として、取得画像を取得した際の自律移動装置100の姿勢(位置及び向き)を推定することができる。
【0063】
ステップS509では、制御部10は、このPnP問題を解いて自律移動装置100の姿勢を推定し、この推定した姿勢を用いて、類似キーフレーム内の特徴点の2D座標と、取得画像内の特徴量による対応した特徴点(この対応を取る際には、3D座標を推定済みであるか否かは問わない)の2D座標と、の間の誤差(対応誤差)を算出する。そして、この対応誤差が基準誤差T以下であれば、その特徴点の位置は整合するとして、制御部10は、そのような整合する対応特徴点の数(整合数)を求める(ステップS509)。
【0064】
そして、制御部10は、整合数が整合基準値K(例えば10)よりも大きいか否かを判定する(ステップS510)。整合数が整合基準値K以下なら(ステップS510;No)、ステップS503に戻る。整合数が整合基準値Kより大きければ(ステップS510;Yes)、制御部10は、ステップS509で推定した姿勢を類似キーフレームの3D姿勢に加算することにより自己位置を推定する(ステップS511)。そして、Relocalization処理は成功とし(ステップS512)、Relocalization処理を終了する。
【0065】
以上説明したRelocalization処理により、自律移動装置100は、自己位置を正しく推定できる環境地図を選択することができる。なお、図10の処理では、候補環境地図のうち最初に整合数がKを上回った環境地図を最終的に選択することになるが、全ての候補環境地図について整合数を求めて整合数が最も大きい環境地図を最終的に選択するようにしてもよいし、整合数を求める際に特徴点の座標位置の誤差も各候補環境地図について記憶しておき、最も誤差が小さい環境地図を最終的に選択するようにしてもよい。
【0066】
以上説明した自己位置推定スレッドの処理により、自律移動装置100は、起動時の環境に最も適合した環境地図を選択することができるので、環境の変化に対してロバストな自己位置推定を行うことができる。
【0067】
(実施形態1の変形例1)
実施形態1では、環境情報として点灯している電灯の数のみを用いた。電灯の数を環境情報として用いるだけでも、1つの環境地図を使い続ける従来技術と比べると環境の変化に対するロバスト性は向上するが、さらにロバスト性を向上させるために他の情報を用いてもよい。例えば、実施形態1の変形例1として、環境情報に、天井の電灯のON/OFFの情報と、周囲の環境の明るさの情報を用いる例を説明する。
【0068】
実施形態1では、点灯電灯数のみを環境情報としている。これに対し、実施形態1の変形例1では、電灯のON/OFFの情報と、周囲の環境の明るさの情報と、を環境情報とするため、環境情報を(天井の電灯のON又はOFF,周囲の環境の明るさ)という2次元ベクトルで表す。実施形態1では、環境地図保存処理(図8)でも環境地図抽出処理(図9)でも、点灯電灯数をそのまま環境情報として用いることができたが、実施形態1の変形例1では、それぞれの処理において、環境情報として、(天井の電灯のON又はOFF,周囲の環境の明るさ)という2次元ベクトルを生成する。
【0069】
ここで、天井の電灯のON/OFFの判定は、撮像部33が撮影した画像中で、撮影範囲の上部にあたる領域中に、周囲に比べて極端に輝度の高い領域があるか否かを判定することによって行うことができる。例えば、撮影画像の上半分の領域の中に、画像全体の平均輝度の高輝度基準値(例えば10)倍以上の輝度の領域が存在したら、天井の電灯が点灯していると判定する。
【0070】
また、周囲の環境の明るさの情報に関しては、この情報を得るために、自律移動装置100は、明るさセンターを別途備えてもよいが、撮像部33で周囲の環境の明るさを取得してもよい。例えば、撮像部33の露出時間を明るさ測定用の値に設定して、自律移動装置100が存在している部屋を撮影して画像を取得し、該画像の全ての画素値の平均値又は中央値を周囲の環境の明るさとしてもよい。
【0071】
環境情報の2次元ベクトルの最初の値(天井の電灯のON又はOFF)は、電灯がONなら1、OFFなら0の二値を取り、環境情報の2次元ベクトルの2番目の値(周囲の環境の明るさ)は、上記画素値の平均値又は中央値を取る。そして、上述した環境地図保存処理では、このような2次元ベクトルの環境情報を環境地図に付加して保存する。また、環境地図抽出処理では、画像撮影して得た環境情報の2次元ベクトルと、地図保存部22に保存されている環境地図それぞれに付加された環境情報の2次元ベクトルと、の間で類似度を求め、類似度の高い順にN個の候補環境地図を抽出する。なお、2次元ベクトル間の類似度は、例えば、それぞれのベクトルのノルムを1に正規化してから内積を取ることにより得ることができる。
【0072】
以上説明した実施形態1の変形例1では、周囲の明るさの変化が環境情報に反映されるため、電灯のON/OFFに対する影響だけでなく、窓から入ってくる日差しが太陽の位置によって変わることの影響、ブラインドの開け閉めによる影響等にも対応できる。したがって、地図保存部22に保存されている環境地図の中からより現在の環境に適合した環境地図を選択することができ、環境の変化に対してよりロバストな自己位置推定を行うことができる。
【0073】
なお、環境情報として、さらに多くの情報を用いる場合も、環境情報を表すベクトルの次元数を増やすことにより対応できる。また、ベクトルの次元数が増えても、環境情報の類似度は、類似度計算の対象となる2つのベクトルのノルムを1に正規化してから内積を取ることにより得ることができる。環境情報を表すベクトルの次元数を増加させれば、地図保存部22に保存されている環境地図の中からさらに現在の環境に適合した環境地図を選択できる可能性が高まり、環境の変化に対してさらにロバストな自己位置推定を行うことができるようになる。なお、上述の実施形態1の変形例1では、環境情報を2次元ベクトル等のベクトルで表す例を示したが、環境情報はベクトルで表さなければならないわけではなく、任意のデータ構造を採用することができる。
【0074】
(実施形態1の変形例2)
上述の実施形態では、自己位置推定スレッド(図7)のステップS217におけるRelocalization処理が失敗しても利用している環境地図を変更することはしなかった。しかし、例えば自律移動装置100が長時間移動し続ける場合等、時間の変化とともに周囲の明るさ等の環境が変化してしまう場合も考えられる。このような場合に、利用する環境地図を随時変更可能な実施形態1の変形例2について説明する。
【0075】
実施形態1の変形例2に係る自己位置推定スレッドは、図11に示すように、実施形態1に係る自己位置推定スレッド(図7)に、ステップS231及びステップS233~ステップS235の処理を追加し、ステップS218の処理をステップS232の処理に置き換えた処理になっている。これらの点以外は、実施形態1の変形例2は、実施形態1と同様である。追加された処理は、ステップS217の「現環境地図にてRelocalization」を2回連続で失敗したことを判定するためにフラグ変数Fを導入し、2回連続で失敗したらステップS203からやり直すための処理である。
【0076】
まず、ステップS231では、制御部10はフラグ変数Fを0に初期化する。そして、ステップS232では、ステップS217でのRelocalization処理が成功した場合は(ステップS232;Yes)、ステップS218同様にステップS219に進むが、Relocalization処理が失敗した場合は(ステップS232;No)、制御部10はフラグ変数Fが1か否かを判定する(ステップS233)。
【0077】
フラグ変数Fが1でないなら(ステップS233;No)、制御部10はフラグ変数Fに1をセットし(ステップS234)、ステップS221に進む。フラグ変数Fが1なら(ステップS233;Yes)、制御部10はフラグ変数Fを0に初期化して(ステップS235)、ステップS203に戻り、環境地図抽出から処理をやり直す。以上説明した処理以外の処理は、実施形態1に係る自己位置推定スレッド(図7)と同じなので、説明を省略する。
【0078】
以上説明した自己位置推定スレッドの処理により、現在利用している環境地図でRelocalizationが2回連続で失敗した場合には、候補環境地図の抽出から処理をやり直すことになり、その時点での環境情報に一致又は類似する環境情報が付加された環境地図の選択が行われる。したがって、環境が変化した場合でも、再度その時点での環境に適合した環境地図を選択することができ、環境の変化に対してよりロバストな自己位置推定を行うことができる。
【0079】
(実施形態1の変形例3)
上述の実施形態では、環境情報を取得する手段として自律移動装置100が備える撮像部33を利用していたが、環境情報を取得する手段として充電器200が備える充電器撮像部53を利用する実施形態1の変形例3を説明する。
【0080】
実施形態1の変形例3に係る自律移動装置100は、電灯の点灯状況、周囲の環境の明るさ等を取得する際に、通信部34を介して充電器200に撮影指示を出し、充電器200が備える充電器撮像部53が撮影した画像を通信部34で受信する。なお、図示しないが、充電器200も、自律移動装置100の通信部34と通信可能な通信部を備えている。実施形態1の変形例3に係る自律移動装置100は、環境情報を取得するための画像の撮影を撮像部33の代わりに充電器撮像部53で行う点以外は、実施形態1に係る自律移動装置100と同じである。なお、環境情報を取得するための画像の撮影を常に充電器撮像部53で行うのではなく、適宜撮像部33と充電器撮像部53とを使い分けたり、常に撮像部33と充電器撮像部53の両方を使ったりしてもよい。
【0081】
以上説明した実施形態1の変形例3では、環境情報を取得するための画像の撮影を充電器200の充電器撮像部53で行うが、充電器200は移動しないため、充電器撮像部53は固定された位置から画像を撮影できる。このため、自律移動装置100と共に移動する撮像部33を用いる場合に比べ、環境情報をより安定的に取得することができる。したがって、このより安定的な環境情報に基づいて、現在の環境により適合した環境地図を選択することができるので、環境の変化に対してよりロバストな自己位置推定を行うことができる。
【0082】
(実施形態1の変形例4)
上述の実施形態1の変形例3では、充電器200が充電器撮像部53と通信部を備える必要があったが、自律移動装置100の撮像部33を用いて同様の効果を得る実施形態1の変形例4について説明する。
【0083】
実施形態1の変形例4に係る自律移動装置100は、電源OFF時は充電器200の上で充電されているようにする。すると、自律移動装置100は、電源が投入された直後は常に充電器200の上にあるので、電源投入直後に撮像部33で撮影した画像は、変形例3に係る充電器200に固定されている充電器撮像部53で撮影した画像と同じものとして扱うことができる。そして、実施形態1の変形例4に係る自己位置推定スレッドで実行される環境地図保存処理では、環境情報が付加された環境地図を地図保存部22に保存する処理を、所定時間経過の度に行うのではなく、自律移動装置100が充電器200に戻った時に行う。
【0084】
以上説明した実施形態1の変形例4に係る自律移動装置100は、環境情報を取得するための画像の撮影を常に充電器200の上で行うため、実施形態1の変形例3と同様に環境情報の変化をより安定的に取得することができる。したがって、このより安定的な環境情報に基づいて、現在の環境により適合した環境地図を選択することができるので、環境の変化に対してよりロバストな自己位置推定を行うことができる。
【0085】
(実施形態1の変形例5)
上述の実施形態では、自律移動装置100は、環境地図抽出処理(図9)において、環境情報を取得するために周囲の環境を撮像部33(又は充電器撮像部53)で撮影し、撮影により取得した環境情報に類似する環境情報が付加された環境地図を候補環境地図として抽出していた。しかし、候補環境地図の選択はユーザが行ってもよい。候補環境地図をユーザが選択できる実施形態1の変形例5について説明する。
【0086】
実施形態1の変形例5では、制御部10は、環境地図抽出処理(図9)の際に、画像を撮影することによって環境情報を取得する必要はなく、ユーザが選択した環境地図を候補環境地図として抽出する。その際、ユーザは外部の端末装置等から通信部34を介して地図保存部22に記憶されている環境地図の中から選択したい環境地図を任意の数(例えばN個)選択する。そして、制御部10は、ユーザが選択した候補環境地図を用いて、Relocalization処理(図10)を行う。
【0087】
ユーザが環境地図を選択しやすくするために、環境地図の選択に用いる外部の端末装置は、各環境地図に付加されている環境情報が意味する内容をわかりやすく提示してもよい。例えば、各環境地図について、「保存日時:2018年3月1日 10:00、電灯点灯数:1、明るさ:1000ルクス」のように環境情報を表示した上で、ユーザが環境地図を選択できるようにしてもよい。
【0088】
以上説明した実施形態1の変形例5では、地図保存部22に記憶されている環境地図の中からユーザが候補環境地図を選択することができるため、環境情報の類似度により抽出したのでは現在の環境に適合した環境地図をうまく抽出できないような特殊な場合においても、現在の環境により適合した環境地図をユーザ自身が選択することができるので、環境の変化に対してよりロバストな自己位置推定を行うことができる。なお、自律移動装置100は、マイクや音声認識機能を備えることにより、ユーザが選択する環境地図を音声認識によって取得してもよい。また、候補環境地図の全てをユーザが選択するのではなく、候補環境地図の一部をユーザが選択し、残りは環境情報の類似度に基づいて制御部10が抽出するようにしてもよい。
【0089】
(実施形態1の変形例6)
上述の実施形態では、自律移動装置100は、環境地図保存処理(図8)において、環境情報を取得するために周囲の環境を撮像部33(又は充電器撮像部53)で撮影し、撮影によって取得した環境情報を付加した環境地図を地図保存部22に保存していた。しかし、環境地図を保存する際に付加する環境情報はユーザが入力してもよい。環境地図に付加する環境情報をユーザが入力することができる実施形態1の変形例6について説明する。
【0090】
実施形態1の変形例6では、制御部10は、環境地図保存処理(図8)の際に、画像を撮影することによって環境情報を取得する必要はなく、ユーザが入力した環境情報とともに環境地図を保存する。その際ユーザは、それまでに自律移動装置100が作成した環境地図に付加させたい任意の環境情報を、外部の端末装置等から通信部34を介して自律移動装置100に入力する。この時、通信部34は、ユーザが入力した情報を取得する入力部として機能する。そして、制御部10は、ユーザが入力した環境情報を付加した環境地図を地図保存部22に保存する。
【0091】
以上説明した実施形態1の変形例6では、ユーザが環境情報を自律移動装置100に入力することができるため、環境情報を適切に取得できないような特殊な場合においても、現在の環境を適切に表す環境情報をユーザ自身が自律移動装置100に入力することができる。その結果、候補環境地図の抽出の際に、現在の環境に適合した環境地図が抽出されやすくなり、環境の変化に対してよりロバストな自己位置推定を行うことができる。なお、自律移動装置100は、マイクや音声認識機能を備えることにより、ユーザが入力する環境情報を音声認識によって取得してもよい。この場合、マイクが入力部として機能する。
【0092】
また、全ての環境地図について、環境地図に付加する環境情報をユーザが入力するのではなく、制御部10によって適切な環境情報を取得するのが難しい環境であるとユーザが考えた場合等、ユーザが環境情報の入力を希望した時だけユーザが入力した環境情報を環境地図に付加し、それ以外の場合は画像を撮影すること等によって環境情報取得部11が取得した環境情報を環境地図に付加するようにしてもよい。
【0093】
(実施形態1の変形例7)
上述の実施形態では、環境地図抽出処理(図9)において、現在の環境情報に一致又は類似する環境情報が付加された環境地図を候補環境地図として抽出していたが、ランダムに選択した環境地図を候補環境地図として抽出する実施形態1の変形例7について説明する。
【0094】
実施形態1の変形例7では、地図保存部22に保存されている環境地図の中からランダムに選択した環境地図を候補環境地図に加える。例えば、N個の候補環境地図を抽出する際に、N-1個は現在の環境情報に一致又は類似する順に抽出し、残りの1個は、地図保存部22に保存されている環境地図のうち、まだ抽出されていない環境地図の中からランダムに1個の環境地図を選択し、それを候補環境地図に加える。
【0095】
以上説明した実施形態1の変形例7では、環境情報に影響されずにランダムに選択された環境地図が候補環境地図に含まれるようになる。そのため、環境情報の類似度によっては現在の環境に適合する環境地図を抽出できないような特殊な場合においても、現在の環境に適合した環境地図が選択される可能性を高めることができ、環境の変化に対してよりロバストな自己位置推定を行うことができる。なお、ランダムに選択する環境地図の個数は1個に限られず、2個やN個等、N以下の任意の個数を設定してもよい。
【0096】
また、上述の実施形態及び変形例は適宜組み合わせることができる。例えば、実施形態1の変形例5と変形例7とを組み合わせることにより、環境情報の類似度に基づいて制御部10により抽出された候補環境地図以外に、ユーザにより選択された環境地図や、ランダムに選択された環境地図を候補環境地図に含ませることができる。このようにすると、環境情報の類似度に基づいて抽出したのでは現在の環境に適合した環境地図をうまく抽出できないような特殊な場合においても、現在の環境により適合した環境地図を選択することができる可能性がさらに高まり、環境の変化に対してよりロバストな自己位置推定を行うことができる。
【0097】
なお、自律移動装置100の各機能は、通常のPC(Personal Computer)等のコンピュータによっても実施することができる。具体的には、上記実施形態では、自律移動装置100が行う自律移動制御処理のプログラムが、記憶部20のROMに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)及びMO(Magneto-Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【0098】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0099】
(付記1)
撮像部で撮影された画像を用いて環境地図の作成及び位置の推定を行う自律移動装置であって、
制御部と記憶部とを備え、
前記制御部は、
周囲の環境の情報である環境情報を取得し、
前記記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を選択し、
前記選択した環境地図を用いて位置を推定する、
自律移動装置。
【0100】
(付記2)
前記制御部は、前記環境情報を付加した環境地図を前記記憶部に保存する、
付記1に記載の自律移動装置。
【0101】
(付記3)
前記制御部は、前記撮像部で画像を撮影することによって前記環境情報を取得する、
付記1又は2に記載の自律移動装置。
【0102】
(付記4)
さらに充電器と通信する通信部を備え、
前記制御部は、前記充電器が備える充電器撮像部で撮影した画像を前記通信部で受信することによって前記環境情報を取得する、
付記1から3のいずれか1つに記載の自律移動装置。
【0103】
(付記5)
さらにユーザが入力した情報を取得する入力部を備え、
前記制御部は、前記ユーザが入力した情報を前記入力部で取得することによって前記環境情報を取得する、
付記1から4のいずれか1つに記載の自律移動装置。
【0104】
(付記6)
前記制御部が取得する前記環境情報は、前記周囲の環境の明るさの情報を含む、
付記1から5のいずれか1つに記載の自律移動装置。
【0105】
(付記7)
前記制御部は、前記環境情報の取得を一定の位置で行う、
付記1から6のいずれか1つに記載の自律移動装置。
【0106】
(付記8)
前記制御部は、前記環境情報の取得を充電器の上で行う、
付記7に記載の自律移動装置。
【0107】
(付記9)
前記制御部は、
前記記憶部に保存されている環境地図の中から、以後利用する環境地図の候補となる複数の候補環境地図を抽出し、
前記抽出した複数の候補環境地図のそれぞれを用いて推定した位置の誤差が基準誤差以下となる候補環境地図を、以後利用する環境地図として選択する、
付記1から8のいずれか1つに記載の自律移動装置。
【0108】
(付記10)
前記記憶部に保存されている環境地図の中から、現在の前記環境情報との類似度の高い環境情報が付加された環境地図を、前記候補環境地図として、類似度の高い順に所定の候補数抽出する、
付記9に記載の自律移動装置。
【0109】
(付記11)
前記制御部は、前記記憶部に保存されている環境地図の中から、ランダムに選択した環境地図を、前記候補環境地図として抽出する、
付記9又は10に記載の自律移動装置。
【0110】
(付記12)
前記制御部は、前記記憶部に保存されている環境地図の中から、ユーザが選択した環境地図を、前記候補環境地図として抽出する、
付記9から11のいずれか1つに記載の自律移動装置。
【0111】
(付記13)
前記制御部は、
現在利用している環境地図を用いて推定した位置の誤差が基準誤差を超える場合、前記記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を選択し直す、
付記1から12のいずれか1つに記載の自律移動装置。
【0112】
(付記14)
撮像部で撮影された画像を用いて環境地図の作成及び位置の推定を行う自律移動装置の自律移動方法であって、
周囲の環境の情報である環境情報を取得し、
記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を選択し、
前記選択した環境地図を用いて位置を推定する、
自律移動方法。
【0113】
(付記15)
撮像部で撮影された画像を用いて環境地図の作成及び位置の推定を行う自律移動装置のコンピュータに、
周囲の環境の情報である環境情報を取得し、
記憶部に保存されている環境地図の中から、前記周囲の環境に適合する環境地図を選択し、
前記選択した環境地図を用いて位置を推定する、
処理を実行させるためのプログラム。
【符号の説明】
【0114】
10…制御部、11…環境情報取得部、12…地図作成部、13…自己位置推定部、14…行動計画部、15…移動制御部、20…記憶部、21…地図記憶部、22…地図保存部、31,31a,31b…帰還信号受信部、32,32a,32b…駆動部、33…撮像部、34…通信部、35…充電接続部、51,51a,51b…帰還信号送信部、52…電力供給部、53…充電器撮像部、54,54a,54b…受信可能範囲、100…自律移動装置、200…充電器
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11