SCARA机器人手眼标定之目标抓取的例子:
显示如何基于由SCARA手眼校准确定的校准信息,使用SCARA机器人执行拾取和放置应用程序。 在第一步骤中,根据模型图像定义形状模型。 然后,基于该形状模型,在每个图像中搜索对象。 对于一个选定的对象,计算可用于掌握该对象的机器人坐标。 为了使该示例适用于实际应用,必须从相机获取图像(而不是从文件读取),并且必须实施机器人的控制(而不是在本示例中被注释掉的相应行)。 通常,图像必须在匹配之前校正。 如果摄像机完全正交于测量平面,则此步骤可以仅被省略。 要使用提供的示例图像运行示例程序,RectifyImages必须设置为true。
RectifyImages := true
*使用实例图像
RectifyImages := true
***********读取手眼标定结果***********************************
try
* 读取机器人坐标系下摄像机位姿
read_pose ('cam_in_base_pose.dat', CamInBasePose)
*读取摄像机内参
read_cam_par ('camera_parameters.dat', CameraParam)
*读取摄像机坐标系下测量平面位姿
read_pose ('measurement_plane_in_cam_pose.dat', MPInCamPose)
catch (Exception)
*当没有找到时,可以通过SCARA机械手有眼标定来获取位姿和摄像机内参
CamInBasePose := [0.05592166548,0.19497621789,0.48025117245,180.09816119,29.85593363,179.94389014,0]
CameraParam := [0.0165251,-642.277,4.65521e-006,4.65e-006,595.817,521.75,1280,1024]
MPInCamPose := [0.0045679683065,-0.0028695297318,0.4088853425,359.78658429,29.732027579,0.22946472765,0]
endtry
if (RectifyImages)
*获取摄像机坐标系下测量平面位姿校正后的映射关系
prepare_rectification_map (Map, CameraParam, MPInCamPose, MappingScale, MPInCamPoseMapping)
*将图像坐标系下圆点[0,0]坐标转换为世界坐标系下MapUpperLeftX, MapUpperLeftY坐标
image_points_to_world_plane (CameraParam, MPInCamPoseMapping, \
0, 0, 'm', MapUpperLeftX, MapUpperLeft