情報詳細Q1:「calibrate_sheet_of_light_calplate.hdev」Part2.のセクションの処理内容を教えて下さい。A1:前提として、Part2では、世界座標系に対するレーザー平面の姿勢を算出することが目的です。平面の定義からして、レーザー平面とその姿勢を決定するためには平面に含まれる座標を少なくとも3点得る必要があります。3点というのは、平面を取得するために必要な最低限の点数であり、精度を高めるためには、冗長性が必要です。実際できるだけ多くの点群を計算に用いて、平面の近似が行われます。compute_3d_coordinates_of_light_line() は、平面の近似に用いられる、点群を取得するための処理を行います。2つのレーザー線画像と、対応するキャリブレーション画像から取得したポーズを使用し、レーザー線に含まれる各点の3次元座標を算出します。fit_3d_plane_xyz() では、得られた点群から、実際にレーザー平面を近似しています。3次元点群の座標[X,Y,Z]から、重心座標[Ox, Oy, Oz]と、近似平面の法線ベクトル座標[Nx, Ny, Nz]を出力しています。近似平面の品質評価のため、各点と近似平面間の平均残差距離(= MeanResidual)が計算されます。Q2:Part2で使用している画像は、どのような条件の光線画像ですか?A2:レーザー線は、キャリブレーションプレートが配置されている平面に投影する必要です。キャリブレーションプレートの1つの配置に対して、①キャリブレーションプレート と ②レーザー線 の映る2枚の画像を撮影します。ここで、プレートおよびレーザー線を明瞭に撮影するため、照明条件の調節は必要になります。また、2枚の画像間での高さの差は、測定する対象物で想定される高さと同じか、それ以上である必要があります。Q3:Part3(171行目から215行目)の処理内容とその意図を教えてください。A3:搬送系によって移動するプレートの画像を2枚使用し、オブジェクトの動きを表す変換行列をキャリブレーションしています。キャリブレーションプレートは、搬送系により離散的なステップ(=刻み幅)で移動します。まず、2枚の画像それぞれから、キャリブレーションプレートのポーズが導出されます。その後、2つのポーズ間の変換、つまり移動ステップ分に必要な変換を記述するようなポーズ(MovementPoseNSteps)が計算されます。ここでの変換は平行移動のみが想定されており、回転要素はすべて0として設定されます。1ステップ分の変換は、下記の式によって得られます。 MovementPose := MovementPoseNSteps / StepNumberQ4:光切断法によって得られた視差情報(235行目Disparity)からの値の取り出し方を教えてください。A4:通常の画像と同様に、get_grayval() がお使い頂けます。get_region_points()と組み合わせてご使用頂くことで、Regionに含まれる点の輝度値をまとめて取得することも可能です。Q5:得られる視差画像(Disparity)の意味についてA5:視差画像とは、画像の1行1行に1回のプロファイルから得られた視差情報が格納されています。キャリブレーションなしの場合、プロファイル画像中にてレーザー光が検出された行座標として視差情報が表現されます。キャリブレーションありの場合は、自動的にキャリブレーションが反映され、実スケールでの差異として表現されます。Q6:ソリューションガイド(3D)p.150 figure 6.8の撮影画像について、キャリブレーションボード上にレーザー光を当てている画像が写っていますが、何を意図しているでしょうか?A6:キャリブレーションプレートに当たった光が散乱し、プレート以外の箇所に当たった場合よりも太く映ってしまう現象を図示しています。キャリブレーション時には、プレートの1つの配置に対して ①キャリブレーションプレート と ②レーザー線 の映る2枚の画像を撮影します。ここでレーザー線は、キャリブレーションプレートが配置されているのと同じ平面に投影する必要があります。ただし、可能であれば、キャリブレーションプレートに直接投影するのではなく、その近くにのみ投影することが望ましいです。これは、標準のHALCONキャリブレーションプレートが強い散乱を示すセラミック素材でできているためです。 添付ファイルタイトルHALCON / 光切断法 Q&AURL 名000006458公開状況公開済み検証状況公開済み