(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024029914
(43)【公開日】2024-03-07
(54)【発明の名称】移動ロボット及び移動量推定方法並びに移動ロボット制御プログラム
(51)【国際特許分類】
G05D 1/43 20240101AFI20240229BHJP
G08G 1/00 20060101ALI20240229BHJP
G06T 7/70 20170101ALI20240229BHJP
G06V 10/62 20220101ALI20240229BHJP
【FI】
G05D1/02 H
G08G1/00 X
G06T7/70 A
G06V10/62
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022132375
(22)【出願日】2022-08-23
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504193837
【氏名又は名称】国立大学法人室蘭工業大学
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100129230
【弁理士】
【氏名又は名称】工藤 理恵
(72)【発明者】
【氏名】望月 章志
(72)【発明者】
【氏名】水上 雅人
(72)【発明者】
【氏名】蝦名 徳一
【テーマコード(参考)】
5H181
5H301
5L096
【Fターム(参考)】
5H181AA27
5H181BB13
5H181BB15
5H181CC04
5H181CC24
5H181FF04
5H181FF22
5H181FF27
5H181FF32
5H301AA01
5H301BB05
5H301BB14
5H301CC03
5H301CC06
5H301CC10
5H301FF06
5H301GG09
5H301GG14
5H301GG16
5L096BA05
5L096FA09
5L096FA69
5L096HA04
(57)【要約】
【課題】ビジュアルオドメトリを用いる場合でも移動量を高精度に推定することが可能な移動ロボット及び移動量推定方法並びに移動ロボット制御プログラムを提供する。
【解決手段】走行路面の動画像を撮像するカメラ32と、ベース画像を設定する画像設定部11と、ベース画像中に遷移領域R1を設定する遷移領域設定部13と、ベース画像及びターゲット画像に含まれる特徴点に基づき、画像間における特徴点の変位量を算出する変位量算出部12を備える。変位量に基づき、移動ロボット1が遷移領域R1の内側であるか否かを判定する判定部15と、移動ロボット1遷移領域R1の内側である場合には、ベース画像を変更せず、移動ロボット1が遷移領域R1の外部である場合には、変位量が遷移領域の外部となる前のフレームから得られるターゲット画像を、新たなベース画像に設定する画像更新部16を備える。ベース画像の特徴点と、ターゲット画像の特徴点に基づいて、移動量を算出する移動量算出部17を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
走行路面の動画像を撮像する撮像部と、
前記動画像の任意のフレームをベース画像に設定する画像設定部と、
前記ベース画像中の基準位置を基準とした遷移領域を設定する遷移領域設定部と、
前記ベース画像、及びベース画像後のフレームから得られるターゲット画像、に含まれる特徴点に基づき、画像間における前記特徴点の変位量を算出する変位量算出部と、
前記変位量に基づき、前記ターゲット画像中の基準位置が前記遷移領域の内側であるか否かを判定する判定部と、
前記ターゲット画像中の基準位置が前記遷移領域の内側である場合には、前記ベース画像を変更せず、外側である場合には、前記ターゲット画像中の基準位置が前記遷移領域の外側となる前のフレームから得られるターゲット画像を、新たなベース画像に設定する画像更新部と、
前記ベース画像に含まれる前記特徴点と、前記ターゲット画像に含まれる前記特徴点と、の変位量に基づいて、移動ロボットの移動量を算出する移動量算出部と、
を備えた移動ロボット。
【請求項2】
移動ロボットの初期位置、及び前記移動量に基づいて、移動ロボットの二次元位置を推定する推定部
を更に備えた請求項1に記載の移動ロボット。
【請求項3】
前記遷移領域の外側となる前のフレームは、前記遷移領域の外側となる直前のフレームを含む
請求項1または2に記載の移動ロボット。
【請求項4】
前記ターゲット画像は、前記動画像に含まれる1フレーム毎の画像を含む
請求項1に記載の移動ロボット。
【請求項5】
前記ベース画像中の基準位置は、前記ベース画像の中心点を含む
請求項1に記載の移動ロボット。
【請求項6】
前記遷移領域は、前記ベース画像中の基準位置から所定距離以内の領域を含む
請求項1に記載の移動ロボット。
【請求項7】
走行路面の動画像を撮像するステップと、
前記動画像の任意のフレームをベース画像に設定するステップと、
前記ベース画像中の基準位置を基準とした遷移領域を設定するステップと、
前記ベース画像、及びベース画像後のフレームから得られるターゲット画像、に含まれる特徴点に基づき、画像間における前記特徴点の変位量を算出するステップと、
前記変位量に基づき、前記ターゲット画像中の基準位置が前記遷移領域の内側であるか否かを判定するステップと、
前記ターゲット画像中の基準位置が前記遷移領域の内側である場合には、前記ベース画像を変更せず、外側である場合には、前記ターゲット画像中の基準位置が前記遷移領域の外側となる前のフレームから得られるターゲット画像を、新たなベース画像に設定するステップと、
前記ベース画像に含まれる前記特徴点と、前記ターゲット画像に含まれる前記特徴点と、の変位量に基づいて、移動ロボットの移動量を算出するステップと、
を備えた移動量推定方法。
【請求項8】
請求項1または2に記載の移動ロボットとしてコンピュータを機能させる移動ロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動ロボット及び移動量推定方法並びに移動ロボット制御プログラムに関する。
【背景技術】
【0002】
インフラ設備を点検する場合などに、センサが搭載され遠隔操作で移動可能な移動ロボットが用いられている。非特許文献1には、任意の方向に移動可能なホロノミック全方向移動機構を備えたロボットが開示されている。このような移動ロボットは、二次元平面上の位置を高精度に測定することが要求される。
【0003】
非特許文献2には、屋内を移動する移動ロボットを天井に設置したカメラを用いて上面から撮像し、撮像した画像に基づいて移動ロボットの位置を推定することが開示されている。
【0004】
非特許文献3には、屋内通信用に用いられるWi-Fi電波を用いて、送信機から移動ロボットまでの距離を算出することにより、移動ロボットの位置を推定することが開示されている。
【0005】
非特許文献4には、移動ロボットが走行する地面の画像を撮像し、撮像した画像及び車軸エンコーダの検出値に基づいて移動ロボットの自己位置を推定することが開示されている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】K.Tadakuma,R.Tadakuma and J.Berengeres,Development of Holonomic Omnidirectional Vehicle wiith “Omini-Ball”:Spherical Wheels, Proceedings of the 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems,San Diego, CA, USA 2007.
【非特許文献2】Jae Hong Shim and Young Im Cho, ”A MobileRobot Localization via Indoor FixedRemote Surveillance Cameras” Sensors. 16. 195. 2016.
【非特許文献3】Joydeep Biswasand Manuela Veloso”WiFi localization and navigation for autonomous indoormobile robots”, Proc. of 2010 IEEE International Conference on Robotics and Automation
【非特許文献4】Linguang Zhang,Adam Finkelstein and Szymon Rusinkiewicz, High-Precision Localization UsingGround Texture, ICRA2019
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、上述した非特許文献2に開示された方法は、屋内を走行する移動ロボットの位置を推定することを想定している。これを屋外を移動する移動ロボットに適用する場合には、移動ロボットが移動するフィールド全体を上空から撮像するためにクレーンなどの大規模な装置が必要になる。
【0008】
非特許文献3に開示された方法では、屋外に電磁遮蔽物が存在する場合にWi-Fiの電波が届かなくなることがあり、移動ロボットの移動量を高精度に推定することができない。
【0009】
非特許文献4に開示された方法では、予め地面画像情報を取得しておく必要があることや、より大規模なシステムになった場合、地図データベースの容量が大きくなるので探索に時間がかかるといった問題がある。
【0010】
更に、移動ロボットの移動中に路面の動画像を撮像し、撮像した動画像に含まれるフレーム間の画像の変位量を測定することにより、移動ロボットがどの方向にどれだけ移動したかの移動量を算出する方法(ビジュアルオドメトリ)を用いて、ロボットの二次元位置を推定する方法が知られている。
【0011】
しかし、ビジュアルオドメトリを用いる方法では、フレーム間において変位量の誤差が生じ、この誤差は移動ロボットの走行に伴って蓄積される。従って、移動ロボットの走行距離が長くなるに連れて蓄積誤差が大きくなり、移動ロボットの位置を高精度に推定できなくなるという問題がある。
【0012】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、ビジュアルオドメトリを用いる場合でも移動量を高精度に推定することが可能な移動ロボット及び移動量推定方法並びに移動ロボット制御プログラムを提供することにある。
【課題を解決するための手段】
【0013】
本発明の一態様に係る移動ロボットは、走行路面の動画像を撮像する撮像部と、前記動画像の任意のフレームをベース画像に設定する画像設定部と、前記ベース画像中の基準位置を基準とした遷移領域を設定する遷移領域設定部と、前記ベース画像、及びベース画像後のフレームから得られるターゲット画像、に含まれる特徴点に基づき、画像間における前記特徴点の変位量を算出する変位量算出部と、前記変位量に基づき、前記ターゲット画像中の基準位置が前記遷移領域の内側であるか否かを判定する判定部と、前記ターゲット画像中の基準位置が前記遷移領域の内側である場合には、前記ベース画像を変更せず、外側である場合には、前記ターゲット画像中の基準位置が前記遷移領域の外側となる前のフレームから得られるターゲット画像を、新たなベース画像に設定する画像更新部と、前記ベース画像に含まれる前記特徴点と、前記ターゲット画像に含まれる前記特徴点と、の変位量に基づいて、移動ロボットの移動量を算出する移動量算出部と、を備える。
【0014】
本発明の一態様に係る移動量推定方法は、走行路面の動画像を撮像するステップと、前記動画像の任意のフレームをベース画像に設定するステップと、前記ベース画像中の基準位置を基準とした遷移領域を設定するステップと、前記ベース画像、及びベース画像後のフレームから得られるターゲット画像、に含まれる特徴点に基づき、画像間における前記特徴点の変位量を算出するステップと、前記変位量に基づき、前記ターゲット画像中の基準位置が前記遷移領域の内側であるか否かを判定するステップと、前記ターゲット画像中の基準位置が前記遷移領域の内側である場合には、前記ベース画像を変更せず、外側である場合には、前記ターゲット画像中の基準位置が前記遷移領域の外側となる前のフレームから得られるターゲット画像を、新たなベース画像に設定するステップと、前記ベース画像に含まれる前記特徴点と、前記ターゲット画像に含まれる前記特徴点と、の変位量に基づいて、移動ロボットの移動量を算出するステップと、を備える。
【0015】
本発明の一態様は、上記移動ロボットとしてコンピュータを機能させるための移動ロボット制御プログラムである。
【発明の効果】
【0016】
本発明によれば、ビジュアルオドメトリを用いる場合でも移動量を高精度に推定することが可能になる。
【図面の簡単な説明】
【0017】
【
図1】
図1は、実施形態に係る移動ロボットの構成を模式的に示す斜視図である。
【
図2】
図2は、測定装置の詳細な構成を示すブロック図である。
【
図3】
図3は、変位量算出処理を示すフローチャートである。
【
図4】
図4は、ベース画像、及びベース画像に設定される遷移領域を示す説明図である。
【
図5】
図5は、移動ロボットが一次元的に移動した際の、動画像の各フレームに含まれる特徴点の変位量を示す説明図である。
【
図6】
図6は、移動ロボットの移動に伴ってベース画像が更新される動作を示す説明図である。
【
図7】
図7は、実施形態に係る移動ロボットの動作を示すフローチャートである。
【
図8】
図8は、移動ロボットの移動に伴う、ベース画像及びターゲット画像の中心点の変位を示す説明図である。
【
図9B】
図9Bは、実施例1による結果の数値を示す図である。
【
図11】
図11は、本実施形態のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態について図面を参照して説明する。
図1は実施形態に係る移動ロボット1の構成を示す斜視図である。なお、本実施形態では一例として4輪の移動ロボットを例に挙げて説明するが、本発明はこれに限定されず、4輪以外の移動ロボットについても適用することができる。
【0019】
図1に示すように、移動ロボット1は、直方体形状をなす移動台車31と、4つの車輪V1、V2、V3、V4と、測定装置10を備えている。車輪V1~V4は、例えばオムニホイールである。移動台車31の前方には、カメラ32が搭載されている。
【0020】
移動ロボット1は、走行路面4上を走行する。移動ロボット1は、各車輪V1~V4の回転を制御することにより、走行路面4上を所望の方向に移動可能とすることができる。走行路面4は、屋内、屋外のいずれであってもよい。走行路面4は、例えば屋外の路面である。走行路面4は平坦であるとは限らず、凹凸が存在することもある。
【0021】
カメラ32は、撮像方向が走行路面4側(即ち、下方)を向くように設置されており、所定のフレームレート(例えば、30[fps])で走行路面4の動画像を撮像する。即ち、カメラ32は、走行路面4の動画像を撮像する撮像部としての機能を備えている。
【0022】
図2は、移動ロボット1に搭載される測定装置10及びカメラ32の構成を示すブロック図である。
【0023】
図2に示すように測定装置10は、画像設定部11と、変位量算出部12と、遷移領域設定部13と、判定部15と、画像更新部16と、移動量算出部17と、推定部18と、マップ作成部19と、記憶部20と、GPS受信部21と、を備えている。
【0024】
画像設定部11は、カメラ32で撮像された動画像に含まれる任意のフレームの画像を、移動ロボット1の移動量を測定する際の基準となるベース画像に設定する。任意のフレームは、例えば動画の撮像開始時におけるフレームとすることができる。例えば、移動ロボット1の初期位置において、カメラ32により撮像されたフレームの画像をベース画像とすることができる。
【0025】
即ち、画像設定部11は、カメラ32で撮像された動画像の任意のフレームの画像をベース画像に設定する。画像設定部11は、ベース画像の後のフレーム画像を、ベース画像に対して変位するターゲット画像に設定する。また、動画像の1フレームごとにターゲット画像を設定してもよい。
【0026】
変位量算出部12は、カメラ32で撮像された走行路面4の動画像を取得する。変位量算出部12は、走行路面4の動画像の各フレームに含まれる特徴点を所定の時間間隔で時系列的に抽出する。例えば、カメラ32で撮像する画像のフレームレートが30[fps]である場合には、所定の時間間隔は1フレーム(0.03秒)である。特徴点は、例えば画像に含まれる走行路面4にペイントされた文字、記号、模様、汚れ、突起物の影などである。なお、特徴点を検出する時間間隔は、1フレームに限らず所定のフレーム数としてもよい。また、特徴点を検出する時間間隔は所定の時間間隔に限らず、任意の時間間隔であってもよい。
【0027】
変位量算出部12は、カメラ32で撮像される動画像の1フレームごとに特徴点を抽出し、抽出される特徴点の変位量を算出する。変位量算出部12は、各フレーム間における特徴点の変位量(例えば、移動したピクセル数)をオプティカルフローを用いて算出する。変位量算出部12は、特徴点の変位量を判定部15及び移動量算出部17に出力する。即ち、変位量算出部12は、走行路面4の動画像に基づき、移動ロボット1の移動に伴う動画像に含まれる特徴点の変位量を時系列的に算出する。
【0028】
以下、フレーム間の変位量の算出方法について説明する。
図3は、周知の技術であるビジュアルオドメトリの手法を用いてフレーム間の変位量を算出する手順を示すフローチャートである。
図3に示す処理(以下、「変位量算出処理」という)の前処理として、各フレーム画像の特徴点の検出が実施される。
図3に示す変位量算出処理は、変位量算出部12により実行される。
図3では、一例として2つのフレーム間(これを、第1フレーム、第2フレームとする)における特徴点の変位量を算出する例について説明する。
【0029】
図3のステップS11において変位量算出部12は、第1フレームに含まれる特徴点から第2フレームに含まれる特徴点に向かう特徴ベクトルを抽出する。特徴ベクトルの抽出は、複数の特徴点に対して実行してもよい。
【0030】
ステップS12において変位量算出部12は、S11の処理で抽出した各特徴ベクトルの距離が近いペアをマッチングする。
【0031】
ステップS13において変位量算出部12は、S12の処理でマッチングされない特徴ベクトルを除外する。更に、特徴ベクトルの回転角度を算出する。
【0032】
ステップS14において変位量算出部12は、特徴点とカメラ32との間の距離に基づいて、特徴点ごとの変位量を算出する。即ち、
図1に示したように、カメラ32の撮像面と走行路面4との間の距離はほぼ一定であるから、カメラ32で撮像される動画像のフレーム間での特徴点の変位量を算出することができる。
【0033】
ステップS15において、特徴量の変位量の平均値を算出し、この平均値を2つのフレーム間、即ち、第1フレームと第2フレームとの間の変位量とする。
【0034】
上述した「変位量算出処理」により、第1フレームを基準位置としたときの、第2フレームの位置(移動先の位置)を算出することができる。具体的には、下記(1)式により、基準位置と移動先の位置を示すことができる。
【0035】
【0036】
(1)式において、(x,y)はベース画像と移動先となるターゲット画像の変位ベクトル、θは回転角度である。
【0037】
図2に戻って、遷移領域設定部13は、画像設定部11にて設定されたベース画像中に基準位置を設定し、この基準位置を基準とした遷移領域を設定する。本実施形態では、一例としてベース画像の中心点を基準位置に設定する。また本実施形態では、一例として基準位置から所定距離以内となる領域を遷移領域に設定する。即ち、遷移領域設定部13は、ベース画像中の基準位置(例えば、中心点)を基準とした遷移領域R1を設定する。遷移領域R1は、例えば基準位置から半径r以内の領域である。
【0038】
「遷移領域」とは、ベース画像後のフレームから得られるターゲット画像の中心点がベース画像の中心点に対して遠ざかったときに、ベース画像を更新するか否かを判定する閾値とする領域である。具体的には、ターゲット画像の中心点が遷移領域の内側である場合には、このターゲット画像はベース画像から大きく離れていないのでベース画像を更新しない。一方、ターゲット画像の中心点が遷移領域の外側である場合には、ターゲット画像はベース画像から大きく離れているのでベース画像を更新する。詳細については後述する。
【0039】
図4は、ベース画像を示す説明図である。例えば、カメラ32による動画の撮像開始時におけるフレームの画像をベース画像D1とすることができる。
図4に示すように、ベース画像D1の中心点C1を基準位置とし、この中心点C1から所定距離以内の領域を遷移領域R1に設定する。
図4では、中心点C1から半径rとなる領域を遷移領域R1に設定している。なお、遷移領域は、中心点C1から等距離である領域でなくてもよい。例えば、中心点C1を中心とした楕円、長方形、正方形などであってもよい。また、基準位置は中心点C1でなくてもよい。
【0040】
判定部15は、変位量算出部12で算出された変位量に基づき、ターゲット画像の中心点がベース画像D1(
図4参照)に設定した遷移領域R1の内側であるか、或いは外側であるかを判定する。即ち、判定部15は、変位量に基づき、ターゲット画像中の基準位置が遷移領域R1の内側であるか否かを判定する。
【0041】
画像更新部16は、判定部15においてターゲット画像の中心点が遷移領域R1の外側であると判定された際に、このターゲット画像の1つ前(直前)のフレームの画像を、新たなベース画像に設定する。以下、ターゲット画像の中心点が遷移領域R1の外側であると判定された際にベース画像を更新する理由について説明する。
【0042】
図5は、移動ロボットが一次元的に移動したときの、動画像の各フレームに含まれる特徴点の変位量を示す説明図である。
図5において、動画像の撮像を開始した後に、「Frame0」、「Frame1」、「Frame2」、・・の順に画像が取得されるものとする。
【0043】
図5(b)は、各フレーム「Frame0」~「Frame4」における特徴点の実際の位置を示している。
【0044】
図5(a)は、各フレーム間の変位量、即ち、互いに隣接するフレーム間における変位量を逐次積算して、「Frame0」を基準とした各フレームの変位量を算出する例(従来の方法)を示している。具体的には、変位量d0は「Frame0」と「Frame1」から算出され、変位量d1は「Frame1」と「Frame2」から算出される。即ち、
図5(a)は、フレームごとに基準位置を変更して変位量を算出している。
【0045】
一方、
図5(c)は、撮像開始直後のフレームである「Frame0」を基準として、その後の「Frame1」~「Frame4」の変位量を算出する例を示している。具体的には、変位量d'0は「Frame0」と「Frame1」から算出され、変位量d'1は「Frame0」と「Frame2」から算出され、変位量d'2は「Frame0」と「Frame3」から算出される。即ち、
図5(c)は、フレームごとに基準位置を変更せずに変位量を算出している。
【0046】
図5(b)と(a)を対比して理解されるように、フレームごとに基準位置を変更して変位量を算出すると、各フレーム間において誤差Δdが発生しており、この誤差Δdはフレーム数が進むに連れて加算されていく。具体的には「Frame3」における誤差は「3*Δd」となる。
【0047】
一方、
図5(b)と(c)を対比して理解されるように、基準位置を変更せずに変位量を算出すると、各フレームにおいて誤差Δdはほぼ一定である。具体的には「Frame3」における誤差はΔdとなり、
図5(a)の場合と比べて誤差が小さくなっている。
【0048】
本実施形態では、ベース画像(「Frame0」に対応)を基準として各ターゲット画像(「Frame1」~「Frame4」に対応)の変位量を算出し、変位量が
図4に示した半径rを超えた際にベース画像を更新し、更新後のベース画像を新たな基準として各ターゲット画像の変位量を算出する。
【0049】
具体的には、
図5(c)に示す「Frame4」おいては、変位量d'3が半径rを超えている。従って、「Frame4」の一つ前である「Frame3」を新たなベース画像に設定して変位量を算出する。このため、
図5(c)に示す「Frame4」においては、変位量d'2と変位量d''3を加算した数値が変位量となる。この場合、変位量に生じる誤差は2*Δdとなり、
図5(a)に示した「Frame4」における誤差4*Δdよりも小さい数値となっている。
【0050】
上述のように、各フレームどうしの間で特徴点の変位量を積算すると、積算するごとに誤差が蓄積されていき、フレーム数が増えるに連れて、誤差が大きくなる可能性がある。本実施形態では、ベース画像を基準として各ターゲット画像の変位量を算出し、ターゲット画像の中心点が遷移領域R1の外側となった場合(半径rを超えた場合)に、画像更新部16によりベース画像を更新することにより、誤差を低減する。
【0051】
即ち、画像更新部16は、ターゲット画像中の基準位置が遷移領域R1の内側である場合には、ベース画像を変更せず、外側である場合には、ターゲット画像中の基準位置が遷移領域R1の外側となる前のフレームから得られるターゲット画像を、新たなベース画像に設定する。
【0052】
なお、本実施形態ではターゲット画像の中心点が遷移領域R1の外側であると判定された際に、このターゲット画像の1つ前(直前)のフレームの画像を、新たなベース画像に設定する例について示したが、2つ以上前のフレームの画像を新たなベース画像に設定してもよい。
【0053】
図2に示す移動量算出部17は、ベース画像に含まれる特徴点と、ターゲット画像に含まれる特徴点と、の変位量に基づいて、移動ロボット1の移動量(移動距離、移動方向)を算出する。
【0054】
以下、移動量の算出方法を、
図6を参照して説明する。
図6は、移動ロボット1の移動に伴ってベース画像が更新される動作を模式的に示す説明図である。
【0055】
図6(a)はベース画像D1を示し、
図6(b)、(c)はベース画像D1の次のフレームのターゲット画像D2を示している。
図6(d)はターゲット画像D2の次のフレームのターゲット画像D3を示し、
図6(e)はターゲット画像D3の次のフレームのターゲット画像D4を示している。
【0056】
図6(a)に示すように、ベース画像D1には、特徴点p1、p2が含まれている。ベース画像D1の後に得られるターゲット画像D2に含まれる特徴点p1、p2の変位量に基づいて、ベース画像D1の中心点C1からターゲット画像D2の中心点C2への変位量を算出することができる。
【0057】
即ち、
図6(a)のベース画像D1に含まれる特徴点p1、p2と、
図6(b)のターゲット画像D2に含まれる特徴点p1、p2を比較し、この変位量を算出することにより、
図6(c)に示すように、ベース画像D1の中心点C1からターゲット画像D2の中心点C2への変位量(矢印Y1で表記)を算出することができる。
【0058】
図6(b)、(c)に示すターゲット画像D2の中心点C2は、遷移領域R1の内側であるので、ベース画像は更新されない。中心点C1からC2への変位量が移動ロボット1の移動量となる。
【0059】
同様に、
図6(d)に示すように、ターゲット画像D3が得られた際には、該ターゲット画像D3の中心点C3は遷移領域R1の内側であり、ベース画像は更新されない。ターゲット画像D3に含まれる特徴点p1、p2の位置に基づいて変位量が算出され、ひいては、中心点C1からC3への変位量(矢印Y2で表記)が移動ロボット1の移動量となる。
【0060】
次いで、
図6(e)に示すように、ターゲット画像D4が得られた際には、ターゲット画像D4に含まれる特徴点p1、p2の位置に基づいて変位量が算出され、ひいては、ベース画像D1の中心点C1からターゲット画像D4の中心点C4までの変位量(矢印Y3で表記)を算出する。中心点C1からC4への変位量が移動ロボット1の移動量となる。
【0061】
この際、中心点C4は遷移領域R1の外側であるので、画像更新部16によりベース画像を更新する。具体的には、ターゲット画像D4の一つ前のターゲット画像D3を新たなベース画像に設定する。また、更新後のベース画像に再度遷移領域R1を設定し、
図6(a)以降の処理を繰り返しながら、移動ロボット1の移動量を算出する。
【0062】
即ち、移動量算出部17は、ベース画像に設定した中心点(例えば、
図6(a)のC1)を基準とし、ベース画像の後に得られるターゲット画像の中心点の変位量に基づいて移動ロボット1の移動量を算出する。また、ターゲット画像の中心点が遷移領域R1の外側である場合には、ベース画像を更新し、更新後のベース画像を基準として上記と同様の処理により移動ロボット1の移動量を算出する。
【0063】
即ち、移動量算出部17は、ベース画像に含まれる特徴点と、ベース画像後のフレームから得られるターゲット画像に含まれる特徴点と、の変位量に基づいて、移動ロボット1の移動量を算出する。
【0064】
図2に戻ってマップ作成部19は、移動量算出部17で算出された移動ロボット1の移動量に基づいて、移動ロボット1が移動した経路を示すマップを作成する。
【0065】
記憶部20は、マップ作成部19で作成されたマップを記憶する。
【0066】
GPS受信部21は、GPS衛星との間で通信を行い、移動ロボット1の位置情報を受信する。GPS受信部21は、移動ロボット1の位置情報を推定部18に出力する。
【0067】
推定部18は、GPS受信部21から移動ロボット1の初期的な位置情報を受信する。即ち、推定部18は、移動ロボット1の移動開始前の二次元位置情報を取得することができる。推定部18は、移動量算出部17で算出された移動ロボット1の移動量、及び移動開始前の移動ロボット1の二次元位置情報に基づいて、移動ロボット1が走行路面4を移動したときの二次元位置を推定する。推定部18は、推定した二次元位置情報を外部機器に出力する。
【0068】
即ち、推定部18は、移動ロボット1の初期位置及び移動量に基づいて、移動ロボット1の二次元位置を推定する。
【0069】
次に、上述のように構成された本実施形態に係る移動ロボットの動作を、
図7に示すフローチャート及び
図8に示す各フレーム画像の変位図を参照して説明する。
図7に示す処理は、
図2に示した測定装置10により実行される。
【0070】
初めに、ステップS31においてユーザは、ベース画像に設定する遷移領域の大きさ設定する。具体的には、
図3、
図8に示す半径rを設定する。
【0071】
ステップS32において画像設定部11は、カメラ32による動画の撮像が開始されると、動画に含まれる最初のフレームを読み込んでベース画像に設定する。例えば
図8に示すように、動画の初期フレームをベース画像D1に設定する。更に、中心点C1を中心とした半径rの領域を遷移領域R1に設定する。
【0072】
更に、ベース画像D1の中心点C1の座標を原点(0,0)とし、移動ロボット1の左右方向をX軸とし、前後方向をY軸とする。
【0073】
ステップS33において変位量算出部12は、画像設定部11で設定されたベース画像に含まれる特徴点を検出する。特徴点については、
図6にて示した通りである。
【0074】
ステップS34において画像設定部11は、ベース画像の次のフレームをターゲット画像に設定する。具体的には、
図8に示すターゲット画像D2を設定する。
【0075】
ステップS35において変位量算出部12は、ターゲット画像に含まれる特徴点を検出する。
【0076】
ステップS36において変位量算出部12は、前述した
図3に示した「変位量算出処理」を実行して、ベース画像D1に対するターゲット画像D2の変位量d[dX,dY]、及び回転角度[dθ]を算出する。
【0077】
例えば、
図8に示すターゲット画像D2が設定された場合には、ベース画像D1の中心点C1からターゲット画像D2の中心点C2までの変位量d[dX,dY]、及び回転角度[dθ]を算出する。
【0078】
ステップS37において判定部15は、変位量dが半径r以下であるか否かを判定する。即ち、「(変位量)≦半径r」であるか否かを判定する。変位量dが半径r以下である場合には(S37;YES)、ステップS41に移行し、そうでなければ(S37;NO)、ステップS38に処理を移行する。具体的には、
図8に示す中心点C2、C3は半径rの遷移領域R1の内側であるので、S37でYES判定となり、中心点C4は半径rの遷移領域R1の外側であるので、S37でNO判定となる。
【0079】
ステップS41において移動量算出部17は、ベース画像(初期的にはD1)の中心点(初期的にはC1)と、ターゲット画像の中心点に基づいて、移動ロボット1の移動量(移動距離及び回転角度を含む)を算出する。具体的には、
図8に示す中心点C1とC2の変位量に基づいて、ベース画像D1からターゲット画像D2へ移動したときの移動ロボット1の移動量を算出する。また、中心点C1とC3の変位量に基づいて、ベース画像D1からターゲット画像D3へ移動したときの移動ロボット1の移動量を算出する。
【0080】
更に推定部18は、GPS受信部21にて受信される移動ロボット1の初期的な二次元位置と、移動量算出部17で算出された移動量、即ち移動距離及び方位角に基づいて、移動ロボット1の現在の二次元位置を推定する。また、マップ作成部19は、移動ロボット1の移動経路を示すマップを作成し、記憶部20に記憶する。
【0081】
ステップS42において画像設定部11は、カメラ32で撮像される動画像の最終フレームであるか否かを判定し、最終フレームでなければ(S42;NO)、ステップS34に処理を戻し、そうでなければ(S42;YES)、本処理を終了する。
【0082】
一方、上述したステップS37の処理において、変位量dが半径rを上回ると判定された場合(S37;NO)には、ステップS38において、中心点C1を基準とした遷移ベクトルを設定する。具体的には、
図8に示す中心点C4(C4に対応するターゲット画像は記載を省略している)は、遷移領域R1の外側に存在している。この場合には、中心点C1から、ターゲット画像の一つ前のフレームであるターゲット画像D3の中心点C3に向かうベクトルを、遷移ベクトルM(MX,MY,Mθ)を設定する。
【0083】
ステップS39において画像更新部16は、ベース画像を更新する。具体的には、前述した
図6にて示したように、ターゲット画像の中心がベース画像に設定した遷移領域の外側となった際には、このフレームの1つ前のフレームの画像、即ちターゲット画像D3を新たなベース画像に設定する。また、新たなベース画像(D3)に対して中心点から半径rとなる円の範囲を新たな遷移領域に設定する。
【0084】
ステップS40において変位量算出部12は、新たなベース画像に対して特徴点を設定し、ステップS36に処理を戻す。一つ前のフレームに含まれる特徴点は既に検出しているので、この特徴点をコピーしてもよいし、再度、特徴点の検出を実施してもよい。こうすることにより、ベース画像を適宜更新しながら、移動ロボットの移動量を測定することが可能になる。
図8に示すC4→C5→・・→C16のように、順次画像が移動し、ターゲット画像D16に達する。即ち、ベース画像を更新しながら、各ターゲット画像までの変位量を算出して、移動ロボット1の二次元位置座標を推定することができるのである。
【0085】
即ち、
図8に示したように、ターゲット画像D3が設定された際には、中心点C1に対する中心点C2の変位量と、中心点C2に対する中心点C3の変位量との積算値を移動ロボット1の移動量とするのではなく、中心点C1に対する中心点C3の変位量を移動量としている。このため、前述した
図5にて説明したように移動量に含まれる誤差を低減することができる。
【0086】
次に、実際に移動ロボット1を走行させる実験を実施した結果について説明する。発明者らは、以下に示す第1実施例、第2実施例に示す実験を実施した。以下、
図9A、
図9B、
図10A、
図10Bを参照して、詳細に説明する。
【0087】
(第1実施例)
第1実施例として、移動ロボット1を模擬した手押し台車(以下、単に「台車」という)に床面動画像を撮像するための床面撮像カメラ(
図1に示すカメラ32に対応)を設置し、床面動画像による二次元自己位置推定を行った実験を行った。
図9Aは、自己位置推定の結果を示すグラフである。
図9Bは、上記の実験結果の数値を示す図である。
【0088】
第1実施例では、台車全体を上方から撮像可能な外部カメラを用いて、台車が移動した経路を撮像し、この画像に基づいて台車の二次元位置を算出した。更に、床面撮像カメラを用いて台車の二次元位置を推定した結果と比較した。
図9Aにおいて、実線で示す曲線q1は外部カメラを用いたときの測定結果を示し、破線で示す曲線q2は床面撮像カメラ用いて二次元位置自己位置推定を行ったときの結果を示している。
【0089】
外部カメラを用いた測定では、外部カメラの撮像面から床面までの距離と、外部カメラに搭載される撮像素子のピクセルサイズと、撮像する画像の実寸サイズと、を比較する。その結果、撮像素子の1ピクセルあたりの画像の実寸法、即ち、分解能を算出することができる。算出された分解能と、遷移領域R1を設定せずに算出される移動量の推定結果との差分を移動量推定結果の誤差とする。
【0090】
床面撮像カメラで撮像した動画像を用いた台車の移動量の推定は、
図7のフローチャートに示した処理を採用しているが、第1実施例では、遷移領域R1を示す半径rを「0」に設定している。即ち、
図4において半径r=0としており、遷移領域R1を設定していないことに相当する。実験の手順は以下に示す(a)~(c)に示す通りである。
(a)動画撮影
(a1)台車を円弧を描くように左斜め前に前進させる。
【0091】
(a2)台車の角度が初期状態に対して90度となった地点(停止地点)において台車を一時停止させる。
【0092】
(a3)一時停止した地点までの走行経路を戻るように台車を後進させ、スタート地点(最終地点)まで移動させる。即ち、スタート地点→停止地点→最終地点となるように台車を往復移動させる。
【0093】
(a4)このとき、台車の上方に設置した外部カメラ、及び台車に設置した床面撮像カメラの双方において動画を撮像する。
(b)外部カメラによる変位算出
外部カメラで撮像された動画像において、連続するフレームの画像に基づいて台車の移動量を算出する。
(c)路面動画像による変位算出
図3に示した変位量算出処理により、台車の移動量を算出する。
【0094】
上記した(a)~(c)の実験では、操作者による人力で台車を移動させており、平均10[cm/sec]程度で移動させた。また、外部カメラの分解能を測定したところ3[mm]という結果が得られた。
【0095】
図9Aに示す曲線q1、q2から、台車を約(1500mm)×(1200mm)の領域を移動させたときに、外部カメラによる二次元位置の推定結果と、床面撮像カメラによる二次元位置の推定結果では、一定の誤差が生じていることが示された。即ち、半径rを「0」に設定して遷移領域R1を設定しない場合には、隣り合うフレームの画像間での変位量を積算して移動量が算出されることになる。
図9Bに示すように、停止地点(往路の終点)において55.7mmの誤差が発生し、最終地点(復路の終点)において、43.8mmの誤差が発生するという結果が得られた。
【0096】
(第2実施例)
第2実施例では、
図4に示したベース画像D1に遷移領域R1を設定し、ターゲット画像の中心点が遷移領域R1の外側に移動したときにのみベース画像を更新するというアルゴリズムを用いて、上記した第1実施例と同様の実験を実施した。
【0097】
即ち、上述の(c)に示した変位量算出処理において、遷移領域R1を半径r=5mmに設定して台車の移動量を算出した。また、前述した第1実施例と同様に、遷移領域R1を設定せずに(即ち、遷移領域R1の半径r=0として)台車の移動量を算出した。
【0098】
図10Aにおいて、実線で示す曲線q11は上部カメラで撮像した画像により算出される台車の二次元位置を示す。破線で示す曲線q12は、台車に設置した床面撮像カメラで撮像された路面の動画像を用い、遷移領域R1を設定せずに算出した台車の二次元位置を示す。一点鎖線で示す曲線q13は、台車に設置した床面撮像カメラで撮像された路面の動画像を用い、半径5mmの遷移領域R1を設定して算出した台車の二次元位置を示す。
【0099】
図10Aに示す曲線q11とq12から、遷移領域R1を設定せずに算出した台車の自己位置推定結果は、外部カメラで撮像した動画像に基づいて算出した台車の自己位置推定結果に対して、一定の誤差を有することが示された。これに対して、曲線q11とq13はほぼ一致しており、遷移領域R1を設定して算出した台車の自己位置推定結果は、外部カメラで撮像した動画像に基づいて算出した台車の自己位置推定結果にほぼ一致しているという結果が得られた。
【0100】
具体的には、
図10Bに示すように、往路の終点(停止地点)において、遷移領域R1を設定しない場合には58.2mmの誤差が発生したのに対して、遷移領域R1を設定した場合(「半径5mm」と記載)では、誤差は8.1mmであった。また、復路の終点(最終地点)において遷移領域R1を設定しない場合には誤差が43.9mmであったのに対して、遷移領域R1を設定した場合には、誤差は0.5mmであった。
【0101】
ベース画像に遷移領域を設定し、ターゲット画像の中心点が遷移領域の外側に移動したときにのみベース画像を更新するというアルゴリズムを用いることにより、台車の二次元位置を高精度に推定できるという結果が得られた。
【0102】
このように、本実施形態に係る移動ロボットは、走行路面4の動画像を撮像するカメラ32(撮像部)と、動画像の任意のフレーム(例えば、初期フレーム)をベース画像に設定する画像設定部11と、ベース画像中の基準位置を基準とした遷移領域R1を設定する遷移領域設定部13と、ベース画像、及びベース画像後のフレームから得られるターゲット画像、に含まれる特徴点に基づき、画像間における特徴点の変位量を算出する変位量算出部12と、変位量に基づき、ターゲット画像中の基準位置が遷移領域R1の内側であるか否かを判定する判定部15と、ターゲット画像中の基準位置が遷移領域R1の内側である場合には、ベース画像を変更せず、外側である場合には、ターゲット画像中の基準位置が遷移領域R1の外側となる前のフレームから得られるターゲット画像を、新たなベース画像に設定する画像更新部16と、ベース画像に含まれる特徴点と、ターゲット画像に含まれる特徴点と、の変位量に基づいて、移動ロボット1の移動量を算出する移動量算出部17と、を備える。
【0103】
本実施形態では、ターゲット画像の中心点が遷移領域R1の内側に存在する場合には、ベース画像の特徴点、或いは中心点を基準として、ターゲット画像の変位量を算出するので、移動ロボット1の移動量を高精度に算出することができる。従って、ビジュアルオドメトリを用いる場合でも移動量を高精度に推定することが可能になる。
【0104】
また、本実施形態では、ターゲット画像の中心点がベース画像に設定した遷移領域R1の外側となった直前のフレームの画像を、新たなベース画像に設定するので、移動ロボット1の移動量をより高精度に算出することが可能になる。
【0105】
即ち、
図5(a)に示したように、動画像に含まれるフレームごとに変位量を積算する方法では誤差Δdが積載されることにより、全体の誤差が大きくなる。しかし、本実施形態では
図5(c)に示すように、ベース画像が更新されるまでは、1つのベース画像を基準として変位量を算出するので、誤差を低減することが可能になる。
【0106】
本実施形態では、カメラ32で撮像される動画像に含まれる1フレームごとにターゲット画像を設定して、ベース画像に対する変位量を算出するので、移動ロボット1の移動量をより高精度に算出することが可能になる。
【0107】
本実施形態では、遷移領域R1の中心点を、ベース画像の中心に設定するので、移動ロボット1の移動量をより高精度に算出することが可能になる。
【0108】
本実施形態では、ベース画像に基準位置(例えば、中心点)を設定し、この基準位置から半径rの範囲(即ち、所定距離以内の領域)を遷移領域R1に設定するので、ターゲット画像の中心が遷移領域の内側であるか、或いは外側であるかを、より正確に認識して移動ロボット1の移動量を算出することが可能になる。
【0109】
本実施形態では、マップ或いは周辺環境の情報を利用するなどの特別な装置を必要としないため、移動ロボット1を安価に構成することが可能になる。また、誤差を小さくすることを可能としたことにより、移動ロボット1の移動量が長距離になった際において対応することが可能になる。
【0110】
上記説明した本実施形態の移動ロボット1には、
図11に示すように例えば、CPU(Central Processing Unit、プロセッサ)901と、メモリ902と、ストレージ903(HDD:Hard Disk Drive、SSD:Solid StateDrive)と、通信装置904と、入力装置905と、出力装置906とを備える汎用的なコンピュータシステムを用いることができる。メモリ902およびストレージ903は、記憶装置である。このコンピュータシステムにおいて、CPU901がメモリ902上にロードされた所定のプログラムを実行することにより、移動ロボット1の各機能が実現される。
【0111】
なお、移動ロボット1は、1つのコンピュータで実装されてもよく、あるいは複数のコンピュータで実装されても良い。また、移動ロボット1は、コンピュータに実装される仮想マシンであっても良い。
【0112】
なお、移動ロボット1用のプログラムは、HDD、SSD、USB(Universal Serial Bus)メモリ、CD (Compact Disc)、DVD (Digital Versatile Disc)などのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【0113】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【符号の説明】
【0114】
1 移動ロボット
4 走行路面
10 測定装置
11 画像設定部
12 変位量算出部
13 遷移領域設定部
15 判定部
16 画像更新部
17 移動量算出部
18 推定部
19 マップ作成部
20 記憶部
21 GPS受信部
31 移動台車
32 カメラ
R1 遷移領域