JP4612804B2 - Position and orientation measurement method and information processing apparatus - Google Patents

Position and orientation measurement method and information processing apparatus Download PDF

Info

Publication number
JP4612804B2
JP4612804B2 JP2004144894A JP2004144894A JP4612804B2 JP 4612804 B2 JP4612804 B2 JP 4612804B2 JP 2004144894 A JP2004144894 A JP 2004144894A JP 2004144894 A JP2004144894 A JP 2004144894A JP 4612804 B2 JP4612804 B2 JP 4612804B2
Authority
JP
Japan
Prior art keywords
orientation
value
index
posture
calculating
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.)
Expired - Fee Related
Application number
JP2004144894A
Other languages
Japanese (ja)
Other versions
JP2005326283A (en
Inventor
清秀 佐藤
晋二 内山
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 JP2004144894A priority Critical patent/JP4612804B2/en
Priority to US11/126,437 priority patent/US7467061B2/en
Priority to EP05252971.6A priority patent/EP1596332B1/en
Publication of JP2005326283A publication Critical patent/JP2005326283A/en
Application granted granted Critical
Publication of JP4612804B2 publication Critical patent/JP4612804B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Length Measuring Devices By Optical Means (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Gyroscopes (AREA)

Description

本発明は、物体の位置及び姿勢を計測するものに関する。   The present invention relates to an object that measures the position and orientation of an object.

物体の位置及び姿勢を計測する方法として、環境に磁場発生装置を固定して設置し、物体に装着した磁場検出装置によってその磁場を計測することで物体の位置及び姿勢を計測する磁気式センサが広く用いられている。しかし、磁気式センサは周辺の磁場環境の影響を大きく受けるため、鉄骨に囲まれたオフィスビル内等の環境においては、満足な計測精度を得ることができなかった(特許文献1)。   As a method for measuring the position and orientation of an object, there is a magnetic sensor that measures the position and orientation of an object by installing a magnetic field generator fixed in the environment and measuring the magnetic field by a magnetic field detection device attached to the object. Widely used. However, since the magnetic sensor is greatly affected by the surrounding magnetic field environment, satisfactory measurement accuracy cannot be obtained in an environment such as an office building surrounded by a steel frame (Patent Document 1).

一方、本出願人は、特願2003−004945号において、物体上に3点以上の指標を設置し、天井等に固定して配置した撮像装置(以下、客観視点カメラと呼ぶ)によってこれを撮影し、得られた画像から指標の画像座標を検出することで、物体の位置及び姿勢を算出することを提案している。
特開平11−136706号公報
On the other hand, in the Japanese Patent Application No. 2003-004945, the present applicant photographs this with an imaging device (hereinafter referred to as an objective viewpoint camera) in which three or more indices are set on an object and fixed on a ceiling or the like. Then, it is proposed to calculate the position and orientation of the object by detecting the image coordinates of the index from the obtained image.
JP-A-11-136706

この方法は環境に対する制約が少ないという利点を有しているが、画像上における指標間の距離(あるいは指標によって構成される凸包の面積)が不十分な場合に、期待するような性能を得ることができなかった。特に姿勢に関しては精度及び安定性の両面で非常に性能が悪く、その改善のためには、画像上における指標がなす凸包が十分に大きくなるように工夫する必要があった。しかし、指標が大写しになるように画角の狭いカメラを用いて物体を撮影すると、移動に対する計測範囲が極度に限定されてしまうという問題が発生する。また、物体上における指標の配置間隔を広く設けることである程度の改善も期待できるが、物体の大きさによってはそれを行うことが困難であった。   This method has the advantage that there are few restrictions on the environment, but when the distance between the indices on the image (or the area of the convex hull formed by the indices) is insufficient, the expected performance is obtained. I couldn't. In particular, the posture is extremely poor in terms of both accuracy and stability, and in order to improve the posture, it is necessary to devise so that the convex hull formed by the index on the image becomes sufficiently large. However, if an object is photographed using a camera with a narrow angle of view so that the index becomes a large image, there arises a problem that the measurement range for movement is extremely limited. In addition, although a certain degree of improvement can be expected by providing a wide interval between the indicators on the object, it is difficult to do so depending on the size of the object.

物体の位置姿勢を算出する情報処理装置であって、前記物体に配置された指標、固定された位置が既知である客観視点位置姿勢から撮像した撮像画像を入力する画像入力手段と、前記物体の姿勢計測値を計測する姿勢計測手段と、前記姿勢計測手段の方位ドリフト誤差補正値、前記指標の前記物体に対する位置、および前記客観視点位置を保持する保持手段と、前記姿勢計測値および前記方位ドリフト誤差補正値に基づいて、前記物体の姿勢予測値を計算する姿勢予測手段と、前記撮像画像に撮像された指標の画像座標を検出する指標検出手段と、前記姿勢予測値、前記検出された指標の画像座標、該指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、前記物体の位置姿勢を算出する位置姿勢算出手段と、前記算出された位置姿勢に基づいて、前記保持された方位ドリフト誤差補正値を更新する更新手段と、有し、前記位置姿勢算出手段が、前記物体の位置姿勢の設定値を入力する設定値入力手段と、前記検出した指標が2点以上あるか否かを判定する指標判定手段と、前記検出した指標が2点以上あると判定された場合に、前記姿勢予測値、前記設定値、前記指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、該指標の画像座標の推定値を算出する推定値算出手段と、前記検出された指標の画像座標と当該指標の画像座標の推定値との誤差を算出する誤差算出手段と、前記算出された誤差に基づいて、前記物体の位置姿勢の補正値を算出する補正値算出手段と、前記算出された補正値に基づいて、前記設定値を補正する補正手段と、を有することを特徴とする。 An information processing apparatus for calculating the position and orientation of an object, the arranged index on the object, from an objective viewpoint position and orientation are known fixed position, an image input unit for inputting a captured image captured, the Attitude measurement means for measuring an attitude measurement value of an object, an orientation drift error correction value of the attitude measurement means, a position of the index with respect to the object, and a holding means for holding the objective viewpoint position; the attitude measurement value and the Based on the azimuth drift error correction value, the posture prediction means for calculating the posture prediction value of the object, the index detection means for detecting the image coordinates of the index captured in the captured image, the posture prediction value, and the detected image coordinates of the indices, position relative to the object of the indicator, and on the basis of the objective viewpoint position and orientation, the position and orientation calculation means for calculating the position and orientation of the object, the calculated The based on the position and orientation, anda updating means for updating the azimuth drift error correction value the held, the position and orientation calculation means, set value input means for inputting a set value of the position and orientation of the object And an index determination means for determining whether or not the detected index is two or more, and when it is determined that the detected index is two or more, the posture predicted value, the set value, and the index Based on the position with respect to the object and the objective viewpoint position and orientation, estimated value calculation means for calculating an estimated value of the image coordinates of the index, image coordinates of the detected index, and estimated values of the image coordinates of the index An error calculation means for calculating the error of the object, a correction value calculation means for calculating a correction value of the position and orientation of the object based on the calculated error, and the set value based on the calculated correction value. Correction means for correcting , Characterized by having a.

本発明に係る位置姿勢計測装置によれば、画像上における指標のなす凸包が小さい場合であっても、物体の位置及び姿勢の計測を安定かつ高精度に行うことが可能となる。すなわち、同じ配置の指標を用いる場合であれば、従来手法と比べて安定した位置及び姿勢を得ることが可能であるし、指標の配置の制約が少ないので、従来手法よりも多種の物体を計測することができる。また、より広範囲をカバーする広角の客観視点カメラを用いることができるので、移動に対する計測範囲を広く保つことが可能となる。   According to the position and orientation measurement apparatus of the present invention, it is possible to stably and accurately measure the position and orientation of an object even when the convex hull formed by the index on the image is small. In other words, if the same placement index is used, it is possible to obtain a stable position and posture compared to the conventional method, and there are fewer restrictions on the placement of the index, so a wider variety of objects can be measured than the conventional method. can do. In addition, since a wide-angle objective viewpoint camera that covers a wider area can be used, it is possible to keep a wide measurement range for movement.

以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。   Hereinafter, the present invention will be described in detail according to preferred embodiments with reference to the accompanying drawings.

[第1の実施形態]
本実施形態に係る位置姿勢計測装置は、任意の計測対象物体の位置及び姿勢の計測を行う。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
[First Embodiment]
The position and orientation measurement apparatus according to the present embodiment measures the position and orientation of an arbitrary measurement target object. Hereinafter, the position and orientation measurement apparatus and the position and orientation measurement method according to the present embodiment will be described.

図1は、本実施形態における位置姿勢計測装置の構成を示している。同図に示したように、本実施形態における位置姿勢計測装置100は、客観視点カメラ180(180a,180b,180c,180d)、画像入力部160、データ記憶部170、指標検出部110、姿勢センサ140、姿勢予測部150、及び位置姿勢算出部120によって構成されており、計測対象物体130に接続されている。   FIG. 1 shows a configuration of a position / orientation measurement apparatus according to the present embodiment. As shown in the figure, the position / orientation measurement apparatus 100 according to the present embodiment includes an objective viewpoint camera 180 (180a, 180b, 180c, 180d), an image input unit 160, a data storage unit 170, an index detection unit 110, and an attitude sensor. 140, a posture prediction unit 150, and a position and posture calculation unit 120, and is connected to the measurement target object 130.

姿勢センサ140上の複数の位置には、客観視点カメラ180によって撮影するための指標として、物体座標系(計測対象物体130上の1点を原点として定義し、更に互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系)上における位置x Pkが既知である指標P(k=1,,,K)が設定されている。 At a plurality of positions on the posture sensor 140, as an index for photographing with the objective viewpoint camera 180, an object coordinate system (one point on the measurement target object 130 is defined as an origin, and three axes orthogonal to each other are defined as X An index P k (k = 1,..., K) having a known position x C Pk on the coordinate system defined as the axis, the Y axis, and the Z axis is set.

これらの指標は、位置及び姿勢を計測しようとする計測対象範囲内の各々の地点に計測対象物体130を位置させた時に、客観視点カメラ180によって取得される客観視点画像上において観測される指標の総数が常に少なくとも2個以上となるように設置されていることが望ましい。図1の例は、2個の指標P,Pが設定されており、そのうちの指標Pが客観視点カメラ180cの視野内に、指標Pが客観視点カメラ180c及び180dの視野内に含まれている状況を示している。 These indices are indices observed on the objective viewpoint image acquired by the objective viewpoint camera 180 when the measurement target object 130 is positioned at each point within the measurement target range where the position and orientation are to be measured. It is desirable that the total number is always at least 2 or more. In the example of FIG. 1, two indexes P 1 and P 2 are set, and the index P 1 is within the field of view of the objective viewpoint camera 180c, and the index P 2 is within the field of view of the objective viewpoint cameras 180c and 180d. Indicates an included situation.

なお、指標Pは、例えば、それぞれが異なる色を有する円形状のマーカによって構成してもよいし、それぞれが異なるテクスチャ特徴を有する自然特徴等の特徴点によって構成してもよい。撮影画像上における投影像の画像座標が検出可能であって、かついずれの指標であるかが識別可能であるような指標であれば、何れの形態であってもよい。また指標は故意に設定されたものであっても良いし、故意に設定されたものではない、自然形状のものを用いても良い。 The index P k may be configured by, for example, circular markers each having a different color, or may be configured by feature points such as natural features each having a different texture feature. Any form may be used as long as the image coordinates of the projected image on the photographed image can be detected and the index can be identified. The indicator may be set intentionally, or may be a natural shape that is not set intentionally.

客観視点カメラ180(180a,180b,180c,180d)は、計測対象範囲内に計測対象物体130が位置するときに、そのいずれかが計測対象物体130を撮像可能な位置に固定して配置されている。ここで、各客観視点カメラ180の世界座標系における位置及び姿勢は、データ記憶部170に既知の値として予め保持されているものとする。客観視点カメラ180が出力する画像(以下、これを客観視点画像と呼ぶ)は、画像入力部160に入力される。   The objective viewpoint camera 180 (180a, 180b, 180c, 180d) is arranged with one of the measurement target objects 130 fixed at a position where the measurement target object 130 can be imaged when the measurement target object 130 is located within the measurement target range. Yes. Here, it is assumed that the position and orientation of each objective viewpoint camera 180 in the world coordinate system are previously stored in the data storage unit 170 as known values. An image output from the objective viewpoint camera 180 (hereinafter referred to as an objective viewpoint image) is input to the image input unit 160.

画像入力部160は、客観視点画像の夫々をデジタルデータに変換し、データ記憶部170に保存する。   The image input unit 160 converts each objective viewpoint image into digital data and stores the digital data in the data storage unit 170.

姿勢センサ140は、計測対象物体130に装着されており、姿勢センサ140自身の現在の姿勢を計測して姿勢予測部150へと出力する。姿勢センサ140は、ジャイロセンサをベースとしたセンサユニットであり、例えば、株式会社トキメックのTISS−5−40や、米国InterSense社のInertiaCube2等によって構成される。これらのセンサによって計測される姿勢計測値は、真の姿勢とは異なった、誤差を有する姿勢である。ただし、これらの姿勢センサは、地球の重力方向を観測するセンサを構成要素として有しており、傾斜角方向のドリフト誤差の蓄積をキャンセルする機能を有しているので、傾斜角方向(ピッチ角及びロール角)に関してはドリフト誤差を発生しないという性質を有している。言い換えれば、方位角方向(ヨー角方向)に関しては時間の経過に伴って蓄積されるドリフト誤差を有している。   The posture sensor 140 is attached to the measurement target object 130, measures the current posture of the posture sensor 140 itself, and outputs it to the posture prediction unit 150. The attitude sensor 140 is a sensor unit based on a gyro sensor, and is configured by, for example, TISS-5-40 of Tokimec Co., Ltd., InertiaCube 2 of InterSense, USA, and the like. The posture measurement values measured by these sensors are postures having errors that are different from the true posture. However, these attitude sensors have a sensor for observing the direction of the earth's gravity as a constituent element and have a function of canceling accumulation of drift errors in the tilt angle direction. And the roll angle) have the property of not generating a drift error. In other words, the azimuth angle direction (yaw angle direction) has a drift error that accumulates with time.

姿勢予測部150は、方位ドリフト誤差補正値φをデータ記憶部170から入力し、姿勢センサ140から入力した姿勢計測値を補正して計測対象物体130の姿勢を予測し、データ記憶部170へと出力する。   The posture prediction unit 150 inputs the azimuth drift error correction value φ from the data storage unit 170, corrects the posture measurement value input from the posture sensor 140 to predict the posture of the measurement target object 130, and transfers the data to the data storage unit 170. Output.

指標検出部110は、データ記憶部170より客観視点画像を入力し、入力した画像中に撮影されている指標の画像座標を検出する。例えば、指標の各々が異なる色を有するマーカによって構成されている場合には、客観視点画像上から各々のマーカ色に対応する領域を検出し、その重心位置を指標の検出座標とする。また、指標の各々が異なるテクスチャ特徴を有する特徴点によって構成されている場合には、既知の情報として予め保持している各々の指標のテンプレート画像によるテンプレートマッチングを客観視点画像上に施すことにより、指標の位置を検出する。なお、計測対象物体130の位置の算出値(位置姿勢算出部120の出力)及び姿勢の予測値(姿勢予測部150の出力)をデータ記憶部170からさらに入力し、これらの値に基づいて画像上における指標の位置を予測し探索範囲を限定することにより、指標検出処理の計算負荷を軽減したり、指標の誤検出や誤同定を低減させたりすることが可能である。   The index detection unit 110 receives an objective viewpoint image from the data storage unit 170 and detects the image coordinates of the index captured in the input image. For example, in the case where each index is composed of markers having different colors, an area corresponding to each marker color is detected from the objective viewpoint image, and the position of the center of gravity is set as the detected coordinate of the index. In addition, when each of the indexes is configured by feature points having different texture features, by performing template matching on the template image of each index stored in advance as known information on the objective viewpoint image, Detect the position of the indicator. Note that the calculated value of the position of the measurement target object 130 (output of the position / orientation calculation unit 120) and the predicted value of the attitude (output of the posture prediction unit 150) are further input from the data storage unit 170, and an image is generated based on these values. By predicting the position of the index above and limiting the search range, it is possible to reduce the calculation load of the index detection process and to reduce the erroneous detection and identification of the index.

指標検出部110は、さらに、検出された指標の画像座標とその指標の識別子をデータ記憶部170へと出力する。以下では、客観視点カメラ180(a,b,c,d)の撮影画像に対して指標検出部110によって検出された指標を、カメラの識別子x(x=a,b,c,d)と、検出された指標の夫々に付けられた識別子m(m=1,,,M)を用いて、Pkxmと表記する。ここで、Mは夫々の客観視点画像に対して検出された指標の数を表している。また、検出された指標Pkxmの画像座標を、その画像を撮影した客観視点カメラの識別子に応じて、各々u Pkam,u Pkbm,u Pkcm,u Pkdmと表記する。また、Mを、各画像上で検出された指標の総和とする。例えば図1の場合には、M=0,M=0,M=2,M=1,M=3であり、指標の識別子kc1=1,kc2=2,kd1=2と、これらを撮影したカメラの識別子と、これらに対応する画像座標u Pkc1,u Pkc2,u Pkd1が出力される。 The index detection unit 110 further outputs the image coordinates of the detected index and the identifier of the index to the data storage unit 170. Hereinafter, the index detected by the index detection unit 110 with respect to the captured image of the objective viewpoint camera 180 (a, b, c, d) is referred to as a camera identifier x (x = a, b, c, d), The identifier m (m = 1,, M x ) attached to each of the detected indices is represented as P kxm . Here, M x represents the number of indices detected for each objective viewpoint image. In addition, the image coordinates of the detected index P kxm are expressed as u a Pkam , u b Pkbm , u c Pkcm , and u d Pkdm , respectively, according to the identifier of the objective viewpoint camera that captured the image. M is the sum of the indices detected on each image. For example, in the case of FIG. 1, M a = 0, M b = 0, M c = 2, M d = 1, M = 3, and index identifiers k c1 = 1, k c2 = 2 and k d1 = 2, these and identifiers of the captured camera image coordinates u c pKC1 corresponding to these, u c pkc2, u d Pkd1 is output.

位置姿勢算出部120は、計測対象物体130の姿勢の予測値と、指標検出部110によって検出された各々の指標の画像座標u Pkam,u Pkbm,u Pkcm,u Pkdmとそれに対応する物体座標(物体座標系における座標値)x Pkam,x Pkbm,x Pkcm,x Pkdmの組とをデータ記憶部170から入力し、これらの情報に基づいて計測対象物体130の位置及び姿勢を算出し、I/Fを介して外部へ出力する。また、算出した計測対象物体130の位置をデータ記憶部170に出力し、さらに、位置及び姿勢の算出工程で導出される姿勢センサ140の方位ドリフト誤差補正値の更新値によって、データ記憶部170が保持する方位ドリフト誤差補正値を更新する。 The position and orientation calculation unit 120 corresponds to the predicted value of the orientation of the measurement target object 130, the image coordinates u a Pcam , u b Pkbm , u c Pkcm , and u d Pkdm detected by the index detection unit 110. Object coordinates (coordinate values in the object coordinate system) x C Pkam , x C Pkbm , x C Pkcm , x C Pkdm are input from the data storage unit 170, and the position of the measurement target object 130 is based on these pieces of information And the attitude are calculated and output to the outside via the I / F. In addition, the calculated position of the measurement target object 130 is output to the data storage unit 170, and the data storage unit 170 further updates the azimuth drift error correction value of the orientation sensor 140 derived in the position and orientation calculation process. Update the retained azimuth drift error correction value.

データ記憶部170は、方位ドリフト誤差補正値、画像入力部160から入力される画像、姿勢予測部150から入力される姿勢の予測値、位置姿勢算出部120から入力される位置の算出値、指標検出部110から入力される指標の画像座標及び識別子、さらに、既知の値である指標の物体座標(物体座標系における座標値)等のデータを保持し、必要に応じてこれらを入出力する。   The data storage unit 170 includes an azimuth drift error correction value, an image input from the image input unit 160, a predicted value of posture input from the posture prediction unit 150, a calculated value of position input from the position / posture calculation unit 120, and an index Data such as the image coordinates and identifiers of the indices input from the detection unit 110 and the object coordinates (coordinate values in the object coordinate system) of the indices, which are known values, are held, and these are input / output as necessary.

なお、図1に示した画像入力部160、データ記憶部170、指標検出部110、姿勢予測部150、及び位置姿勢算出部120の夫々は、独立した装置として扱っても良いし、夫々ソフトウェアとして1つもしくは複数のコンピュータにインストールし、夫々のコンピュータのCPUにより実行することで、その機能を実現するようにしても良い。本実施形態では、各部(画像入力部160、データ記憶部170、指標検出部110、姿勢予測部150、及び位置姿勢算出部120)は1台のコンピュータ内で実行対象となるソフトウェアとして扱う。   Note that each of the image input unit 160, the data storage unit 170, the index detection unit 110, the posture prediction unit 150, and the position / orientation calculation unit 120 illustrated in FIG. 1 may be handled as an independent device or as software. The functions may be realized by installing in one or a plurality of computers and executing them by the CPU of each computer. In this embodiment, each unit (the image input unit 160, the data storage unit 170, the index detection unit 110, the posture prediction unit 150, and the position / posture calculation unit 120) is handled as software to be executed in one computer.

図2は画像入力部160、データ記憶部170、指標検出部110、姿勢予測部150、及び位置姿勢算出部120の夫々をソフトウェアとして実行するコンピュータの基本構成を示す図である。   FIG. 2 is a diagram illustrating a basic configuration of a computer that executes each of the image input unit 160, the data storage unit 170, the index detection unit 110, the posture prediction unit 150, and the position / posture calculation unit 120 as software.

1001はCPUで、RAM1002やROM1003に格納されたプログラムやデータを用いてコンピュータ全体の制御を行うと共に、画像入力部160、指標検出部110、姿勢予測部150、及び位置姿勢算出部120の夫々のソフトウェアの実行を制御して、各部の機能を実現する。   A CPU 1001 controls the entire computer using programs and data stored in the RAM 1002 and the ROM 1003, and each of the image input unit 160, the index detection unit 110, the posture prediction unit 150, and the position / orientation calculation unit 120. The execution of software is controlled to realize the functions of each unit.

1002はRAMで、外部記憶装置1007や記憶媒体ドライブ1008からロードされたプログラムやデータを一時的に記憶するエリアを備えると共に、CPU1001が各種の処理を行うために必要とするワークエリアを備える。データ記憶部170の機能は、RAM1002によって実現される。   A RAM 1002 includes an area for temporarily storing programs and data loaded from the external storage device 1007 and the storage medium drive 1008, and also includes a work area necessary for the CPU 1001 to perform various processes. The function of the data storage unit 170 is realized by the RAM 1002.

1003はROMで、一般にコンピュータの記憶プログラムや設定データなどが格納されている。1004、1005は夫々キーボード、マウスで、操作者は夫々を用いて、各種の指示をCPU1001に入力することができる。   A ROM 1003 generally stores a computer storage program, setting data, and the like. Reference numerals 1004 and 1005 denote a keyboard and a mouse, respectively. An operator can input various instructions to the CPU 1001 using the keyboard and the mouse, respectively.

1006は表示部で、CRTや液晶画面などにより構成されており、例えば、計測対象物体130の位置姿勢計測のために表示すべきメッセージ等を表示することができる。   A display unit 1006 includes a CRT, a liquid crystal screen, and the like, and can display a message to be displayed for measuring the position and orientation of the measurement target object 130, for example.

1007は外部記憶装置で、ハードディスクなどの大容量情報記憶装置として機能する装置であって、ここにOS(オペレーティングシステム)やソフトウェアのプログラム等を保存する。また本実施形態の説明において、既知であると説明する情報はここに保存されており、必要に応じてRAM1002にロードされる。   Reference numeral 1007 denotes an external storage device that functions as a large-capacity information storage device such as a hard disk, and stores an OS (Operating System), software programs, and the like. In the description of the present embodiment, information that is described as being known is stored here, and loaded into the RAM 1002 as necessary.

1008は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記憶されているプログラムやデータをCPU1001からの指示に従って読み出して、RAM1002や外部記憶装置1007に出力する。   Reference numeral 1008 denotes a storage medium drive, which reads programs and data stored in a storage medium such as a CD-ROM or DVD-ROM in accordance with instructions from the CPU 1001 and outputs them to the RAM 1002 or the external storage device 1007.

1009はI/Fで、計測対象物体130を接続するためのアナログビデオポートあるいはIEEE1394等のデジタル入出力ポート、姿勢センサ140を接続するためのRS232CあるいはUSBシリアルポート、また、算出した計測対象物体130の位置及び姿勢を外部へ出力するためのイーサネット(登録商標)ポート等によって構成される。夫々が入力したデータはI/F1009を介してRAM1002に取り込まれる。画像入力部160の機能の一部は、I/F1009によって実現される。   Reference numeral 1009 denotes an I / F, an analog video port for connecting the measurement target object 130 or a digital input / output port such as IEEE1394, an RS232C or USB serial port for connecting the attitude sensor 140, and the calculated measurement target object 130. Ethernet (registered trademark) port or the like for outputting the position and posture of the camera to the outside. The data input by each is taken into the RAM 1002 via the I / F 1009. A part of the function of the image input unit 160 is realized by the I / F 1009.

1010は上述の各部を繋ぐバスである。   A bus 1010 connects the above-described units.

図3は、姿勢予測部150の処理手順を示すフローチャートであり、CPU1001が姿勢予測部150のソフトウェアのプログラムを実行することで行われる。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。   FIG. 3 is a flowchart showing a processing procedure of the posture prediction unit 150, which is performed by the CPU 1001 executing a software program of the posture prediction unit 150. It is assumed that the program code according to the flowchart is already loaded in the RAM 1002 in the previous stage of performing the following processing.

なお、姿勢を表現する方法には様々なものが存在するが、ここでは、3×3の回転行列Rによって表現されているものとする。   There are various methods for expressing the posture. Here, it is assumed that the posture is expressed by a 3 × 3 rotation matrix R.

ステップS3000において、姿勢予測部150は、姿勢センサ140から姿勢計測値R はセンサによる計測値を表す記号)を入力する。 In step S3000, the posture prediction unit 150 inputs a posture measurement value R # ( # is a symbol representing a measurement value by the sensor) from the posture sensor 140.

ステップS3010において、姿勢予測部150は、データ記憶部170から方位ドリフト誤差補正値φを入力する。 In step S3010, posture prediction unit 150 inputs azimuth drift error correction value φ * from data storage unit 170.

ステップS3020において、姿勢予測部150は、姿勢計測値R(姿勢センサ140の姿勢を表している)に、姿勢センサ140から計測対象物体130への姿勢変換と、方位ドリフト誤差補正値φによるドリフト誤差補正を反映させ、方位ドリフト誤差補正後の計測対象物体130の姿勢を算出し、これを、姿勢の予測値Rとする。 In step S3020, the posture prediction unit 150 uses the posture measurement value R # (representing the posture of the posture sensor 140) to change the posture from the posture sensor 140 to the measurement target object 130 and the azimuth drift error correction value φ * . Reflecting the drift error correction, the posture of the measurement target object 130 after the azimuth drift error correction is calculated, and this is set as a predicted posture value R * .

Figure 0004612804
Figure 0004612804

ここで、△R(φ)は、方位方向にφだけの回転を加える回転行列であり、φの関数として次式によって定義される。   Here, ΔR (φ) is a rotation matrix that adds rotation by φ in the azimuth direction, and is defined by the following equation as a function of φ.

Figure 0004612804
Figure 0004612804

ここで、l=(l,l,l)は、世界座標系における鉛直上方向(地球の重力の反対方向)を表す既知のベクトルを表している。 Here, l = (l 1 , l 2 , l 3 ) represents a known vector representing the vertical upward direction (the direction opposite to the gravity of the earth) in the world coordinate system.

また、RSCは、物体座標系(計測対象物体130の位置及び姿勢を表す座標系)からセンサ座標系(姿勢センサ140の位置及び姿勢を表す座標系)へ姿勢を変換する3×3の行列であり、固定値である姿勢センサ140と計測対象物体130の相対姿勢に基づいて、既知の値として予め設定されている。 The RSC is a 3 × 3 matrix for converting the posture from the object coordinate system (the coordinate system representing the position and posture of the measurement target object 130) to the sensor coordinate system (the coordinate system representing the position and posture of the posture sensor 140). And is set in advance as a known value based on the relative posture of the posture sensor 140 and the measurement target object 130 which are fixed values.

ステップS3030において、姿勢予測部150は、姿勢の予測値Rをデータ記憶部170へと出力する。 In step S <b > 3030, posture prediction section 150 outputs posture prediction value R * to data storage section 170.

ステップS3040において、姿勢予測部150は、処理を終了するか否かの判定を行い、処理を終了しない場合には、処理をステップS3000へと進める。   In step S3040, posture prediction unit 150 determines whether or not to end the process. If the process is not to be ended, the process proceeds to step S3000.

図4は、計測対象物体130の位置及び姿勢を示すパラメータを算出する処理のフローチャートであり、CPU1001が位置姿勢算出部120のソフトウェアのプログラムを実行することで行われる。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。   FIG. 4 is a flowchart of processing for calculating parameters indicating the position and orientation of the measurement target object 130, and is performed by the CPU 1001 executing a software program of the position and orientation calculation unit 120. It is assumed that the program code according to the flowchart is already loaded in the RAM 1002 in the previous stage of performing the following processing.

位置姿勢算出部120は、計測対象物体130の位置t=[xyz]と、姿勢センサ140の方位ドリフト誤差補正値の更新値φの合計4パラメータを、算出すべき未知パラメータとして取り扱う。すなわち、本実施形態では、姿勢についてはその全てを未知とするのではなく、姿勢の予測値Rには方位方向のドリフト誤差のみが含まれており、その方位ドリフト誤差補正値の更新値φのみを求めることで、計測対象物体130の姿勢が得られるというモデルを適用する。以下では、求めるべき未知パラメータを4値の状態ベクトルs=[xyzφ]によって記述する。 The position / orientation calculation unit 120 handles a total of four parameters of the position t = [xyz] T of the measurement target object 130 and the updated value φ of the orientation drift error correction value of the attitude sensor 140 as unknown parameters to be calculated. That is, in the present embodiment, not all the postures are unknown, but the posture prediction value R * includes only the azimuth drift error, and the azimuth drift error correction value update value φ A model in which the posture of the measurement target object 130 can be obtained by obtaining only this is applied. In the following, the unknown parameter to be obtained is described by a quaternary state vector s = [xyzφ] T.

ステップS4000において、位置姿勢算出部120は、計測対象物体130の姿勢の予測値R(姿勢予測部150の出力)をデータ記憶部170から入力する。 In step S4000, the position / orientation calculation unit 120 inputs a predicted value R * of the attitude of the measurement target object 130 (output of the attitude prediction unit 150) from the data storage unit 170.

ステップS4010において、位置姿勢算出部120は、状態ベクトルsの初期値を、s=[xτ−1τ−1τ−10]と設定する。ここで、xτ−1,yτ−1,zτ−1は、1ループ前の処理(時刻τ−1とおく)におけるステップS4110において算出された計測対象物体130の位置を表している。 In step S <b> 4010, the position / orientation calculation unit 120 sets the initial value of the state vector s as s = [x τ−1 y τ−1 z τ−1 0] T. Here, x τ−1 , y τ−1 , z τ−1 represent the position of the measurement target object 130 calculated in step S <b> 4110 in the process one loop before (denoted as time τ−1).

ステップS4020において、位置姿勢算出部120は、指標検出部110によって検出された指標の画像座標とその世界座標の組を、データ記憶部170から入力する。例えば図1の場合には、画像座標u P1,u P2,u P2及びそれらに対応する物体座標(物体座標系における座標値)x P1,x P2が入力される。 In step S <b> 4020, the position / orientation calculation unit 120 inputs a set of the image coordinates of the index detected by the index detection unit 110 and the world coordinates from the data storage unit 170. For example, in the case of FIG. 1, image coordinates u c P1 , u c P2 and u d P2 and corresponding object coordinates (coordinate values in the object coordinate system) x C P1 and x C P2 are input.

ステップS4030において、位置姿勢算出部120は、入力された指標の情報が位置及び姿勢の推定に十分な情報を含むか否かを判定し、それに応じて処理の分岐を行う。具体的には、入力した指標の実体の総数が2点以上の場合はステップS4040に処理を進め、2点未満の場合はステップS4100に処理を進める。例えば図1の場合には、2つの指標(投影像は3点であるが、指標の実体は2つ)が検出されているので,ステップS4040へと処理が進められる。   In step S4030, the position / orientation calculation unit 120 determines whether or not the input index information includes information sufficient to estimate the position and orientation, and branches the process accordingly. Specifically, if the total number of input index entities is two or more, the process proceeds to step S4040, and if it is less than two, the process proceeds to step S4100. For example, in the case of FIG. 1, since two indices (three projected images but two substance of indices) are detected, the process proceeds to step S4040.

ステップS4040において、位置姿勢算出部120は、各々の指標Pkmに対して、その画像座標の推定値uPkm*を算出する。uPkm*の算出は、既知な情報として予め保持している指標Pkm各々の物体座標(物体座標系における座標値)x Pkmと、現在の状態ベクトルsの関数: In step S4040, the position and orientation calculation unit 120, for each of the indicators P miles, to calculate an estimated value u Pkm * of the image coordinates. The calculation of u Pkm * is a function of the object coordinates (coordinate values in the object coordinate system) x C Pkm of each index P km previously held as known information and the current state vector s:

Figure 0004612804
Figure 0004612804

に基づいて行われる。具体的には、関数F()は、世界座標系上における当該指標の座標x Pkmをx Pkmとsから求める次式、 Based on. Specifically, the function F B () is obtained by the following formula for obtaining the coordinate x W Pkm of the index on the world coordinate system from x C Pkm and s:

Figure 0004612804
Figure 0004612804

及び、世界座標系x Pkmから客観視点カメラ座標(客観視点カメラ座標系(客観視点カメラ180上の1点を原点として定義し、更に互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系)上における当該指標の座標)x Pkmを求める次式、 From the world coordinate system x W Pkm , an objective viewpoint camera coordinate (an objective viewpoint camera coordinate system (one point on the objective viewpoint camera 180 is defined as an origin, and three axes orthogonal to each other are defined as an X axis, a Y axis, and a Z axis, respectively). The coordinate of the index on the coordinate system defined as) x B Pkm

Figure 0004612804
Figure 0004612804

及び、客観視点カメラ座標x Pkmから画像座標uPkm*を求める次式、 And the following equation for obtaining the image coordinates u Pkm * from the objective viewpoint camera coordinates x B Pkm ,

Figure 0004612804
Figure 0004612804

によって構成されている。ここで、Rは、ステップS4000で入力した姿勢の予測値を表している。また、△R(φ)は,方位方向にφだけの回転を加える回転行列を表しており、式2によって定義される。また、f 及びf は夫々の客観視点カメラ180のx軸方向及びy軸方向における焦点距離、RWBは夫々の客観視点カメラ180の世界座標系における姿勢を表す3x3行列、tWBは夫々の客観視点カメラ180の世界座標系における位置を表す3次元ベクトルであり、客観視点カメラ180の夫々に対して既知の値として予め保持されている。 It is constituted by. Here, R * represents the predicted value of the posture input in step S4000. ΔR (φ) represents a rotation matrix for adding rotation by φ in the azimuth direction, and is defined by Equation 2. Further, f B x and f B y are focal lengths of the objective viewpoint cameras 180 in the x-axis direction and the y-axis direction, R WB is a 3 × 3 matrix representing the attitude of each objective viewpoint camera 180 in the world coordinate system, t WB Is a three-dimensional vector representing the position of each objective viewpoint camera 180 in the world coordinate system, and is held in advance as a known value for each objective viewpoint camera 180.

ステップS4050において、位置姿勢算出部120は、各々の指標Pkmに対して、画像座標の推定値uPkm*と実測値uPkmとの誤差ΔuPkmを、式7に基づいて算出する。 In step S4050, the position / orientation calculation unit 120 calculates an error Δu Pkm between the estimated value u Pkm * of the image coordinates and the actual measurement value u Pkm for each index P km based on Expression 7.

Figure 0004612804
Figure 0004612804

ステップS4060において、位置姿勢算出部120は、各々の指標Pkmに対して、状態ベクトルsに関する画像ヤコビアン(すなわち、式3の関数Fb( )を状態ベクトルsの各要素で偏微分した解を各要素に持つ2行×4列のヤコビ行列)Jus Pkm(=∂u/∂s)を算出する。具体的には、式6の右辺を客観視点カメラ座標x Pkmの各要素で偏微分した解を各要素に持つ2行×3列のヤコビ行列JuxB Pkm(=∂u/∂x)と、式5の右辺を世界座標x Pkmの各要素で偏微分した解を各要素に持つ3行×3列のヤコビ行列JxBxW Pkm(=∂x/∂x)と、式4の右辺を状態ベクトルsの各要素で偏微分した解を各要素に持つ3行×4列のヤコビ行列JxWs Pkm(=∂x/∂s)を算出し、次式によってJus Pkmを算出する。 In step S4060, the position / orientation calculation unit 120 performs, for each index P km , an image Jacobian relating to the state vector s (that is, a solution obtained by partially differentiating the function Fb () of Equation 3 with each element of the state vector s. 2 rows × 4 columns Jacobian matrix) J us Pkm (= ∂u / ∂s) of the element is calculated. Specifically, a 2 × 3 Jacobian matrix J uxB Pkm (= ∂u / ∂x B ) having a solution obtained by partial differentiation of the right side of Equation 6 with each element of the objective viewpoint camera coordinates x B Pkm. 3 rows × 3 columns Jacobian matrix J xBxW Pkm (= ∂x B / ∂x W ) having a solution obtained by partial differentiation of the right side of Equation 5 with each element of world coordinates x W Pkm and Equation 4 3 × 4 Jacobian matrix J xWs Pkm (= ∂x W /) s) having each element as a solution obtained by partial differentiation of the right side of state vector s with each element, and J us Pkm is calculated by the following equation: calculate.

Figure 0004612804
Figure 0004612804

ステップS4070において、位置姿勢算出部120は、ステップS4050及びステップS4060において算出した誤差ΔuPkm及び画像ヤコビアンJus Pkmに基づいて、状態ベクトルsの補正値Δsを算出する。具体的には、各々の指標Pkmに対して求めた誤差ΔuPkmを垂直に並べた2M次元の誤差ベクトルU及び、各々の指標Pkmに対して求めた画像ヤコビアンJus Pkmを垂直に並べた2M行×4列の行列θを作成し、θの擬似逆行列θ’を用いて、 In step S4070, the position / orientation calculation unit 120 calculates the correction value Δs of the state vector s based on the error Δu Pkm and the image Jacobian J us Pkm calculated in steps S4050 and S4060. Specifically, a 2M-dimensional error vector U in which errors Δu Pkm obtained for each index P km are arranged vertically and an image Jacobian J us Pkm obtained for each index P km are arranged vertically. 2M rows × 4 columns matrix θ, and using a pseudo inverse matrix θ ′ of θ,

Figure 0004612804
Figure 0004612804

として算出する。図1の例ではM=3であるので、Uは6次元ベクトル、θは6行×4列の行列となる。 Calculate as In the example of FIG. 1, since M = 3, U is a 6-dimensional vector, and θ is a 6 × 4 matrix.

ステップS4080において、位置姿勢算出部120は、ステップS4070において算出した補正値Δsを用いて、式10に従って状態ベクトルsを補正し、得られた値をsの新たな推定値とする。   In step S4080, the position / orientation calculation unit 120 corrects the state vector s according to Equation 10 using the correction value Δs calculated in step S4070, and sets the obtained value as a new estimated value of s.

Figure 0004612804
Figure 0004612804

ステップS4090において、位置姿勢算出部120は、誤差ベクトルUが予め定めた閾値より小さいかどうか、あるいは、補正値Δsが予め定めた閾値より小さいかどうかといった何らかの判定基準を用いて、計算が収束しているか否かの判定を行う。収束してない場合には、補正後の状態ベクトルsを用いて、再度ステップS4040以降の処理を行う。   In step S4090, the position / orientation calculation unit 120 converges the calculation by using some criterion such as whether the error vector U is smaller than a predetermined threshold or whether the correction value Δs is smaller than a predetermined threshold. It is determined whether or not. If not converged, the processing after step S4040 is performed again using the corrected state vector s.

ステップS4090において計算が収束したと判定されると、ステップS4100において、位置姿勢算出部120は、得られた状態ベクトルsから、計測対象物体130の姿勢を算出する。具体的には、前ステップまでで得られた状態ベクトルsから方位ドリフト誤差補正値の更新値φを得て、次式:   If it is determined in step S4090 that the calculation has converged, in step S4100, the position / orientation calculation unit 120 calculates the orientation of the measurement target object 130 from the obtained state vector s. Specifically, an updated value φ of the azimuth drift error correction value is obtained from the state vector s obtained up to the previous step, and the following formula:

Figure 0004612804
Figure 0004612804

によって、計測対象物体130の姿勢Rを算出する。 To calculate the posture R of the measurement target object 130.

ステップS4110において、位置姿勢算出部120は、得られた計測対象物体130の位置及び姿勢の情報をI/F1009を介して外部へ出力する。また、計測対象物体130の位置tをデータ記憶部170へと出力する。なお、位置及び姿勢の出力形態は例えば姿勢を表す3×3行列Rと位置を表す3次元ベクトルtの組であってもよいし、姿勢成分をオイラー角に変換したものでもよいし、位置及び姿勢から算出したモデリング変換行列でもよいし、他のいずれの位置姿勢記述方法によるものでもよい。   In step S <b> 4110, the position / orientation calculation unit 120 outputs the obtained position and orientation information of the measurement target object 130 to the outside via the I / F 1009. Further, the position t of the measurement target object 130 is output to the data storage unit 170. The output form of the position and orientation may be, for example, a set of a 3 × 3 matrix R representing the posture and a three-dimensional vector t representing the position, or a posture component converted into Euler angles, A modeling conversion matrix calculated from the orientation may be used, or any other position and orientation description method may be used.

ステップS4120において、位置姿勢算出部120は、以上の算出工程で得られた方位ドリフト誤差補正値の更新値φを用いて、データ記憶部170が保持している方位ドリフト誤差補正値φを次式によって更新する。 In step S4120, the position / orientation calculation unit 120 uses the updated value φ of the azimuth drift error correction value obtained in the above calculation process to calculate the azimuth drift error correction value φ * held by the data storage unit 170. Update with an expression.

Figure 0004612804
Figure 0004612804

ステップS4130において、位置姿勢算出部120は、処理を終了するか否かの判定を行い、終了しない場合には再びステップS4000へと進み、次フレーム以降の入力データに対して同様の処理を実行する。   In step S4130, the position / orientation calculation unit 120 determines whether or not to end the process. If not, the process proceeds to step S4000, and the same process is performed on the input data from the next frame onward. .

以上によって、計測対象物体の位置及び姿勢が計測される。   As described above, the position and orientation of the measurement target object are measured.

なお、上記の実施形態では複数台の客観視点カメラ180を用いていたが、必ずしも複数台の客観視点カメラが必要ではなく、客観視点カメラが1台の場合であっても本実施形と同様の効果が得られることはいうまでもない。   In the above embodiment, a plurality of objective viewpoint cameras 180 are used. However, a plurality of objective viewpoint cameras are not necessarily required, and even if there is only one objective viewpoint camera, it is the same as in the present embodiment. Needless to say, an effect can be obtained.

[第2の実施形態]
上記の実施形態では、姿勢センサの方位ドリフト誤差補正値の更新値φを未知数として求めていたが、姿勢センサの精度が良い場合や、使用時間が短時間である場合や、あるいは、方位ドリフト誤差補正値の更新値の入力を手作業で行うことが可能な場合には、位置姿勢算出部120で求めるべきパラメータを計測対象物体130の位置のみに限定してもよい。本実施形態に係る位置姿勢計測装置は、任意の計測対象物体の位置及び姿勢を計測することを目的とした位置姿勢計測装置であって、第1の実施形態における位置姿勢計測装置の位置姿勢算出部120の機能を変更した構成となっている。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
[Second Embodiment]
In the above embodiment, the update value φ of the orientation sensor error correction value of the orientation sensor is obtained as an unknown value. However, when the accuracy of the orientation sensor is good, the usage time is short, or the orientation drift error When the correction value update value can be input manually, the parameter to be obtained by the position / orientation calculation unit 120 may be limited to only the position of the measurement target object 130. The position / orientation measurement apparatus according to the present embodiment is a position / orientation measurement apparatus for measuring the position and orientation of an arbitrary measurement target object, and calculates the position / orientation of the position / orientation measurement apparatus according to the first embodiment. The function of the unit 120 is changed. Hereinafter, the position and orientation measurement apparatus and the position and orientation measurement method according to the present embodiment will be described.

本実施形態では、第1の実施形態におけるφをすべて0とおく。すなわち、本実施形態における位置姿勢算出部120では、求めるべき未知パラメータを3値の状態ベクトルs’=[xyz]によって記述する。また、本実施形態における位置姿勢算出部120では、第1の実施形態における位置姿勢算出部120の各処理工程(各ヤコビ行列や式4等)からφに関する項を取り除いたものを用いればよい。例えば式4は次式に変更する。 In this embodiment, all φ in the first embodiment are set to 0. That is, in the position / orientation calculation unit 120 in this embodiment, the unknown parameter to be obtained is described by a ternary state vector s ′ = [xyz] T. Further, in the position / orientation calculation unit 120 in the present embodiment, a unit obtained by removing a term related to φ from each processing step (each Jacobian matrix, Equation 4, etc.) of the position / orientation calculation unit 120 in the first embodiment may be used. For example, Equation 4 is changed to the following equation.

Figure 0004612804
Figure 0004612804

本実施形態に係る位置姿勢計測装置によれば、求めるべき未知パラメータ数が少なくなるため、得られる解(計測対象物体130の位置及び姿勢)の安定性のさらなる向上が期待できる。   According to the position / orientation measurement apparatus according to the present embodiment, since the number of unknown parameters to be obtained is reduced, further improvement in the stability of the obtained solution (position and orientation of the measurement target object 130) can be expected.

なお、手作業で方位ドリフト誤差補正値の更新値を入力するためには、例えば、図1の構成に補正値更新手段を更に追加すればよい。補正値更新手段は、オペレータの入力に従って方位ドリフト誤差補正値の更新値φを得て、式12にしたがってデータ記憶部170に保存された方位ドリフト誤差補正値φを更新する。補正値更新手段は、例えば、キーボード1004の特定のキーをインターフェイスとして用いることで実現される。例えば、[+]キーにより+0.1度を、[−]キーにより−0.1度を更新値として設定するように構成すればよい。なお、第1の実施形態のような、画像情報に基づいて方位ドリフト誤差補正値の更新値を導出する形態においても、手入力による補正値更新手段を併用することが可能なことはいうまでもない。 In order to manually input the update value of the azimuth drift error correction value, for example, a correction value update means may be further added to the configuration of FIG. The correction value update means obtains the updated value φ of the azimuth drift error correction value according to the operator's input, and updates the azimuth drift error correction value φ * stored in the data storage unit 170 according to Equation 12. The correction value updating unit is realized by using a specific key of the keyboard 1004 as an interface, for example. For example, the update value may be set to +0.1 degree by the [+] key and −0.1 degree by the [−] key. Note that it is needless to say that the correction value updating means by manual input can also be used in the form in which the update value of the azimuth drift error correction value is derived based on the image information as in the first embodiment. Absent.

[第3の実施形態]
上記の実施形態の各々では、未知の値として求めるパラメータを、位置及び方位ドリフト誤差補正値の更新値φか、位置のみかのいずれかに固定していた。しかし、何れのパラメータを未知とするかは必ずしも固定である必要はなく、夫々のパラメータの特性に応じて未知とするパラメータを適宜変更することにより、より好適な位置姿勢の推定を行うことができる。本実施形態に係る位置姿勢計測装置は、任意の計測対象物体の位置及び姿勢を計測することを目的とした位置姿勢計測装置であり、第1の実施形態における位置姿勢計測装置の位置姿勢算出部120の機能を変更した構成となっている。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
[Third Embodiment]
In each of the above-described embodiments, the parameter to be obtained as an unknown value is fixed to either the updated value φ of the position and orientation drift error correction value or only the position. However, it is not necessarily fixed which parameter is unknown, and a more suitable position and orientation can be estimated by appropriately changing the unknown parameter according to the characteristics of each parameter. . The position / orientation measurement apparatus according to the present embodiment is a position / orientation measurement apparatus for measuring the position and orientation of an arbitrary measurement target object, and the position / orientation calculation unit of the position / orientation measurement apparatus according to the first embodiment. It has a configuration in which 120 functions are changed. Hereinafter, the position and orientation measurement apparatus and the position and orientation measurement method according to the present embodiment will be described.

本実施形態における位置姿勢算出部は、第1の実施形態における位置姿勢算出部と第2の実施形態における位置姿勢算出部の夫々の機能を併せ持っており、通常は位置のみを未知のパラメータとする第2の実施形態における位置姿勢算出部の処理を行い、一定時間間隔(例えば10秒(300フレーム)に1回)毎に、位置と方位ドリフト誤差補正値の更新値を未知のパラメータとする第1の実施形態における位置姿勢算出部の処理を実行する。なお、方位ドリフト誤差補正値を更新する時間間隔は、姿勢センサ140のドリフト特性に応じて設定するのが好ましく、オペレータによる対話的操作によって設定可能であることが好ましい。   The position / orientation calculation unit according to the present embodiment has both the functions of the position / orientation calculation unit according to the first embodiment and the position / orientation calculation unit according to the second embodiment. Normally, only the position is an unknown parameter. The position / orientation calculation unit according to the second embodiment performs the process, and the update value of the position and orientation drift error correction value is set as an unknown parameter at regular time intervals (for example, once every 10 seconds (300 frames)). The process of the position and orientation calculation unit in the embodiment is executed. Note that the time interval for updating the azimuth drift error correction value is preferably set according to the drift characteristics of the attitude sensor 140, and is preferably set by an interactive operation by the operator.

本実施形態に係る位置姿勢計測装置によれば、姿勢センサ140として、短時間であれば方位ドリフト誤差を無視できる程度の精度が得られる姿勢センサを用いる場合に、方位ドリフト誤差を補正しつつ、得られる解の安定性を向上させることが期待できる。   According to the position and orientation measurement apparatus according to the present embodiment, when the orientation sensor 140 is used as an orientation sensor 140 that can obtain an accuracy sufficient to ignore the orientation drift error for a short time, while correcting the orientation drift error, It can be expected to improve the stability of the obtained solution.

[第4の実施形態]
上記の実施形態の各々では、ある1時刻の画像情報から方位ドリフト誤差補正値の更新値を求めていた。しかし、方位ドリフト誤差の値はフレーム間での相関性が高いので、複数フレームの情報を利用することで、より高精度に求めることができる。本実施形態に係る位置姿勢計測装置は、任意の計測対象物体の位置及び姿勢を計測することを目的とした位置姿勢計測装置であり、第1の実施形態における位置姿勢計測装置の位置姿勢算出部120の機能を変更した構成となっている。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
[Fourth Embodiment]
In each of the above embodiments, the updated value of the azimuth drift error correction value is obtained from image information at a certain time. However, since the value of the azimuth drift error has a high correlation between frames, it can be obtained with higher accuracy by using information of a plurality of frames. The position / orientation measurement apparatus according to the present embodiment is a position / orientation measurement apparatus for measuring the position and orientation of an arbitrary measurement target object, and the position / orientation calculation unit of the position / orientation measurement apparatus according to the first embodiment. It has a configuration in which 120 functions are changed. Hereinafter, the position and orientation measurement apparatus and the position and orientation measurement method according to the present embodiment will be described.

本実施形態における位置姿勢算出部520は、第1の実施形態における位置姿勢算出部と第2の実施形態における位置姿勢算出部の夫々の機能を併せ持っており、夫々のパラメータ推定処理を共に実行する。図5は、計測対象物体130の位置及び姿勢を示すパラメータを算出する処理のフローチャートであり、CPU1001が位置姿勢算出部520のソフトウェアのプログラムを実行することで行われる。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。   The position / orientation calculation unit 520 according to the present embodiment has both the functions of the position / orientation calculation unit according to the first embodiment and the position / orientation calculation unit according to the second embodiment, and executes both parameter estimation processes. . FIG. 5 is a flowchart of processing for calculating parameters indicating the position and orientation of the measurement target object 130, and is performed by the CPU 1001 executing a software program of the position / orientation calculation unit 520. It is assumed that the program code according to the flowchart is already loaded in the RAM 1002 in the previous stage of performing the following processing.

ステップS5000において、位置姿勢算出部520は、第1の実施形態におけるステップS4000と同様に、計測対象物体130の姿勢の予測値R(姿勢予測部150の出力)をデータ記憶部170から入力する。 In step S5000, the position / orientation calculation unit 520 inputs the predicted value R * of the posture of the measurement target object 130 (output of the posture prediction unit 150) from the data storage unit 170, as in step S4000 in the first embodiment. .

ステップS5010において、位置姿勢算出部520は、第1の実施形態におけるステップS4020と同様に、指標検出部110によって検出された指標の画像座標とその世界座標を、データ記憶部170から入力する。   In step S5010, as in step S4020 in the first embodiment, the position / orientation calculation unit 520 inputs the image coordinates of the index detected by the index detection unit 110 and the world coordinates thereof from the data storage unit 170.

ステップS5020において、位置姿勢算出部520は、計測対象物体130の位置t=[xyz]と姿勢センサ140の方位ドリフト誤差補正値の更新値φを未知のパラメータとして、第1の実施形態におけるステップS4010及びステップS4030からステップS4090と同様な処理によってこれらを推定する。 In step S5020, the position / orientation calculation unit 520 uses the position t = [xyz] T of the measurement target object 130 and the updated value φ of the azimuth drift error correction value of the attitude sensor 140 as unknown parameters. These are estimated by the same processing as S4010 and steps S4030 to S4090.

ステップS5030において、位置姿勢算出部520は、ステップS5020で算出された方位ドリフト誤差補正値の更新値φを積算し、積算値φSUMを求める。 In step S5030, the position and orientation calculating section 520 integrates the update value phi azimuth drift error correction value calculated in step S5020, obtains the integrated value phi SUM.

ステップS5040において、位置姿勢算出部520は、予め定めたフレーム数(例えば30フレーム)の積算処理を行ったか否かの判定を行い、行っている場合は処理をステップS5050に進め、行っていない場合は処理をステップS5080へと進める。   In step S5040, the position / orientation calculation unit 520 determines whether or not an integration process for a predetermined number of frames (for example, 30 frames) has been performed. If yes, the process proceeds to step S5050, and has not been performed. Advances the process to step S5080.

ステップS5050において、位置姿勢算出部520は、ステップS5030で求めた積算値φSUMを処理フレーム数で除算することで、各フレームで得られた方位ドリフト誤差補正値の更新値の平均値を算出し、これを新たに、方位ドリフト誤差補正値の更新値φとする。このあと、積算値φSUMは0にクリアされる。 In step S5050, the position and orientation calculation unit 520, by dividing the integrated value phi SUM calculated in step S5030 by the number of processing frames, calculates an average value of the updated value of the azimuth drift error correction value obtained in each frame This is newly set as an updated value φ of the azimuth drift error correction value. Thereafter, the integrated value φSUM is cleared to zero.

ステップS5060において、位置姿勢算出部520は、第1の実施形態におけるステップS4120と同様に、ステップS5050で得られた方位ドリフト誤差補正値の更新値φを用いて、データ記憶部170が保持している方位ドリフト誤差補正値φを式12によって更新する。 In step S5060, the position / orientation calculation unit 520 is stored in the data storage unit 170 using the updated value φ of the azimuth drift error correction value obtained in step S5050, as in step S4120 in the first embodiment. The azimuth drift error correction value φ * is updated by Equation 12.

ステップS5070において、位置姿勢算出部520は、ステップS5050で得られた方位ドリフト誤差補正値の更新値φを用いて、式11によって計測対象物体130の姿勢を算出し、得られた姿勢を新たな姿勢の予測値とする。   In step S5070, the position / orientation calculation unit 520 uses the updated value φ of the azimuth drift error correction value obtained in step S5050 to calculate the attitude of the measurement target object 130 using Equation 11, and obtains the obtained attitude as a new one. The predicted value of the posture.

ステップS5080において、位置姿勢算出部520は、計測対象物体130の位置t=[xyz]を未知のパラメータとして、第2の実施形態と同様な処理によってこれを推定する。 In step S5080, the position / orientation calculation unit 520 estimates the position t = [xyz] T of the measurement target object 130 as an unknown parameter by the same process as in the second embodiment.

ステップS5090において、位置姿勢算出部520は、第1の実施形態におけるステップS4110と同様に、得られた計測対象物体130の位置及び姿勢の情報を出力する。   In step S5090, the position / orientation calculation unit 520 outputs information on the position and orientation of the measurement target object 130 obtained in the same manner as in step S4110 in the first embodiment.

ステップS5100において、位置姿勢算出部520は、処理を終了するか否かの判定を行い、終了しない場合には再びステップS5000へと進み、次フレーム(時刻τ+1)以降の入力データに対して同様の処理を実行する。   In step S5100, the position / orientation calculation unit 520 determines whether or not to end the process. If not, the process proceeds to step S5000, and the same processing is performed on input data after the next frame (time τ + 1). Execute the process.

以上によって、複数フレームの情報を用いることによる、方位ドリフト誤差の補正値の更新値の精度向上が実現される。なお、本実施形態では各フレームで得られる更新値の平均値を用いていたが、各フレームで得られる更新値の中央値を用いても良いし、他のいずれのローパスフィルタを用いても良い。また、第3の実施形態における位置とドリフト誤差補正値の更新値とを未知パラメータとする位置姿勢算出処理手段として、本実施形態における位置姿勢算出部を用いることも、もちろん可能である。   As described above, the accuracy of the update value of the correction value of the azimuth drift error can be improved by using information of a plurality of frames. In this embodiment, the average value of the update values obtained in each frame is used. However, the median value of the update values obtained in each frame may be used, or any other low-pass filter may be used. . Also, as a matter of course, the position / orientation calculation unit according to the present embodiment can be used as position / orientation calculation processing means using the position and the update value of the drift error correction value in the third embodiment as unknown parameters.

(変形例1)
上記の実施形態において、誤差ベクトルUと行列θに基づく状態ベクトルの補正値Δsの算出に式9で表現される最急降下法を用いているが、補正値Δsの算出は必ずしも最急降下法によって行わなくてもよい。例えば公知の非線形方程式の反復解法であるLM法(Levenberg−Marquardt法)を用いて求めてもよいし、公知のロバスト推定手法であるM推定等の統計的手法を組み合わせてもよいし、他の何れの数値計算手法を適用しても構わない。
(Modification 1)
In the above embodiment, the steepest descent method expressed by Equation 9 is used to calculate the state vector correction value Δs based on the error vector U and the matrix θ, but the correction value Δs is not necessarily calculated by the steepest descent method. It does not have to be. For example, the LM method (Levenberg-Marquardt method) which is an iterative solution of a known nonlinear equation may be used, or a statistical method such as M estimation which is a known robust estimation method may be combined. Any numerical calculation method may be applied.

また、上記の実施形態では、各入力画像に対して最適な(誤差を最小化する)解を求める非線形最適化手法を用いていたが、画像上での指標の誤差に基づいてその誤差を解消するような解を求める手法はこれに限られるものではなく、客観視点カメラによって撮影される画像情報から、計測対象物体の位置及び姿勢センサの方位ドリフト誤差補正値とを算出することにより、計測対象物体の位置及び姿勢を安定かつ高精度に得るという本発明の本質は、他の手法を用いた場合であっても損なわれるものではない。例えば、画像上での指標の誤差に基づいてその誤差を解消するような解を求める手法として知られている、拡張カルマンフィルタ(Extended Kalman Filter)や反復拡張カルマンフィルタ(iterativeExtended Kalman Filter)(これらについては”J.Park,B.Jiang,and U.Neumann,Vision−based pose computation:robust and accurate augmented reality tracking,Proc.Second International Workshop on Augmented Reality (IWAR’99),pp.3−12,1999.”に詳細が述べられている)を用いた場合、上記の実施形態におけるsを状態ベクトルと定義し、式3を観測方程式と定義することで、本発明の効果を有したフィルタを構成することができる。   In the above embodiment, the nonlinear optimization method for obtaining the optimum (minimizing error) solution for each input image is used. However, the error is eliminated based on the index error on the image. The method for obtaining such a solution is not limited to this. By calculating the position of the measurement target object and the azimuth drift error correction value of the orientation sensor from the image information captured by the objective viewpoint camera, the measurement target The essence of the present invention of obtaining the position and orientation of an object stably and with high accuracy is not impaired even when other methods are used. For example, an extended Kalman filter (iterative extended Kalman filter) or an iterative extended Kalman filter (it is known as a technique for obtaining a solution that eliminates the error based on the error of the index on the image) J. Park, B. Jiang, and U. Neumann, Vision-based posted computation: robust and accumulated augmented reality tracking, Proc. Second International Worship. Details are described) If the s in the above embodiment is defined as a state vector, by defining the formula 3 and the observation equation, it is possible to construct a filter having the advantages of the present invention.

(変形例2)
上記の実施形態において、指標Pとして一つの指標が一つの座標を表すような指標(以下、これを点指標と呼ぶ)を用いていた。しかし、他の指標の種類を適用することも可能である。
(Modification 2)
In the above embodiment, an index such that one index represents one coordinate (hereinafter referred to as a point index) is used as the index P. However, other indicator types can be applied.

例えば、公知の位置姿勢計測装置(例えば、“高橋,石井,牧野,中静,VRインターフェースのための単眼による長方形マーカ位置・姿勢の高精度実時間推定法,3次元画像コンファレンス96公演論文集,pp.167−172,1996.”を参照)に用いられているような、特定の幾何形状をもつマーカを指標として用いることも出来る。例えば、四角形のマーカを指標として用いる場合、四角形の各頂点の世界座標を既知の値として保持しておき(あるいは、マーカの位置、向き、サイズからこれらの値を演算し)、画像から各頂点の画像座標を検出することで、上記実施形態における4点の指標と同様の効果を得ることができる。特に、ID情報を有する一つの四角形マーカ(例えば、“加藤,M.BillingHurst,浅野,橘,マーカー追跡に基づく拡張現実感システムとそのキャリブレーション,日本バーチャルリアリティ学会論文誌,vol.4,no.4,pp.607−616,1999.”を参照)を計測対象物体に設置する構成(あるいは、姿勢センサに予め一つの四角形マーカを設置しておく構成)は、画像からのマーカの検出精度及び同定精度の良さが期待できるため、特に好適な形態といえる。   For example, a known position and orientation measurement device (for example, “Takahashi, Ishii, Makino, Nakashizuka, Monocular rectangular marker position / posture high-precision real-time estimation method for VR interface, 3D image conference 96 performance papers, pp. 167-172, 1996. "), a marker having a specific geometric shape can also be used as an index. For example, when a square marker is used as an index, the world coordinates of each vertex of the square are held as known values (or these values are calculated from the position, orientation, and size of the marker), and each vertex is obtained from the image. By detecting the image coordinates, it is possible to obtain the same effect as the four-point index in the above embodiment. In particular, one rectangular marker having ID information (for example, “Kato, M. Billing Hurst, Asano, Tachibana, Augmented Reality System based on marker tracking and its calibration, Journal of the Virtual Reality Society of Japan, vol. 4, no. 4, pp. 607-616, 1999.) is installed on the measurement target object (or a configuration in which a single quadrangular marker is previously installed on the attitude sensor). Since good identification accuracy can be expected, it can be said to be a particularly suitable form.

また、別の公知の位置姿勢計測装置(例えば、“D.G.Lowe:Fitting parameterized three−dimensional models to images, IEEE Transactions on PAMI,vol.13,no.5,pp.441−450,1991.”を参照)に用いられているような、線特徴によって構成される指標(以下、これを線指標と呼ぶ)を用いてもよい。例えば、直線の原点からの距離を評価のための基準として、画像からの検出値dと状態ベクトルsからの推定値dから算出する誤差Δdによって誤差ベクトルUを構成し、dの算出式を状態ベクトルsの各要素で偏微分した解を各要素に持つ1行×4列のヤコビ行列Jds(=∂d/∂s)によって行列θを構成することで、上記実施形態と同様な枠組みによって位置及び姿勢の計測を行うことが出来る。また、線指標と点指標、その他の指標から得られる誤差及び画像ヤコビアンを積み重ねることによって、それらの特徴を併用することが可能である。 In addition, another known position and orientation measurement apparatus (for example, “DG Low: Fitting parametrized three-dimensional models to images, IEEE Transactions on PAMI, vol. 13, pp. 441-450, 1991. An index composed of line features (hereinafter referred to as a line index), such as that used in “)”, may be used. For example, using the distance from the origin of the straight line as a reference for evaluation, an error vector U is constituted by the error Δd calculated from the detected value d from the image and the estimated value d * from the state vector s, and the calculation formula of d * Is formed by a 1 row × 4 column Jacobian matrix J ds (= ∂d / ∂s) having a solution obtained by partially differentiating each of the state vectors with each element of the state vector s. The position and orientation can be measured by the framework. In addition, it is possible to use these features together by stacking error and image Jacobian obtained from the line index, point index, and other indices.

(変形例3)
上記の実施形態では、方位ドリフト誤差を有する姿勢センサを用いていたが、姿勢センサとして方位方向にのみ顕著な誤差を有する他の姿勢センサを用いることも可能である。例えば、加速度センサによって傾斜方向の角度を計測し、地磁気センサによって方位方向の角度を計測するタイプの姿勢センサにおいても、位置と方位誤差補正値の更新値を未知パラメータとして、上記実施形態と同様な処理によって計測対象の位置と姿勢の計測を行うことができる。ただし、この場合、方位ドリフト誤差とは誤差の性質が異なるため、第3の実施形態や、第4の実施形態のような形態に用いるには適していない。また、傾斜方向のみを計測する姿勢センサを用いる場合でも、方位方向の計測値が常に0となる3軸の姿勢センサと仮定すると、同様な処理によって計測対象の位置と姿勢の計測を行うことができる。
(Modification 3)
In the above embodiment, an attitude sensor having an azimuth drift error is used, but another attitude sensor having a significant error only in the azimuth direction can be used as the attitude sensor. For example, in an orientation sensor of a type that measures an angle in an inclination direction with an acceleration sensor and measures an angle in an azimuth direction with a geomagnetic sensor, the update value of the position and the azimuth error correction value is used as an unknown parameter, as in the above embodiment. The position and orientation of the measurement target can be measured by the processing. However, in this case, since the nature of the error is different from the azimuth drift error, it is not suitable for use in the form as in the third embodiment or the fourth embodiment. Also, even when using an orientation sensor that measures only the tilt direction, the position and orientation of the measurement target can be measured by a similar process, assuming a 3-axis orientation sensor in which the measured value in the azimuth direction is always 0. it can.

[他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
[Other Embodiments]
An object of the present invention is to supply a storage medium (or recording medium) in which a program code of software for realizing the functions of the above-described embodiments is recorded to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus. Is also achieved by reading and executing the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention. Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an operating system (OS) running on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.

さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Furthermore, after the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function is determined based on the instruction of the program code. It goes without saying that the CPU or the like provided in the expansion card or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.

本発明を上記記憶媒体に適用する場合、その記憶媒体には先に説明したフローチャートに対応するプログラムコードが格納されることになる。   When the present invention is applied to the above-mentioned storage medium, the program code corresponding to the flowchart described above is stored in the storage medium.

第1の実施形態における位置姿勢計測装置の構成を示す図である。It is a figure which shows the structure of the position and orientation measurement apparatus in 1st Embodiment. コンピュータの基本構成を示す図である。It is a figure which shows the basic composition of a computer. CPU1001が姿勢予測部150のソフトウェアのプログラムを実行することで行われる、計測対象物体130の位置及び姿勢を示すパラメータを算出する処理のフローチャートである。10 is a flowchart of processing for calculating a parameter indicating the position and orientation of the measurement target object 130, which is performed by the CPU 1001 executing a software program of the posture prediction unit 150. CPU1001が位置姿勢算出部120のソフトウェアのプログラムを実行することで行われる、計測対象物体130の位置及び姿勢を示すパラメータを算出する処理のフローチャートである。10 is a flowchart of processing for calculating parameters indicating the position and orientation of the measurement target object 130, which are performed by the CPU 1001 executing a software program of the position and orientation calculation unit 120. CPU1001が位置姿勢算出部520のソフトウェアのプログラムを実行することで行われる、計測対象物体130の位置及び姿勢を示すパラメータを算出する処理のフローチャートである。10 is a flowchart of processing for calculating parameters indicating the position and orientation of the measurement target object 130, which are performed by the CPU 1001 executing a software program of the position and orientation calculation unit 520.

Claims (5)

物体の位置姿勢を算出する情報処理装置であって、
前記物体に配置された指標を、固定された位置が既知である客観視点位置姿勢から、撮像した撮像画像を入力する画像入力手段と、
前記物体の姿勢計測値を計測する姿勢計測手段と、
前記姿勢計測手段の方位ドリフト誤差補正値、前記指標の前記物体に対する位置、および前記客観視点位置を保持する保持手段と、
前記姿勢計測値および前記方位ドリフト誤差補正値に基づいて、前記物体の姿勢予測値を計算する姿勢予測手段と、
前記撮像画像に撮像された指標の画像座標を検出する指標検出手段と、
前記姿勢予測値、前記検出された指標の画像座標、該指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、前記物体の位置姿勢を算出する位置姿勢算出手段と、
前記算出された位置姿勢に基づいて、前記保持された方位ドリフト誤差補正値を更新する更新手段と、
を有し、
前記位置姿勢算出手段が、
前記物体の位置姿勢の設定値を入力する設定値入力手段と、
前記検出した指標が2点以上あるか否かを判定する指標判定手段と、
前記検出した指標が2点以上あると判定された場合に、前記姿勢予測値、前記設定値、前記指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、該指標の画像座標の推定値を算出する推定値算出手段と、
前記検出された指標の画像座標と当該指標の画像座標の推定値との誤差を算出する誤差算出手段と、
前記算出された誤差に基づいて、前記物体の位置姿勢の補正値を算出する補正値算出手段と、
前記算出された補正値に基づいて、前記設定値を補正する補正手段と、
を有することを特徴とする情報処理装置。
An information processing apparatus for calculating the position and orientation of an object,
An image input means for inputting a captured image of an index placed on the object from an objective viewpoint position and orientation whose fixed position is known;
Posture measuring means for measuring the posture measurement value of the object;
A holding means for holding the orientation drift error correction value of the posture measuring means, the position of the index with respect to the object, and the objective viewpoint position;
Posture prediction means for calculating a posture prediction value of the object based on the posture measurement value and the azimuth drift error correction value;
Index detecting means for detecting the image coordinates of the index imaged in the captured image;
Position and orientation calculation means for calculating the position and orientation of the object based on the predicted orientation value, the image coordinates of the detected index, the position of the index with respect to the object, and the objective viewpoint position and orientation;
Updating means for updating the held azimuth drift error correction value based on the calculated position and orientation;
Have
The position and orientation calculation means is
Setting value input means for inputting a setting value of the position and orientation of the object;
Index determining means for determining whether or not the detected index is two or more;
When it is determined that there are two or more detected indices, the image coordinates of the indices are estimated based on the predicted posture value, the set value, the position of the index with respect to the object, and the objective viewpoint position and orientation. An estimated value calculating means for calculating a value;
Error calculating means for calculating an error between the image coordinates of the detected index and an estimated value of the image coordinates of the index;
Correction value calculation means for calculating a correction value of the position and orientation of the object based on the calculated error;
Correction means for correcting the set value based on the calculated correction value;
An information processing apparatus comprising:
前記位置姿勢算出手段が、前記算出された誤差もしくは前記算出された補正値が、予め保持された閾値よりも小さいか否かを判定する収束判定手段とを有し、
前記設定値入力手段が、前記前記算出された誤差もしくは前記算出された補正値が、予め保持された閾値よりも小さくないと判定された場合に、前記算出された位置姿勢を前記設定値として再入力することを特徴とする請求項1に記載の情報処理装置。
The position / orientation calculation means includes a convergence determination means for determining whether the calculated error or the calculated correction value is smaller than a threshold value held in advance .
When the set value input means determines that the calculated error or the calculated correction value is not smaller than a pre-stored threshold value, the calculated position / orientation is re-used as the set value. The information processing apparatus according to claim 1, wherein the information processing apparatus is input.
物体の位置姿勢を算出する情報処理装置が行う位置姿勢計測方法であって、
前記情報処理装置が有する画像入力手段が、前記物体に配置されて該物体に対する位置が既知である指標を、固定された位置が既知である客観視点位置姿勢から、撮像した撮像画像を入力する画像入力工程と、
前記情報処理装置が有する姿勢計測手段が、前記物体の姿勢計測値を計測する姿勢計測工程と、
前記姿勢計測値および予め保持された前記姿勢計測手段の方位ドリフト誤差補正値に基づいて、前記物体の姿勢予測値を計算する姿勢予測工程と、
前記情報処理装置が有する指標検出手段が、前記撮像画像に撮像された指標の画像座標を検出する指標検出工程と、
前記情報処理装置が有する位置姿勢算出手段が、前記姿勢予測値、前記検出された指標の画像座標、該指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、前記物体の位置姿勢を算出する位置姿勢算出工程と、
前記情報処理装置が有する更新手段が、前記算出された位置姿勢に基づいて、前記保持された方位ドリフト誤差補正値を更新する更新工程と、
を有し、
前記位置姿勢算出工程では、
前記位置姿勢算出手段が有する設定値入力手段が、前記物体の位置姿勢の設定値を入力する設定値入力工程と、
前記位置姿勢算出手段が有する指標判定手段が、前記検出した指標が2点以上あるか否かを判定する指標判定工程と、
前記位置姿勢算出手段が有する推定値算出手段が、前記検出した指標が2点以上あると判定された場合に、前記姿勢予測値、前記設定値、前記指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、該指標の画像座標の推定値を算出する推定値算出工程と、
前記位置姿勢算出手段が有する誤差算出手段が、前記検出された指標の画像座標と当該指標の画像座標の推定値との誤差を算出する誤差算出工程と、
前記位置姿勢算出手段が有する補正値算出手段が、前記算出された誤差に基づいて、前記物体の位置姿勢の補正値を算出する補正値算出工程と、
前記位置姿勢算出手段が有する補正手段が、前記算出された補正値に基づいて、前記設定値を補正する補正工程と、
を有することを特徴とする位置姿勢計測方法。
A position and orientation measurement method performed by an information processing apparatus that calculates the position and orientation of an object,
The image input means of the information processing apparatus inputs an imaged image captured from an objective viewpoint position and orientation with a known fixed position and an index that is arranged on the object and whose position relative to the object is known Input process;
A posture measurement step in which the posture measurement means of the information processing apparatus measures a posture measurement value of the object;
A posture prediction step of calculating a posture prediction value of the object based on the posture measurement value and the orientation drift error correction value of the posture measurement means held in advance;
An index detection unit in which the index detection unit included in the information processing apparatus detects an image coordinate of the index captured in the captured image;
The position and orientation calculation means of the information processing device calculates the position and orientation of the object based on the predicted orientation value, the image coordinates of the detected index, the position of the index with respect to the object, and the objective viewpoint position and orientation. A position and orientation calculation step to calculate;
An updating step that the update unit included in the information processing apparatus updates the held azimuth drift error correction value based on the calculated position and orientation;
Have
In the position and orientation calculation step,
A set value input step in which the set value input means of the position and orientation calculation means inputs a set value of the position and orientation of the object;
An index determination unit included in the position and orientation calculation unit determines whether or not the detected index is two or more points; and
When the estimated value calculating means included in the position / orientation calculating means determines that there are two or more detected indices, the estimated attitude value, the set value, the position of the index with respect to the object, and the objective viewpoint An estimated value calculating step of calculating an estimated value of the image coordinates of the index based on the position and orientation;
An error calculating step of calculating an error between the detected image coordinates of the index and an estimated value of the image coordinates of the index;
A correction value calculation step in which the correction value calculation means included in the position and orientation calculation means calculates a correction value of the position and orientation of the object based on the calculated error; and
A correction step in which the correction means included in the position and orientation calculation means corrects the set value based on the calculated correction value;
A position and orientation measurement method characterized by comprising:
請求項3に記載の位置姿勢計測方法が有する各工程をコンピュータに実行させるためのプログラム。   The program for making a computer perform each process which the position and orientation measurement method of Claim 3 has. 請求項4に記載のプログラムを格納するコンピュータ読み取り可能な記憶媒体。   A computer-readable storage medium storing the program according to claim 4.
JP2004144894A 2004-05-14 2004-05-14 Position and orientation measurement method and information processing apparatus Expired - Fee Related JP4612804B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004144894A JP4612804B2 (en) 2004-05-14 2004-05-14 Position and orientation measurement method and information processing apparatus
US11/126,437 US7467061B2 (en) 2004-05-14 2005-05-11 Information processing method and apparatus for finding position and orientation of targeted object
EP05252971.6A EP1596332B1 (en) 2004-05-14 2005-05-13 Information processing method and apparatus for finding position and orientation of targeted object

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004144894A JP4612804B2 (en) 2004-05-14 2004-05-14 Position and orientation measurement method and information processing apparatus

Publications (2)

Publication Number Publication Date
JP2005326283A JP2005326283A (en) 2005-11-24
JP4612804B2 true JP4612804B2 (en) 2011-01-12

Family

ID=35472751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004144894A Expired - Fee Related JP4612804B2 (en) 2004-05-14 2004-05-14 Position and orientation measurement method and information processing apparatus

Country Status (1)

Country Link
JP (1) JP4612804B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100854672B1 (en) 2007-07-10 2008-08-28 삼성중공업 주식회사 Data providing method for marking process
JP5186873B2 (en) * 2007-10-10 2013-04-24 セイコーエプソン株式会社 POSITIONING METHOD, PROGRAM, POSITIONING DEVICE, AND ELECTRONIC DEVICE
JP5186874B2 (en) * 2007-10-10 2013-04-24 セイコーエプソン株式会社 POSITIONING METHOD, PROGRAM, POSITIONING DEVICE, AND ELECTRONIC DEVICE
CN103727885A (en) * 2014-01-16 2014-04-16 深圳市华测检测技术股份有限公司 Detection method for yo-yo elastic tether length
CN103727886A (en) * 2014-01-16 2014-04-16 深圳市华测检测技术股份有限公司 Length measuring device for yoyo elastic tying rope
JP7180170B2 (en) * 2018-07-27 2022-11-30 三菱電機株式会社 Output correction method of TMR sensor
CN110414337B (en) * 2019-06-21 2023-12-05 上海汽车工业(集团)总公司 Target attitude detection system and detection method thereof
CN114049394B (en) * 2021-11-23 2022-06-21 智道网联科技(北京)有限公司 Monocular distance measuring method, device, equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001241928A (en) * 2000-03-01 2001-09-07 Sanyo Electric Co Ltd Shape measuring apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09189513A (en) * 1996-01-10 1997-07-22 Kawasaki Heavy Ind Ltd Marker gravity center measurement method and device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001241928A (en) * 2000-03-01 2001-09-07 Sanyo Electric Co Ltd Shape measuring apparatus

Also Published As

Publication number Publication date
JP2005326283A (en) 2005-11-24

Similar Documents

Publication Publication Date Title
JP4593968B2 (en) Position and orientation measurement method and apparatus
JP4859205B2 (en) Information processing apparatus, information processing method, and program
EP1596330B1 (en) Estimating position and orientation of markers in digital images
JP4785416B2 (en) Position and orientation measurement method and apparatus
JP4914039B2 (en) Information processing method and apparatus
JP5036260B2 (en) Position and orientation calculation method and apparatus
JP4886560B2 (en) Information processing apparatus and information processing method
JP4136859B2 (en) Position and orientation measurement method
JP5230114B2 (en) Information processing apparatus and information processing method
KR100934564B1 (en) Information processing device and information processing method
JP5132138B2 (en) Position and orientation measurement method, position and orientation measurement device
JP5196825B2 (en) Image processing apparatus and image processing method
JP4956456B2 (en) Image processing apparatus and image processing method
JP5728372B2 (en) Information processing apparatus, information processing apparatus control method, and program
JP4726191B2 (en) Position / orientation correction apparatus, position / orientation correction method, program thereof, and storage medium
JP4566786B2 (en) Position and orientation measurement method and information processing apparatus
JP4612804B2 (en) Position and orientation measurement method and information processing apparatus
JP2009168626A (en) Position attitude measurement device and method
JP4926598B2 (en) Information processing method and information processing apparatus
JP5620972B2 (en) Information processing apparatus and information processing method
JP2008140047A (en) Information processing method and information processor
JP4810403B2 (en) Information processing apparatus and information processing method
JP2015215191A (en) Position-posture measurement device, method, and program
JP2016065830A (en) Image processor and image processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100625

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101005

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101016

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4612804

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees