相机外参标定适用于安装有 3D 相机(模型文件中勾选了3Dcamera属性;该属性根据相机型号自动赋值,请勿人工修改)或二维RGB相机的车辆,每个符合条件的相机都对应一个此类型的标定项。
一、所需数据
该标定的标定结果直接由深度相机插件给出。该插件是通过识别地面相对于相机的距离和角度来求取相机外参的。
二、标定动作
该标定无需运动,仅需调整车辆位置使待标定的 3D 相机的视野里尽可能多地为水平地面。点击“开始标定”后将立即返回标定结果。
三、注意事项
如前所述,标定时需要使待标定的 3D 相机的视野里尽可能多地看到水平地面。因此,当装备了多个 3D 相机时,请注意分辨标定项所对应的标定相机,并据此调整车辆位置。
四、RGB相机以及图漾相机标定(用于二维码识别以及栈板识别功能)
4.1、二维码支架标定
标定支架设计图纸可以从以下链接中下载:
对于安装在地牛或者叉车上面用于二维码识别功能以及识别栈板功能的相机,可以参考下面进行相机的标定,首先需要一个标定支架,如下图所示,二维码大小一般在10cm左右即可:
其中支架必须和地牛叉齿严密贴合,保证支架垂直于地面,同时支架也与货架腿保持垂直。接下来在支架上面需要粘贴两个二维码,左边需要粘贴ID=0的二维码,右边粘贴ID=1的二维码。然后在参数配置中分别配置如上图所示的各个参数:
Tag_Height: 二维码的中心距离地面的高度
Tag_disFromCenter: 二维码距离里程中心的X方向距离
Tag_Size: 二维码的大小
disBetweenTag: 两个二维码中心之间的距离
各个参数配置完成后,然后确认模型文件中相机类型下不要勾选3Dcamera,如下图:
然后保存推送之后,可以在其他选项中,选中该品牌相机进行标定。标定成功后即可输出相机安装位置的标定参数,同时在标定结束后,可以在roboshop通过首页,机器人文件,选中robokit segmentation文件夹,进入可以以tag开头命名的jpg文件,下载该文件可以看到标定结果,如下图所示:
在结果图中可以看到左边识别到的tag为ID=0,右边的tag为ID=1,说明识别成功。
4.2、二维码标定板
对于相机倾斜安装时,可以看到叉齿的时候,倾角比水平往下10度以上时,新增一种将二维码对称粘贴在货架腿的模式,如下图所示:
其中参数含义如上图所示,同时将参数配置中tagInFork改为true即可
4.3、标定失败以及注意事项
4.3.1、标定失败
有时候在环境光过曝的情况下,会出现图像亮度特别高,如下图所示:
如果标定的时候失败,可以从调试文件cameraData文件夹中查看图片数据,如果发现存在过曝或者光线不足的情况,可以通过修改相机模型文件中的参数RGBAnalogGain和exposuretime来调整增益以及曝光时间
将RGBAnalogGain和exposuretime改小后,可以将整个图像亮度降低,反之改大则可以提高亮度。
4.3.2、检查标定数据
通常标定完相机数据将标定数据设置完成之后,可以在模型文件中看到标定数据,如下图所示:
其中相机的外参是模型文件的数据加上红框标定数值,因此标定完成后需要根据求和之后来判断结果的合理性。这里x,y表示相机在机器人里程坐标系的位置,需要根据设计图去确定,z是指相机的离地高度,可以拿尺进行准确量取,通常标定后的高度与测量的高度误差应该小于0.05m(主要来源于相机中心难以确定),roll表示相机的倾角(一般水平的时候是-90度,往下越多则比-90更小,因此如果相机朝下看的话,一般小于-90),pitch角度一遍都比较小(不会超过1°)。yaw表示相机和机器人的水平角度偏差(如果相机安装在叉车或者地牛上,通常都是180或者-180左右,一般偏差不会超过5°,除非特别的安装方式)。因此根据这些经验数据来判断标定的合理性,超过这些数据就需要检查一下。
4.3.3、注意事项
1、通常使用图漾FM851或者FM830标定的图片数据分辨率为1280960,如果发现标定的数据分辨率为640480或者其他分辨率,则标定数据会差特别多,因此发现标定结果特别差的时候可以检查一下图片分辨率。(发现该问题需要上报研发)
2、目前在RBK程序版本3.3.5.56版本以上,图片数据保存到segmentation目录,后续需要从这个目录查找