问题进展分析
既然标定文件格式和 SC230ai 一样,那格式应该没问题。从日志看,核心问题是 StereoNet 节点启动后段错误崩溃(exit code -11)。
最终排查方案
步骤 1:先确保相机节点独立运行正常
# 1. 清理所有相关进程
killall mipi_cam stereonet_model_node hobot_codec_republish websocket 2>/dev/null
sleep 3
# 2. 单独运行相机节点
bash run_cam.sh --rotation 90.0 --log_level INFO
# 3. 新开终端验证相机话题
ros2 topic hz /image_combine_raw
ros2 topic echo /image_combine_raw/right/camera_info --once
如果 camera_info 还是没有输出,说明 mipi_cam 节点本身有问题。
步骤 2:使用 SC230ai 标定文件测试(排除标定文件问题)
# 修改 run_stereo.sh 使用 SC230ai 标定文件
vim run_stereo.sh
# 修改这行:
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_sc230ai.log
步骤 3:检查系统版本(关键)
SC132GS 在 S100 上的支持是 V4.0.2 版本才修复的:
# 检查系统版本
cat /etc/hobot_version
# 或
cat /etc/issue
# 如果版本低于 V4.0.2,建议升级
# 参考:https://developer.d-robotics.cc/rdk_doc/rdk_s/Release_Note/v4_0_2
步骤 4:查看完整崩溃日志
# 等待 30 秒后按 Ctrl+C,然后查看:
grep -A50 "init StereoNetNode" stereo_sc230ai.log
grep -E "ERROR|died|segmentation|invalid" stereo_sc230ai.log | tail -30
可能原因分析
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| exit code -11 | 标定参数与分辨率不匹配 | 使用 SC230ai 标定文件测试 |
| exit code -11 | 模型文件损坏 | 重新安装 hobot_stereonet |
| exit code -11 | S100 与 SC132GS 兼容性问题 | 升级系统到 V4.0.2+ |
| camera_info 无输出 | mipi_cam 配置问题 | 检查 mipi_cam 参数 |
请补充以下诊断信息
# 1. 系统版本
cat /etc/hobot_version 2>/dev/null || cat /etc/issue
# 2. 单独运行相机时的 camera_info 输出
ros2 topic echo /image_combine_raw/right/camera_info --once
# 3. 使用 SC230ai 标定文件后的完整日志
grep -A50 "init StereoNetNode" stereo_sc230ai.log
# 4. IIO 设备状态
ls /sys/bus/iio/devices/
临时测试方案
如果上述方法都无效,可以尝试离线图片模式验证 StereoNet 是否正常:
# 1. 修改 run_stereo.sh
vim run_stereo.sh
# 改为离线模式:
use_local_image_flag=True
local_image_dir=/opt/tros/humble/share/hobot_stereonet/sample_images
# 2. 运行测试
bash run_stereo.sh --stereonet_version v2.4
如果离线模式能正常输出深度,说明是相机数据流问题;如果离线模式也崩溃,说明是StereoNet 本身问题。
相关参考
- RDK S100 V4.0.2 版本发布 - SC132GS 修复说明
- 基于官方 132GS MIPI 双目相机运行双目 Demo 报错 - 同类问题案例
- 132GS MIPI 双目相机如何自行标定 - 标定配置详解
优先执行步骤 1+2,把 ros2 topic echo /image_combine_raw/right/camera_info --once 的输出和系统版本补充到帖子,这是定位问题的关键信息!