注:1.zed2相机我只使用了左眼作为单目相机
2.使用moveit_calibration功能包进行手眼标定,有误差,可以后续抓取物体的时候补偿
3.修正,之前产生的问题来源于我对于坐标系间的关系的错误认识,ZED2相机的坐标系太多了,只能说所有标定方法都可以,而且在标定之后不要拆相机了,容易造成人为误差。
1.安装功能包
ubuntu18.04 20.04均可采用这篇文章(MoveIt Calibration ROS手眼标定模块安装)的安装方法,但注意20.04下geometric_shapes和moveit_visual_tools采用 noetic-devel。
2.标定板
标定板格子多一些标定更准确,于是我们采用7*7方案,其他各项设置数据如下:
注意:在选择 sensor frame 时候一定要与自己使用的 camera_info 中的 frame_id 一致,毕竟之后使用坐标转换要使用内参矩阵,要保证内参矩阵与手眼标定矩阵的坐标系一致。具体理论不再赘述,可自行查找。
3.标定
1.标定过程中,zed2相机有点云数据,一定要在rviz中打开看一下相机识别到的标定板的深度与通过视觉看到标定板从而推断出的深度是否一致,简单来说就是看标定板点云图像与标定板坐标是不是同一高度。这一点很重要,否则标定出来了也不能用。我之前使用easy-handeye就是存在这个问题。
2.标定过程中尽量让机械臂动三个关节以上,这样比较准确。