根据官方文档,GS130W(sc132gs 传感器)在 RDK X5 上的使用有特定配置要求。
问题根因
错误 infmt err bgr8-nv12 表明:编码器内部实际期望 NV12 格式,但参数配置与实际数据流不匹配。
正确解决方案
确认系统版本
首先检查系统版本是否满足要求:
cat /etc/version
# 需要 3.3.3 及以上
如果版本过低,需要升级系统镜像。
使用官方推荐的启动方式
根据文档,GS130W 相机的正确启动流程是:
步骤 1:启动 MIPI 相机节点
# 对于 sc132gs 传感器(GS130W)
ros2 launch hobot_mipi_cam mipi_cam.launch.py \
camera_type:=sc132gs \
output_type:=rectify
步骤 2:启动双目深度算法 + Web 可视化
ros2 launch hobot_stereonet codec_web_visual.launch.py \
codec_sub_topic:=/image_combine_raw \
codec_in_format:=nv12 \
input_framerate:=30
关键参数说明
| 参数 | 正确值 | 说明 |
|---|---|---|
camera_type |
sc132gs |
GS130W 的传感器型号 |
output_type |
rectify |
输出校正后的双目图像 |
codec_in_format |
nv12 |
必须是 nv12,MIPI 相机默认输出格式 |
完整启动脚本
创建启动脚本 start_gs130w.sh:
#!/bin/bash
source /opt/tros/humble/setup.bash
# 启动 MIPI 相机
ros2 launch hobot_mipi_cam mipi_cam.launch.py \
camera_type:=sc132gs \
output_type:=rectify &
sleep 2
# 启动 Web 可视化
ros2 launch hobot_stereonet codec_web_visual.launch.py \
codec_sub_topic:=/image_combine_raw \
codec_in_format:=nv12 \
input_framerate:=30
验证步骤
# 1. 确认话题有数据
ros2 topic hz /image_combine_raw
# 2. 确认图像 encoding
ros2 topic echo /image_combine_raw --field encoding --once
# 应该输出:nv12
# 3. 访问 Web 界面
# 浏览器打开:http://<RDK_IP>:8080
常见问题排查
| 问题 | 排查方法 |
|---|---|
| 相机不识别 | 检查 MIPI 排线方向(CAM 端接相机,RDK 端接开发板) |
| 图像花屏 | 确认 camera_type 参数正确 |
| Web 无法访问 | 检查防火墙设置,确认 8080 端口开放 |
| 帧率过低 | 降低 input_framerate 或升级系统版本 |
参考文档
如果按上述步骤操作后仍有问题,请提供:
cat /etc/version输出ros2 topic echo /image_combine_raw --field encoding --once输出- 完整的启动日志