JP2024005342A - 情報処理装置、情報処理方法、及びコンピュータプログラム - Google Patents

情報処理装置、情報処理方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP2024005342A
JP2024005342A JP2022105492A JP2022105492A JP2024005342A JP 2024005342 A JP2024005342 A JP 2024005342A JP 2022105492 A JP2022105492 A JP 2022105492A JP 2022105492 A JP2022105492 A JP 2022105492A JP 2024005342 A JP2024005342 A JP 2024005342A
Authority
JP
Japan
Prior art keywords
map
constraint condition
measurement value
imaging device
orientation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022105492A
Other languages
English (en)
Inventor
貴俊 佐藤
Takatoshi Sato
誠 冨岡
Makoto Tomioka
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2022105492A priority Critical patent/JP2024005342A/ja
Publication of JP2024005342A publication Critical patent/JP2024005342A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】移動体の位置姿勢計測において、時間が経過するにつれて、計測誤差が蓄積することで、位置姿勢計測の精度が低下することがあった。【解決手段】情報処理装置方法であって、移動体に搭載された撮像装置が撮像したシーンの三次元位置情報と該撮像装置の位置及び姿勢と、該撮像装置の位置及び姿勢の拘束条件を地図要素として含む、複数の前記地図要素から構成される三次元地図を保持し、前記拘束条件を判定するためのセンサの計測値を取得し、前記計測値に基づいて、前記拘束条件を判定し、前記拘束条件に基づいて、前記三次元地図を補正する。【選択図】 図2

Description

本発明は、三次元地図に関する情報処理装置、情報処理方法、及びコンピュータプログラム等に関する
移動ロボットや無人搬送車(AGV:Autonomous Guided Vehicle)等の移動体に搭載した、カメラやLiDAR(light Detection And Ranging)等の計測機器で計測した画像情報や距離情報等の計測情報に基づいて、自律移動する移動体システムの開発が進められている。又、現実空間に対して高精度に移動体の位置姿勢を推定する技術が求められている。特許文献1では、カメラで撮影した画像中の特徴点と移動体の拘束条件である運動モデルとに基づいて、移動体の位置姿勢の補正量を算出している。又、非特許文献1には、カメラの位置姿勢を算出する方法が記載されている。
特開2021-113760号公報
Raul Mur-Artal et.al,ORB-SLAM:A Versatile and Accurate Monocular SLAM System.IEEE Transactionson Robotics
[課題]
しかし特許文献1や非特許文献1の方法では、時間の経過につれて誤差が累積するため、位置姿勢計測の精度が低下する問題があった。
[目的]
本発明は以上を鑑みて、位置姿勢計測の精度を向上した情報処理装置を提供することを目的とする。
本発明の1つの側面の情報処理装置は、
移動体に搭載された撮像装置が撮像したシーンの三次元位置情報と、前記撮像装置の位置及び姿勢と、前記撮像装置の位置及び姿勢の拘束条件を含む、複数の地図要素から構成される三次元地図を保持する地図保持手段と、
前記拘束条件を判定するためのセンサの計測値を取得するセンサ計測値取得手段と、
前記センサ計測値取得手段が取得した計測値に基づいて、前記拘束条件を判定する拘束条件判定手段と、
前記拘束条件判定手段が判定した前記拘束条件に基づいて、前記三次元地図を補正する地図補正手段と、を備えることを特徴とする。
本発明によれば、位置姿勢計測の精度を向上した情報処理装置を実現することができる。
実施形態1に係る装置の利用形態を説明する図である。 実施形態1に係る情報処理装置100を含む移動体1(AGV)の構成例を示す機能ブロック図である。 情報処理装置100のハードウェア構成例を示す図である。 実施形態1に係る移動体1(AGV)全体の処理の流れを示すフローチャートである。 図4のステップS107の処理の流れを示すフローチャートである。 実施形態2に係る情報処理装置100を含む移動体1の機能ブロック図である。
以下、図面を参照して本発明の実施形態を説明する。ただし、本発明は以下の実施形態に限定されるものではない。なお、各図において、同一の部材または要素については同一の参照番号を付し、重複する説明は省略または簡略化する。
(実施形態1)
実施形態1について、水平に施工された床面上を移動するAGVに適用する事例を用いて説明する。本実施形態のAGVシステムでは、公知のSLAM(Simultaneous Localization And Mapping)技術により、AGVに搭載したカメラの位置姿勢の計測と、位置姿勢を計測するための地図情報の生成を行う。
ここで地図情報は、カメラで撮影した画像から抽出した特徴点群の三次元座標を含むが、一般に、SLAMで生成した地図情報に含まれる位置情報には誤差が蓄積するため、地図の形状がAGVの物理的な移動軌跡と異なるという問題がある。
本実施形態では、AGVに固定した2軸角度計の出力から算出したAGVの姿勢が水平であれば、その地点でのAGVの姿勢が水平となるように制約を課して地図要素の位置を補正する。この方法により、AGVの物理的な移動軌跡である水平面に従って、地図の形状が修正されるため、当該地図に基づくカメラ位置姿勢の計測精度が向上する。
ここで、地図要素は、カメラの位置姿勢、特徴点群の三次元座標に加え、カメラの位置姿勢の計測時刻と同期する2軸角度計の計測値と、制約を表す拘束情報等を保持する。
図1は実施形態1に係る装置の利用形態を説明する図である。利用者200は、コントローラ300を利用して、情報処理装置100を搭載した移動体1(AGV)の移動、回転等を制御し、自律移動させる予定の経路上を移動させる。
図2は、実施形態1に係る情報処理装置100を含む移動体1(AGV)の構成例を示す機能ブロック図である。尚、図2に示される機能ブロックの一部は、情報処理装置に含まれるコンピュータに、記憶媒体としてのメモリに記憶されたコンピュータプログラムを実行させることによって実現されている。しかし、それらの一部又は全部をハードウェアで実現するようにしても構わない。ハードウェアとしては、専用回路(ASIC)やプロセッサ(リコンフィギュラブルプロセッサ、DSP)などを用いることができる。
又、図2に示される夫々の機能ブロックは、同じ筐体に内蔵されていなくても良く、互いに信号路を介して接続された別々の装置により構成しても良い。
撮像装置10はCMOSイメージセンサ等を含むカメラであり、撮像情報入力部11(入力手段)に撮影した画像を出力する。又、移動体1が水平に配置されたときにカメラの光軸が地面に対して水平になるように設置されており、ヨー軸が鉛直方向と一致し、ロール軸がカメラの光軸方向と一致し、ピッチ軸はヨー軸とロール軸の外積で表されるものとする。撮像情報入力部11は、カメラと接続されており、カメラが撮像した画像を時系列(例えば、毎秒60フレーム)で入力し、位置姿勢算出部12に出力する。
位置姿勢算出部12(位置姿勢算出手段)は、地図保持部110が保持する地図情報と撮像情報入力部11から入力された画像から検出(抽出)した特徴点の情報を用いて例えばパターンマッチングによりカメラの位置姿勢を算出する。又、算出した位置姿勢を地図要素追加部13に出力する。
センサ14は例えば2軸角度計を含み、カメラのロール軸周りの回転量とピッチ軸周りの回転量を検出し出力することによりカメラの傾斜角度を計測する。即ち、2軸角度計を用いてカメラの重力軸方向に対する傾斜角度を計測して水平方向を移動しているかどうかを検知する。センサ14の出力は拘束条件を判定するために用いられる。
尚、カメラの撮影と2軸角度計の計測は同じタイミングで行われるものとする。センサ情報入力部15は、2軸角度計と接続されており、2軸角度計の計測値を入力し、地図要素追加部13(地図要素追加手段)に出力する。
地図要素追加部13は、撮像されたシーンの三次元位置情報や位置姿勢算出部12が算出したカメラの位置姿勢や、センサ情報入力部15が出力した計測値や後述の拘束条件等に基づき新たな地図要素を作成し、地図保持部110に出力する。
移動指令取得部16は、コントローラ300が出力した結果を入力として、移動制御情報に変換して、移動制御部17に出力する。移動制御部17は、移動指令取得部16が出力した結果を入力として、移動体1の駆動や移動方向等を制御する。
地図保持部110は地図保持手段として機能しており、地図情報を保持する地図保持ステップを実行する。具体的には、地図保持部110は、移動体に搭載された撮像装置が撮像したシーンの三次元位置情報と、撮像装置の位置及び姿勢と、撮像装置の位置及び姿勢の拘束条件とを含む、複数の地図要素から構成される三次元地図を保持する。
地図保持部110は、保持する地図情報、又は地図情報に含まれる地図要素の情報を必要に応じて位置姿勢算出部12に出力する。又、地図要素追加部13が追加した地図要素の情報や、地図補正部114が出力した地図要素の情報等を入力し、保持する。
センサ計測値取得部115(センサ計測値取得手段)は、地図保持部110が保持する最新の地図要素や、当該地図要素が保持するセンサ計測値を取得し、拘束条件判定部111に出力する。
拘束条件判定部111(拘束条件判定手段)は、センサ計測値取得部115が出力したセンサ計測値等に基づき撮像装置の位置姿勢の拘束条件が存在するかどうかを判定し、判定した結果を拘束情報生成部112に出力する。
拘束情報生成部112は、拘束条件判定部111が出力した判定結果に基づいて、拘束条件の設定に必要な情報(カメラのロール軸周りの回転量、ピッチ軸周りの回転量、ロール軸、ピッチ軸周りの回転量を補正時に固定するか否かの情報)を生成する。そして、地図補正拘束条件設定部113に出力する。
地図補正拘束条件設定部113は、地図保持部110が保持する最新の地図要素を取得し、拘束情報生成部112が生成した拘束情報を地図要素に設定し、地図保持部110に出力する。
地図補正部114(地図補正手段)は、地図保持部110から複数の地図要素を取得する。そして、拘束条件判定部111で判定され地図補正拘束条件設定部113で設定された拘束条件に基づいて、地図要素に含まれる撮像装置の位置姿勢や特徴点群の三次元座標を補正する。又、補正した結果を地図保持部110に出力する。
図3は、情報処理装置100のハードウェア構成例を示す図である。31はCPUであり、システムバス30に接続された各種デバイスの制御及び情報処理装置100の各種処理を行う。32はROMであり、BIOSのプログラムやブートプログラムを記憶する。33はRAMであり、CPUである31の主記憶装置として使用される。34は外部メモリであり、情報処理装置100が処理するコンピュータプログラムを格納する。入力部35はキーボードやマウスなど情報等の入力に係る処理を行う。
表示部36は31からの指示に従って情報処理装置100の演算結果を外部の表示装置に出力するための表示制御手段として機能している。尚、表示装置は液晶表示装置やプロジェクタ、LEDインジケーターなど、種類は問わない。又、表示装置はコントローラ300の表示装置であっても良い。37は通信インターフェイスであり、ネットワークを介して情報通信を行うものであり、通信インターフェイスはイーサネットでもよく、USBやシリアル通信、無線通信等種類は問わない。
尚、位置姿勢算出部12とは、通信インターフェイス37を介して、算出した位置姿勢情報のやり取りを行う。38はI/Oであり、撮像装置10から画像を入力する。又、33は後述する地図補正部が実施する補正で取得する地図要素の数や、2軸角度計の計測値から水平であるかどうかを判定するための閾値等の処理ステップ上必要な固定パラメータを保持する。
図4は、実施形態1に係る移動体1(AGV)全体の処理の流れを示すフローチャートであり、図5は図4のステップS107の処理の流れを示すフローチャートである。尚、情報処理装置内のコンピュータ31がメモリに記憶されたコンピュータプログラムを実行することによって図4、図5のフローチャートの各ステップの動作が行われる。
図4のフローは、例えば移動体の走行を開始させる指示が行われるのに伴って開始する。
ステップS101では、情報処理装置100は、システムの初期化を行う。即ち、プログラムを読込み、情報処理装置100を動作可能な状態にする。又、地図情報やカメラパラメータを読み込む。ステップS102では、撮像情報入力部11が、カメラが撮像した画像を入力する。
ステップS103では、位置姿勢算出部12が、ステップS102で入力した画像と、地図保持部110が保持する地図情報から例えばパターンマッチングや非特許文献1に記載された方法で、カメラの位置姿勢を算出する。算出を終えたらステップS104に進む。
ステップS104では、センサ情報入力部15が、ステップS102のカメラの撮影画像の撮像と同期してセンサ14から取得された2軸角度計の計測値を入力し、ステップS105に進む。ここで、ステップS104は、センサの計測値を取得するセンサ計測値取得ステップとして機能している。
ステップS105では、地図要素追加部13が、地図要素の追加の必要の有無を判定する。地図要素追加の判定方法は非特許文献1に記載の方法を用いても良い。地図要素の追加が必要であれば、ステップS106に進む。必要でなければ、ステップS108に進む。
ステップS106では、地図要素追加部13が、新たな地図要素を作成し、地図保持部110が保持する地図情報に地図要素を追加する。地図要素の追加は、非特許文献1に記載の方法を用いても良い。ステップS104で入力した2軸角度計の計測値も併せて地図要素に登録する。地図追加が完了したらステップS107に進む。
ステップS107では、情報処理装置100がステップS106で追加した地図要素に対する拘束条件を追加する。本ステップの処理の詳細については後述する。拘束条件の追加が完了すれば、ステップS108に進む。
ステップS108(地図補正ステップ)では、地図補正部114が、ステップS106が追加した最新の地図要素と、地図保持部が保持する過去に取得した地図要素のうち新しい順の所定数の地図要素と、を取得する。取得した地図要素を対象に、ステップS107で設定した拘束情報に基づいて、複数の地図要素に含まれる位置姿勢と特徴点群の三次元座標を追加又は補正し三次元地図を補正する。
具体的には、地図要素が拘束情報を保持している場合、拘束情報に含まれるカメラのロール軸及びピッチ軸周りの回転量と地図要素に含まれる位置姿勢のロール軸及びピッチ軸周りの回転量の差分量を算出する。算出した差分量を用いて、地図要素に含まれる位置姿勢のロール軸及びピッチ軸周りの回転量が、拘束情報に含まれるロール軸及びピッチ軸周りの回転量の値に一致するように位置姿勢を補正する。
このように、センサ14の出力に基づき生成された拘束情報により地図要素内の回転量などに制限を設定したり、回転量をリセットしたりすることで地図の歪みや変形を補正する。
取得したすべての地図要素を対象に、ステップS107で設定したカメラのロール軸及びピッチ軸周りの回転量の変化量を0にする拘束条件を含めて、非特許文献1に記載のローカルバンドル調整を実施する。そして、地図要素に含まれる位置姿勢と特徴点群の三次元座標を補正する。補正が完了したらステップS109に進む
ステップS109では、システムを終了するか否かの判断を行う。本実施形態においては、移動体が目的地に到着した場合にコントローラ300がシステムを終了するコマンドを入力したか否か判定する。終了コマンドが入力された場合にはシステムを終了し、そうでなければステップS102に戻り、処理を継続する。
図5は、図4のステップS107の処理の流れを示すフローチャートである。ステップ201で、センサ計測値取得部115が、ステップS104が入力した地図要素に含まれる位置姿勢と同時刻の2軸角度計が計測したカメラのロール軸周りの回転量とピッチ軸周りの回転量を入力し、ステップS202に進む。
ステップS202(拘束条件判定ステップ)では、拘束条件判定部111が、ステップS201で入力したカメラのロール軸周りの回転量が所定の値以下かつピッチ軸周りの回転量が所定の値以下かという判定をする。判定結果がYesであれば判定結果を1(水平である)と設定し、判定結果がNOであれば0(水平でない)と設定する。即ち、ステップS202は、センサ計測値取得手段が取得した計測値に基づいて、拘束条件を判定する。
ステップS203では、判定結果が1か否かを判定し、ステップS202の判定結果が1(水平である)であれば、ステップS204に進み、0(水平でない)であれば、ステップS206に進む。
ステップS204では、拘束情報生成部112が、ステップS201で入力したカメラのロール軸周りの回転量とピッチ軸周りの回転量、ロール軸及びピッチ軸周りの回転量の地図補正時の変化量を0にするフラグを含む拘束情報データセットを生成する。そして、ステップS205に進む。
ステップS205では、地図補正拘束条件設定部113が、ステップS204で生成した拘束情報を表すデータセットを、ステップS106で追加した地図要素に追加する。即ち、ステップS205において、地図要素追加手段が追加した地図要素の拘束条件を設定し、図5のフローを終了する。
以上のように、実施形態1では、撮像装置の傾斜角度を計測するセンサ14の計測値に基づいて、地図補正時のキーフレームの位置姿勢に拘束条件を設定し、その拘束条件を満たすように地図の補正処理を実施する。これにより、AGVが水平面を移動しているにもかかわらず、地図が水平に対して歪んで計測される現象を抑制することができる。
又、高精度な姿勢情報を拘束条件に設定することにより、地図補正時の初期位置の精度が向上し、すべての補正対象のパラメータの補正の精度が向上する。その結果、地図の精度が向上し、地図に基づく位置姿勢計測の精度が向上する。更に、地図補正処理時に変動させるパラメータ数が減ること、初期位置の精度が向上することにより、地図補正に必要な処理時間を短縮することもできる。
実施形態1では、センサ14は2軸角度計を用いて撮像装置の重力軸方向に対する傾斜角度を計測し、センサ情報入力部は、センサ14の計測値に基づき撮像装置が水平面上を移動しているか、或いは水平方向を移動しているかどうかを判定した。しかし撮像装置と重力軸方向の傾斜角度を推定可能なセンサを用いればよく、慣性センサ(IMU:Inertial Measurement Unit)を用いて推定しても良い。
具体的には、Tong Qinetらの方法(Tong Qinet.al VINS-Mono:A Robust and Versatile Monocular Visual-Inertial State Estimator)の手法を使っても良い。即ち、Visual-SLAMの計測結果とIMUの計測結果の整合性が取れるように初期化を行い、重力軸の推定を行っても良い。或いは、SLAMでの撮像装置の位置姿勢の推定結果のヨー軸と重力軸とがなす角(傾斜角度)に基づいて水平であるかどうかの判定を行っても良い。
尚、実施形態1では撮像装置と重力軸方向の傾斜角度から水平であるかどうかを判定したが、水平に限らず、センサ計測値である傾斜角度で規定される平面を走行しているという拘束にしても良い。
具体的には、撮像装置の位置姿勢のうち、ロール軸周りの回転量とピッチ軸周りの回転量の2つのパラメータは、センサ計測値から得られる値を真値とする。そして、地図を補正する際、この2つのパラメータが、常にセンサ計測値の値に整合するように固定し補正しても良い。
又、センサ14として2軸角度計を用いる代わりに、撮像装置との相対位置姿勢が既知のToF(Time of Flight)やLiDAR、ステレオカメラなどの距離計測可能なセンサを用いても良い。即ち、これらのセンサで床面を計測して得られる三次元点群から主成分分析を行い、平面を推定し、推定した平面の法線方向から撮像装置のヨー軸の方向を算出し、算出した値を真値とする。
更に、地図を補正する際には、算出したヨー軸と地図要素に含まれる撮像装置のヨー軸からロール軸及びピッチ軸周りの回転量の差分量を計算する。そして撮像装置のロール軸及びピッチ軸周りの回転量に上記差分量を足し合わせた値で、撮像装置のロール軸及びピッチ軸周りの回転量を固定して、補正しても良い。
尚、ここでは床面を計測する例を説明したが、壁面や天井面の向きを計測して間接的に移動する面の傾きを推定しても良い。例えば、壁面に対して垂直な面を移動しているときの壁面の法線を算出し、壁面の法線方向から撮像装置のヨー軸の方向を算出し、このときの撮像装置の姿勢を基準姿勢とする。
そして、壁面の法線方向から撮像装置のヨー軸の方向を算出し、算出したヨー軸と基準姿勢のヨー軸から、基準姿勢に対するロール軸及びピッチ軸周りの回転量を算出し、撮像装置のロール軸及びピッチ軸周りの回転量を算出した値で固定して補正しても良い。
又、水平の目印として、窓枠や水平に並んだ光学マーカなどを認識して、水平のエッジが画像上で水平に映っているかどうかで水平であるかを判定しても良い。例えば、水平に移動体を配置したときに、水平に並んだ光学マーカを認識したときの水平のエッジの角度とその時の姿勢を基準姿勢として保持しておく。
そして、保持している角度との差分が所定量以上になった場合、水平でないと判定し、所定量未満の場合、水平であると判定する。水平であれば、基準姿勢のロール軸及びピッチ軸周りの回転量を正解値として固定して、補正しても良い。
実施形態1では、拘束条件の設定は水平であるか否かの二値で判定していたが、撮像装置が水平面上を移動している度合いや撮像装置の水平方向を移動している度合いや床の平面性の度合い等に応じて拘束条件の重みを変更しても良い。例えば、地図要素を追加してから次の地図要素を追加するまでの間の傾斜角度の分散から拘束の重みを設定しても良い。そして、前者の場合、傾斜角度の分散が大きいほど拘束の重みを小さくし、分散が小さいほど拘束の重みを大きくすれば良い。
或いは予め傾斜角度に応じて重みを決めた表を用意しておいて傾斜角度に対応した重みを設定しても良い。そして、傾斜角度が大きいほど拘束の重みを小さくし、傾斜角度が小さいほど拘束の重みを大きくすれば良い。
又、床面を距離計測可能なセンサで計測する場合は、推定した平面と推定に用いた三次元点群との距離の分散の大きさを拘束の重みに設定しても良い。AGVなどの車輪で走行する移動ロボットは、平面上を走行する頻度が高いが、整地された平面を走行することもあれば、多少凹凸があるが平面に近似可能な面上を走行することもある。
拘束に重みを設定することで、整地された平面は拘束の重みを大きくして、凹凸のある平面は重みを小さくするといった設定が可能となり、より環境に適応した拘束条件を設定することが可能となる。
実施形態1ではローカルバンドル調整を用いて地図を補正していたが、拘束条件を設定して補正可能な方法であれば良く、ポーズグラフ最適化を用いて地図の補正を行っても良い。これらの補正は、非特許文献1に記載された方法を用いても良い。
実施形態1では、水平である又は平面であるかを計測するためのセンサの計測値を利用して拘束条件を判定していたが、AGVなどの移動ロボットの場合、移動に用いる制御情報があるので、それらの制御入力を拘束条件に設定しても良い。
具体的には、AGVの移動で利用する制御情報を計測するセンサの計測値に基づいて拘束条件を判定する。例えば、AGVが直進するという制御情報が複数の地図要素間で継続して計測されているならば、その複数の地図要素間のピッチ軸方向(横方向)のパラメータの変化量を0にすることができる。
又、AGVがその場で旋回をするという制御情報が複数の地図要素間で継続して計測されている場合には、AGVの位置は同一円周上にあるという拘束条件を設定しても良い。これにより、実世界で直進動作をしているにもかかわらず、地図情報が歪むような現象を抑制することができる。このように、センサは、移動体の制御情報を計測するものであってもよく、その計測値に基づいて拘束条件の重みを設定するようにしても良い。
実施形態1では、水平であるかどうかを拘束条件として判定していたが、撮像装置の周辺の物体の配置情報から拘束条件を判定しても良い。例えば撮像装置との相対位置姿勢が既知のToFやLiDAR、ステレオカメラなどの距離を計測可能なセンサを用いて、撮像装置と周囲の物体の距離を計測し、その距離の計測値からAGVの位置姿勢の拘束条件を判定しても良い。
即ち、ある地点で周囲の物体との距離を計測し、その地点から先100mの間は左右に壁があり、横幅が10mであると計測し、撮像装置が横幅10[m]に対して中心に位置しているとする。その場合には、その地点からの横方向の並進移動成分の変化の範囲を±5[m]にする拘束条件を設定する。
又は、ある地点で天井との距離を計測し、その地点から先50mの天井の高さが撮像装置より5[m]高い位置にあるならば、その地点からの上方向の並進移動成分の変化の範囲を0[m]から5[m]の間に制限するような拘束条件を設定する。
このような位置に関する制約を加えることにより、実世界での走行経路から地図が逸脱することを防ぐことができる。又、位置の拘束条件に反映させる物体と反映させない物体を画像に基づく機械学習による物体認識(物体解析)によって判定しても良い。例えば、壁などは物理的に動かないので拘束条件に反映させ、台車などは移動する可能性があるため拘束条件に反映させないようにしても良い。
即ち、センサ計測値取得部115が取得した計測値に基づいて、物体認識手段が認識した壁などの物体までの距離を算出し、算出された距離に基づいて拘束条件を設定しても良い。
実施形態1では、水平かどうかのみを拘束条件として判定していたが、必ずしも1つの拘束条件である必要はなく、複数の拘束条件を組み合わせることにより最終的な撮像装置の拘束条件を設定しても良い。例えば、水平の拘束によりロール軸周りの回転量とピッチ軸周りの回転量のパラメータの変化量を0にする。そして、周辺の物体の配置情報の拘束により撮像装置の位置が横幅10mの区間から逸脱することがないように撮像装置の並進移動成分のパラメータに拘束条件を設けても良い。
他には、平面の拘束によりロール軸周りの回転量とピッチ軸周りの回転量のパラメータの変化量を0にし、移動の制御入力の直進の拘束によりピッチ軸方向(横方向)のパラメータの変化量を0にするという拘束条件を設ける。このように複数の拘束条件を組み合わせても良い。
即ち、複数のセンサの計測値に基づいて複数の拘束条件を設定し、複数の拘束条件の組み合わせに基づき三次元地図を補正することで変動するパラメータの数を制限することができるため、地図を補正する際に補正の精度を高められる。又、処理時間を短縮することができる。
尚、カメラはモノクロ画像を取得するものであっても良いし、カラー画像を用いても良い。又、カメラが地面に対して水平に取り付けられていることを前提にしていたが、カメラの水平方向に対する傾斜角度を事前に計測してあれば、必ずしも水平に設置する必要はない。
具体的には、センサが水平を検出したときのカメラの傾斜角度を事前に計測しておく。そして、センサが水平であると判定したときに、地図要素のカメラの位置姿勢のロール軸周り、ピッチ軸周りの回転量と、事前に計測したカメラのロール軸周り、ピッチ軸周りの回転量の差分量を夫々算出する。算出した差分量を用いて、地図要素に含まれるカメラ位置姿勢のロール軸周り、ピッチ軸周りの回転量が、事前に計測した水平時のカメラのロール軸周り、ピッチ軸周りの回転量と一致するように位置姿勢を補正すれば良い。
実施形態1では、情報処理装置100は移動体に搭載される例を説明したが、情報処理装置100はネットワークを介して接続されたサーバー上に設けることもできる。又、地図保持部110のみ外部のサーバー上に設けることも可能である。
尚、実施形態1では、カメラの撮像タイミングと2軸角度計の計測タイミングを同期させることを前提としていたが、必ずしも計測タイミングを同期する必要はない。例えば、2軸角度計の計測値を常に保持しておいて、カメラの撮像画像に基づくカメラの位置姿勢の計測時刻の前後の2軸角度計の計測値を取得し、線形補間によりカメラ位置姿勢の計測時刻と一致する2軸角度計の計測値を取得しても良い。
又、2軸角度計の計測値を常に保持する必要はなく、カメラの位置姿勢の計測時刻の前後2地点の計測値が最低限あれば良い。又、補間を用いずに、カメラの計測時刻と2軸角度計の計測時刻との差分が十分小さいという仮定をして、2つの時刻が最も近い1点の計測値を用いても良い。
尚、実施形態1では、図1に示すように利用者がコントローラでAGVを操作しながら地図を生成する方法について説明したが、既存の地図がある状態で自律移動する場合においても本発明を適用することができる。
例えば、実施形態1の方法で地図を作成し、同じ経路をAGVで自律移動しているときに新たに地図要素を追加する必要がある場合に、センサの計測値に基づいて拘束条件を設定して、地図を補正しても良い。これにより、自律移動する際に追加する地図要素についても精度を向上させることが可能であり、当該地図に基づくカメラ位置姿勢の計測精度が向上する。
(実施形態2)
実施形態1では、本発明を、水平面上を移動するAGVに適用する場合について述べたが、実施形態2では、本実施形態の方法をドローンに適用する事例について説明する。実施形態2においても実施形態1と同様に撮像装置10であるカメラの画像を入力としてSLAMを実施する情報処理装置の例について説明する。
ドローンである移動体1の外部に配置されたセンサ14により、ドローンの移動時の位置姿勢を計測する。そして、センサの座標系(以降、センサ座標系と記載する)で計測した撮像装置の位置姿勢情報を、SLAMの計測で扱う撮像装置の座標系(以降、SLAM座標系と記載する)における撮像装置の位置姿勢情報に変換して地図補正時の拘束条件として利用する。
図6は、実施形態2に係る情報処理装置100を含む移動体1の機能ブロック図である。実施形態2では撮像装置の拘束条件を判定するためのセンサ14は、移動体の外部にあり、移動体に取り付けた光学マーカを画像認識することにより、移動体の位置姿勢を計測する。それ以外の機能ブロックの構成は図2の構成と同じである。
又、実施形態1では、AGVのように水平や平面などの移動体の移動の条件が制限されている場合に拘束条件を判定している。それに対して、実施形態2においては、ドローンのように位置及び姿勢の6次元のパラメータが任意の値をとりうる場合の拘束条件を判定する点が実施形態1と異なる。
実施形態2における処理全体の手順は、実施形態1で説明した図4、図5と同じであるが、各処理の中身が異なるため各々の処理について説明する。尚、ステップS101~ステップS103の処理は実施形態1と同じなので説明を省略する。
ステップS104では、センサ情報入力部15が、ステップS102のカメラの撮影と同期するタイミングで、モーションキャプチャのシステムの計測値(SLAM座標系におけるカメラの六次元の位置姿勢のパラメータ)を取得する。尚、モーションキャプチャシステムは移動体1の外部に設けられており、移動体1に設けた光学マーカを認識することにより、移動体1の移動軌跡又は位置姿勢を外部から計測している。
このように、センサは、移動体の移動軌跡又は位置姿勢を移動体の外部から計測するものであっても良い。そして拘束条件判定は、センサが取得した計測値に基づいて拘束条件の重みを設定するものであっても良い。ステップS104で移動体1の位置姿勢を取得したらステップS105に進む。
ステップS105では、実施形態1と同様に、地図要素追加部13が、地図要素の追加の必要の有無を判定する。尚、地図要素追加の判定方法は非特許文献1に記載の方法を用いる。地図要素の追加が必要であれば、ステップS106に進む。必要でなければ、ステップS108に進む。
ステップS106では、地図要素追加部13が、新たな地図要素を作成し、地図保持部110が保持する地図情報に地図要素を追加する。非特許文献1に記載の方法で地図要素の追加を行い、ステップS104で入力したモーションキャプチャシステムによる移動体1の位置姿勢の計測値も併せて地図要素に登録する。地図追加が完了したらステップS107に進む。
ステップS107では、実施形態1と同様に、情報処理装置100がステップS106で追加した地図要素に対して拘束条件を追加する。本ステップの処理の詳細については後述する。拘束条件の追加が完了すれば、ステップS108に進む。
ステップS108では、実施形態1と同様に、地図補正部114が、ステップS106が追加した最新の地図要素と、地図保持部が保持する過去に取得した地図要素のうち新しい順に所定数の地図要素と、を取得する。取得した地図要素を対象に、ステップS107で設定した拘束情報に基づいて、複数の地図要素に含まれる位置姿勢と特徴点群の三次元座標を補正する。
具体的には、地図要素が拘束情報を保持している場合、地図要素に含まれるカメラの位置姿勢が、地図要素に含まれるモーションキャプチャにより計測したカメラの位置姿勢に一致するように位置姿勢を補正する。
取得したすべての地図要素を対象に、ステップS107で設定したカメラの位置姿勢の六次元のパラメータの変化量を0にするという拘束条件を含めて、非特許文献1に記載のローカルバンドル調整を実施する。そして、地図要素に含まれる位置姿勢と特徴点群の三次元座標を補正する。補正が完了したらステップS109に進む
ステップS109では、実施形態1と同様に、システムを終了するか否かの判断を行う。本実施形態においては、移動体が目的地に到着した場合にコントローラ300がシステムを終了するコマンドを入力したか否か判定する。終了コマンドが入力された場合にはシステムを終了し、そうでなければステップS102に戻り、処理を継続する。
ステップS201では、センサ計測値取得部115は、モーションキャプチャシステムからカメラの位置姿勢情報(位置を表す三次元のパラメータ、姿勢を表す三次元のパラメータ)を取得する。尚、ここで取得する位置姿勢情報はSLAM座標系で表現されるものである。
ここで、モーションキャプチャシステムが計測したセンサ座標系の位置姿勢情報をSLAM座標系での位置姿勢情報に変換するには、事前の校正によりセンサ座標系からSLAM座標系への変換行列を求めておく。そして、センサが計測した位置姿勢情報に上記変換行列を適用することにより変換する。
ステップS202では、拘束条件判定部111が、ステップS201においてカメラの位置姿勢情報が取得できているか否かを判定し、Yesの場合は1(真)を、Noの場合は0(偽)を出力する。尚、ここでいう位置姿勢が取得できない場合というのは、例えば、ドローンの光学マーカとモーションキャプチャシステムとの間に遮蔽物などが介入する場合などである。
ステップS203では、ステップS202で出力した判定結果が1(真)であれば、ステップS105に進み、0(偽)であれば、ステップS206に進む。
ステップS204では、拘束情報生成部112が、ステップS201で入力したカメラの六次元の位置姿勢情報、カメラの六次元の位置姿勢パラメータの地図補正時の変化量を0にするフラグを含む拘束情報データセットを生成し、ステップS205に進む。
ステップS205は、地図補正拘束条件設定部113が、地図保持部110に含まれる最新の地図要素を取得し、ステップS204で生成した拘束情報を表すデータセットを地図要素に追加し、処理全体を終了する。
以上のように、実施形態2では、移動体の任意の動きに合わせて撮像装置の位置姿勢の拘束条件を設定することで、SLAMの蓄積誤差に起因する位置姿勢の誤差を抑制することができる。従って、高精度な三次元地図を生成することが可能となり、当該地図に基づく位置姿勢計測の精度が向上する。
尚、実施形態2では、拘束条件を課すか課さないかの二択で拘束条件を設定していたが、拘束の重みを適応的に変更しても良い。例えば、移動体1に取り付けた光学マーカを撮像するためにモーションキャプチャシステムに設けた俯瞰カメラと移動体に搭載された撮像装置の距離が大きくなるほど、拘束の重みを小さくしても良い。
或いは、上記俯瞰カメラで検出した光学マーカの検出位置の分散から算出した撮像装置の位置姿勢の分散が大きいほど、各パラメータの拘束の重みを小さくしても良い。又、俯瞰カメラの場合、遮蔽物によりマーカの一部が遮蔽される場合があるので、検出されたマーカの特徴点数に応じて各パラメータの拘束の重みを算出しても良い。
尚、実施形態2では、移動体1に取り付けた光学マーカを俯瞰カメラで認識することでセンサ座標系における撮像装置の位置姿勢を推定する例を説明したが、光学マーカを使わずに機械学習により移動体等の物体を認識して撮像装置の位置姿勢を推定しても良い。或いは、移動体の三次元モデルを保持しておいて、俯瞰カメラから得られる環境の三次元情報とマッチングすることで撮像装置の位置姿勢を推定しても良い。
尚、上述の実施形態においては自律移動体に制御システムを適用した例について説明した。しかし、本実施形態の移動体は、AGV(Automatic Guided Vehicle)やAMR(Autonomous Mobile Robot)などの自律移動体に限らない。例えば自動車、列車、船舶、飛行機、ロボット、ドローンなどの移動をする移動装置であればどのようなものであってもよい。また、本実施形態の制御システムは一部がそれらの移動体に搭載されていても良いし、搭載されていなくても良い。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形が可能であり、それらを本発明の範囲から除外するものではない。尚、本発明は、以下の組み合わせを含む。
(構成1)移動体に搭載された撮像装置が撮像したシーンの三次元位置情報と、前記撮像装置の位置及び姿勢と、前記撮像装置の位置及び姿勢の拘束条件を含む、複数の地図要素から構成される三次元地図を保持する地図保持手段と、前記拘束条件を判定するためのセンサの計測値を取得するセンサ計測値取得手段と、前記センサ計測値取得手段が取得した計測値に基づいて、前記拘束条件を判定する拘束条件判定手段と、前記拘束条件判定手段が判定した前記拘束条件に基づいて、前記三次元地図を補正する地図補正手段と、を備えることを特徴とする情報処理装置。
(構成2)前記センサは前記撮像装置の重力軸方向に対する傾斜角度を計測するものであり、前記拘束条件判定手段は、前記センサ計測値取得手段が取得した計測値に基づいて前記撮像装置が水平面上を移動している度合い又は水平方向を移動している度合いに基づいて前記拘束条件の重みを変更することを特徴とする構成1の情報処理装置。
(構成3)前記センサは周囲の物体との距離を計測するものであり、
前記拘束条件判定手段は、前記センサ計測値取得手段が取得した計測値に基づいて、前記撮像装置と周囲の物体との距離を算出し、算出された距離に基づいて前記拘束条件を判定することを特徴とする構成1又は2に記載の情報処理装置。
(構成4)前記撮像装置が撮影した画像を入力する入力手段と、前記入力手段が入力した前記画像から物体を認識する物体認識手段と、を更に有し、前記拘束条件判定手段は、前記センサ計測値取得手段が取得した計測値に基づいて、前記物体認識手段が認識した物体までの距離を算出し、算出された距離に基づいて前記拘束条件を設定することを特徴とする構成1~3のいずれか1つに記載の情報処理装置。
(構成5)前記センサは、前記移動体の制御情報を計測するものであり、
前記拘束条件判定手段は前記センサ計測値取得手段が取得した計測値に基づいて、前記拘束条件の重みを設定することを特徴とする構成1~4のいずれか1つに記載の情報処理装置。
(構成6)前記センサは、前記移動体の移動軌跡又は位置姿勢を前記移動体の外部から計測するものであり、前記拘束条件判定手段は、前記センサ計測値取得手段が取得した計測値に基づいて、前記拘束条件の重みを設定することを特徴とする構成1~5のいずれか1つに記載の情報処理装置。
(構成7)前記撮像装置が撮影した画像を入力する入力手段と、前記画像から検出した特徴点及び、前記三次元地図に基づいて前記撮像装置の位置姿勢を算出する位置姿勢算出手段と、前記位置姿勢算出手段が推定した位置姿勢と、前記画像から検出した前記特徴点を前記地図要素として前記三次元地図に追加する地図要素追加手段と、を更に有し、前記拘束条件判定手段は、前記地図要素追加手段が追加した前記地図要素の前記拘束条件を設定することを特徴とする構成1~6のいずれか1つに記載の情報処理装置。
(構成8)前記センサ計測値取得手段は複数の前記センサの計測値を取得し、前記拘束条件判定手段は、前記センサ計測値取得手段が取得した複数のセンサ計測値に基づいて複数の前記拘束条件を設定し、前記地図補正手段は前記拘束条件判定手段が設定した複数の前記拘束条件の組み合わせに基づき前記三次元地図を補正することを特徴とする構成1~7のいずれか1つに記載の情報処理装置。
(方法)移動体に搭載された撮像装置が撮像したシーンの三次元位置情報と該撮像装置の位置及び姿勢と、該撮像装置の位置及び姿勢の拘束条件を地図要素として含む、複数の前記地図要素から構成される三次元地図を保持する地図保持ステップと、前記拘束条件を判定するためのセンサの計測値を取得するセンサ計測値取得ステップと、前記センサ計測値取得ステップで取得した計測値に基づいて、前記拘束条件を判定する拘束条件判定ステップと、前記拘束条件判定ステップが判定した前記拘束条件に基づいて、前記三次元地図を補正する地図補正ステップと、を備える情報処理方法。
(プログラム)コンピュータを、構成1~8の何れか1つに記載の情報処理装置の各手段として機能させるためのプログラム。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムコード(制御プログラム)を記録した記憶媒体を、情報処理装置等に供給することによって実現してもよい。そして、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたコンピュータ読取可能なプログラムコードを読み出し実行することによっても達成される。
その場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態(実施例)の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
1:移動体
10:撮像装置
11:撮像情報入力部
12:位置姿勢算出部
13:地図要素追加部
14:センサ
15:センサ情報入力部
16:移動指令取得部
17:移動制御部
100:情報処理装置
110:地図保持部
111:拘束条件判定部
112:拘束情報生成部
113:地図補正拘束条件設定部
114:地図補正部
115:センサ計測値取得部
200利用者
300コントローラ

Claims (10)

  1. 移動体に搭載された撮像装置が撮像したシーンの三次元位置情報と、前記撮像装置の位置及び姿勢と、前記撮像装置の位置及び姿勢の拘束条件を含む、複数の地図要素から構成される三次元地図を保持する地図保持手段と、
    前記拘束条件を判定するためのセンサの計測値を取得するセンサ計測値取得手段と、
    前記センサ計測値取得手段が取得した計測値に基づいて、前記拘束条件を判定する拘束条件判定手段と、
    前記拘束条件判定手段が判定した前記拘束条件に基づいて、前記三次元地図を補正する地図補正手段と、を備えることを特徴とする情報処理装置。
  2. 前記センサは前記撮像装置の重力軸方向に対する傾斜角度を計測するものであり、
    前記拘束条件判定手段は、前記センサ計測値取得手段が取得した計測値に基づいて前記撮像装置が水平面上を移動している度合い又は水平方向を移動している度合いに基づいて前記拘束条件の重みを変更することを特徴とする請求項1に記載の情報処理装置。
  3. 前記センサは周囲の物体との距離を計測するものであり、
    前記拘束条件判定手段は、前記センサ計測値取得手段が取得した計測値に基づいて、前記撮像装置と周囲の物体との距離を算出し、算出された距離に基づいて前記拘束条件を判定することを特徴とする請求項1に記載の情報処理装置。
  4. 前記撮像装置が撮影した画像を入力する入力手段と、
    前記入力手段が入力した前記画像から物体を認識する物体認識手段と、
    を更に有し、
    前記拘束条件判定手段は、前記センサ計測値取得手段が取得した計測値に基づいて、前記物体認識手段が認識した物体までの距離を算出し、算出された距離に基づいて前記拘束条件を設定することを特徴とする請求項3に記載の情報処理装置。
  5. 前記センサは、前記移動体の制御情報を計測するものであり、
    前記拘束条件判定手段は前記センサ計測値取得手段が取得した計測値に基づいて、前記拘束条件の重みを設定することを特徴とする請求項1に記載の情報処理装置。
  6. 前記センサは、前記移動体の移動軌跡又は位置姿勢を前記移動体の外部から計測するものであり、
    前記拘束条件判定手段は、前記センサ計測値取得手段が取得した計測値に基づいて、前記拘束条件の重みを設定することを特徴とする請求項1に記載の情報処理装置。
  7. 前記撮像装置が撮影した画像を入力する入力手段と、
    前記画像から検出した特徴点及び、前記三次元地図に基づいて前記撮像装置の位置姿勢を算出する位置姿勢算出手段と、
    前記位置姿勢算出手段が推定した位置姿勢と、前記画像から検出した前記特徴点を前記地図要素として前記三次元地図に追加する地図要素追加手段と、
    を更に有し、
    前記拘束条件判定手段は、前記地図要素追加手段が追加した前記地図要素の前記拘束条件を設定することを特徴とする請求項1に記載の情報処理装置。
  8. 前記センサ計測値取得手段は複数の前記センサの計測値を取得し、
    前記拘束条件判定手段は、前記センサ計測値取得手段が取得した複数のセンサ計測値に基づいて複数の前記拘束条件を設定し、
    前記地図補正手段は前記拘束条件判定手段が設定した複数の前記拘束条件の組み合わせに基づき前記三次元地図を補正することを特徴とする請求項1に記載の情報処理装置。
  9. 移動体に搭載された撮像装置が撮像したシーンの三次元位置情報と該撮像装置の位置及び姿勢と、該撮像装置の位置及び姿勢の拘束条件を地図要素として含む、複数の前記地図要素から構成される三次元地図を保持する地図保持ステップと、
    前記拘束条件を判定するためのセンサの計測値を取得するセンサ計測値取得ステップと、
    前記センサ計測値取得ステップで取得した計測値に基づいて、前記拘束条件を判定する拘束条件判定ステップと、
    前記拘束条件判定ステップが判定した前記拘束条件に基づいて、前記三次元地図を補正する地図補正ステップと、を備える情報処理方法。
  10. コンピュータを、請求項1~8のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。


JP2022105492A 2022-06-30 2022-06-30 情報処理装置、情報処理方法、及びコンピュータプログラム Pending JP2024005342A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022105492A JP2024005342A (ja) 2022-06-30 2022-06-30 情報処理装置、情報処理方法、及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022105492A JP2024005342A (ja) 2022-06-30 2022-06-30 情報処理装置、情報処理方法、及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2024005342A true JP2024005342A (ja) 2024-01-17

Family

ID=89540481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022105492A Pending JP2024005342A (ja) 2022-06-30 2022-06-30 情報処理装置、情報処理方法、及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2024005342A (ja)

Similar Documents

Publication Publication Date Title
US20210012520A1 (en) Distance measuring method and device
AU2018282302B2 (en) Integrated sensor calibration in natural scenes
JP5992184B2 (ja) 画像データ処理装置、画像データ処理方法および画像データ処理用のプログラム
KR102016551B1 (ko) 위치 추정 장치 및 방법
KR101776621B1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2018142900A1 (ja) 情報処理装置、データ管理装置、データ管理システム、方法、及びプログラム
JP5804185B2 (ja) 移動物体位置姿勢推定装置及び移動物体位置姿勢推定方法
JP7404010B2 (ja) 位置推定装置及び方法
WO2012043045A1 (ja) 画像処理装置及びそれを用いた撮像装置
EP3032818B1 (en) Image processing device
EP3155369B1 (en) System and method for measuring a displacement of a mobile platform
JP2013186816A (ja) 動画処理装置、動画処理方法および動画処理用のプログラム
JP2006252473A (ja) 障害物検出装置、キャリブレーション装置、キャリブレーション方法およびキャリブレーションプログラム
JP4132068B2 (ja) 画像処理装置及び三次元計測装置並びに画像処理装置用プログラム
CN103900473A (zh) 一种基于摄像头与重力感应器融合的智能移动设备六自由度位姿估计方法
CN111508025A (zh) 三维位置估计装置以及程序
JP6410231B2 (ja) 位置合わせ装置、位置合わせ方法及び位置合わせ用コンピュータプログラム
JP2010066595A (ja) 環境地図生成装置及び環境地図生成方法
CN111105467A (zh) 一种图像标定方法、装置及电子设备
CN114777768A (zh) 一种卫星拒止环境高精度定位方法、系统及电子设备
CN112862818B (zh) 惯性传感器和多鱼眼相机联合的地下停车场车辆定位方法
KR101183866B1 (ko) Gps/ins/영상at를 통합한 실시간 위치/자세 결정 장치 및 방법
CN111862146B (zh) 一种目标对象的定位方法及装置
CN116952229A (zh) 无人机定位方法、装置、系统和存储介质
JP2010145219A (ja) 運動推定装置及びプログラム