眼在手上标定说明
1. 内参标定
1.1 安装配置
1.1.1 标定材料准备
访问以下链接下载用于内参标定的棋盘格
https://markhedleyjones.com/projects/calibration-checkerboard-collection
将下载的文件打印出来后固定到大小合适的面板上,用游标卡尺测量方格的大小并记录数据。
或用平板显示下载的pdf,固定文件页面显示界面(如下图所示),测量棋格大小并记录数据。
1.1.2 相机位置固定
将相机固定在机械臂相机支架上,同时固定机械臂于桌面。
1.1.3 相机驱动安装
1.1.4 标定库及配置
一般情况下,ROS默认安装了camera_calibration
相关的库,可以运行以下命令测试:
若输出为以下内容可跳过该步骤。
反之,根据以下命令安装及配置标定库。
1.2 内参标定启动
1.2.1 相机启动
运行成功后可看到相应的相机图像数据。
1.2.2 机械臂启动 (可选)
分别在两个终端启动以下指令:
该步骤可忽略,主要是为了调整相机到合适高度以尽可能多采集数据。
1.2.3 内参标定代码启动
将对应的size
和square
修改为对应棋盘格的数据。
1.3 标定过程
1.3.1 数据采集
在相机标定代码启动后,把标定板移动到相机视野中,会出现下图右侧所示的内容。
通过旋转和移动标定板尽可能采集更多的图像数据直至 X Y Size Skew
对应的进度条颜色为绿色且接近满格,之后,点击CALIBRATION
按钮,计算标定结果,计算的时长和标定数据集的大小正相关。
1.3.2 标定保存
内参标定结果计算出后,点击界面右侧的SAVE
按钮保存标定结果。
运行以下命令更改标定结果存储位置:
将压缩包解压后,保存标定结果至usb-cam
能自动加载内参数据文件的路径下:
若相关的文件夹不存在,需要自行创建。
1.3.3 标定验证
关闭相机程序并重新启动。
运行以下指令验证相机内参数据是否成功加载:
得到结果:
2. 外参标定
2.1 环境搭建
2.1.1 准备 Aruco 标定码
访问以下网址生成Aruco码或用文档中的PDF打印Aruco码。
2.1.2 硬件环境搭建
将相机固定在机械臂相机支架上,机械臂固定在桌面上,同时把打印出的 Aruco 码固定于桌面。
2.1.3 软件库安装及配置
参考以下文档2.2
节安装标定库
参考文档的第3节修改配置~/alicia_ws/src/example/logi_eye_on_hand.launch
相关参数
2.2 眼在手标定启动
2.2.1 机械臂启动
roslaunch alicia_duo_driver serial_server.launch
2.2.2 标定代码启动
cd alicia_ws/src/example
roslaunch logi_eye_on_hand.launch
2.3 标定过程
参照眼在外标定中标定具体步骤,完成眼在手外参标定。
运行上述代码后,新建终端并输入:
检测/aruco_tracker/result
数据,确保Aruco ID正确识别。
- 点击
Take Sample
进行数据记录每一个机械臂位姿, 以下界面是标定数据记录窗口。
- 更新机械臂位姿,单次数据记录后,按照下图步骤控制机械臂运动。
点击Check starting pose
,测试起始位姿是否能成功标定(需多次尝试,尽量找最优的标定起始点,即能够通过测试且标定过程中无规划失败的位姿)。
- 重复步骤1和步骤2采集标定17条数据。
- 标定结果计算。
采集完数据后,切换Calibration algorithm
为OpenCV/Daniilidis
并点击Compute
按钮。
最终计算出以下结果并点击Save
保存结果。
3. 参考资料
https://wiki.ros.org/camera_calibration
https://markhedleyjones.com/projects/calibration-checkerboard-collection