(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】情報処理装置、移動体、情報処理方法、及びプログラム
(51)【国際特許分類】
G05D 1/00 20240101AFI20241008BHJP
G05D 1/46 20240101ALN20241008BHJP
G05D 1/43 20240101ALN20241008BHJP
【FI】
G05D1/00
G05D1/46
G05D1/43
(21)【出願番号】P 2023525240
(86)(22)【出願日】2021-06-02
(86)【国際出願番号】 JP2021021001
(87)【国際公開番号】W WO2022254609
(87)【国際公開日】2022-12-08
【審査請求日】2023-08-31
(73)【特許権者】
【識別番号】504157024
【氏名又は名称】国立大学法人東北大学
(74)【代理人】
【識別番号】100165179
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100188558
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100175824
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100152272
【氏名又は名称】川越 雄一郎
(74)【代理人】
【識別番号】100181722
【氏名又は名称】春田 洋孝
(72)【発明者】
【氏名】大野 和則
(72)【発明者】
【氏名】岡田 佳都
(72)【発明者】
【氏名】小島 匠太郎
(72)【発明者】
【氏名】昆陽 雅司
(72)【発明者】
【氏名】田所 諭
(72)【発明者】
【氏名】軍司 健太
【審査官】田中 成彦
(56)【参考文献】
【文献】米国特許出願公開第2019/0188473(US,A1)
【文献】特開2004-276168(JP,A)
【文献】韓国公開特許第10-2009-0109830(KR,A)
【文献】米国特許出願公開第2020/0300639(US,A1)
【文献】米国特許出願公開第2020/0334887(US,A1)
【文献】国際公開第2021/024665(WO,A1)
【文献】国際公開第2019/211932(WO,A1)
【文献】特開2020-118586(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/87
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
制御対象となる制御対象装置を制御する情報処理装置であって、
前記制御対象装置が位置する空間内に配置された
複数の物体と、
前記複数の物体のうちの一部からなり、用途に応じてまとめられた一以上のグループと、前記グループを構成する前記物体の相対的な配置及び/又は姿勢を拘束するレイアウト拘束条件情報
とを記憶する記憶部と、
前記空間内における一部の前記物体と前記制御対象装置との相対的な位置及び/又は姿勢と、前記記憶部に記憶された前記レイアウト拘束条件情報と、に基づいて、前記空間内の地図情報を生成する制御部と、
を備える情報処理装置。
【請求項2】
前記レイアウト拘束条件情報は、前記グループを構成する前記物体同士の間で許容される相対的な位置及び/又は姿勢についての誤差の値を含む請求項1に記載の情報処理装置。
【請求項3】
前記レイアウト拘束条件情報は、ベクトルで表され、前記グループを構成する2つの前記物体の間の相対位置及び相対姿勢に対する前記誤差の値の第1要素と、2つの前記物体の間の相対位置及び相対姿勢の第2要素とを含み、前記第2要素は、2つの前記物体の間の相対位置を示すx座標、y座標と、前記物体の間の相対位置を示す方位角とを含む
請求項2に記載の情報処理装置。
【請求項4】
前記制御部は、前記制御対象装置が第1時間において取得した、前記グループを構成する少なくとも一つの前記物体の画像から算出した、前記制御対象装置と前記物体との相対位置及び/又は相対姿勢の物体位置姿勢のベクトルと、前記レイアウト拘束条件情報のベクトルとから、前記制御対象装置が取得していない前記グループを構成する他の前記物体の位置及び/又は姿勢のベクトルを算出する
請求
項3に記載の情報処理装置。
【請求項5】
前記制御部は、前記物体位置姿勢のベクトルと前記レイアウト拘束条件情報のベクトルとから、前記グループを構成する前記物体同士の間に関係する情報行列及び情報ベクトルを、前記制御対象装置が各時間において取得し、算出した、前記物体位置姿勢のベクトルに基づき要素の足し上げを行うことで生成する
請求項4に記載の情報処理装置。
【請求項6】
前記制御部は、前記物体位置姿勢のベクトルから算出された位置及び姿勢である第1推定位置姿勢ベクトルと、前記制御対象装置が取得していない前記グループを構成する他の前記物体の位置及び/又は姿勢のベクトルから算出された位置及び/又は姿勢である第2推定位置姿勢ベクトルとの差分ベクトルを求め、前記差分ベクトルの内積が、所定の閾値を超えた場合、前記グループを構成する2つの前記物体の間の前記第2要素を削除する
請求項4又は5に記載の情報処理装置。
【請求項7】
制御対象装置が位置する空間内に配置された複数の物体と、前記複数の物体のうちの一部からなり、用途に応じてまとめられた一以上のグループと、前記グループを構成する前記物体の相対的な配置及び/又は姿勢を拘束するレイアウト拘束条件情報とを記憶する記憶部から前記レイアウト拘束条件情報を読み出す読出ステップと、
前記空間内における一部の前記物体と前記制御対象装置との相対的な位置及び/又は姿勢と、前記記憶部に記憶された前記レイアウト拘束条件情報と、に基づいて、前記空間内の地図情報を生成する生成ステップと、
を有する情報処理方法。
【請求項8】
コンピュータに、
制御対象装置が位置する空間内に配置された複数の物体と、前記複数の物体のうちの一部からなり、用途に応じてまとめられた一以上のグループと、前記グループを構成する前記物体の相対的な配置及び/又は姿勢を拘束するレイアウト拘束条件情報とを記憶する記憶部から前記レイアウト拘束条件情報を読み出す読出ステップと、
前記空間内における一部の前記物体と前記制御対象装置との相対的な位置及び/又は姿勢と、前記記憶部に記憶された前記レイアウト拘束条件情報と、に基づいて、前記空間内の地図情報を生成する生成ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、移動体、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
ロボット、ドローン等のような制御対象となる装置を制御する情報処理装置についての研究、開発が行われている。
【0003】
これに関し、ロボットを制御する情報処理装置であって、ロボットが位置する空間内において、当該空間内における物体とロボットとの相対的な位置及び姿勢を検出し、検出した位置及び姿勢に基づいて、当該空間内の地図を示す地図情報を生成する情報処理装置が知られている(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【文献】「環境とのインタラクションによる空間構造の獲得」、友納正裕、JSTプロジェクトデータベース、2005年度終了報告書、https://projectdb.jst.go.jp/report/JST-PROJECT-7700000694/2913/
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、ある空間内における物体とロボットとの相対的な位置及び姿勢を検出し、検出した位置及び姿勢と、当該空間内に位置する複数の物体の初期配置とに基づいて、当該空間内の地図を示す地図情報を生成する方法も知られている。しかしながら、当該空間内における複数の物体の配置は、初期配置から変更されてしまうことも少なくない。しかしながら、当該方法では、当該空間内に位置する複数の物体の初期配置が変更された場合、精度の悪い地図を示す地図情報を生成してしまうことがあった。
【0006】
本発明は、このような事情を考慮してなされたもので、制御対象装置が位置する空間内における複数の物体の配置が初期配置から変更されていたとしても、当該空間内の地図を示す地図情報を精度よく生成することができる情報処理装置、移動体、情報処理方法、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【0007】
本発明は以下の態様を含む。
[1]制御対象となる制御対象装置を制御する情報処理装置であって、前記制御対象装置が位置する空間内に配置された第1物体と、前記空間内に配置された前記第1物体と異なる第2物体との相対的な位置を示す情報を含むレイアウト拘束条件情報を記憶する記憶部と、前記制御対象装置の位置と、前記第1物体と前記制御対象装置との相対的な位置を示す第1物体装置間相対位置情報と、前記第2物体と前記制御対象装置との相対的な位置を示す第2物体装置間相対位置情報との少なくとも一方と、前記記憶部に記憶された前記レイアウト拘束条件情報とに基づいて、前記空間内の地図を示す地図情報を生成する制御部と、を備える情報処理装置。
[2]上記に記載の情報処理装置では、前記制御部は、予め決められた初期値に基づいて前記制御対象装置の位置を推定する第1推定部と、前記第1物体装置間相対位置情報と、前記第2物体装置間相対位置情報との少なくとも一方を物体装置間相対位置情報として取得する取得部と、前記記憶部に記憶された前記レイアウト拘束条件情報と、前記取得部により取得された前記物体装置間相対位置情報と、前記第1推定部により推定された前記制御対象装置の位置とに基づいて、前記空間内の地図を示す地図情報を生成する生成部と、を備える。
[3]上記に記載の情報処理装置では、前記制御部は、前記第1物体と前記第2物体との少なくとも一方を検出する検出部からの出力に基づいて、前記第1物体と前記制御対象装置との相対的な位置と、前記第2物体と前記制御対象装置との相対的な位置との少なくとも一方を推定する第2推定部を更に備え、前記取得部は、前記第1物体と前記制御対象装置との相対的な位置と、前記第2物体と前記制御対象装置との相対的な位置との少なくとも一方を示す情報を、前記物体装置間相対位置情報として前記第2推定部から取得する。
[4]上記に記載の情報処理装置では、前記生成部は、前記取得部により取得された前記物体装置間相対位置情報と、前記記憶部により記憶された前記レイアウト拘束条件情報と、前記第1推定部により推定された前記制御対象装置の位置とに基づいて、Graph-SLAM(Simultaneous Localization and Mapping)における情報行列及び情報ベクトルを生成し、生成した前記情報行列及び前記情報ベクトルに基づく評価関数の最適化を行うことにより、前記地図情報を生成する。
[5]上記に記載の情報処理装置では、前記生成部は、前記取得部により取得された前記物体装置間相対位置情報と、前記記憶部により記憶された前記レイアウト拘束条件情報と、前記第1推定部により推定された前記制御対象装置の位置とに基づいて、前記第1物体及び前記第2物体それぞれの位置を推定し、推定した前記第1物体及び前記第2物体それぞれの位置に基づいて、前記情報行列及び前記情報ベクトルを生成する。
[6]上記に記載の情報処理装置では、前記生成部は、前記第1物体装置間相対位置情報と前記第2物体装置間相対位置情報との両方が前記物体装置間相対位置情報として前記取得部により取得された場合、前記第1推定部により推定された前記制御対象装置の位置と、前記取得部により取得された前記物体装置間相対位置情報と、前記記憶部により記憶された前記レイアウト拘束条件情報とに基づいて、前記第1物体の位置を第1推定位置として推定するとともに前記第2物体の位置を第2推定位置として推定し、且つ、前記第1推定部により推定された前記制御対象装置の位置と、前記取得部により取得された前記物体装置間相対位置情報とに基づいて、前記第1物体の位置を第3推定位置として推定するとともに前記第2物体の位置を第4推定位置として推定し、前記第1推定位置を示すベクトルと前記第3推定位置を示すベクトルとの差を第1差分として算出するとともに、前記第2推定位置を示すベクトルと前記第4推定位置を示すベクトルとの差を第2差分として算出し、前記第1差分と、前記第1物体の位置についての推定誤差と、前記第2差分と、前記第2物体の位置についての推定誤差とに基づいて、前記情報行列が有する要素のうち前記レイアウト拘束条件情報に応じて決められた要素の繋がりを削除する。
[7]上記に記載の情報処理装置では、前記制御対象装置は、前記制御対象装置の位置及び姿勢の少なくとも一方を変化させることができる移動体である。
[8]前記制御対象装置として、上記に記載の情報処理装置を備える、移動体。
[9]制御対象となる制御対象装置が位置する空間内に配置された第1物体と、前記空間内に配置された前記第1物体と異なる第2物体との相対的な位置を示す情報を含むレイアウト拘束条件情報を記憶する記憶部から前記レイアウト拘束条件情報を読み出す読出ステップと、前記制御対象装置の位置と、前記第1物体と前記制御対象装置との相対的な位置を示す第1物体装置間相対位置情報と、前記第2物体と前記制御対象装置との相対的な位置を示す第2物体装置間相対位置情報との少なくとも一方と、前記読出ステップにより読み出された前記レイアウト拘束条件情報とに基づいて、前記空間内の地図を示す地図情報を生成する生成ステップと、を有する情報処理方法。
[10]コンピュータに、制御対象となる制御対象装置が位置する空間内に配置された第1物体と、前記空間内に配置された前記第1物体と異なる第2物体との相対的な位置を示す情報を含むレイアウト拘束条件情報を記憶する記憶部から前記レイアウト拘束条件情報を読み出す読出ステップと、前記制御対象装置の位置と、前記第1物体と前記制御対象装置との相対的な位置を示す第1物体装置間相対位置情報と、前記第2物体と前記制御対象装置との相対的な位置を示す第2物体装置間相対位置情報との少なくとも一方と、前記読出ステップにより読み出された前記レイアウト拘束条件情報とに基づいて、前記空間内の地図を示す地図情報を生成する生成ステップと、を実行させるためのプログラム。
[11]制御対象となる制御対象装置を制御する情報処理装置であって、前記制御対象装置が位置する空間内に配置された第1物体と、前記空間内に配置された前記第1物体と異なる第2物体との相対的な姿勢を示す情報を含むレイアウト拘束条件情報を記憶する記憶部と、前記制御対象装置の姿勢と、前記第1物体と前記制御対象装置との相対的な姿勢を示す第1物体装置間相対姿勢情報と、前記第2物体と前記制御対象装置との相対的な姿勢を示す第2物体装置間相対姿勢情報との少なくとも一方と、前記記憶部に記憶された前記レイアウト拘束条件情報とに基づいて、前記空間内の地図を示す地図情報を生成する制御部と、を備える情報処理装置。
[12]前記制御対象装置として、上記に記載の情報処理装置を備える、移動体。
[13]制御対象となる制御対象装置が位置する空間内に配置された第1物体と、前記空間内に配置された前記第1物体と異なる第2物体との相対的な姿勢を示す情報を含むレイアウト拘束条件情報を記憶する記憶部から前記レイアウト拘束条件情報を読み出す読出ステップと、前記制御対象装置の姿勢と、前記第1物体と前記制御対象装置との相対的な姿勢を示す第1物体装置間相対姿勢情報と、前記第2物体と前記制御対象装置との相対的な姿勢を示す第2物体装置間相対姿勢情報との少なくとも一方と、前記読出ステップにより読み出された前記レイアウト拘束条件情報とに基づいて、前記空間内の地図を示す地図情報を生成する生成ステップと、を有する情報処理方法。
[14]コンピュータに、制御対象となる制御対象装置が位置する空間内に配置された第1物体と、前記空間内に配置された前記第1物体と異なる第2物体との相対的な姿勢を示す情報を含むレイアウト拘束条件情報を記憶する記憶部から前記レイアウト拘束条件情報を読み出す読出ステップと、前記制御対象装置の姿勢と、前記第1物体と前記制御対象装置との相対的な姿勢を示す第1物体装置間相対姿勢情報と、前記第2物体と前記制御対象装置との相対的な姿勢を示す第2物体装置間相対姿勢情報との少なくとも一方と、前記読出ステップにより読み出された前記レイアウト拘束条件情報とに基づいて、前記空間内の地図を示す地図情報を生成する生成ステップと、を実行させるためのプログラム。
【発明の効果】
【0008】
本発明によれば、制御対象装置が位置する空間内における複数の物体の配置が初期配置から変更されていたとしても、当該空間内の地図を示す地図情報を精度よく生成することができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係る制御システム1の構成の一例を示す図である。
【
図2】情報処理装置30のハードウェア構成の一例を示す図である。
【
図3】情報処理装置30の機能構成の一例を示す図である。
【
図4】式(4)に示したベクトルのイメージ図である。
【
図5】情報処理装置30が情報行列Ω及び情報ベクトルξを生成する処理の流れの一例を示す図である。
【
図6】情報処理装置30が地図情報を生成する処理の流れの一例を示す図である。
【
図7】情報処理装置30により生成された地図情報の一例を示す図である。
【
図8】情報処理装置30により生成された地図情報の他の例を示す図である。
【
図9】情報処理装置30により生成された地図情報の更に他の例を示す図である。
【
図10】情報処理装置30により生成された地図情報の更に更に他の例を示す図である。
【
図11】実施形態に係る制御システム1の構成の他の例を示す図である。
【
図12】3つのマーカーが設けられた物体M1の一例を示す図である。
【発明を実施するための形態】
【0010】
<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
【0011】
<制御システムの構成>
以下、
図1を参照し、実施形態に係る制御システム1の構成について説明する。
図1は、実施形態に係る制御システム1の構成の一例を示す図である。
【0012】
制御システム1は、制御対象となる制御対象装置10と、制御対象装置10に設けられた検出部20と、情報処理装置30を備える。
図1に示した例では、制御システム1では、制御対象装置10と、検出部20と、情報処理装置30とは、別体に構成されている。しかしながら、制御システム1では、制御対象装置10と、検出部20と、情報処理装置30とのうちの一部または全部は、一体に構成されてもよい。また、制御システム1では、
図1に示したように、制御対象装置10及び検出部20の両方と、情報処理装置30とが別体である場合、情報処理装置30は、LAN(Local Area Network)、WAN(Wide Area Network)、専用通信網等のネットワークを介して制御対象装置10及び検出部20のそれぞれと通信可能に接続されてもよく、有線又は無線により制御対象装置10及び検出部20のそれぞれと通信可能に接続される構成であってもよい。以下では、一例として、情報処理装置30が、無線により制御対象装置10及び検出部20のそれぞれと通信可能に接続される場合について説明する。
【0013】
制御システム1は、制御対象装置10が位置する空間内の地図を示す地図情報を生成する。以下では、説明の便宜上、制御対象装置10が位置する空間を、対象空間Rと称して説明する。対象空間Rは、例えば、制御対象装置10が位置する部屋の中の空間等であるが、これに限られるわけではない。なお、制御対象装置10が位置する部屋の中の空間以外に対象空間Rとなり得る空間は、例えば、水中、空中、宇宙空間等である。
【0014】
本実施形態において、対象空間Rは、複数の物体が配置された空間である。そして、対象空間Rに配置された複数の物体の少なくとも一部は、用途に応じて、1つ以上のグループにまとめられている。なお、これら1つ以上のグループは、2つ以上の物体がまとまることによって構成される。このため、対象空間Rに配置された複数の物体には、グループとしてまとめられていない物体が1つ以上含まれていてもよい。以下では、一例として、対象空間Rに配置された複数の物体が、
図1に示した物体M1~物体M4の4つの物体である場合について説明する。また、以下では、一例として、
図1に示したように、物体M1と物体M2とがグループG1にまとめられており、物体M3と物体M4とがグループG2にまとめられている場合について説明する。すなわち、
図1に示した例では、対象空間R内に配置された4つの物体は、2つのグループにまとめられている。このため、この一例では、対象空間Rに配置された4つの物体には、グループとしてまとめられていない物体が1つも含まれていない。
【0015】
対象空間R内における4つの物体が2つのグループにまとめられている理由は、これら4つの物体の配置が初期配置と異なる配置に変更された場合であっても、各グループ内での物体同士の相対的な位置及び姿勢が保持されていることが多いためである。例えば、グループG1にまとめられている物体M1及び物体M2が、対象空間R内において横並びに連結されている場合、物体M1及び物体M2の配置は、初期配置と異なる配置に変更されるとしても、物体M1及び物体M2の用途が変更されない限り、物体M1と物体M2との相対的な位置及び姿勢が保持されたまま、初期配置と異なる配置に変更される。これは、物体M1及び物体M2の状態が横並びに連結されている状態であることが、物体M1及び物体M2の用途に適した状態であるためである。このようにして使用される物体としては、例えば、作業机、棚等が挙げられる。このような事情から、各グループ内において、物体同士の配置、すなわち、物体同士のレイアウトは、ほぼ変化しない又は変化しないように拘束されていると考えることができる。このため、各グループ内において、物体同士の相対的な位置及び姿勢は、対象空間R内の地図を示す地図情報の生成において、物体同士の配置を変化させないように拘束させる拘束条件として用いることができる。
【0016】
そこで、制御システム1は、対象空間R内におけるグループ毎のレイアウト拘束条件情報に基づいて、対象空間R内の地図を示す地図情報を生成する。すなわち、制御システム1は、グループG1のレイアウト拘束条件情報と、グループG2のレイアウト拘束条件情報とに基づいて、当該地図情報を生成する。なお、以下では、説明の便宜上、グループG1のレイアウト拘束条件情報と、グループG2のレイアウト拘束条件情報とを区別する必要がない限り、まとめてレイアウト拘束条件情報と称して説明する。なお、以下では、説明の便宜上、上記のような拘束を、レイアウト拘束と称して説明する場合がある。また、以下では、上記のような拘束条件を、レイアウト拘束条件と称して説明する場合がある。
【0017】
ここで、対象空間R内におけるあるグループのレイアウト拘束条件情報は、当該グループにまとめられている2つ以上の物体同士の配置を変化させないように拘束させる拘束条件を示す情報である。より具体的には、当該レイアウト拘束条件情報は、当該グループにまとめられている2つ以上の物体同士の相対的な位置及び姿勢を示す情報を、当該拘束条件として含む情報のことである。すなわち、対象空間R内におけるグループG1のレイアウト拘束条件情報は、物体M1と物体M2との相対的な位置及び姿勢を示す情報を、物体M1と物体M2との配置を変化させないように拘束させる拘束条件として含む情報である。以下では、一例として、当該レイアウト拘束条件情報には、物体M1と物体M2との相対的な位置及び姿勢を示す情報に加えて、物体M1と物体M2との相対的な位置及び姿勢について許容される誤差の値を示す情報が含まれている場合について説明する。また、対象空間R内におけるグループG2のレイアウト拘束条件情報は、物体M3と物体M4との相対的な位置及び姿勢を示す情報を、物体M3と物体M4との配置を変化させないように拘束させる拘束条件として含む情報である。以下では、一例として、当該レイアウト拘束条件情報には、物体M3と物体M4との相対的な位置及び姿勢を示す情報に加えて、物体M3と物体M4との相対的な位置及び姿勢について許容される誤差の値を示す情報が含まれている場合について説明する。
【0018】
このようなレイアウト拘束条件情報を用いることにより、制御システム1は、対象空間R内における複数の物体の配置が初期配置から変更されていたとしても、対象空間R内の地図を示す地図情報を精度よく生成することができる。これは、初期配置から変更された後の当該複数の物体の配置の少なくとも一部を、レイアウト拘束条件情報によって推定することができるためである。以下では、一例として、制御システム1が、グループ毎のレイアウト拘束条件情報を用いたGraph-SLAM(Simultaneous Localization and Mapping)アルゴリズムに基づいて、対象空間R内の地図を示す地図情報を生成する場合について説明する。ただし、本実施形態において、従来のGraph-SLAMアルゴリズムについては、既によく知られているアルゴリズムであるため、必要以上の詳細な説明を省略する。すなわち、本実施形態では、グループ毎のレイアウト拘束条件情報を用いたGraph-SLAMアルゴリズムと、従来のGraph-SLAMアルゴリズムとの差分について説明する。従来のGraph-SLAMアルゴリズムについては、例えば、「「確率ロボティクス」、出版社:毎日コミュニケーションズ、著者:Sebastian Thrun、Wolfram Burgard、Dieter Fox、翻訳者:上田 隆一」等に詳しい記載がある。なお、制御システム1は、グループ毎のレイアウト拘束条件情報を用いた他の種類のSLAMに基づいて当該地図情報を生成する構成であってもよい。また、制御システム1は、レイアウト拘束条件情報を用いるアルゴリズムとして、SLAMアルゴリズム以外のアルゴリズムに基づいて当該地図情報を生成する構成であってもよい。ここで、当該アルゴリズムは、地図情報を生成可能なアルゴリズムであれば、既知のアルゴリズムであってもよく、これから開発されるアルゴリズムであってもよい。以下では、説明の便宜上、グループ毎のレイアウト拘束条件情報を用いたGraph-SLAMアルゴリズムを、レイアウト拘束Graph-SLAMと称して説明する。
【0019】
ここで、レイアウト拘束Graph-SLAMの特徴のうちの1つについて、レイアウト拘束Graph-SLAMと異なるGraph-SLAMアルゴリズム(例えば、従来のGraph-SLAMアルゴリズム等)と比較しながら紹介する。
【0020】
レイアウト拘束Graph-SLAMと異なるGraph-SLAMアルゴリズムに基づいて地図情報を生成する場合、制御システム1は、対象空間R内における全部の物体を検出部20によって検出する必要がある。これにより、制御システム1は、対象空間R内における全部の物体について、物体と制御対象装置10との相対的な位置及び姿勢を推定し、当該Graph-SLAMアルゴリズムにおける情報行列の各要素の足し上げ(更新)と、当該Graph-SLAMアルゴリズムにおける情報ベクトルの各要素の足し上げ(更新)とを行うことができる。
【0021】
一方、レイアウト拘束Graph-SLAMに基づいて地図情報を生成する場合、制御システム1は、対象空間R内における一部の物体を検出部20によって検出することにより、レイアウト拘束Graph-SLAMにおける情報行列の各要素の足し上げを行うことができる。すなわち、当該場合、制御システム1は、物体M1~物体M4の4つの物体のうち、物体M1と物体M2との少なくとも一方と、物体M3と物体M4との少なくとも一方とを検出部20によって検出することにより、レイアウト拘束Graph-SLAMにおける情報行列の各要素の足し上げと、レイアウト拘束Graph-SLAMにおける情報ベクトルの各要素の足し上げとを行うことができる。これは、グループG1のレイアウト拘束条件情報を用いると、物体M1と物体M2とのうちの一方と制御対象装置10との相対的な位置及び姿勢を推定することにより、物体M1と物体M2とのうちの他方と制御対象装置10との相対的な位置及び姿勢も推定することができ、且つ、グループG2のレイアウト拘束条件情報を用いると、物体M3と物体M4とのうちの一方と制御対象装置10との相対的な位置及び姿勢を推定することにより、物体M3と物体M4とのうちの他方と制御対象装置10との相対的な位置及び姿勢も推定することができるためである。このため、制御システム1は、レイアウト拘束Graph-SLAMに基づいて対象空間R内の地図を示す地図情報を生成する場合、対象空間R内において1つのグループとしてまとまっている複数の物体のうちの一部の物体が、検出部20により検出不可能な位置(例えば、光学カメラにおけるオクルージョン領域内の位置)に位置していたとしても、当該地図情報を精度よく生成することができる。
【0022】
次に、制御システム1が備える制御対象装置10、検出部20、情報処理装置30それぞれの構成について詳しく説明する。
【0023】
制御対象装置10は、情報処理装置30により制御される。制御対象装置10は、例えば、ドローン、移動可能なロボット、AGV(Automatic Guided Vehicle)等の移動体であるが、情報処理装置30により制御される移動不可能な装置であってもよい。また、例えば、制御対象装置10は、人、犬等の動物によって運搬される装置であってもよい(すなわち、自走不可能な装置であってもよい)。以下では、一例として、制御対象装置10が、
図1に示したようにドローンである場合について説明する。なお、制御対象装置10がロボットである場合、制御対象装置10は、プロペラ、足、車輪、キャタピラ等で移動可能なロボットであってもよく、蛇型ロボットのように筐体の動きによって移動可能なロボットであってもよく、移動可能な他の種類のロボットであってもよく、移動不可能なロボットであってもよく、後述する検出部20を備えた移動不可能な他の装置、他の部材等であってもよく、検出部20そのものであってもよい。ただし、制御対象装置10が移動不可能な装置であった場合であっても、制御対象装置10は、人が運んだ際にその移動量を検出可能な装置である。この移動量の検出は、検出部20により行われてもよく、検出部20と異なるセンサによって行われてもよい。なお、制御対象装置10は、情報処理装置30を備える構成であってもよい。以下では、一例として、制御対象装置10が、情報処理装置30を備えない場合について説明する。
【0024】
検出部20は、対象空間R内の物体を検出可能な装置であれば、如何なる装置であってもよい。以下では、一例として、検出部20が、集光された光を電気信号に変換する撮像素子として、CCD(Charge Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)等を備えた撮像装置(例えば、カメラ等)である場合について説明する。すなわち、この一例における検出部20は、対象空間R内の物体を、撮像することにより検出する。検出部20は、情報処理装置30からの制御に応じて、撮像可能な範囲を撮像する。検出部20は、撮像した撮像画像を、情報処理装置30に出力する。なお、検出部20は、物体を検出可能な装置であれば、LIDER(Light Detection and Ranging、Laser Imaging Detection and Ranging)、ToF(Time of Flight)等の他の装置であってもよい。ただし、この場合、検出部20は、何らかの方法により、個々の物体を識別する必要がある。このような方法としては、既知の方法が用いられてもよく、これから開発される方法が用いられてもよい。
【0025】
ここで、以下では、一例として、検出部20により撮像される(すなわち、検出部20により検出される)物体M1~物体M4のそれぞれには、
図1に示したように、マーカーが設けられている場合について説明する。
【0026】
より具体的には、物体M1には、物体M1を識別する識別情報が第1符号化情報として符号化された第1マーカーと、物体M1を検出する検出部20と物体M1との相対的な位置及び姿勢を示す情報が第2符号化情報として符号化された第2マーカーとを含むマーカーMKR1が設けられている。なお、マーカーMKR1は、既知のマーカーであってもよく、これから開発されるマーカーであってもよい。
【0027】
また、物体M2には、物体M2を識別する識別情報が第1符号化情報として符号化された第1マーカーと、物体M2を検出する検出部20と物体M2との相対的な位置及び姿勢を示す情報が第2符号化情報として符号化された第2マーカーとを含むマーカーMKR2が設けられている。なお、マーカーMKR2は、既知のマーカーであってもよく、これから開発されるマーカーであってもよい。
【0028】
また、物体M3には、物体M3を識別する識別情報が第1符号化情報として符号化された第1マーカーと、物体M3を検出する検出部20と物体M2との相対的な位置及び姿勢を示す情報が第2符号化情報として符号化された第2マーカーとを含むマーカーMKR3が設けられている。なお、マーカーMKR3は、既知のマーカーであってもよく、これから開発されるマーカーであってもよい。
【0029】
また、物体M4には、物体M4を識別する識別情報が第1符号化情報として符号化された第1マーカーと、物体M4を検出する検出部20と物体M2との相対的な位置及び姿勢を示す情報が第2符号化情報として符号化された第2マーカーとを含むマーカーMKR4が設けられている。なお、マーカーMKR4は、既知のマーカーであってもよく、これから開発されるマーカーであってもよい。
【0030】
なお、以下では、説明の便宜上、マーカーMKR1~マーカーMKR4のそれぞれを区別する必要がない限り、まとめてマーカーMKRと称して説明する。
【0031】
検出部20は、前述した通り、この一例において、制御対象装置10に設けられる。このため、検出部20が撮像可能な範囲は、制御対象装置10の移動とともに変化する。すなわち、検出部20は、制御対象装置10の位置及び姿勢に応じた範囲を撮像可能である。なお、検出部20は、制御対象装置10に設けられる構成に代えて、対象空間R内の少なくとも一部を撮像可能なように対象空間R内に設けられる構成であってもよい。
【0032】
検出部20は、例えば、静止画像を撮像する。なお、検出部20は、動画像を撮像する構成であってもよい。この場合、本実施形態において説明する撮像画像は、検出部20により撮像された動画像を構成する各フレームによって代替可能である。
【0033】
情報処理装置30は、例えば、多機能携帯電話端末(スマートフォン)である。なお、情報処理装置30は、多機能携帯電話端末に代えて、タブレットPC(Personal Computer)、ノートPC、PDA(Personal Digital Assistant)、携帯電話端末、デスクトップPC、ワークステーション等の他の情報処理装置であってもよい。
【0034】
情報処理装置30は、制御対象装置10を制御する。例えば、情報処理装置30は、予め記憶されたプログラムに基づいて、所定の軌道に沿って制御対象装置10を移動させる。また、例えば、情報処理装置30は、受け付けた操作に応じて、制御対象装置10を移動させる。
【0035】
また、情報処理装置30は、所定の軌道に沿って制御対象装置10を移動させながら検出部20を制御し、所定のサンプリング周期が経過する毎に、検出部20が撮像可能な範囲を検出部20に撮像させる。情報処理装置30は、検出部20が撮像した撮像画像を、検出部20から取得する。ここで、検出部20により撮像された個々の撮像画像には、その撮像画像が撮像された時刻を示す時刻情報が対応付けられている。情報処理装置30は、制御対象装置10が所定の軌道に沿って移動している間に検出部20により撮像された複数の撮像画像と、予め記憶されたグループ毎のレイアウト拘束条件情報とに基づいて、レイアウト拘束Graph-SLAMにおける情報行列の各要素の足し上げと、レイアウト拘束Graph-SLAMにおける情報ベクトルの各要素の足し上げとを行う。これにより、情報処理装置30は、レイアウト拘束Graph-SLAMにおける評価関数の最適化を行い、対象空間R内における4つの物体それぞれについてのワールド座標系における位置及び姿勢を推定する。そして、情報処理装置30は、対象空間R内における4つの物体それぞれについてのワールド座標系における位置及び姿勢の推定結果に基づいて、対象空間R内の地図を示す地図情報を生成することができる。なお、レイアウト拘束Graph-SLAMにおける地図情報の生成方法は、従来のGraph-SLAMアルゴリズムにおける地図情報の生成方法と同様の方法であってもよく、これから開発される生成方法であってもよい。このように、情報処理装置30は、レイアウト拘束Graph-SLAMに基づいて、対象空間R内の地図を示す地図情報を生成する。これにより、情報処理装置30は、対象空間R内における4つの物体の配置が初期配置から変更されていたとしても、対象空間R内の地図を示す地図情報を精度よく生成することができる。その結果、情報処理装置30は、例えば、制御対象装置10に精度の高い作業を行わせることができる。ここで、ワールド座標系は、現実の対象空間R内における位置及び姿勢を示すための三次元直交座標系であり、例えば、対象空間Rに対応付けられた三次元直交座標系である。
【0036】
ここで、レイアウト拘束Graph-SLAMにおける情報行列には、レイアウト拘束Graph-SLAMと異なるGraph-SLAMアルゴリズムにおける情報行列において足し上げられることのない新たな要素が足し上げられる。レイアウト拘束Graph-SLAMでは、この新たな要素として、対象空間R内における各グループの物体間の要素が足し上げられる。具体的には、レイアウト拘束Graph-SLAMにおける情報行列には、物体M1と物体M2との配置を変化させないように拘束させる拘束条件によって物体M1と物体M2との配置を拘束する強さを示す値と、物体M3と物体M4との配置を変化させないように拘束させる拘束条件によって物体M3と物体M4との配置を拘束する強さを示す値とが、対象空間R内における各グループの物体間の要素として足し上げられる。ここで、物体M1と物体M2との配置を変化させないように拘束させる拘束条件によって物体M1と物体M2との配置を拘束する強さを示す値は、グループG1のレイアウト拘束条件情報に含まれている情報が示す誤差の値の逆数である。すなわち、物体M1と物体M2との配置を変化させないように拘束させる拘束条件によって物体M1と物体M2との配置を拘束する強さを示す値は、当該誤差の値が大きいほど小さくなり、当該誤差の値が小さいほど大きくなる。そして、物体M1と物体M2との配置を変化させないように拘束させる拘束条件によって物体M1と物体M2との配置を拘束する強さを示す値が大きいほど、物体M1と物体M2との相対的な位置及び姿勢は、レイアウト拘束Graph-SLAMにおける地図情報の生成において、変化しにくい。また、物体M3と物体M4との配置を変化させないように拘束させる拘束条件によって物体M3と物体M4との配置を拘束する強さを示す値は、グループG2のレイアウト拘束条件情報に含まれている情報が示す誤差の値の逆数である。すなわち、物体M3と物体M4との配置を変化させないように拘束させる拘束条件によって物体M3と物体M4との配置を拘束する強さを示す値は、当該誤差の値が大きいほど小さくなり、当該誤差の値が小さいほど大きくなる。そして、物体M3と物体M4との配置を変化させないように拘束させる拘束条件によって物体M3と物体M4との配置を拘束する強さを示す値が大きいほど、物体M3と物体M4との相対的な位置及び姿勢は、レイアウト拘束Graph-SLAMにおける地図情報の生成において、変化しにくい。
【0037】
一方、レイアウト拘束Graph-SLAMにおける情報ベクトルの各要素の足し上げについては、従来のGraph-SLAMアルゴリズムにおける情報ベクトルの各要素の足し上げと変わりない。このため、レイアウト拘束Graph-SLAMにおける情報ベクトルの各要素の足し上げについては、詳細な説明を省略する。
【0038】
なお、以下では、説明の便宜上、ある物体と制御対象装置10との相対的な位置及び姿勢を、当該物体についての物体装置間相対位置姿勢と称して説明する。また、以下では、説明の便宜上、ある2つの物体同士の相対的な位置及び姿勢を、当該2つの物体についての物体間相対位置姿勢と称して説明する。
【0039】
<情報処理装置のハードウェア構成>
以下、
図2を参照し、情報処理装置30のハードウェア構成について説明する。
図2は、情報処理装置30のハードウェア構成の一例を示す図である。
【0040】
情報処理装置30は、例えば、CPU(Central Processing Unit)31と、記憶部32と、入力受付部33と、通信部34と、表示部35を備える。これらの構成要素は、バスを介して相互に通信可能に接続されている。また、情報処理装置30は、通信部34を介して制御対象装置10、検出部20のそれぞれと通信を行う。
【0041】
CPU31は、例えば、情報処理装置30の全体を制御するプロセッサーである。なお、CPU31は、FPGA(Field Programmable Gate Array)等の他のプロセッサーであってもよい。CPU31は、記憶部32に格納された各種のプログラムを実行する。
【0042】
記憶部32は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read-Only Memory)、RAM(Random Access Memory)等を含む。なお、記憶部32は、情報処理装置30に内蔵されるものに代えて、USB(Universal Serial Bus)等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部32は、情報処理装置30が処理する各種の情報、各種の画像、各種のプログラム等を記憶する。例えば、記憶部32には、前述のグループ毎のレイアウト拘束条件情報が記憶されている。
【0043】
入力受付部33は、キーボード、マウス、タッチパッド等の入力装置である。なお、入力受付部33は、表示部35と一体に構成されたタッチパネルであってもよい。
【0044】
通信部34は、例えば、アンテナ、USB等のデジタル入出力ポート、イーサネット(登録商標)ポート等を含んで構成される。
【0045】
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(Electro Luminescence)ディスプレイパネル等を含む表示装置である。
【0046】
<情報処理装置の機能構成>
以下、
図3を参照し、情報処理装置30の機能構成について説明する。
図3は、情報処理装置30の機能構成の一例を示す図である。
【0047】
情報処理装置30は、記憶部32と、入力受付部33と、通信部34と、表示部35と、制御部36を備える。
【0048】
制御部36は、情報処理装置30の全体を制御する。制御部36は、例えば、撮像制御部361と、画像取得部362と、第1推定部363と、第2推定部364と、取得部365と、生成部366と、移動体制御部367を備える。制御部36が備えるこれらの機能部は、例えば、CPU31が、記憶部32に記憶された各種のプログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。また、撮像制御部361と、画像取得部362と、第1推定部363と、第2推定部364と、取得部365と、生成部366と、移動体制御部367とのうちの一部又は全部は、一体に構成されてもよい。撮像制御部361と、画像取得部362と、第1推定部363と、第2推定部364と、取得部365と、生成部366と、移動体制御部367とのうちの一部又は全部のそれぞれは、2つ以上の機能部に分けられてもよい。
【0049】
撮像制御部361は、検出部20が撮像可能な範囲を検出部20に撮像させる。
【0050】
画像取得部362は、検出部20が撮像した撮像画像を検出部20から取得する。
【0051】
第1推定部363は、検出部20により撮像が行われた時刻毎の制御対象装置10のワールド座標系における位置及び姿勢を推定する。以下では、説明の便宜上、制御対象装置10のワールド座標系における位置及び姿勢を、制御対象装置位置姿勢と称して説明する。
【0052】
第2推定部364は、画像取得部362により取得された撮像画像に基づいて、対象空間R内における4つの物体のうち、当該撮像画像に撮像されている1つ以上の物体のそれぞれについての物体装置間相対位置姿勢を推定する。
【0053】
取得部365は、第2推定部364により推定された1つ以上の物体装置間相対位置姿勢のそれぞれを示す物体装置間相対位置姿勢情報を、第2推定部364から取得する。
【0054】
生成部366は、記憶部32に予め記憶されたレイアウト拘束条件情報と、取得部365により取得された物体装置間相対位置姿勢情報と、第1推定部363により推定された制御対象装置位置姿勢とに基づいて、情報行列の各要素の足し上げと、情報ベクトルの各要素の足し上げとを行う。そして、生成部366は、各要素の足し上げが行われた後の情報行列及び情報ベクトルに基づく評価関数の最適化を行い、対象空間R内における4つの物体それぞれのワールド座標系における位置及び姿勢を推定する。そして、生成部366は、対象空間R内における4つの物体それぞれのワールド座標系における位置及び姿勢の推定結果に基づいて、対象空間R内の地図を示す地図情報を生成する。
【0055】
移動体制御部367は、制御対象装置10を制御する。例えば、移動体制御部367は、記憶部32に予め記憶された動作プログラムに基づいて、所定の軌跡に沿って制御対象装置10を移動させる。また、例えば、移動体制御部367は、受け付けた操作に応じて、制御対象装置10を移動させる。
【0056】
<レイアウト拘束Graph-SLAMにおける情報行列の各要素の足し上げ方法>
以下、レイアウト拘束Graph-SLAMにおける情報行列の各要素の足し上げ方法について説明する。ただし、以下では、対象空間R内における各グループの物体間に関係する要素の当該情報行列への足し上げ方法について説明し、この要素以外の要素の足し上げ方法については、従来のGraph-SLAMアルゴリズムにおける足し上げ方法と同様であるため、説明を省略する。
【0057】
なお、以下では、説明の便宜上、対象空間R内における4つの物体のそれぞれを、変数kの値によって識別する。kの値は、1~4のいずれかである。k=1である場合、kは、物体M1を示す。k=2である場合、kは、物体M2を示す。k=3である場合、kは、物体M3を示す。k=4である場合、kは、物体M4を示す。また、以下では、説明の便宜上、対象空間R内における4つの物体のうち、kの値によって識別される物体との相対的な位置及び姿勢がレイアウト拘束条件情報によって拘束されている他の物体を、変数lの値によって識別する。lの値は、1~4のうち、kの値以外の値のいずれかである。また、以下では、一例として、時刻を、tによって表す。ただし、実施形態では、ある基準となる時刻をt=0とし、t=0からの時間の経過を、tへの整数の加算によって表す。すなわち、実施形態では、時刻tは、離散化されている。また、実施形態では、x^yと記載した場合、xに上付添字としてyが付随していること、すなわち、xyを意味する。また、実施形態では、x_yと記載した場合、xに下付添字としてyが付随していること、すなわち、xyを意味する。また、実施形態では、x^y_zと記載した場合、xに上付添字としてyが付随しているとともに、xに下付添字としてzが付随していることを意味する。ここで、これらx、y、zのそれぞれは、如何なるアルファベットであってもよく、中括弧で括られた2つ以上のアルファベットの連なりであってもよい。例えば、xyz^{jkl}は、xyzjklを意味する。また、例えば、xyz_{jkl}は、xyzjklを意味する。また、例えば、x^{y_z}と記載した場合、xに上付添字としてy_zが付随していることを意味する。また、例えば、x_{y_z}と記載した場合、xに下付添字としてy_zが付随していることを意味する。また、以下では、一例として、ワールド座標系における位置が、ワールド座標系におけるxy平面上の座標によって表される場合について説明する。また、以下では、一例として、ワールド座標系における姿勢が、ワールド座標系における方位角によって表される場合について説明する。なお、ワールド座標系における位置は、ワールド座標系における3次元の座標によって表される構成であってもよい。また、ワールド座標系における姿勢は、ワールド座標系におけるオイラー角によって表される構成であってもよい。
【0058】
例えば、ある時刻tにおいて検出部20により撮像された撮像画像に、kのある値によって識別される物体が撮像されていた場合、すなわち、検出部20により当該物体が検出された場合について考える。この場合、当該物体のワールド座標系における位置及び姿勢は、時刻tでの制御対象装置10のワールド座標系における位置及び姿勢と、時刻tでの当該物体についての物体装置間相対位置姿勢を用いて、以下の式(1)、式(2)に基づいて算出することができる。なお、以下では、説明の便宜上、ある物体のワールド座標系における位置及び姿勢を、当該物体についての物体位置姿勢と称して説明する。
【0059】
【0060】
【0061】
【0062】
ここで、m_kは、kによって識別される物体についての物体位置姿勢を示す3つの値を要素として有するベクトルである。r_tは、時刻tでの制御対象装置位置姿勢を示すベクトルである。r_tは、上記の式(2)によって表される。x_rtは、時刻tでの制御対象装置のワールド座標系における位置を示すx座標である。y_rtは、時刻tでの制御対象装置10のワールド座標系における位置を示すy座標である。θ_rtは、時刻tでの制御対象装置10のワールド座標系における姿勢を示す方位角である。Z_k_tは、当該物体についての観測値を表すベクトルである。より具体的には、Z_k_tは、時刻tにおいて検出部20により撮像された撮像画像に基づいて推定された当該物体についての物体装置間相対位置姿勢を表すベクトルである。Z_k_tは、上記の式(3)によって明示的に表される。式(3)の右辺の第1要素であるx^{r_t}_{m_k}は、当該物体と、時刻tにおける制御対象装置10との相対的な位置を示すx座標である。換言すると、x^{r_t}_{m_k}は、「時刻tの制御対象装置位置姿勢を示すr_t」から見た「kによって識別される物体についての物体位置姿勢を示すm_k」の相対的な位置を示すx座標である。式(2)の右辺の第2要素であるy^{r_t}_{m_k}は、当該物体と、時刻tにおける制御対象装置10との相対的な位置を示すy座標である。換言すると、y^{r_t}_{m_k}は、「時刻tの制御対象装置位置姿勢を示すr_t」から見た「kによって識別される物体についての物体位置姿勢を示すm_k」の相対的な位置を示すy座標である。また、式(2)の右辺の第3要素であるθ^{r_t}_{m_k}は、当該物体と、時刻tにおける制御対象装置10との相対的な姿勢を示す方位角である。換言すると、θ^{r_t}_{m_k}は、「時刻tの制御対象装置位置姿勢を示すr_t」から見た「kによって識別される物体についての物体位置姿勢を示すm_k」の相対的な姿勢を示す方位角である。
【0063】
一方、kの値によって識別される物体と、lの値によって識別される物体との物体間相対位置姿勢は、記憶部32に予め記憶されたグループ毎のレイアウト拘束条件情報により特定される。そして、当該物体間相対位置姿勢情報を含むレイアウト拘束条件情報は、以下の式(4)及び式(5)のように表わすことができる。
【0064】
【0065】
【0066】
ここで、式(4)の左辺であるp^k_lは、kの値によって識別される物体と、lの値によって識別される物体との物体間相対位置姿勢を示す情報を、これら2つの物体の配置を変化させないように拘束させる拘束条件として含むレイアウト拘束条件情報を示すベクトルである。より具体的には、lの値によって識別される物体の位置及び姿勢に対する、kの値によって識別される物体の相対的な位置及び姿勢を示す情報を、当該拘束条件として含むレイアウト拘束条件情報を示すベクトルである。
図4は、式(4)に示したベクトルのイメージ図である。
図4に示した物体MKは、kの値によって識別される物体の一例を示す。
図4に示した物体MLは、lの値によって識別される物体の一例を示す。そして、
図4に示した矢印は、当該ベクトルの一例を示す。すなわち、当該ベクトルは、物体MKの位置から物体MLの位置を示すベクトルとして表される。なお、
図4では、物体MKの位置は、一例として、物体MKの図心の位置によって表している。また、
図4では、物体MKの位置は、一例として、物体MKの図心の位置によって表している。なお、このベクトルは、実際には、物体MKと物体MLとの配置を変化させないように拘束させる拘束条件によって物体MKと物体MLとの配置を拘束する強さを示す値を要素として有しているため、
図4においてイメージとして矢印によって示されているに過ぎない。式(4)の右辺の第1要素であるσ^k_lは、lの値によって識別される物体の位置及び姿勢に対する、kの値によって識別される物体の相対的な位置及び姿勢について許容される誤差の値(この値は、単一の値であってもよく、ベクトルであってもよく、行列であってもよい)を示す。式(4)の右辺の第2要素であるm^k_lは、lの値によって識別される物体の位置及び姿勢に対する、kの値によって識別される物体の相対的な位置及び姿勢を示すベクトルである。すなわち、当該第2要素は、これら2つの物体についての物体間相対位置姿勢を示すベクトルである。式(4)の右辺の第2要素は、式(5)のように表される。式(5)の右辺の第1要素であるx^{m_k}_{m_l}は、lの値によって識別される物体の位置に対する、kの値によって識別される物体の相対的な位置を示すx座標である。式(5)の右辺の第2要素であるy^{m_k}_{m_l}は、lの値によって識別される物体の位置に対する、kの値によって識別される物体の相対的な位置を示すy座標である。式(5)の右辺の第3要素であるθ^{m_k}_{m_l}は、lの値によって識別される物体の姿勢に対する、kの値によって識別される物体の相対的な姿勢を示す方位角である。
【0067】
式(4)及び式(5)のように表されたレイアウト拘束条件情報を用いると、lの値によって識別される物体が時刻tにおいて検出部20により検出されていない場合であっても、当該物体のワールド座標系における位置及び姿勢は、以下の式(6)に基づいて算出することができる。
【0068】
【0069】
ここで、kのある値によって識別される物体についての物体位置姿勢と、式(4)により表されたレイアウト拘束条件情報と、lの値によって識別される物体についての物体位置姿勢とを算出することができた場合、以下の式(7)のように、これら2つの物体間に関係する要素を情報行列Ω及び情報ベクトルξへ足し上げることができる。
【0070】
【0071】
上記の式(7)の情報行列Ωにおいて明示的に示されている要素は、情報行列Ωにおけるm_lとm_kとに関係する要素、すなわち、kのある値によって識別される物体とlの値によって識別される物体との間に関係する要素である。そして、この要素は、レイアウト拘束条件情報を表すベクトルの第1要素の逆数である。すなわち、この要素は、kの値によって識別される物体と、lの値によって識別される物体との配置を変化させないように拘束させる拘束条件によってこれら2つの物体の配置を拘束する強さを示す値である。また、上記の式(7)の情報ベクトルξにおいて明示的に示されている要素は、情報ベクトルξにおけるm_lとm_kとに関係する要素であり、m_lとm_kとのそれぞれそのものである。
【0072】
このように、情報処理装置30は、上記の式(1)~式(7)と、時刻tにおいて検出部20により撮像された撮像画像とに基づいて、情報行列Ωの各要素の足し上げと情報ベクトルξの各要素との足し上げとを行うことができる。情報処理装置30は、このような要素の足し上げを、各時刻において検出部20により撮像された撮像画像に基づいて行う。これにより、情報処理装置30は、レイアウト拘束Graph-SLAMにおける情報行列Ω及び情報ベクトルξを生成することができる。
【0073】
ここで、kの値によって識別される物体のワールド座標系における位置及び姿勢とともに、lの値によって識別される物体の物体位置姿勢が、上記の式(1)及び式(2)に基づいて算出されることもある。以下では、説明の便宜上、lの値によって識別される物体の物体位置姿勢のうち、式(1)及び式(2)に基づいて算出された位置及び姿勢を、第1推定位置姿勢と称して説明する。また、以下では、説明の便宜上、lの値によって識別される物体の物体位置姿勢のうち、式(6)に基づいて算出された位置及び姿勢を第2物体位値姿勢と称して説明する。第1推定位置姿勢を表すベクトルと第2物体位値姿勢を表すベクトルとの差分ベクトルは、第1推定位置姿勢と第2推定位置姿勢とのずれの大きさを表す量の算出に用いることができる。このような量は、第1推定位置姿勢と第2推定位置姿勢との間の距離として算出可能な量であり、例えば、ユークリッド空間における内積、多変量の空間におけるマハラノビス距離、確率空間におけるKL(Kullback Leibler)情報量等である。以下では、一例として、第1推定位置姿勢と第2推定位置姿勢とのずれの大きさを表す量が、当該差分ベクトルの内積である場合について説明する。この場合、この内積が所定の第1閾値を超えると、lの値によって識別される物体と、kの値によって識別される物体との配置は、初期配置から変更されていると考えられる。これら2つの物体の配置が初期配置から変更されている場合、上記の情報行列Ωにおいて、m_lとm_kとに関係する要素の繋がりは、削除されるべきである。当該要素の繋がりの削除は、当該要素を0に置き換えることを意味する。以下の式(8)及び式(9)は、当該差分ベクトルの内積を表している。
【0074】
【0075】
【0076】
上記の式(8)の左辺は、前述の内積を示す。式(8)の右辺の2つの括弧内それぞれの第1項は、第2推定位置姿勢を表すベクトルである。当該第1項は、式(9)に基づいて算出される。そして、式(8)の右辺の2つの括弧内それぞれの第2項、すなわち、m_lは、第1推定位置姿勢を表すベクトルである。
【0077】
ここで、前述の第1閾値は、例えば、第2推定位置姿勢についての推定誤差である。この推定誤差は、如何なる方法で推定されてもよい。なお、第1閾値は、当該推定誤差に代えて、他の値であってもよい。また、レイアウト拘束Graph-SLAMにおける情報行列Ω及び情報ベクトルξそれぞれの各要素の足し上げに係る繰り返し処理において、前述の内積は、繰り返し算出される。このため、内積が第1閾値を超える回数が所定の第2閾値を超えた場合、上記の情報行列Ωにおいて、m_lとm_kとの間に関係する要素を、0に置き換えられるようにすることが望ましい。なお、第2閾値は、0.0~1.0の間の数である。第2閾値が1.0である場合、レイアウト拘束Graph-SLAMでは、物体間のレイアウトの変更が行われても、物体間のレイアウトの変更が結果に反映されなくなる。一方、第2閾値が0.0に近づくほど、レイアウト拘束Graph-SLAMでは、物体間のレイアウトの変更が行われた場合、物体間のレイアウトの変更が結果に反映されやすくなる。以下では、説明の便宜上、このように2つの物体間に関係する要素を0に置き換える処理を、レイアウト解除処理と称して説明する。
【0078】
<情報処理装置が情報行列及び情報ベクトルを生成する処理>
以下、
図5を参照し、情報処理装置30が情報行列Ω及び情報ベクトルξを生成する処理について説明する。
図5は、情報処理装置30が情報行列Ω及び情報ベクトルξを生成する処理の流れの一例を示す図である。なお、以下では、一例として、
図5に示したステップS110の処理が行われるよりも前のタイミングにおいて、制御対象装置10が所定の軌道を移動している期間において検出部20により撮像された複数の撮像画像を、情報処理装置30が検出部20から取得している場合について説明する。また、以下では、一例として、当該タイミングにおいて、情報処理装置30が当該処理を開始する操作を予め受け付けている場合について説明する。
【0079】
第2推定部364は、記憶部32に予め記憶されたグループ毎のレイアウト拘束条件情報を記憶部32から読み出す(ステップS110)。
【0080】
次に、制御部36は、検出部20から予め取得した複数の撮像画像から、撮像された時刻が早い順に1つずつ撮像画像を対象撮像画像として選択し、選択した対象撮像画像毎に、ステップS130~ステップS170の処理を繰り返し行う(ステップS120)。
【0081】
ステップS120において対象撮像画像が選択された後、第2推定部364は、選択された対象撮像画像に、対象空間R内における4つの物体のうちの少なくとも1つが撮像されているか否かを判定する(ステップS130)。すなわち、ステップS130において、第2推定部364は、選択された対象撮像画像に基づいて、対象空間R内における4つの物体のうちの少なくとも1つが検出されているか否かを判定する。
図5では、ステップS130の処理を、「物体検出?」によって示している。
【0082】
第2推定部364は、選択された対象撮像画像に、対象空間R内における4つの物体のうちのいずれもが撮像されていないと判定した場合(ステップS130-NO)、ステップS120に遷移し、次の対象撮像画像を選択する。なお、ステップS120において次の対象撮像画像として選択可能な撮像画像が存在しない場合、制御部36は、ステップS120~ステップS170の繰り返し処理を終了させ、
図5に示したフローチャートの処理を終了する。
【0083】
一方、第1推定部363は、選択された対象撮像画像に、対象空間R内における4つの物体のうちの少なくとも1つが撮像されていると第2推定部364が判定した場合(ステップS130-YES)、対象撮像画像に対応付けられた時刻情報に基づいて、対象撮像画像が撮像された時刻を特定する。そして、第1推定部363は、予め決められた初期値と、所定の軌道の移動中における制御対象装置10の速度の履歴とに基づいて、特定した時刻毎の制御対象装置位置姿勢を推定する(ステップS140)。ここで、予め決められた初期値は、制御対象装置10のワールド座標系における位置及び姿勢を表すベクトルが有する3つの要素それぞれについての初期値のことである。これら3つの初期値は、如何なる値であってもよい。
【0084】
次に、第2推定部364は、対象撮像画像に基づいて、対象空間R内における4つの物体のうち対象撮像画像に撮像されている1つ以上の物体についての物体装置間相対位置姿勢を推定する(ステップS150)。ここで、例えば、第2推定部364は、対象撮像画像に、当該4つの物体のうちのある物体が撮像されていた場合、当該物体のマーカーMKRから、第1符号化情報及び第2符号化情報を読み出す。これにより、第2推定部364は、当該物体が当該4つの物体のうちのいずれであるかを識別することができ、且つ、ステップS140において特定された時刻における当該物体についての物体装置間相対位置姿勢情報を推定することができる。第2推定部364は、ステップ150において、このような推定を、対象撮像画像に撮像されている1つ以上の物体のそれぞれについて行う。
【0085】
次に、取得部365は、ステップS150において第2推定部364が推定した推定結果を取得する。そして、生成部366は、この推定結果と、ステップS110において記憶部32から読み出されたレイアウト拘束条件情報と、ステップS140において第1推定部363により推定された推定結果とに基づいて、対象空間R内における4つの物体のうち対象撮像画像に撮像されている1つ以上の物体と、当該1つ以上の物体のそれぞれとグループを構成している1つ以上の物体とのそれぞれについての物体位置姿勢を推定する(ステップS160)。なお、ステップS160の推定方法については、<レイアウト拘束Graph-SLAMにおける情報行列の各要素の足し上げ方法>において説明済であるため、ここでの詳細な説明を省略する。また、ステップS160において、生成部366は、対象撮像画像に撮像されている1つ以上の物体のそれぞれについて、前述の第1推定位置姿勢を表すベクトルと第2推定位置姿勢を表すベクトルとの差分ベクトルの内積を算出し、算出した当該内積が第1閾値を超えるか否かを判定する構成であってもよい。この場合、例えば、生成部366は、対象撮像画像に物体M1が撮像されていた場合、ステップS160において、物体M1についての第1推定位置姿勢を表すベクトルと、物体M1についての第2推定位置姿勢を表すベクトルとの差分ベクトルの内積を算出し、算出した当該内積が第1閾値を超えるか否かを判定する。そして、生成部366は、ステップS120~ステップS170の繰り返し処理において、物体M1について算出された内積が第1閾値を超えていると現在までに判定した回数が第2閾値を超えた場合、物体M1と物体M2との間に関係する要素を0に置き換えるレイアウト解除処理を行う。
【0086】
次に、生成部366は、ステップS160における推定結果と、ステップS110において読み出されたレイアウト拘束条件情報とに基づいて、情報行列Ωの各要素の足し上げと、情報ベクトルξの各要素の足し上げとを行う(ステップS170)。なお、ステップS170の足し上げ方法については、<レイアウト拘束Graph-SLAMにおける情報行列の各要素の足し上げ方法>において説明済であるため、ここでの詳細な説明を省略する。
【0087】
ステップS170の処理が行われた後、制御部36は、ステップS120に遷移し、次の対象撮像画像を選択する。なお、ステップS120において次の対象撮像画像として選択可能な撮像画像が存在しない場合、制御部36は、ステップS120~ステップS170の繰り返し処理を終了させ、
図5に示したフローチャートの処理を終了する。
【0088】
なお、取得部365は、ステップS140において第1推定部363により推定される推定結果と、ステップS150において推定される推定結果とを、他の装置から取得する構成であってもよい。この場合、生成部366は、取得部365により取得されたこれらの推定結果に基づいて、ステップS160の処理及びステップS170の処理を行う。これにより、情報処理装置30は、レイアウト拘束Graph-SLAMにおける情報行列Ω及び情報ベクトルξを生成することができる。
【0089】
<情報処理装置が地図情報を生成する処理>
以下、
図6を参照し、情報処理装置30が地図情報を生成する処理について説明する。
図6は、情報処理装置30が地図情報を生成する処理の流れの一例を示す図である。なお、以下では、一例として、
図6に示したステップS210の処理が行われるよりも前のタイミングにおいて、
図5に示したフローチャートの処理によって情報処理装置30が情報行列Ω及び情報ベクトルξを生成している場合について説明する。また、以下では、一例として、当該タイミングにおいて、情報処理装置30が当該処理を開始する操作を予め受け付けている場合について説明する。
【0090】
生成部366は、予め生成している情報行列Ω及び情報ベクトルξに基づいて、レイアウト拘束Graph-SLAMにおける評価関数を生成する(ステップS210)。なお、この評価関数を生成する方法については、従来のGraph-SLAMアルゴリズムにおける方法であってもよく、これから開発される方法であってもよい。
【0091】
次に、生成部366は、ステップS210において生成された評価関数に基づく最適化処理を行う(ステップS220)。なお、ステップS220における最適化処理において用いられる最適化の手法については、既知の手法であってもよく、これから開発される手法であってもよい。これにより、生成部366は、対象空間R内における4つの物体それぞれについてのワールド座標系における位置及び姿勢を推定することができる。
【0092】
次に、生成部366は、ステップS220における推定結果に基づいて、対象空間R内の地図を示す地図情報を生成し(ステップS230)、
図6に示したフローチャートの処理を終了する。
【0093】
以上のように、情報処理装置30は、予め決められた初期値に基づいて制御対象装置位置姿勢を推定し、対象空間R内における4つの物体のうちの少なくとも1つの物体についての物体装置間相対位置姿勢情報を取得し、記憶部32に記憶されたレイアウト拘束条件情報と、取得した当該少なくとも1つの物体についての物体装置間相対位置姿勢情報と、推定した制御対象装置位置姿勢とに基づいて、対象空間R内の地図を示す地図情報を生成する。これにより、情報処理装置30は、対象空間R内における4つの物体の配置が初期配置から変更されていたとしても、対象空間R内の地図を示す地図情報を精度よく生成することができる。
【0094】
<シミュレーターによる情報処理装置の性能試験結果>
以下、図を参照し、シミュレーターによる情報処理装置30の性能試験結果について説明する。
図7は、情報処理装置30により生成された地図情報の一例を示す図である。ただし、
図7に示した地図情報の生成において、情報処理装置30は、レイアウト拘束条件情報を用いない従来のGraph-SLAMアルゴリズムに基づいて、制御対象装置10が位置する空間内の地図を示す地図情報を生成した。
図7に示した地図情報が示す地図の空間は、レイアウト拘束によって互いの相対的な位置及び姿勢が保持されている8つの物体が配置された空間である。また、この空間内には、当該Graph-SLAMアルゴリズムにおける繰り返し処理の収束性を向上させるため、ワールド座標系における位置及び姿勢が動かないように固定されている4つのランドマークLM1~LM4が配置されている。その結果、地図全体の精度は、従来手法よりも改善される。ただし、これら4つのランドマークLM1~LM4は、
図7に示した地図情報の物体間の相対的な位置関係の精度には、ほぼ影響を与えない。このため、この空間内には、これら4つのランドマークLM1~LM4のうちの一部又は全部は、配置されていなくてもよい。
図7では、この空間内に配置されている当該8つの物体が実際に位置している位置を、8つの点線の四角形Msによって示している。また、
図7では、当該8つの物体の実際の姿勢を、8つの点線の四角形Msのそれぞれに付随した矢印によって示している。また、
図7において点線で示した経路V1は、制御対象装置10により推定された制御対象装置10の移動経路を示す。一方、
図7において点線で示した経路V2は、実際の制御対象装置10の移動経路を示す。すなわち、
図7に示した例では、情報処理装置30は、検出部20に撮像を行わせながら、所定の軌道として経路V2に沿った移動を制御対象装置10に行わせている。そして、
図7に実線で示した8つの四角形VMsのそれぞれは、制御対象装置10によって推定された当該8つの物体それぞれの位置を示している。また、
図7に実線で示した8つの四角形VMsのそれぞれに付随する矢印は、制御対象装置10によって推定された当該8つの物体それぞれの姿勢を示している。
図7に示したように、レイアウト拘束条件情報を用いない従来のGraph-SLAMアルゴリズムを用いた場合、情報処理装置30は、当該8つの物体それぞれの位置及び姿勢を、精度よく推定できていないことが分かる。これは、8つの四角形Msと8つの四角形VMsとの一致度合いの低さと、これら4角形のそれぞれに付随する矢印同士の一致度合いの低さとのそれぞれから明らかである。
【0095】
一方、
図8は、情報処理装置30により生成された地図情報の他の例を示す図である。ただし、
図8に示した地図情報の生成において、情報処理装置30は、レイアウト拘束Graph-SLAMに基づいて、
図7に示した空間と同じ空間内の地図を示す地図情報を生成した。
図8に示したように、レイアウト拘束Graph-SLAMを用いた場合、情報処理装置30は、レイアウト拘束条件情報を用いない従来のGraph-SLAMアルゴリズムを用いた
図7の結果と比較して、8つの物体それぞれの位置及び姿勢を、精度よく推定できていることが分かる。これは、
図7における8つの四角形Msと8つの四角形VMsとの一致度合いよりも、
図8における8つの四角形Msと8つの四角形VMsとの一致度合いの方が高いことからも明らかである。また、これは、
図7における8つの四角形Msと8つの四角形VMsとのそれぞれに付随した矢印の一致度合いよりも、
図8における8つの四角形Msと8つの四角形VMsとのそれぞれに付随した矢印の一致度合いの方が高いことからも明らかである。すなわち、情報処理装置30は、制御対象装置10が位置する空間内における複数の物体の配置が初期配置から変更されていたとしても、当該空間内の地図を示す地図情報を精度よく生成することができる。なお、
図8に示した結果を得るために用いたレイアウト拘束Graph-SLAMは、前述のレイアウト解除処理を行う構成であってもよく、レイアウト解除処理を行わない構成であってもよい。
【0096】
次に、
図9は、情報処理装置30により生成された地図情報の更に他の例を示す図である。ただし、
図9に示した地図情報の生成において、情報処理装置30は、レイアウト拘束Graph-SLAMに基づいて、制御対象装置10が位置する空間内の地図を示す地図情報を生成した。
図9に示した地図情報が示す地図の空間は、一部を除いて、
図7に示した空間と同じ空間である。
図9に示した空間では、レイアウト拘束によって互いの相対的な位置及び姿勢が保持されていた8つの物体のうちの1つの物体が、残りの7つの物体から離れた位置に移動させられている。このような1つの物体の移動が、
図7に示した空間と、
図9に示した空間との違いである。
図9では、当該7つの物体が実際に位置している位置を、7つの点線の四角形Mssによって示している。また、
図9では、当該7つの物体の実際の姿勢を、7つの点線の四角形Mssのそれぞれに付随した矢印によって示している。また、
図9では、レイアウト拘束を解かれている当該1つの物体が実際に位置している位置を、点線の四角形Ms1によって示している。また、
図9では、当該1つの物体の実際の姿勢を、点線の四角形Ms1に付随した矢印によって示している。そして、
図9に実線で示した7つの四角形VMssのそれぞれは、制御対象装置10によって推定された当該7つの物体それぞれの位置を示している。また、
図9に実線で示した7つの四角形VMssのそれぞれに付随する矢印は、制御対象装置10によって推定された当該7つの物体それぞれの姿勢を示している。また、
図9に実線で示した四角形VMs1は、制御対象装置10によって推定された当該1つの物体の位置を示している。また、
図9に実線で示した四角形VMs1に付随する矢印は、制御対象装置10によって推定された当該1つの物体の姿勢を示している。ここで、
図9は、情報処理装置30は、レイアウト解除処理を行わないレイアウト拘束Graph-SLAMに基づいて、この空間内の地図を示す地図情報を生成した結果である。
図9に示したように、この場合、情報処理装置30は、8つの物体それぞれの位置及び姿勢を、精度よく推定できていないことが分かる。これは、7つの四角形Mssと7つの四角形VMssとの一致度合いの低さから明らかであるが、四角形Ms1と四角形VMs1とが離れていることからも更に明らかである。
【0097】
一方、
図10は、情報処理装置30により生成された地図情報の更に更に他の例を示す図である。ただし、
図10に示した地図情報の生成において、情報処理装置30は、レイアウト解除処理を行うレイアウト拘束Graph-SLAMに基づいて、
図9に示した空間と同じ空間内の地図を示す地図情報を生成した。
図10に示したように、レイアウト解除処理を行うレイアウト拘束Graph-SLAMを用いた場合、情報処理装置30は、
図9の結果と比較して、7つの物体それぞれの位置及び姿勢と、1つの物体の位置及び姿勢とを、精度よく推定できていることが分かる。すなわち、情報処理装置30は、レイアウト解除処理を行うレイアウト拘束Graph-SLAMを用いることにより、制御対象装置10が位置する空間内における複数の物体の配置が初期配置から変更されていたとしても、当該空間内の地図を示す地図情報を、より確実に精度よく生成することができる。
【0098】
なお、上記において説明した制御対象装置10は、前述した通り、ドローンに代えて、車輪を有する移動可能なロボットであってもよい。
図11は、実施形態に係る制御システム1の構成の他の例を示す図である。この場合であっても、この場合であっても、情報処理装置30は、レイアウト拘束Graph-SLAMに基づいて、対象空間R内における4つの物体それぞれについてのワールド座標系における位置及び姿勢の推定を行い、対象空間R内の地図を示す地図情報を生成することができる。
【0099】
また、上記において説明した物体M1~物体M4のうちの少なくとも1つの物体には、複数のマーカーが設けられる構成であってもよい。
図12は、3つのマーカーが設けられた物体M1の一例を示す図である。
図12に示した物体M1には、マーカーMKR1-1、マーカーMKR1-2、マーカーMKR1-3の3つのマーカーが設けられている。これにより、検出部20により撮像される撮像画像には、物体M1に設けられたマーカーが撮像されやすくなる。また、情報処理装置30がこれら3つのマーカーのそれぞれを識別可能な場合、情報処理装置30は、物体M1が撮像された撮像画像に基づいて、物体M1の姿勢をより精度よく検出することができる。これら3つのマーカーを識別可能なマーカーとする方法としては、QRコード(登録商標)とARコードとを組み合わせたHuecodeを用いる方法を採用することが望ましい。Huecodeについては、既に公知であるため、詳細な説明を省略する。Huecodeについては、例えば、特願2020-169115号の特許文献等に詳細な説明が記載されている。
【0100】
なお、上記において説明した位置及び姿勢は、位置のみであってもよい。この場合、上記において説明した姿勢については、各種の処理に使用されず、位置のみを用いて各種の処理等が実行される。この場合、例えば、位置及び姿勢を示す各種の情報は、位置を示す情報となる。
また、上記において説明した位置及び姿勢は、姿勢のみであってもよい。この場合、上記において説明した位置については、各種の処理に使用されず、姿勢のみを用いて各種の処理等が実行される。この場合、例えば、位置及び姿勢を示す各種の情報は、姿勢を示す情報となる。
【0101】
以上のように、実施形態に係る情報処理装置(上記において説明した例では、情報処理装置30)は、制御対象となる制御対象装置(上記において説明した例では、制御対象装置10)を制御する情報処理装置であって、制御対象装置が位置する空間(上記において説明した例では、対象空間R)内に配置された第1物体(上記において説明した例では、例えば、物体M1)と、空間内に配置された第1物体と異なる第2物体(上記において説明した例では、例えば、物体M2)との相対的な位置及び姿勢を示す情報を含むレイアウト拘束条件情報を記憶する記憶部(上記において説明した例では、記憶部32)と、制御対象装置の位置及び姿勢と、第1物体と制御対象装置との相対的な位置及び姿勢を示す第1物体装置間相対位置姿勢情報と、第2物体と制御対象装置との相対的な位置及び姿勢を示す第2物体装置間相対位置姿勢情報との少なくとも一方と、記憶部に記憶されたレイアウト拘束条件情報とに基づいて、空間内の地図を示す地図情報を生成する制御部(上記において説明した例では、制御部36)と、を備える。これにより、情報処理装置は、制御対象装置が位置する空間内における複数の物体の配置が初期配置から変更されていたとしても、当該空間内の地図を示す地図情報を精度よく生成することができる。
【0102】
また、情報処理装置において、制御部は、予め決められた初期値に基づいて制御対象装置の位置及び姿勢を推定する第1推定部(上記において説明した例では、第1推定部363)と、第1物体装置間相対位置姿勢情報と、第2物体装置間相対位置姿勢情報との少なくとも一方を物体装置間相対位置姿勢情報として取得する取得部(上記において説明した例では、取得部365)と、記憶部に記憶されたレイアウト拘束条件情報と、取得部により取得された物体装置間相対位置姿勢情報と、第1推定部により推定された制御対象装置の位置及び姿勢とに基づいて、空間内の地図を示す地図情報を生成する生成部(上記において説明した例では、生成部366)と、を備える、構成が用いられてもよい。
【0103】
また、情報処理装置は、制御部は、第1物体と第2物体との少なくとも一方を検出する検出部(上記において説明した例では、検出部20)からの出力に基づいて、第1物体と制御対象装置との相対的な位置及び姿勢と、第2物体と制御対象装置との相対的な位置及び姿勢との少なくとも一方を推定する第2推定部(上記において説明した例では、第2推定部364)を更に備え、取得部は、第1物体と制御対象装置との相対的な位置及び姿勢と、第2物体と制御対象装置との相対的な位置及び姿勢との少なくとも一方を示す情報を、物体装置間相対位置姿勢情報として第2推定部から取得する、構成が用いられてもよい。
【0104】
また、情報処理装置では、生成部は、Graph-SLAMに基づいて、地図情報を生成する、構成が用いられてもよい。
【0105】
また、情報処理装置では、生成部は、取得部により取得された物体装置間相対位置姿勢情報と、記憶部により記憶されたレイアウト拘束条件情報と、第1推定部により推定された制御対象装置の位置及び姿勢とに基づいて、Graph-SLAMにおける情報行列及び情報ベクトルを生成し、生成した情報行列及び情報ベクトルに基づく評価関数の最適化を行うことにより、地図情報を生成する、構成が用いられてもよい。
【0106】
また、情報処理装置では、生成部は、取得部により取得された物体装置間相対位置姿勢情報と、記憶部により記憶されたレイアウト拘束条件情報と、第1推定部により推定された制御対象装置の位置及び姿勢とに基づいて、第1物体及び第2物体それぞれの位置及び姿勢を推定し、推定した第1物体及び第2物体それぞれの位置及び姿勢に基づいて、情報行列及び情報ベクトルを生成する、構成が用いられてもよい。
【0107】
また、情報処理装置では、生成部は、第1物体装置間相対位置姿勢情報と第2物体装置間相対位置姿勢情報との両方が物体装置間相対位置姿勢情報として取得部により取得された場合、第1推定部により推定された制御対象装置の位置及び姿勢と、取得部により取得された物体装置間相対位置姿勢情報と、記憶部により記憶されたレイアウト拘束条件情報とに基づいて、第1物体の位置及び姿勢を第1推定位置姿勢として推定するとともに第2物体の位置及び姿勢を第2推定位置姿勢として推定し、且つ、第1推定部により推定された制御対象装置の位置及び姿勢と、取得部により取得された物体装置間相対位置姿勢情報とに基づいて、第1物体の位置及び姿勢を第3推定位置姿勢として推定するとともに第2物体の位置及び姿勢を第4推定位置姿勢として推定し、第1推定位置姿勢を示すベクトルと第3推定位置姿勢を示すベクトルとの差を第1差分として算出するとともに、第2推定位置姿勢を示すベクトルと第4推定位置姿勢を示すベクトルとの差を第2差分として算出し、第1差分と、第1物体の位置及び姿勢についての推定誤差と、第2差分と、第2物体の位置及び姿勢についての推定誤差とに基づいて、情報行列が有する要素のうちレイアウト拘束条件情報に応じて決められた要素の繋がりを削除する、構成が用いられてもよい。
【0108】
また、情報処理装置では、制御対象装置は、制御対象装置の位置及び姿勢を変化させることができる移動体である、構成が用いられてもよい。
【0109】
また、以上のように、実施形態に係る情報処理装置(上記において説明した例では、情報処理装置30)は、制御対象となる制御対象装置(上記において説明した例では、制御対象装置10)を制御する情報処理装置であって、制御対象装置が位置する空間(上記において説明した例では、対象空間R)内に配置された第1物体(上記において説明した例では、例えば、物体M1)と、空間内に配置された第1物体と異なる第2物体(上記において説明した例では、例えば、物体M2)との相対的な位置を示す情報を含むレイアウト拘束条件情報を記憶する記憶部(上記において説明した例では、記憶部32)と、制御対象装置の位置と、第1物体と制御対象装置との相対的な位置を示す第1物体装置間相対位置情報と、第2物体と制御対象装置との相対的な位置を示す第2物体装置間相対位置情報との少なくとも一方と、記憶部に記憶されたレイアウト拘束条件情報とに基づいて、空間内の地図を示す地図情報を生成する制御部(上記において説明した例では、制御部36)と、を備える。これにより、情報処理装置は、制御対象装置が位置する空間内における複数の物体の配置が初期配置から変更されていたとしても、当該空間内の地図を示す地図情報を精度よく生成することができる。
【0110】
また、情報処理装置において、制御部は、予め決められた初期値に基づいて制御対象装置の位置を推定する第1推定部(上記において説明した例では、第1推定部363)と、第1物体装置間相対位置情報と、第2物体装置間相対位置情報との少なくとも一方を物体装置間相対位置情報として取得する取得部(上記において説明した例では、取得部365)と、記憶部に記憶されたレイアウト拘束条件情報と、取得部により取得された物体装置間相対位置情報と、第1推定部により推定された制御対象装置の位置とに基づいて、空間内の地図を示す地図情報を生成する生成部(上記において説明した例では、生成部366)と、を備える、構成が用いられてもよい。
【0111】
また、情報処理装置は、制御部は、第1物体と第2物体との少なくとも一方を検出する検出部(上記において説明した例では、検出部20)からの出力に基づいて、第1物体と制御対象装置との相対的な位置と、第2物体と制御対象装置との相対的な位置との少なくとも一方を推定する第2推定部(上記において説明した例では、第2推定部364)を更に備え、取得部は、第1物体と制御対象装置との相対的な位置と、第2物体と制御対象装置との相対的な位置との少なくとも一方を示す情報を、物体装置間相対位置情報として第2推定部から取得する、構成が用いられてもよい。
【0112】
また、情報処理装置では、生成部は、Graph-SLAMに基づいて、地図情報を生成する、構成が用いられてもよい。
【0113】
また、情報処理装置では、生成部は、取得部により取得された物体装置間相対位置情報と、記憶部により記憶されたレイアウト拘束条件情報と、第1推定部により推定された制御対象装置の位置とに基づいて、Graph-SLAMにおける情報行列及び情報ベクトルを生成し、生成した情報行列及び情報ベクトルに基づく評価関数の最適化を行うことにより、地図情報を生成する、構成が用いられてもよい。
【0114】
また、情報処理装置では、生成部は、取得部により取得された物体装置間相対位置情報と、記憶部により記憶されたレイアウト拘束条件情報と、第1推定部により推定された制御対象装置の位置とに基づいて、第1物体及び第2物体それぞれの位置を推定し、推定した第1物体及び第2物体それぞれの位置に基づいて、情報行列及び情報ベクトルを生成する、構成が用いられてもよい。
【0115】
また、情報処理装置では、生成部は、第1物体装置間相対位置情報と第2物体装置間相対位置情報との両方が物体装置間相対位置情報として取得部により取得された場合、第1推定部により推定された制御対象装置の位置と、取得部により取得された物体装置間相対位置情報と、記憶部により記憶されたレイアウト拘束条件情報とに基づいて、第1物体の位置を第1推定位置として推定するとともに第2物体の位置を第2推定位置として推定し、且つ、第1推定部により推定された制御対象装置の位置と、取得部により取得された物体装置間相対位置情報とに基づいて、第1物体の位置を第3推定位置として推定するとともに第2物体の位置を第4推定位置として推定し、第1推定位置を示すベクトルと第3推定位置を示すベクトルとの差を第1差分として算出するとともに、第2推定位置を示すベクトルと第4推定位置を示すベクトルとの差を第2差分として算出し、第1差分と、第1物体の位置についての推定誤差と、第2差分と、第2物体の位置についての推定誤差とに基づいて、情報行列が有する要素のうちレイアウト拘束条件情報に応じて決められた要素の繋がりを削除する、構成が用いられてもよい。
【0116】
また、情報処理装置では、制御対象装置は、制御対象装置の位置及び姿勢の少なくとも一方を変化させることができる移動体である、構成が用いられてもよい。
【0117】
また、以上のように、実施形態に係る情報処理装置(上記において説明した例では、情報処理装置30)は、制御対象となる制御対象装置(上記において説明した例では、制御対象装置10)を制御する情報処理装置であって、制御対象装置が位置する空間(上記において説明した例では、対象空間R)内に配置された第1物体(上記において説明した例では、例えば、物体M1)と、空間内に配置された第1物体と異なる第2物体(上記において説明した例では、例えば、物体M2)との相対的な姿勢を示す情報を含むレイアウト拘束条件情報を記憶する記憶部(上記において説明した例では、記憶部32)と、制御対象装置の姿勢と、第1物体と制御対象装置との相対的な姿勢を示す第1物体装置間相対姿勢情報と、第2物体と制御対象装置との相対的な姿勢を示す第2物体装置間相対姿勢情報との少なくとも一方と、記憶部に記憶されたレイアウト拘束条件情報とに基づいて、空間内の地図を示す地図情報を生成する制御部(上記において説明した例では、制御部36)と、を備える。これにより、情報処理装置は、制御対象装置が位置する空間内における複数の物体の配置が初期配置から変更されていたとしても、当該空間内の地図を示す地図情報を精度よく生成することができる。
【0118】
また、情報処理装置において、制御部は、予め決められた初期値に基づいて制御対象装置の姿勢を推定する第1推定部(上記において説明した例では、第1推定部363)と、第1物体装置間相対姿勢情報と、第2物体装置間相対姿勢情報との少なくとも一方を物体装置間相対姿勢情報として取得する取得部(上記において説明した例では、取得部365)と、記憶部に記憶されたレイアウト拘束条件情報と、取得部により取得された物体装置間相対姿勢情報と、第1推定部により推定された制御対象装置の姿勢とに基づいて、空間内の地図を示す地図情報を生成する生成部(上記において説明した例では、生成部366)と、を備える、構成が用いられてもよい。
【0119】
また、情報処理装置は、制御部は、第1物体と第2物体との少なくとも一方を検出する検出部(上記において説明した例では、検出部20)からの出力に基づいて、第1物体と制御対象装置との相対的な姿勢と、第2物体と制御対象装置との相対的な姿勢との少なくとも一方を推定する第2推定部(上記において説明した例では、第2推定部364)を更に備え、取得部は、第1物体と制御対象装置との相対的な姿勢と、第2物体と制御対象装置との相対的な姿勢との少なくとも一方を示す情報を、物体装置間相対姿勢情報として第2推定部から取得する、構成が用いられてもよい。
【0120】
また、情報処理装置では、生成部は、Graph-SLAMに基づいて、地図情報を生成する、構成が用いられてもよい。
【0121】
また、情報処理装置では、生成部は、取得部により取得された物体装置間相対姿勢情報と、記憶部により記憶されたレイアウト拘束条件情報と、第1推定部により推定された制御対象装置の姿勢とに基づいて、Graph-SLAMにおける情報行列及び情報ベクトルを生成し、生成した情報行列及び情報ベクトルに基づく評価関数の最適化を行うことにより、地図情報を生成する、構成が用いられてもよい。
【0122】
また、情報処理装置では、生成部は、取得部により取得された物体装置間相対姿勢情報と、記憶部により記憶されたレイアウト拘束条件情報と、第1推定部により推定された制御対象装置の姿勢とに基づいて、第1物体及び第2物体それぞれの姿勢を推定し、推定した第1物体及び第2物体それぞれの姿勢に基づいて、情報行列及び情報ベクトルを生成する、構成が用いられてもよい。
【0123】
また、情報処理装置では、生成部は、第1物体装置間相対姿勢情報と第2物体装置間相対姿勢情報との両方が物体装置間相対姿勢情報として取得部により取得された場合、第1推定部により推定された制御対象装置の姿勢と、取得部により取得された物体装置間相対姿勢情報と、記憶部により記憶されたレイアウト拘束条件情報とに基づいて、第1物体の姿勢を第1推定姿勢として推定するとともに第2物体の姿勢を第2推定姿勢として推定し、且つ、第1推定部により推定された制御対象装置の姿勢と、取得部により取得された物体装置間相対姿勢情報とに基づいて、第1物体の姿勢を第3推定姿勢として推定するとともに第2物体の姿勢を第4推定姿勢として推定し、第1推定姿勢を示すベクトルと第3推定姿勢を示すベクトルとの差を第1差分として算出するとともに、第2推定姿勢を示すベクトルと第4推定姿勢を示すベクトルとの差を第2差分として算出し、第1差分と、第1物体の姿勢についての推定誤差と、第2差分と、第2物体の姿勢についての推定誤差とに基づいて、情報行列が有する要素のうちレイアウト拘束条件情報に応じて決められた要素の繋がりを削除する、構成が用いられてもよい。
【0124】
また、情報処理装置では、制御対象装置は、制御対象装置の位置及び姿勢の少なくとも一方を変化させることができる移動体である、構成が用いられてもよい。
【0125】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【0126】
また、以上に説明した装置(例えば、制御対象装置10、検出部20、情報処理装置30等)における任意の構成部の機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録し、そのプログラムをコンピュータシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disk)-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピュータシステム内部の揮発性メモリー(RAM(Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
【0127】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0128】
1…制御システム、10…制御対象装置、20…検出部、30…情報処理装置、31…CPU、32…記憶部、33…入力受付部、34…通信部、35…表示部、36…制御部、361…撮像制御部、362…画像取得部、363…第1推定部、364…第2推定部、365…取得部、366…生成部、367…移動体制御部、MKR、MKR1、MKR2、MKR3、MKR4…マーカー、R…対象空間