132gs 模组双目深度问题

:bullseye: 问题明确:StereoNet 节点崩溃(exit code -11)

从日志看,StereoNet 节点启动后立即崩溃(段错误),核心原因可能是:

:cross_mark: 关键问题

  1. use_mipi_cam=True 导致资源冲突 - 相机已单独运行,脚本又尝试启动相机节点
  2. 标定文件格式可能不兼容 - SC132gs 标定文件可能是 X5 格式,S100 需要特定格式

:white_check_mark: 完整解决方案

步骤 1:修改 use_mipi_cam=False(关键)

# 编辑 run_stereo.sh
vim run_stereo.sh

# 找到这行(约 55 行):
use_mipi_cam=True

# 改为:
use_mipi_cam=False

# 保存退出

原因:你已经单独运行了 run_cam.sh,相机话题 /image_combine_raw 正常发布 30Hz。如果 use_mipi_cam=True,脚本会尝试再次启动相机节点,导致资源冲突。

步骤 2:检查标定文件格式

# 查看标定文件完整内容
cat /opt/tros/humble/lib/mipi_cam/config/SC132gs_dual_calibration.yaml

S100 需要的标定文件格式(参考 SC230ai):

%YAML:1.0
camera_matrix_1:
   rows: 3
   cols: 3
   data: [fx1, 0, cx1, 0, fy1, cy1, 0, 0, 1]
distortion_1:
   rows: 1
   cols: 5
   data: [k1, k2, p1, p2, k3]
camera_matrix_2:
   rows: 3
   cols: 3
   data: [fx2, 0, cx2, 0, fy2, cy2, 0, 0, 1]
distortion_2:
   rows: 1
   cols: 5
   data: [k1, k2, p1, p2, k3]
rectification_1: ...
rectification_2: ...
projection_1: ...
projection_2: ...
baseline: 0.06

你之前贴出的标定文件只有 RT 矩阵,格式可能不完整

步骤 3:使用 SC230ai 标定文件临时测试

# 修改 run_stereo.sh
vim run_stereo.sh

# 将标定文件路径改为 SC230ai(格式已知正确):
stereo_calib_file_path="/opt/tros/humble/lib/mipi_cam/config/SC230ai_dual_calibration.yaml"

# 保存后重新运行
bash run_stereo.sh --stereonet_version v2.4 2>&1 | tee stereo_v2.log

步骤 4:查看完整崩溃日志

# 等待 30 秒后按 Ctrl+C,然后查看:
grep -A20 "init StereoNetNode" stereo_v2.log
grep -E "ERROR|died|segmentation" stereo_v2.log | tail -20

:clipboard: 快速修复命令(一键执行)

# 1. 修改配置
sed -i 's/use_mipi_cam=True/use_mipi_cam=False/g' run_stereo.sh
sed -i 's|SC132gs_dual_calibration.yaml|SC230ai_dual_calibration.yaml|g' run_stereo.sh

# 2. 确认修改
grep -E "use_mipi_cam|stereo_calib_file_path" run_stereo.sh | head -3

# 3. 清理进程并重新运行
killall stereonet_model_node mipi_cam 2>/dev/null
sleep 2
bash run_stereo.sh --stereonet_version v2.4 2>&1 | tee stereo_v2.log

:magnifying_glass_tilted_left: 验证深度输出

# 新开终端检查
ros2 topic list | grep depth
ros2 topic hz /StereoNetNode/stereonet_depth

# 如果有数据,说明成功!

:books: 配置总结

参数 正确值 说明
use_mipi_cam False 相机已单独运行
calib_method custom S100 v2.4 专用
stereo_calib_file_path 绝对路径 使用已知正确的标定文件
render_type "distance" 字符串格式

:open_book: 相关参考


优先执行步骤 1(use_mipi_cam=False)+ 步骤 3(用 SC230ai 标定文件测试)。把新的日志输出(特别是 init StereoNetNode 后的内容)补充到帖子,可以帮你精准定位标定文件问题!