标定 ========================================== 标定是指获取机械臂坐标系和相机坐标系的转化关系,将视觉识别的结果转移到机械臂坐标系下,同时标定可用于校正由于镜头畸变造成的图像扭曲。 **相机的安装方式** 相机的安装方式有两种,安装在机械臂上和固定在场景中。 下图所示的是相机安装在机械臂上的方式,该方式又被称为眼在手上(eye on hand)。在该方式中,相机固定于机械臂末端法兰上,相机与机械臂法兰的相对位置是固定的。 .. image:: calibration/img/eoh.png :width: 200px 下图所示的是相机固定在场景中的方式,该方式又被称为眼在手外(eye to hand)。在该方式中,相机独立安装在固定支架上。 .. image:: calibration/img/eth.png :width: 200px **标定的分类** 标定分为内参标定和外参标定两个部分。 - 内参标定:内参指的是相机内部固有的基本参数,包括镜头焦距、:term:`像素` 大小、畸变系数等,内参标定的目的在于准确计算出这些参数。该标定方式仅针对2D相机,3D相机无需内参标定。 - 外参标定:外参指的是相机在世界坐标系中的位置、旋转方向等参数,外参标定又可分为手眼标定和双目标定两种。 - 手眼标定:获取相机和机械臂间的转换关系,可分为如下两种方式。 - 相机在机械臂上:即眼在手上(eye on hand),可使用彩色图和点云标定。 - 相机固定在场景:即眼在手外(eye to hand),也可使用彩色图和点云标定。 - 双目标定:获得两台相机之间的相互位置关系的标定,用于获取物体的深度信息,并通过相机外参,将世界坐标系与相机坐标系联系起来。进行双目标定之前,需要先通过手眼标定确定主相机的手眼关系,然后再对从相机进行标定。 **标定板的分类** 标定板是有固定间距图案阵列的平板,通过相机拍摄带有标定板的图片,然后通过计算以完成标定任务。 目前Max支持的常用标定板有三种: - 五行六列_20mm:长120mm,适用于相机视野较小的情况。 .. image:: calibration/img/plate65.png :width: 200px - 四行五列_50mm​:长250mm,适用于相机视野较大的情况。 .. image:: calibration/img/plate54.png :width: 200px - 九行十一列_15mm:该标定板为圆点图案,适用于2D相机内参标定。 .. image:: calibration/img/platecircle.png :width: 200px 此外,用户可根据需求自定义标定板,用户可设置标定板类型、行数、列数、格子边长以及二维码边长,系统可自动生成标定板。自定义标定板在配置 :guilabel:`视觉` 界面时,在视觉流图中的 **加载标定信息** 模块中配置。需要注意的是,用户自定义标定板是行数必须小于列数,二维码边长必须小于格子边长。 .. image:: calibration/img/userplate.png :width: 400px **标定板的安装** .. warning:: 安装标定板前请确保机械臂断电,以确保人员安全。 将标定板安装在机械臂的末端,将螺丝拧紧即可。 - 对于眼在手上的标定方式,请检查标定板是否在固定位置,确保标定过程中标定板不发生晃动。 - 对于眼在手外的标定方式,请检查标定板是否装紧固,确保标定过程中标定板和法兰的相对位置固定。 **标定的流程** 相机标定时,2D相机需要先在 :guilabel:`视觉` 界面的 **相机** 模块中 :guilabel:`相机参数` 区域,标定相机内参,具体方法请参见 :doc:`calibration/intrinsics`。然后在 **加载标定信息** 模块中,标定相机外参,具体方法请参见 :doc:`calibration/handeye` 和 :doc:`calibration/binocular`。 .. image:: calibration/img/cameracali.png :align: center .. toctree:: :maxdepth: 2 :hidden: calibration/intrinsics calibration/handeye calibration/binocular calibration/workspace