情報詳細Q:エッジサポートサーフェスマッチングを使う際にfind_surface_model_imageでエラー9521が発生します。エッジサポートを有効化するために'train_3d_edges', 'true'を行い、下記のようにカメラパラメータとPoseも設定しています。 create_surface_model (Model, 0.03, 'train_3d_edges', 'true', SFM) set_surface_model_param (SurfaceModel, 'camera_parameter', CameraParam) set_surface_model_param (SurfaceModel, 'camera_pose', CameraPose) find_surface_model_imageを実行するとRequired 2D mapping missing in 3D object model (HALCONエラーコード: 9521)と出ます。走査時の3D Objectはread_object_model_3dで3D点群データ(ply)を読み込んでいます。A:find_surface_model_image の入力引数ObjectModel3Dは、XYZ mapping属性が必要です。plyから読み込んだom3dにはこれがありません。HDevelopの変数ビューウィンドウでObjectModel3Dをダブルクリックすると付与されている属性を確認できます。XYZ mapping 'true'とするためには、下記操作が必要です。 object_model_3d_to_xyz (X, Y, Z, ObjectModel3D, 'cartesian', CameraParam, PoseToObject) xyz_to_object_model_3d (X, Y, Z, ObjectModel3DWithXYZMapping) object_model_3d_to_xyz で3D ObjectからX画像、Y画像、Z画像にします。この際使うCameraParamとPoseToObjectはHALCONでキャリブレーションした結果を利用してください。PoseToObjectは、カメラから対象物までの姿勢情報でして、例えば、キャリブレーション時にget_calib_data_observ_pointsやget_calib_data_observ_poseなどを用いて取得した1枚目のキャリブレーションプレートの位置姿勢を使用しても問題ありません。続いてxyz_to_object_model_3dを用いて、X画像、Y画像、Z画像を再度3D Objectに変換することでXYZ mappingのついた3D Objectとなります。添付ファイルタイトルfind_surface_model_imageでエラー9521が発生するURL 名000004751公開状況公開済み検証状況検証済み