9. RealSense相机内外参标定#
一种用于机械臂末端相机内外参自动化标定的方法
提醒
联络技术支持团队获取标定板pdf文件、aruco码pdf文件以及相机内外参标定脚本的文件夹。
前置教程:
9.1 环境准备#
9.1.1 Python环境准备#
硬件支持:Intel RealSense系列相机及USB相机(默认设备ID为0)
依赖 | 版本 |
---|---|
pyrealsense2 | 2.55.1.6486 |
pyyaml | 3.4.4 |
9.1.2 RealSense相机驱动准备#
依赖 | 版本 |
---|---|
Intel RealSense SDK 2.0 | 2.0 |
9.1.2.1 标定板准备#
下载并打印标定板:

注意:打印时缩放比例保持100%!
9.1.3 环境安装步骤#
激活conda虚拟环境
安装pyrealsense2:9.1.4 物理环境准备(hand_in_eye眼在手上)#
按照距离机械臂底座约10cm距离,宽度6cm距离的样式放置标定板,以确保标定板保持在程序中自动标定的20个电位视野中。可以在calib/hand_eye_640*480/20250513112255格式的文件夹下检查标定板是否在相机捕捉的视野中,如果存在超出视野的,可以移动标定板的位置再次标定。


9.1.5 物理环境准备(hand_to_eye眼在手外)#
将标定板装配在机械臂末端,以标定相机与机械臂基坐标系之间的关系。

9.1.6 标定板参数#
程序使用10×8角点个数的标定板,标定板参数如下:

如果标定板参数发生改变需要在程序115行对应参数进行相应修改。
9.2 启动机械臂控制服务#
打开一个终端,运行机械臂控制服务
或<INTERFACE>
为接口名称,可通过ip link
查看,默认连接的设备名称为canX
(X 为编号,从0开始计数),如can0, can1等。<PORT>
为 gRPC 服务器监听端口。如果连接多个设备,每个设备应使用不同的端口号。为不同的设备可自定义不同 PORT 值,如50000, 50001, 50010等。 关键要点包括: 例:
9.3 执行自动化相机内参外参标定#
9.3.1 相机内参及眼在手上#
将脚本文件所在目录打开终端运行下列命令:
conda activate airbot
python3 -m airbot_calibration -t hand_in_eye_auto
## 若自动化标定不成功可使用手动标定,拖动机械臂至不同的位置并保证标定版完全在视野中,按下esc保存图片
python3 -m airbot_calibration -t hand_in_eye
注意
如需修改realsense相机分辨率,需要在cam_calibration_real_3.0/configs/rs_camera.yaml文件中对resolution参数进行修改。

运行结果如下:

可视化分析报告
程序将自动运行相机内参标定与外参标定,并将分析报告保存在类似目录下:

标定后的精度要求为Project Error: <0.03 ,标定精度受机械臂定位精度影响,最好在进行相机内外参标定前先进行机械臂精度标定,确保机械臂定位精度符合标准,若相机内外参标定不符合标准可以略微移动标定板再次标定。

9.3.2 相机内参及眼在手外标定#
将脚本文件所在目录打开终端运行下列命令:
conda activate airbot
python3 -m airbot_calibration -t hand_to_eye -c usbcam
## 需要指定usb相机时可以-d输入
python3 -m airbot_calibration -t hand_to_eye -c usbcam -d 0
## 更多参数详见代码
## 此代码同样支持,当自动化标定位姿点不能满足要求时可以使用此代码
python3 -m airbot_calibration -t hand_in_eye -c realsense
9.4 内外参精度验证#
将标定板换成aurco码面,运行文件夹下的aruco_detect_realsense.py文件 将Calibration_Report.txt移动到cam_calibration_real/configs目录下:
正确验证结果如下,如果平均误差大于1mm则需要重新进行相机内外参标定:

如果出现如下异常则说明标定板验证面超出相机视野,重新摆放以确保在相机视野内,可以运行airbot_realsense.py检查相机当前视野

运行后程序会将内外参结果可视化:
-
Intrinsic calibration verification:内参结果可视化,显示五个marker在相机坐标系下的坐标及相机坐标系下四个marker之间的距离(真实距离是150mm),左上角显示的是四个maker与中心marker的距离的平均误差
-
Extrinsic calibration verification: 外参结果可视化,显示五个marker在base坐标系下的坐标及base坐标系下四个marker之间的距离(真实距离是150mm),左上角显示的是四个maker与中心marker的距离的平均误差
9.5 异常处理#
如果图片中存在过多(超过10%)以下信息输出

需要按照第一步环境准备尽量精确防止标定板,再重新进行标定程序