132gs 模组双目深度问题

:bullseye: 问题根因:StereoNet 节点持续崩溃

从最新日志看,StereoNet 节点启动后段错误崩溃(exit code -11),深度话题无法发布。


:white_check_mark: 最终解决方案

方案 1:检查 StereoNet 模型文件是否存在

# 1. 确认模型文件存在
ls -la /opt/tros/humble/share/hobot_stereonet/config/dstereo_s100_320_640_352_v2.4.hbm

# 2. 如果文件不存在或损坏,重新安装
apt update
apt install --reinstall hobot-stereonet

方案 2:尝试 StereoNet v2.3 版本(更稳定)

v2.4 版本可能有兼容性问题,尝试 v2.3:

# 修改运行命令
bash run_stereo.sh --stereonet_version v2.3 2>&1 | tee stereo_v23.log

方案 3:检查标定文件字段名称

StereoNet v2.4 对字段名称敏感,必须使用 left_camera_matrix 而非 camera_matrix_1

# 创建正确格式的标定文件
cat > /opt/tros/humble/lib/mipi_cam/config/SC132gs_dual_calibration.yaml << 'EOF'
%YAML:1.0
image_width: 1280
image_height: 1088
left_camera_matrix: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [528.6953213954334, 0.0, 621.6598968327049, 0.0, 469.7443489102585, 344.7801912987854, 0.0, 0.0, 1.0]
left_distortion_coefficients: !!opencv-matrix
   rows: 1
   cols: 8
   dt: d
   data: [-0.19022404784416216, 0.08737900971037368, -0.00013633102684873613, 2.8387028454768084e-05, 0.037123187744979025, 0.1798687498557986, -0.06820294642386052, 0.10684527621059339]
right_camera_matrix: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [529.2760196145524, 0.0, 654.6320151265384, 0.0, 470.4236596788936, 318.0571160826385, 0.0, 0.0, 1.0]
right_distortion_coefficients: !!opencv-matrix
   rows: 1
   cols: 8
   dt: d
   data: [-0.08168737119014227, 0.051348177058130356, 0.00010479656330654928, -8.819143676712554e-06, 0.024544736926599094, 0.28711736495579887, -0.06268635878956813, 0.07182651571059339]
R: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [0.9999771405493721, -0.0008865181729254466, -0.006703168223329922, 0.000844157865516232, 0.9999796745904039, -0.006319636347751682, 0.006708634451158759, 0.006313833352156998, 0.9999575639656925]
T: !!opencv-matrix
   rows: 3
   cols: 1
   dt: d
   data: [-0.06981825961809152, -0.00031854332254735906, -3.61077528349911e-05]
baseline: 0.06981825961809152
EOF

方案 4:查看完整崩溃日志定位原因

# 1. 运行并保存完整日志
bash run_stereo.sh --stereonet_version v2.4 2>&1 | tee stereo_full.log

# 2. 等待 30 秒后 Ctrl+C,查看:
grep -A50 "init StereoNetNode" stereo_full.log
grep -B5 "process has died" stereo_full.log

:clipboard: 快速诊断命令

# 1. 检查模型文件
ls -la /opt/tros/humble/share/hobot_stereonet/config/*.hbm

# 2. 检查 StereoNet 包状态
apt list --installed | grep stereonet

# 3. 查看标定文件
cat /opt/tros/humble/lib/mipi_cam/config/SC132gs_dual_calibration.yaml | head -30

# 4. 检查 run_stereo.sh 配置
grep -E "use_mipi_cam|calib_method|stereo_calib_file_path|stereonet_version" run_stereo.sh | head -10

可能原因分析

现象 可能原因 解决方案
exit code -11 模型文件缺失/损坏 重新安装 hobot-stereonet
exit code -11 标定文件字段名称不匹配 使用 left_camera_matrix 格式
exit code -11 StereoNet v2.4 版本 Bug 尝试 v2.3 版本
exit code -11 内存不足 检查 free -h

:books: 相关参考


优先执行方案 3(使用 left_camera_matrix 字段名称的标定文件),然后补充以下信息到帖子:

# 1. 模型文件检查结果
ls -la /opt/tros/humble/share/hobot_stereonet/config/*.hbm

# 2. 完整崩溃日志
grep -A50 "init StereoNetNode" stereo_full.log

这样可以精准定位是模型问题还是标定文件格式问题!