1、用标定板相机标定。第一个拍照位置标定板平放在皮带线上。标定完获得相机内参和第一个拍照位置的姿态(外参矩阵)。这个姿态对应的世界坐标系就在第一个拍照位置的标定板原点。知道在那就好,测量尺寸无所谓在哪。
2、标定流程就是常规的相机标定,标定板多个姿态拍照。注意就是第一个位置平放在皮带线上,以后测量会需要这个位置算出的世界坐标系姿态
参考这个算子的示例代码:image_points_to_world_plane。注意点就是set_origin_pose做姿态修正Z轴。标定板表面和待测物体高度差
* Perform camera calibration (with standard calibration plate).
calibrate_cameras (CalibDataID, Error)
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
* Get reference pose (pose 2 of calibration object 0).
get_calib_data (CalibDataID, 'calib_obj_pose',\
[0,2], 'pose', WorldPose)
* Compensate thickness of plate.
set_origin_pose(ObjInCameraPose, 0, 0, 0.0006, WorldPose)
* Transform image points into world coordinate system (unit mm).
image_points_to_world_plane(CamParam, WorldPose, PointRows, PointColumns, \
'mm', PointXCoord, PointYCoord) |