(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023125675
(43)【公開日】2023-09-07
(54)【発明の名称】位置推定装置
(51)【国際特許分類】
G01B 11/00 20060101AFI20230831BHJP
G06T 7/70 20170101ALI20230831BHJP
【FI】
G01B11/00 H
G01B11/00 B
G06T7/70 Z
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022029914
(22)【出願日】2022-02-28
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り ・ウェブサイトのアドレス https://www.youtube.com/watch?v=J3p6wuFzX40 掲載日 令和3年9月10日 公開者 中野 可也
(71)【出願人】
【識別番号】000191009
【氏名又は名称】新東工業株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】中野 可也
【テーマコード(参考)】
2F065
5L096
【Fターム(参考)】
2F065AA04
2F065AA06
2F065AA17
2F065BB28
2F065DD03
2F065FF04
2F065FF11
2F065FF41
2F065FF61
2F065GG04
2F065JJ03
2F065JJ26
2F065QQ24
2F065QQ28
2F065QQ31
2F065UU05
5L096BA05
5L096CA02
5L096FA66
5L096FA67
5L096FA69
(57)【要約】
【課題】マーカが付された対象物の位置を推定する精度の向上を図る位置推定装置を提供する。
【解決手段】対象物(O)の位置を推定する位置推定装置(20)であって、第1の測定装置(10)からの、マーカ(M)の詳細画像及び深度画像から、マーカ(M)の4隅の位置情報のうちの2つ以上の位置情報及びマーカ(M)の深度情報を特定することでマーカ(M)を検出し、2つ以上の位置情報からマーカ(M)の第1の測定装置に対するベクトル情報である並進情報及び回転情報を算出することで検出されたマーカ(M)の位置を推定し、並進情報から第1の測定装置とマーカ(M)との平面距離を算出し、回転情報から第1の測定装置に対するマーカ(M)の方位を算出し、マーカ(M)の深度情報から奥行における距離である深度距離を算出する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
プロセッサと第1のメモリとを備え、対象物の位置を推定する位置推定装置であって、
前記プロセッサは、前記第1のメモリに展開されたプログラムによって、詳細画像を撮像する第1の撮像器と深度画像を撮像する第1の深度測定器とを備える第1の測定装置からの同期された前記詳細画像及び前記深度画像を処理し、
同期された前記詳細画像及び前記深度画像には前記対象物に付された所定の条件を満たすマーカが撮像され、
前記詳細画像から前記マーカの4隅の位置情報のうちの2つ以上の位置情報及び前記マーカの深度情報を特定することで前記マーカを検出するマーカ検出ステップと、
前記マーカの4隅の位置情報のうちの2つ以上の位置情報から前記マーカの前記第1の測定装置に対するベクトル情報である並進情報及び回転情報を算出することで検出された前記マーカの位置を推定するマーカ位置推定ステップと、
前記並進情報から前記第1の測定装置と前記マーカとの平面における距離である平面距離を算出する平面位置算出ステップと、
前記回転情報から前記第1の測定装置に対する前記マーカの方位を算出する方位算出ステップと、
前記マーカの前記深度情報から奥行における距離である深度距離を算出する中心深度算出ステップと、を有するフレーム関連処理、
を実行する、位置推定装置。
【請求項2】
前記プロセッサは、
フレーム関連処理によって出力される前記平面距離より算出される平面座標及び前記深度距離より算出される深度座標から構成される出力情報が所定の条件を満たす場合、正常出力情報とし、
所定数以上の正常出力情報の平均を平均正常出力情報として、出力する、
請求項1に記載の位置推定装置。
【請求項3】
前記プロセッサは、
前記第1の測定装置及び第2の測定装置に同期設定指示を行い、前記第1の測定装置及び前記第2の測定装置に対してそれぞれ順に前記フレーム関連処理を実行する、
請求項1に記載の位置推定装置。
【請求項4】
前記所定の条件を満たすマーカは、中央に表示される表示パターンが5×5~7×7マスであって、2値で表され、1000個までとする、
請求項1に記載の位置推定装置。
【請求項5】
前記フレーム関連処理によって出力される前記平面距離より算出される平面座標及び前記深度距離より算出される深度座標から構成される出力座標は、表示画面において、前記対象物の近傍に表示される、
請求項1に記載の位置推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、位置推定装置に関する。
【背景技術】
【0002】
例えば、特許文献1には、撮像手段によって撮像された撮像画面からマーカを検出し、検出されたマーカに基づいて位置情報を取得する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開WO2020/013337号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このように取得された位置情報に基づいて、例えば、ロボットに対象物を把持させる場合、ロボットが把持可能な位置を高精度で推定する必要がある。しかしながら、上述のような従来技術では取得された位置の精度が、例えば、ロボットに対象物を把持させるために使用する位置の精度などとしては、十分でない場合がある。
【0005】
本発明の一態様は、推定する位置の精度向上を図った位置推定装置を実現することを目的とする。
【課題を解決するための手段】
【0006】
プロセッサと第1のメモリとを備え、対象物の位置を推定する位置推定装置であって、プロセッサは、第1のメモリに展開されたプログラムによって、詳細画像を撮像する第1の撮像器と深度画像を撮像する第1の深度測定器とを備える第1の測定装置からのフレーム関連に同期された詳細画像及び深度画像を処理し、同期された詳細画像及び深度画像には対象物に付されたマーカが撮像され、詳細画像からマーカの4隅の位置情報のうちの2つ以上の位置情報及びマーカの深度情報を特定することでマーカを検出するマーカ検出ステップと、マーカの4隅の位置情報のうちの2つ以上の位置情報からマーカの第1の測定装置に対するベクトル情報である並進情報及び回転情報を算出することで検出されたマーカの位置を推定するマーカ位置推定ステップと、並進情報から第1の測定装置とマーカとの平面における距離である平面距離を算出する平面位置算出ステップと、回転情報から第1の測定装置に対するマーカの方位を算出する方位算出ステップと、マーカの深度情報から奥行における距離である深度距離を算出する中心深度算出ステップと、を有するフレーム関連処理、を実行する、位置推定装置を提供する。
【発明の効果】
【0007】
本発明の一態様によれば、マーカが付された対象物の位置を推定する精度の向上を図る位置推定装置を実現できる。
【図面の簡単な説明】
【0008】
【
図1】本実施の形態に係る位置推定システムの構成を表すハードウェアブロック図である。
【
図2】本実施の形態に係るマーカの一例を表す図である。
【
図3】位置推定処理の一例を表すフローチャートである。
【
図4】位置推定処理の各ステップをブロックとして表したソフトウェアブロック図である。
【
図6】平均化処理の一例を表すフローチャートである。
【
図7】測定装置を複数備える場合の位置推定システムを表す概略図である。
【
図8】測定装置を複数備える場合の位置推定処理の一例を表すフローチャートである。
【発明を実施するための形態】
【0009】
(本実施の形態)
以下、本発明の一実施の形態について、詳細に説明する。
図1は、本実施の形態に係る位置推定システムを表すブロック図である。位置推定システムは、測定装置10、位置推定装置20及び出力装置30を有する。測定装置10は、例えば、後述の測定装置10a(以下、これを第1の測定装置と呼んでもよい)とする。
【0010】
測定装置10は、撮像器11、深度測定器12、プロセッサ13、メモリ14、入出力インタフェース15及びバス16を有し、マーカMの例えば詳細画像及び深度画像を取得する。撮像器11、深度測定器12、プロセッサ13、メモリ14、入出力インタフェース15は、バス16を介して相互に接続されている。特に注記がない場合マーカMは1つとする。
【0011】
撮像器11は、例えば、イメージセンサ、より具体的には、CMOSカメラであり、マーカMからの反射光L0に基づき、マーカMの詳細画像を撮像する。深度測定器12は、例えば、深度センサ、より具体的には、ToF(Time of Flight)であり、マーカMの深度画像を測定する。測定装置10は、例えば、解像度がw1280h720である、Intel社のLiDARである、REALSENSEL515とする。
【0012】
詳細画像は主に画像における平面の情報である平面情報を表すが画像における奥行を示す深度情報も輝度などとして含むものとし、深度画像は主に深度情報を表すが平面情報も含むものとする。
【0013】
深度情報は、具体的には、マーカMと測定装置10(深度測定器12)との間の距離の分布(三次元的な距離)を表し、深度測定器12から見た、マーカMの三次元的な形状に対応する。
【0014】
深度測定器12は、例えば、電磁波Lr(ビーコン、例えば、レーザー光)を照射し、マーカMで反射された電磁波Lrに基づいて、測定装置10(深度測定器12)とマーカMの距離の分布を測定する。すなわち、測定装置10(深度測定器12)は、マーカMに電磁波Lrを照射して、マーカMから反射された電磁波Lrに基づいて、深度情報を導出する。
【0015】
メモリ14には、プログラムP1が例えば不揮発性の記憶として格納されている。プロセッサ13は、プログラムP1に含まれる命令に従って、マーカMの平面画像及び深度情報の取得に係る処理を実行する。
【0016】
プロセッサ13は、撮像器11及び深度測定器12から詳細画像及び深度画像を取得し、詳細画像及び深度画像を同期させ、例えば、1フレーム毎に入出力インタフェース15を介して、位置推定装置20に出力する。
【0017】
例えば、測定装置10では、1/60秒や1/30秒といった所定時間毎に1フレーム毎の処理が行われる。なお別フレーム間の詳細画像と深度画像とを同期してもよいものとする。
【0018】
ここで、平面情報及び深度情報は、測定時座標で表すことができる。測定時座標は、測定装置10を基準とするXYZ座標とする。そのZ軸は、測定装置10からマーカMに向かう方向の軸であり、XY平面は、Z軸に垂直な平面である。
【0019】
ここで、プロセッサ13は、次の画角の調整及び深度情報の補完を行ってもよい。画角調整は、撮像器11と深度測定器12との画角が一致するように調整(align)することを意味する。
【0020】
すなわち、詳細画像と深度画像の範囲(画角)、または解像度が異なる場合に、範囲または解像度の調整がなされる。これにより、詳細画像と、深度画像とを対応させることができる。具体的には、平面情報と平面情報の場所での深度情報との対応関係を明確化できる。
【0021】
深度情報の補完は、マーカMの一部での反射不良などによって、深度情報の一部が欠落する場合に、深度情報を補完することを意味する。すなわち、深度情報が欠落した箇所の周りの深度情報から補完したり、この箇所付近の深度情報を平滑化したりすることで、深度情報が補完される。
【0022】
プロセッサ13は、例えば、CPU(Central Processing Unit)とする。また、メモリ14は、例えば、ROM(Read Only Memory)やRAM(Random Access Memory)とする。
【0023】
また、入出力インタフェース15は、例えば、PCI(Peripheral Component Interconnect)インタフェースとする。入出力インタフェース15には、位置推定装置20が接続される。
【0024】
位置推定装置20は、対象物Oの位置を推定する装置であって、例えば、汎用コンピュータを用いて実現されており、
図1に示すように、プロセッサ21と、第1のメモリ(一次メモリと呼んでもよい)22と、第2のメモリ(二次メモリと呼んでもよい)23と、入出力インタフェース24と、バス25とを備えている。プロセッサ21、第1のメモリ22、第2のメモリ23、及び入出力インタフェース24は、バス25を介して相互に接続されている。
【0025】
第2のメモリ23には、プログラムP2及びテーブルTが例えば不揮発性の記憶として格納されている。プロセッサ21は、第2のメモリ23に格納されているプログラムP2を第1のメモリ22上に展開する。
【0026】
プロセッサ21は、第1のメモリ22上に展開されたプログラムP1に含まれる命令に従って、位置推定処理として、測定装置10の、例えば、1フレーム毎の処理に対応して行われる1フレーム毎の処理である後述するフレーム関連処理S10を実行する。広義にはフレーム関連処理S10には測定装置10のフレームに関連する処理も含めてよいものとする。
【0027】
テーブルTとして、位置推定に用いるための、サイズ、中央に表示される表示パターン(以下、これを単に表示パターンと呼んでもよい)の情報などが保持される。テーブルTとしてさらにマーカMのID(マーカID)が保持されてもよい。
【0028】
例えば、マーカIDは、後述の、対象物Oの名称や対象物Oに関しての注釈(例えば対象物Oの消費期限)などの組み合わせの情報と1対1で結び付けられ、テーブルTとして保存される。
【0029】
入出力インタフェース24には、測定装置10及び出力装置30が接続される。なおテーブルTは、表示パターンを枠である黒のマスまで含めて保持していてもよいものとする。
【0030】
プロセッサ21は、例えば、CPUとする。また、第1のメモリ22は、例えば揮発性のメモリであって、例えば、RAM(Random Access Memory)とする。また、第2のメモリ23は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)とする。また、入出力インタフェース24は、例えば、PCIインタフェースとする。
【0031】
出力装置30は、例えば、後述のロボットアームA、画像表示装置B、音声出力装置であり、位置推定装置20によって、制御される。なお例えば、位置推定装置20は、測定装置10を含んでもよく、プロセッサ21はプロセッサ13を、第1のメモリ22や第2のメモリ23はメモリ14を、含んでもよい。
【0032】
図2は、本実施の形態に係るマーカMの一例を表す図である。マーカMは、例えば所定の条件を満たすものとし、例えば、ARマーカ(一例として、ArUcoマーカ)であり、対象物Oに付して用いられる。マーカMは、2値で表され、例えば、複数の白または黒のマスが縦横、2次元に配置される。
【0033】
ここでは、表示パターンである7×7のマスが、マーカMの実体であり、マーカMを識別するための辞書データとして機能する。ここでは、7×7のマスの周りに、枠として、黒のマスが配置され、見かけ上、マーカMは、9×9のマスから構成される。
【0034】
マーカMの表示パターンは、回転非対称性を有し、マーカMの方位(姿勢、例えば、ロール角φ、ピッチ角θ、ヨー角ψ)の算出に用いることができる。マーカMにはエラー耐性を示すハミング距離があり、最小のハミング距離である最小ハミング距離はより大きいことが望ましい。
【0035】
表示パターンは、7×7のマスには限定されず、例えば、5×5~7×7のマスであってもよい。またマーカMは、例えば、サイズは、一辺が3~100mmである正方形であり、2値で表されることが好ましいが、形状は正方形でもなくてもよく、例えば、縦横比が1:2や2:1などでもよい。このようにマーカMはサイズや表示パターンにおいて所定の条件を満たすものとする。
【0036】
また、例えば、マーカMと測定装置10との距離は20cm~9mであることが好ましく、識別可能なマーカMは1000個までが好ましいものとする。このため位置推定装置20は同時に最大で1000個のマーカMの位置を推定することが可能となり、1000個の対象物Oを認識することが可能となる。
【0037】
なおマーカMが鮮明に取得できているかは、詳細画像に撮像されたマーカMに対して、例えば射影変換を利用して歪をただしサイズ調整をして、ラプラシアンフィルタで処理した結果の分散を算出した結果が所定の条件を満たすことで判断する。
【0038】
図3は、位置推定装置20による位置推定処理(フレーム関連処理S10)の一例を表すフローチャートである。フレーム関連処理S10は、例えば、プロセッサ21によって実行される処理であって、マーカ検出ステップS11、マーカ位置推定ステップS12、平面位置算出ステップS13、方位算出ステップS14及び中心深度算出ステップS16を有する。さらにフレーム関連処理S10は、中心座標算出ステップS15を有してもよい。
【0039】
位置推定装置20は、詳細画像を撮像する第1の撮像器11(単に撮像器11と呼んでもよい)と深度画像を撮像する第1の深度測定器12(単に深度測定器12と呼んでもよい)とを備える第1の測定装置10aからの、例えば、フレーム毎に同期された詳細画像及び深度画像を処理する。なお、例えば、同期された詳細画像及び深度画像には対象物Oに付されたマーカMが撮像される。
【0040】
プロセッサ21は、詳細画像から平面情報であるマーカMの4隅の位置情報(X1,Y1)~(X4,Y4)のうちの2つ以上の位置情報及びマーカMの深度情報を特定することでマーカMを検出する(マーカ検出ステップS11)。
【0041】
なおマーカMの4隅の位置情報(X1,Y1)~(X4,Y4)のうちの2つ以上の位置情報とは4隅全てであってもよいし、対角線上にある2つの位置情報などであってもよい。また、マーカ検出ステップS11では、さらにマーカIDも特定されてもよいものとする。
【0042】
プロセッサ21は、マーカMの4隅の位置情報(X1,Y1)~(X4,Y4)のうちの2つ以上の位置情報からマーカMの第1の測定装置10aに対するベクトル情報である並進情報及び回転情報を算出することで検出されたマーカMの位置を推定する(マーカ位置推定ステップS12)。
【0043】
プロセッサ21は、並進情報から第1の測定装置10aとマーカMとの平面における距離である平面距離を算出する(平面位置算出ステップS13)。プロセッサ21は、回転情報から第1の測定装置に対するマーカMの方位を算出する(方位算出ステップS14)。
【0044】
プロセッサ21は、マーカMの深度情報から奥行における距離である深度距離を算出し(中心深度算出ステップS16)、フレーム関連処理S10を終了する。例えば、中心深度算出ステップS16において、プロセッサ21は、4隅のうちの2つ以上の深度情報を平均することで深度距離を算出する。
【0045】
また他の例としては、中心深度算出ステップS16において、プロセッサ21は、4隅のうちの1つの深度情報と方位とを用いて1つの深度情報を中心方向にオフセットすることで深度距離を算出する。
【0046】
なお、中心深度算出ステップS16において、プロセッサ21は、中心座標(Xc,Yc)及びマーカMの深度情報から奥行における距離である深度距離を算出してもよい。
【0047】
例えば、プロセッサ21は、マーカMの4隅の位置情報(X1,Y1)~(X4,Y4)のうちの2つ以上の位置情報から平面情報であるマーカMの平面における中心座標(Xc,Yc)を算出してもよい(中心座標算出ステップS15)。
【0048】
プロセッサ21は、フレーム関連処理S10の次に、例えば、出力装置30を制御するための出力情報を出力装置30に出力する出力処理を行う。出力情報は、例えば、平面距離より算出される平面座標及び深度距離より算出される深度座標から構成される。
【0049】
また出力処理においては、出力情報の他に、マーカIDや方位などを含む詳細出力情報が出力装置30に出力されてもよい。なお出力情報は平面情報と深度情報とを備える立体情報とする。
【0050】
なお中心座標(Xc,Yc)は、例えば、4隅全ての位置情報を使用する場合、マーカMの4隅の位置情報(X1,Y1)~(X4,Y4)から次の式(1)、(2)のように算出できる。
Xc=(X1+…+X4)/4 ……式(1)
Yc=(Y1+…+Y4)/4 ……式(2)
【0051】
なお平面位置算出ステップS13と方位算出ステップS14とは、マーカ位置推定ステップS12のあとであれば
図3の順序とは逆に実行されてもよい。また中心深度算出ステップS16は、中心座標算出ステップS15のあとであれば、例えば平面位置算出ステップS13のあとに実行されてもよい。またマーカ位置推定ステップS12と中心座標算出ステップS15とは、マーカ検出ステップS11のあとであれば
図3の順序とは逆に実行されてもよい。
【0052】
図4は、位置推定処理の各ステップをブロックとして表したソフトウェアブロック図である。具体的には、例えば、マーカ検出ステップS11はマーカ検出部211が実行し、マーカ位置推定ステップS12はマーカ位置推定部212が実行し、平面位置算出ステップS13は平面位置算出部213が実行する。
【0053】
また、例えば、方位算出ステップS14は方位算出部216が実行し、中心座標算出ステップS15は中心座標算出部214が実行し、中心深度算出ステップS16は中心深度算出部215が実行し、出力処理は出力処理部217が実行する。
【0054】
なお、例えば、測定装置10においては、詳細画像取得部131は、撮像器11から詳細画像を取得する詳細画像取得ステップを実行し、深度画像取得部132は、深度測定器12から深度画像を取得する深度画像取得ステップを実行する。また、同期処理部133は、例えば、フレーム毎に同期された詳細画像及び深度画像を同期する同期ステップを実行する。
【0055】
例えば詳細画像取得部131や深度画像取得部132や同期処理部133やマーカ検出部211やマーカ位置推定部212や平面位置算出部213や中心座標算出部214や中心深度算出部215や方位算出部216や出力処理部217などの各部は、プログラムP1,P2に保存されているそれぞれのモージュール(関数)であってもよいし、FPGA(Field Programmable Gate Array)のような論理回路によってそれぞれ実装されてもよい。なお各部のうちの一部のみFPGAなどであってもよいものとする。
【0056】
図5は、位置推定処理のシーケンス図であって、位置推定処理における各ステップにおける深度画像や詳細画像やマーカMの4隅の位置情報(X1,Y1)~(X4,Y4)のうちの2つ以上の位置情報や深度情報や並進情報や回転情報や平面距離や深度距離や出力情報や、マーカIDや方位などの情報の流れの一例を示している。
【0057】
以上のように、位置推定装置20は、撮像器11から取得する詳細画像をもととする平面距離と深度測定器12から取得する深度画像をもととする深度距離とを組み合わせる。また位置推定装置20は、対象物Oに付された、所定の条件を満たすマーカMを認識することで対象物Oの位置を推定する。このことで、本実施の形態における位置推定装置20は、精度高く対象物Oの位置を推定することができる。
【0058】
マーカMが満たす所定の条件とは、例えば、サイズが一辺3~100mmであったり、表示パターンが5×5~7×7のマスであり回転非対称性を有することであったりするという条件とする。
【0059】
図6は、平均化処理の一例を表すフローチャートである。プロセッサ21は、フレーム関連処理S10の結果として出力される出力情報(詳細出力情報)が所定の条件を満たす場合、正常出力情報(正常詳細出力情報)とし、所定数以上の正常出力情報(正常詳細出力情報)の平均を平均正常出力情報(平均正常詳細出力情報)として出力する、平均値算出処理S20を実行してもよい。
【0060】
出力情報が満たす所定の条件とは、例えば、出力情報に関する標準偏差に対して所定の範囲内に収まることなどを指す。例えば平均値算出処理S20(フレーム関連処理S10以外)は出力処理部217によって実行される。
【0061】
具体的には、平均値算出処理S20において、プロセッサ21は、フレーム関連処理S10を実行する。プロセッサ21は、フレーム関連処理S10などの結果として出力される出力情報が所定の条件を満たし、異常値でないか否かを判定する(S21)。
【0062】
出力情報が異常値と判定した場合(S21:NO)、プロセッサ21は、フレーム関連処理S10を実行する。出力情報が異常値でなく、所定の条件を満たし、正常値と判定した場合(S21:YES)、プロセッサ21は、正常値を正常出力情報として、例えば第1のメモリ22に保存する(S22)。
【0063】
プロセッサ21は、第1のメモリ22に所定数以上の正常出力情報が保存されているか否かを判定する(S23)。所定数以上が保存されていると判定した場合(S23:YES)、プロセッサ21は、例えば、正常出力情報の平均である平均正常出力情報を出力して、平均値算出処理S20を終了させる。なおプロセッサ21は、第1のメモリ22に保存した正常出力情報を、例えば、FIFO(First In, First Out)の形式で扱う。
【0064】
所定数以上が保存されていないと判定した場合(S23:NO)、プロセッサ21は、再びフレーム関連処理S10を実行する。以上のように、位置推定装置20は、平均値算出処理S20を実行する場合、異常値を除外することが可能となり、位置推定の精度をより高めることができる。
【0065】
図7は、測定装置10を複数備える場合の位置推定システムを表す概略図である。位置推定装置20が、例えば、第1の測定装置10a、第2の測定装置10bのような複数の測定装置10に接続され、複数のマーカM(マーカMa、マーカMb)が配置されている場合について説明する。
【0066】
測定装置10aは、マーカMaを検出できるが、マーカMbを検出できない。マーカMbは、測定装置10aから見ると、ロボットアームAの陰に配置されるようになるためである。一方、測定装置10bは、マーカMa、マーカMbの双方を検出できる。
【0067】
なお、例えば、アーム本体31と吸着ハンド32とを備えるロボットアームAは、位置推定装置20からの出力情報などに基づいて、アーム本体31を動かし、対象物Oを吸着ハンド32によって吸着する装置とする。
【0068】
またロボットアームAのような出力装置30に限らず、位置推定装置20とは情報をやり取りしない建物の柱のような構造物がマーカMbを検出できない原因となっている場合についても同様とする。
【0069】
複数の測定装置10(深度測定器12)での電磁波Lrが互いの測定を阻害することを防止するために、位置推定装置20は、
図8に示すような複数測定装置対応処理S30を実行することが好ましい。例えば複数測定装置対応処理S30(フレーム関連処理S10以外)は出力処理部217によって実行される。
【0070】
複数測定装置対応処理S30を実行せず、通常のフレーム関連処理S10を並列して実行した場合、例えば、第1の測定装置10a(深度測定器12)は、意図しない第2の測定装置10bからの電磁波Lrによる測定をしてしまい、意図せず連続して測定を行ってしまう可能性がある。
【0071】
複数測定装置対応処理S30において、位置推定装置20からの指示に応じて、測定装置10(深度測定器12)が、シャッターのように電磁波Lrの照射のON/OFFを切り替える。
【0072】
複数測定装置対応処理S30においては、測定装置10を1つだけ使う場合とは異なり1フレームの処理時間は固定ではなく可変となる。具体的には、複数測定装置対応処理S30においては、1つの測定装置10の1フレームの処理が終わると他の測定装置10の1フレームの処理を開始するような処理を位置推定装置20は行う。
【0073】
図8は、測定装置を複数備える場合の位置推定処理である複数測定装置対応処理S30の一例を表すフローチャートである。複数測定装置対応処理S30において、プロセッサ21は、第1の測定装置10a及び第2の測定装置10bに同期設定指示を行い、第1の測定装置10a及び第2の測定装置10bに対してそれぞれ順にフレーム関連処理S10を実行する。
【0074】
複数測定装置対応処理S30において、プロセッサ21は、フレーム関連処理S10の代わりに平均値算出処理S20を実行してもよいものとする。また、例えば、複数測定装置対応処理S30は、位置推定装置20に複数の測定装置10が接続されると開始される。
【0075】
具体的には、複数測定装置対応処理S30において、プロセッサ21は、同期設定指示を測定装置10に送信する(S31)。プロセッサ21は、位置推定装置20に登録されている全ての測定装置10への同期設定指示を送信したか否かを判定する(S32)。
【0076】
位置推定装置20に登録されている全ての測定装置10への同期設定指示を送信していないと判定した場合(S32:NO)、プロセッサ21はステップS31を実行する。なお位置推定装置20に登録されているか否かの登録情報は、例えば、第2のメモリ23のテーブルTに保存されているものとする。
【0077】
位置推定装置20に登録されている全ての測定装置10への同期設定指示を送信したと判定した場合(S32:YES)、プロセッサ21は、制御開始指示を測定装置10に送信する(S33)。プロセッサ21は、制御開始指示を送信した測定装置10に関するフレーム関連処理S10を実行する。
【0078】
プロセッサ21は、位置推定装置20に登録されている全ての測定装置10に制御開始指示を送信したか否かを判定する(S34)。位置推定装置20に登録されている全ての測定装置10に制御開始指示を送信していないと判定した場合(S34:NO)、プロセッサ21はステップS33を実行する。
【0079】
位置推定装置20に登録されている全ての測定装置10に制御開始指示を送信したと判定した場合(S34:YES)、プロセッサ21は、例えば、それぞれの測定装置10に関する出力情報を出力して、複数測定装置対応処理S30を終了させる。
【0080】
以上のように、位置推定装置20は、複数測定装置対応処理S30を実行する場合、測定装置10a、10bそれぞれから取得する情報において、例えば、異常値を弾いたり、よりマーカMに近い測定装置10aからの情報を取得したりなどの選択をしたり、平均をとったりすることが可能となる。
【0081】
このため、位置推定装置20は、位置を推定できない領域である死角を少なくすることができ、より精度高く対象物Oの位置を推定することが可能となる。なお前述の調整や補完は第1の測定装置10a及び第2の測定装置10bをまたいで行われてもよい。
【0082】
また、複数測定装置対応処理S30において、電磁波Lrの照射のON/OFFに合わせて、それぞれの測定装置10において、詳細画像及び深度画像が撮像される。複数の測定装置10(深度測定器12)からの電磁波Lrの照射のタイミングを異ならせることによって、複数の測定装置10(深度測定器12)による意図しない測定のない測定が可能となる。例えば、意図しない測定とは、干渉(深度画像に波紋のようなノイズがのってしまい、そもそも測定が正常にできていない状態)が起きている状態での測定を指す。
【0083】
図9は、出力装置30である、例えば、ディスプレイのような、画像表示装置Bにおける表示画面を表す図である。フレーム関連処理S10などによって出力される前記平面距離より算出される平面座標及び前記深度距離より算出される深度座標から構成される出力情報及び方位は、表示画面において、対象物Oの近傍に表示される。マーカIDも表示画面において、対象物Oの近傍に表示されてもよい。
【0084】
なお対象物Oの名称や対象物Oに関しての注釈(例えば対象物Oの消費期限)などが詳細出力情報などとして表示されてもよいものとする。対象物Oは、例えば、コンビニなどの小売店の販売用の棚に商品として配置されたサンドイッチなどとする。対象物Oには、複数のマーカM(マーカMa,Mb,Mc)が張りつけられている。
【0085】
表示画面には、第1の測定装置10a及び第2の測定装置10bのうちの少なくとも1つが撮像した詳細画像と、マーカMに対する出力情報や詳細出力情報、が重畳して表される。
【0086】
なお表示画面にはロボットアームAや測定装置10が撮像されていてもよいものとする。また表示画面は位置推定装置20から送信される情報を経時的に反映するものとしてもよい。
【0087】
サンドイッチ(対象物O)に付されたマーカM(Ma,Mb,Mc)は、それぞれの脇に、マーカ情報が示される。例えば、マーカMは、サンドイッチのパッケージの撮像されているそれぞれの面に付される。マーカM(対象物O)の近傍にマーカMに対する出力情報や詳細出力情報、が重畳して表される。なお、マーカMは、マスや輪郭などが強調して表示されてもよい。
【0088】
例えば、表示画面において、出力情報はX,Y,Z座標がそれぞれ何ミリメートル(mm)かが表示され、対象物Oの名称は英字で表示され、対象物Oの消費期限は英字と数字などで表示される。例えば、表示画面において、マーカIDは数字で表示され、方位はロール角φ、ピッチ角θ、ヨー角ψが、何度(deg)かが表示される。
【0089】
以上のように、本実施の形態における位置推定装置20において表示画面が表示される場合、どのような情報が取得されているかが視認できるため、位置推定装置20の使用者は、位置推定装置20や測定装置10の調整や変更などがしやすくなる。
【0090】
本発明は上述した各実施の形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施の形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施の形態についても本発明の技術的範囲に含まれる。
【0091】
例えば、マーカMは、ARマーカに限らず、2次元コードや、バーコードのような1次元コードや、例えば写真のようなものであっても良いし、2値ではなく、3以上の複数の色によって表されてもよいものとする。
【0092】
また、対象物Oは、形状などが一定で複数パターンの識別がしやすい、回転非対称性を有し方位が算出できる、といったような一定の条件を満たす場合は、マーカMは対象物Oそのものであってもよい。なお測定装置10は3つ以上であってもよいものとする。
【0093】
なお、出力装置30としてスピーカなどの音声出力装置が位置推定装置20に接続されてもよい。例えば、ロボットアームAが目標のマーカMに近づいたときに、出力装置30は、ロボットアームAが対象物Oを吸着する予告としての予告音を出力してもよい。
【0094】
出力装置30から出力される予告音は、例えば、ロボットアームAと対象物O(マーカM)との距離によって、音高や音量が変わってもよい。具体的には、出力装置30から出力される予告音は、ロボットアームAと対象物Oとの距離が近づくにつれ、音量が大きくなったり、音高が高くなったりしてもよい。
【0095】
なお、複数のマーカMa,Mb,Mcに対しての処理を行う場合、位置推定装置20は、それぞれの複数のマーカMa,Mb,Mcに対して、1つずつ順に処理を行うものとする。
【0096】
複数のマーカMa,Mb,Mcが1つの対象物Oに付されている場合、位置推定装置20は、1000個以上の対象物Oを、認識することが可能となる。例えば、マーカIDの001から099までを位置特定用とし、マーカIDの0100から0200までを賞味期限定義用などとすることで、位置推定装置20は、1000個以上の対象物Oを、認識することが可能となる。
【0097】
また、例えば、マーカIDの004が3つの頂点を持つような対象物Oであるおにぎりの頂点1を示し、マーカIDの005がおにぎりの頂点2を示し、マーカIDの006がおにぎりの頂点3を示すような場合について考える。
【0098】
この場合、位置推定装置20は、複数のマーカIDの位置情報の中心をおにぎりの位置だと認識することが可能となる。なお、例えば、マーカMaはマーカIDが004とし、マーカMbはマーカIDが005とし、マーカMcはマーカIDが006とする。
【符号の説明】
【0099】
10……測定装置、11……撮像器、12……深度測定器、20……位置推定装置、30……出力装置、M……マーカ、O……対象物。