双目的标校文件

在run_stereo.sh文件中有这么一行

stereo_calib_file_path=calib.yaml

但是找不到calib.yaml的源文件。

如果我更改双目产品,不使用官网的双目,我需要改calib.yaml。
我应该如何处理这种情况呢

calib.yaml 本来就不存在,不用找——它只是个占位路径,只有 calib_method=custom 时才会去读。用官方双目(GS130W/WI)时,标定参数是 mipi_cam 从模组内置标定数据里读出来、走 camera_info 话题传给算法的,不经过这个文件。

换成自己的双目,两条路:

1. 推荐:kalibr 自行双目标定 + custom 模式

bash run_stereo.sh --calib_method custom \
  --stereo_calib_file_path /path/to/my_calib.yaml

YAML 必须是 kalibr 产出的这种结构(含 cam0/cam1 内参 + 双 camera 间外参):

cam0:
  camera_model: pinhole
  intrinsics: [fx, fy, cx, cy]
  distortion_coeffs: [k1, k2, p1, p2]
  distortion_model: radtan
  resolution: [1920, 1080]
cam1:
  T_cn_cnm1: [[...4x4...]]   # 双目外参
  intrinsics: [...]
  ...

完整标定流程(官方 kalibr docker 镜像、标定板要求、数据采集命令)见 AMR 开发指南「3.5 传感器标定」:6.1 AMR 开发指南 | RDK X3/X5 DOC

2. 偷懒法:none 模式 + 命令行直接传参

bash run_stereo.sh --calib_method none \
  --camera_fx 875.0 --camera_fy 877.0 \
  --camera_cx 640.0 --camera_cy 360.0 \
  --baseline 0.06 --doffs 0.0

只影响深度换算,不做去畸变和极线校正,精度要求不高时可用。

避坑:别把 ROS camera_calibration 出的 ost.yaml 或 mipi_cam 的标定文件直接喂给 custom 模式,格式对不上会在 init StereoRectify 后直接段错误(exit code -11),社区已踩过:自定义标定:RDK X5 + SC230ai 双目运行run_stereo,sh,加载自定义标定文件(custom模式)必现 exit code -11 (段错误)

另外换非官方 sensor 通常还涉及 hobot_mipi_cam 驱动适配(驱动不支持你的 sensor 就出不了流),这类深度适配官方公开资料有限,建议报名 DGP 开发者计划获取深度支持:https://developer.d-robotics.cc/dgp

stereo_calib_file_path=calib.yaml 是启动脚本里的默认路径配置。按官方 StereoNet 参数说明,相机已完成 GDC 矫正时使用 calib_method=none,不需要再通过这个文件做软件矫正;相机未做矫正时,才使用 custom 并指定实际的双目标定文件。因此,不能把 calib.yaml 当作可以直接复用到其他双目上的通用参数。

更换双目后,建议先参考官方 stereo_calib 标定流程:采集该相机的棋盘格图像,按实际棋盘格尺寸和镜头模型标定,生成 stereo_xxxx.yaml,再将 stereo_calib_file_path 指向生成文件的实际路径。需检查重投影误差及 rectify 矫正图,并核对左右目顺序、标定与运行的图像分辨率;文件生成成功不等于深度精度已通过。

第三方双目的具体驱动适配、定制标定格式转换等属于二次开发,超出论坛生态技术支持可直接解决的范围。请先参考上述官方流程和配套示例;若仍无法解决,需要根据具体问题对接软件或 RDK 板卡硬件研发同事进一步评估。

完整资料地址:

  • StereoNet 参数说明:https://developer.d-robotics.cc/rdk_doc/Robot_development/boxs/spatial/hobot_stereonet/
  • 官方标定工具:https://github.com/D-Robotics/stereo_calib