GDC 校准参数能同步调整应用顺序吗?是不是因为接反了导致左右矫正也用反了,右边传感器现在读取是乱码,这个正常吗?我用了默认标定文件数据能好一些
回答你的关键问题
GDC 校准参数与左右目顺序的关系
是的,GDC 校准参数与左右目顺序直接相关!
如果左右目接反了,GDC 校正时会:
- 用左目的内参去校正右目图像
- 用右目的内参去校正左目图像
- 导致 rectified 图像的内参与实际不匹配
这就是深度误差 10 倍的根本原因!
右边传感器 EEPROM 乱码是否正常
正常! 从社区案例 34255 确认:
i2c bus: 4, EEPROM FLAG: SC230AI ✅ 正常识别
i2c bus: 6, EEPROM FLAG: ⚠️ 乱码(不影响使用)
官方 SC230AI 模组的第二个通道 EEPROM 读取乱码是已知现象,不影响图像采集和深度计算。
为什么默认标定文件反而更好
这说明 stereo.yaml 中的默认参数可能恰好匹配了当前的 resize 比例!
分析:
| 配置 | 内参来源 | 深度效果 |
|---|---|---|
| MIPI calib_params.yaml | 640x480 原始参数 | |
| stereo.yaml 默认值 | 可能是 640x352 参数 |
解决方案
方案 1:确认 stereo.yaml 的默认参数(推荐)
# 查看当前 stereo.yaml 内容
cat /opt/tros/humble/share/hobot_stereonet/config/stereo.yaml
# 对比 MIPI 标定文件
cat /opt/tros/humble/lib/mipi_cam/config/calib_params.yaml
如果 stereo.yaml 默认值效果更好,说明它匹配了 640x352 的分辨率。
方案 2:让 GDC 输出匹配模型输入
# 使用 640x352 启动相机(无需 resize)
source /opt/tros/humble/setup.bash
ros2 launch mipi_cam mipi_cam_dual_channel.launch.py \
mipi_image_width:=640 \
mipi_image_height:=352 \
device_mode:=dual \
mipi_channel:=2 \
mipi_channel2:=0
# 启动 StereoNet
ros2 launch hobot_stereonet stereonet_model_web_visual_v2.4_int16_usb_cam.launch.py
观察日志,应该不再出现:
input image size not match model input size, need resize
方案 3:手动计算正确的内参
如果必须用 640x480 输出,需要按比例缩放内参:
sudo vim /opt/tros/humble/share/hobot_stereonet/config/stereo.yaml
# 原始内参(640x480):
# fx=261, fy=255, cx=318, cy=225
# 缩放后内参(640x352):
# scale = 352/480 = 0.733
# fx = 261 * 0.733 = 191
# fy = 255 * 0.733 = 187
# cx = 318 (不变)
# cy = 225 * 0.733 = 165
intrinsics: [191.0, 187.0, 318.0, 165.0]
验证步骤
# 1. 查看 stereo.yaml 默认值(效果好的那个)
cat /opt/tros/humble/share/hobot_stereonet/config/stereo.yaml
# 2. 记录内参值
# [fx, fy, cx, cy, baseline]
# 3. 实测深度
# 1m 处物体 → 应显示 0.9-1.1m
# 2m 处墙面 → 应显示 1.8-2.2m
总结
| 问题 | 答案 |
|---|---|
| GDC 校准与左右目顺序 | 直接相关,接反会导致内参错配 |
| EEPROM 乱码 | 正常现象,不影响使用 |
| 默认标定更好 | 说明默认参数匹配了当前分辨率 |
| 深度误差 10 倍 | 内参与分辨率不匹配导致 |
建议: 既然默认标定文件效果更好,就用 stereo.yaml 的默认配置,配合 640x352 分辨率 启动相机,避免 resize。
把 stereo.yaml 的内容和实测结果补充到 原帖,这样官方技术支持能确认参数是否正确!![]()
问题分析
从你的截图来看,左右目顺序已解决(不再报错),但深度质量仍有问题:
| 现象 | 可能原因 |
|---|---|
| 深度值范围合理 (0.4-2.1m) | |
| 点云"一坨"难区分 | |
| 深度图有明显噪点 |
优化方案
对比测试 V2.4 模型(推荐)
社区反馈 V2.4 比 V2.5 更稳定,先验证是否是模型版本问题:
# 停止当前运行
# Ctrl+C
# 启动 V2.4 int16
source /opt/tros/humble/setup.bash
ros2 launch hobot_stereonet stereonet_model_web_visual_v2.4_int16_usb_cam.launch.py
对比效果:
- 点云是否更清晰?
- 深度边缘是否更连续?
调整 StereoNet 后处理参数
修改 stereo.yaml 启用滤波:
sudo vim /opt/tros/humble/share/hobot_stereonet/config/stereo.yaml
# 添加/修改以下参数:
speckle_filter_enable: 1 # 启用斑点滤波
max_speckle_size: 200 # 最大斑点大小(默认100)
max_disp_diff: 2 # 最大视差差异(默认1)
uncertainty_th: 0.3 # 不确定性阈值(默认-0.1)
参数说明:
| 参数 | 作用 | 建议值 |
|---|---|---|
speckle_filter_enable |
去除孤立噪点 | 1 |
max_speckle_size |
滤除小斑点 | 100-300 |
uncertainty_th |
过滤低置信度区域 | 0.2-0.5 |
确认标定参数匹配分辨率
# 查看当前配置
cat /opt/tros/humble/share/hobot_stereonet/config/stereo.yaml
# 查看 MIPI 标定文件
cat /opt/tros/humble/lib/mipi_cam/config/calib_params.yaml
# 确认两者分辨率一致
grep -E "resolution|intrinsics" /opt/tros/humble/share/hobot_stereonet/config/stereo.yaml
关键检查:
- 如果相机输出 640x352,内参
cy应接近 176 - 如果相机输出 640x480,内参
cy应接近 240
检查光照和纹理条件
从你的截图看,部分区域纹理较少(如白色墙面),这会影响立体匹配:
改善建议:
- 确保测试环境有足够纹理
- 避免强光直射或过暗环境
- 标定板测试时确保棋盘格清晰可见
快速验证命令
# 1. 查看当前模型版本
grep "model_file" /opt/tros/humble/share/hobot_stereonet/launch/*.py
# 2. 查看后处理参数
grep -E "speckle|uncertainty" /opt/tros/humble/share/hobot_stereonet/config/stereo.yaml
# 3. 查看相机输出分辨率
ros2 topic echo /image_combine_raw --once | grep -E "width|height"
建议的测试流程
# 步骤 1:使用 V2.4 模型 + 默认配置测试
ros2 launch hobot_stereonet stereonet_model_web_visual_v2.4_int16_usb_cam.launch.py
# 步骤 2:如果效果仍差,启用后处理滤波
# 修改 stereo.yaml 中的 speckle_filter_enable: 1
# 步骤 3:在纹理丰富的环境测试
# 避免白墙、玻璃等低纹理场景
# 步骤 4:对比官方示例效果
# 使用官方提供的测试图像验证模型是否正常
请补充到原帖
请在 原帖 中补充:
# 1. 当前使用的模型版本
# 2. stereo.yaml 完整内容
# 3. 相机输出分辨率
# 4. V2.4 与 V2.5 的对比效果
当前状态总结
| 检查项 | 状态 | 说明 |
|---|---|---|
| 左右目顺序 | 硬件调换后不报错 | |
| 极线对齐 | 特征点连线水平 | |
| 深度值范围 | 0.4-2.1m 符合实际 | |
| 深度质量 | 噪声大/点云不清晰 | |
| 模型版本 | 建议测试 V2.4 |
优先尝试:换 V2.4 模型 + 启用后处理滤波,这两个调整通常能显著改善深度质量。有结果后请更新原帖,帮助其他遇到同样问题的开发者!![]()
您好,我们这边已经释放了新版本系统,和新的软件包,同时也有不同的算法版本,可以再测试一下是否满足需求
您好,指的是哪个版本?
帮你询问具体版本信息
Marcelo6151 是官方管理员(Trust level 4),他提到的新版本应该是近期发布的系统更新。帮你查一下社区最新版本信息:
关于 Marcelo6151 提到的"新版本"
根据社区最新信息,Marcelo6151 指的应该是:
系统镜像版本
- RDK X5 3.5.0(2026年3月发布)
- 或 3.4.1 的更新版本
StereoNet 算法版本
- V2.5.0 或更新的 V2.6 版本
- 社区反馈 V2.5 比 V2.4 有改进,但需要匹配正确的系统版本
立即查看你的当前版本
# 1. 查看系统版本
sudo cat /etc/version
# 或
cat /etc/horizon_version
# 2. 查看 StereoNet 包版本
dpkg -l | grep hobot-stereonet
# 3. 查看可用的更新
sudo apt update
apt list --upgradable | grep hobot
升级到最新版本
# 1. 更新软件源
sudo apt update
# 2. 升级 StereoNet 包
sudo apt install --reinstall tros-humble-hobot-stereonet
# 3. 升级所有 TROS 包
sudo apt upgrade tros-humble-*
# 4. 重启生效
sudo reboot
升级后验证
# 1. 确认 StereoNet 版本
dpkg -l | grep hobot-stereonet
# 2. 查看可用的 launch 文件
ls /opt/tros/humble/share/hobot_stereonet/launch/
# 3. 查看模型文件
ls /opt/tros/humble/share/hobot_stereonet/config/*.bin
# 4. 测试运行
source /opt/tros/humble/setup.bash
ros2 launch hobot_stereonet stereonet_model_web_visual_v2.5_int16_usb_cam.launch.py
建议
- 先查看当前版本 - 把
sudo cat /etc/version和dpkg -l | grep hobot-stereonet的输出补充到原帖 - Marcelo6151 是官方人员 - 他会在原帖中回复具体的版本号和升级方法
- 升级后重新测试 - 新版本可能修复了 V2.5 的内参/分辨率匹配问题
下一步: 请在原帖中回复你的当前版本信息,Marcelo6151 会给你具体的升级指导。如果已经是最新版本,可能需要提供日志让官方分析是否是参数配置问题。
你的当前系统版本是多少?运行 sudo cat /etc/version 看看。
新 3.5.0系统同时软件包也有更新
- RDK X5 3.5.0版本系统并没有找到
关于 RDK X5 3.5.0 系统获取
你说没找到 3.5.0 系统,这很正常——3.5.0 可能还未公开发布或需要通过特定渠道获取。
先确认你的当前版本
# 1. 查看系统版本
sudo cat /etc/version
# 2. 查看 SDK 版本
rdkos_info
# 3. 查看 StereoNet 包版本
dpkg -l | grep hobot-stereonet
请把以上命令的输出补充到 原帖。
3.5.0 系统获取方式
根据社区信息,3.5.0 系统有以下几种获取途径:
方式 1:通过官方 APT 源升级(推荐)
# 更新软件源
sudo apt update
# 查看可升级的系统包
apt list --upgradable | grep horizon
# 升级系统
sudo apt upgrade
方式 2:联系官方技术支持
如果 APT 源中没有 3.5.0,需要:
- 在原帖中回复你的当前版本信息
- Marcelo6151 会提供具体的升级指导或下载链接
- 或提交工单:地平线技术支持表单
方式 3:查看官方文档
# 访问 RDK DOC
https://developer.d-robotics.cc/rdk_doc/
临时解决方案(不升级系统)
如果暂时无法升级到 3.5.0,可以先尝试:
1. 升级到最新的 StereoNet 包
sudo apt update
sudo apt install --reinstall tros-humble-hobot-stereonet
2. 使用 V2.4 模型(社区反馈更稳定)
source /opt/tros/humble/setup.bash
ros2 launch hobot_stereonet stereonet_model_web_visual_v2.4_int16_usb_cam.launch.py
3. 优化后处理参数
sudo vim /opt/tros/humble/share/hobot_stereonet/config/stereo.yaml
# 启用滤波
speckle_filter_enable: 1
max_speckle_size: 200
uncertainty_th: 0.3
请在原帖补充的信息
# 1. 当前系统版本
sudo cat /etc/version
# 2. 当前 StereoNet 版本
dpkg -l | grep hobot-stereonet
# 3. rdkos_info 输出
rdkos_info
# 4. 深度效果截图
# (你之前已经上传了)
总结
| 事项 | 状态 |
|---|---|
| 3.5.0 系统 | |
| 当前版本 | sudo cat /etc/version 输出 |
| 临时方案 |
下一步: 请在原帖中回复你的当前版本信息,Marcelo6151 是官方人员,会给你具体的 3.5.0 升级指导或替代方案。同时可以先用 V2.4 模型测试,看深度质量是否有改善。
3.5.0 系统镜像链接已发布!
Marcelo6151 刚刚提供了官方下载链接:
下载地址:
https://archive.d-robotics.cc/downloads/os_images/rdk_x5/rdk_os_3.5.0-2026-4-9/
升级步骤
下载系统镜像
# 在 PC 上下载(需要约 4-8GB 空间)
wget https://archive.d-robotics.cc/downloads/os_images/rdk_x5/rdk_os_3.5.0-2026-4-9/rdk_x5_3.5.0_2026-4-9.img.xz
# 解压
unxz rdk_x5_3.5.0_2026-4-9.img.xz
烧录到 SD 卡
# Linux/Mac 使用 balenaEtcher 或 dd 命令
# Windows 使用 Rufus 或 balenaEtcher
# dd 命令示例(谨慎操作,确认设备名)
sudo dd if=rdk_x5_3.5.0_2026-4-9.img of=/dev/sdX bs=4M status=progress
启动后验证
# 查看系统版本
sudo cat /etc/version
# 查看 StereoNet 版本
dpkg -l | grep hobot-stereonet
# 查看可用的模型版本
ls /opt/tros/humble/share/hobot_stereonet/config/*.bin
3.5.0 预期改进
根据官方发布节奏,3.5.0 可能包含:
| 改进项 | 说明 |
|---|---|
| StereoNet 算法 | 可能包含 V2.6 或优化的 V2.5 |
| MIPI 相机驱动 | 修复 SC230AI 标定参数加载问题 |
| GDC 校正 | 改进极线对齐精度 |
| 后处理滤波 | 更好的去噪效果 |
升级后测试清单
# 1. 使用官方启动脚本测试
source /opt/tros/humble/setup.bash
ros2 launch mipi_cam mipi_cam_dual_channel.launch.py device_mode:=dual
# 2. 启动 StereoNet(查看有哪些版本可用)
ls /opt/tros/humble/share/hobot_stereonet/launch/
# 3. 测试深度效果
# 站在 1m、2m、3m 处对比深度值
# 4. 查看日志中的内参
# 找 [fx, fy, cx, cy, baseline] 这一行
升级注意事项
| 事项 | 说明 |
|---|---|
| 备份数据 | 升级会清空 SD 卡,提前备份重要文件 |
| 电源稳定 | 烧录和启动时确保 12V/3A 电源 |
| 排线检查 | 重新插拔 MIPI 相机排线,确保卡扣锁紧 |
| 保留旧卡 | 保留旧 SD 卡,方便回退测试 |
如果升级后仍有问题
请在 原帖 中补充:
# 1. 升级后的版本信息
sudo cat /etc/version
dpkg -l | grep hobot-stereonet
# 2. 启动日志(内参部分)
# [fx, fy, cx, cy, baseline]
# 3. 深度实测对比
# 实际距离 vs 深度图显示值
# 4. 点云截图
# 与之前对比是否有改善
当前进展总结
| 问题 | 状态 |
|---|---|
| 左右目顺序 | |
| 极线对齐 | |
| 系统版本 | |
| 深度质量 |
建议: 先下载 3.5.0 镜像烧录测试,这是官方针对此类问题发布的最新版本。如果升级后深度质量仍有问题,Marcelo6151 可以在原帖中提供更具体的参数配置指导。
升级完成后记得在原帖更新测试结果!![]()
升级3.5桌面通过hdmi,屏幕抖动很明显
新问题:HDMI 屏幕抖动
升级 3.5.0 后出现 HDMI 屏幕抖动,这是显示配置或兼容性问题,与深度算法无关,但需要解决才能继续调试。
可能原因
| 原因 | 概率 | 说明 |
|---|---|---|
| 分辨率/刷新率不匹配 | 3.5.0 默认输出可能与显示器不兼容 | |
| HDMI 线材质量 | 4K/高刷新率需要高质量线材 | |
| 电源供电不足 | 屏幕抖动 + 系统升级,功耗增加 | |
| 显示器兼容性 | 部分显示器与新系统驱动不兼容 | |
| 显示配置错误 | 系统显示配置文件需要调整 |
排查步骤
检查当前显示配置
# 查看当前分辨率和刷新率
xrandr
# 查看 HDMI 连接状态
xrandr --query | grep HDMI
# 查看系统日志中的显示相关错误
dmesg | grep -i hdmi
dmesg | grep -i drm
尝试调整分辨率/刷新率
# 列出可用的分辨率模式
xrandr
# 强制设置为 1920x1080 60Hz(稳定模式)
xrandr --output HDMI-1 --mode 1920x1080 --rate 60
# 如果还是抖动,尝试 1280x720
xrandr --output HDMI-1 --mode 1280x720 --rate 60
检查电源供电
# 查看电源电压(需要万用表测量)
# 确保是 12V/3A 官方电源
# 查看系统功耗
tegrastats # 如果可用
建议:
- 使用官方 12V/3A 电源
- 避免使用 USB 供电或功率不足的适配器
更换 HDMI 线材
- 使用短线(1 米以内)测试
- 确保是 HDMI 2.0 或以上规格
- 避免使用老旧或质量差的线材
查看社区类似案例
HDMI 屏幕抖动问题分析
升级 3.5.0 后出现 HDMI 屏幕抖动,这通常是分辨率/刷新率配置不匹配或显示驱动兼容性问题。
可能原因
| 原因 | 说明 | 概率 |
|---|---|---|
| 分辨率/刷新率不匹配 | 3.5.0 默认输出模式与显示器 EDID 不匹配 | |
| 显示驱动问题 | 新版本 HDMI 驱动与特定显示器兼容性 | |
| 电源/排线问题 | 升级过程中排线松动或电源不稳定 | |
| 显示器 EDID 识别错误 | 系统读取的刷新率与实际不符 |
排查步骤
查看当前显示配置
# 查看当前分辨率和刷新率
xrandr
# 查看 HDMI 输出状态
xrandr --query | grep HDMI
# 查看 Xorg 日志中的显示配置
sudo cat /var/log/Xorg.0.log | grep -i "mode\|edid\|output"
尝试切换分辨率
# 列出所有支持的分辨率
xrandr
# 尝试切换到 1920x1080@60Hz(最稳定)
xrandr --output HDMI-1 --mode 1920x1080 --rate 60
# 或尝试 1280x720@60Hz
xrandr --output HDMI-1 --mode 1280x720 --rate 60
检查显示器支持的刷新率
# 查看 EDID 信息(如果 xrandr 可用)
xrandr --props | grep -A20 "EDID"
# 或使用 read-edid 工具
sudo apt install read-edid
sudo get-edid | parse-edid
临时禁用图形界面测试
# 切换到命令行模式
Ctrl+Alt+F3
# 如果命令行不抖动,说明是图形界面配置问题
# 登录后可以尝试重启图形界面
sudo systemctl restart lightdm
解决方案
方案 1:强制指定稳定分辨率(推荐)
# 创建/修改分辨率配置文件
sudo vim /etc/X11/xorg.conf.d/1-resolution.conf
# 添加以下内容(强制 1920x1080@60Hz):
Section "Monitor"
Identifier "HDMI-1"
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
Option "PreferredMode" "1920x1080_60.00"
EndSection
Section "Screen"
Identifier "Screen0"
Monitor "HDMI-1"
DefaultDepth 24
SubSection "Display"
Modes "1920x1080_60.00"
EndSubSection
EndSection
重启生效:
sudo reboot
方案 2:使用 cvt 生成标准 Modeline
# 生成 1920x1080@60 的标准 Modeline
cvt 1920 1080 60
# 输出示例:
# Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
# 复制这个 Modeline 到上面的配置文件中
方案 3:回退到旧版本测试
如果 3.5.0 确实有显示驱动 bug,可以暂时回退:
# 使用旧版 SD 卡启动
# 或重新烧录 3.4.1 镜像
请补充到原帖的信息
请在 原帖 中补充:
# 1. xrandr 输出
xrandr
# 2. 显示器型号和分辨率
# (例如:1920x1080@60Hz)
# 3. Xorg 日志中的错误
sudo cat /var/log/Xorg.0.log | grep -i error
# 4. 抖动现象描述
# - 是整个屏幕抖动还是局部?
# - 是垂直抖动还是水平抖动?
# - 命令行模式是否也抖动?
快速验证
# 1. 切换到命令行(Ctrl+Alt+F3)
# 如果不抖动 → 图形界面配置问题
# 2. 尝试不同分辨率
xrandr --output HDMI-1 --mode 1280x720 --rate 60
# 观察是否改善
# 3. 检查电源
# 确保使用 12V/3A 官方电源,供电不足也会导致显示异常
建议
- 优先尝试方案 1 - 强制指定 1920x1080@60Hz,这是最稳定的配置
- 如果仍抖动 - 补充上述信息到原帖,Marcelo6151 会提供 3.5.0 的显示驱动修复方案
- 临时方案 - 使用 VNC 远程桌面进行开发,避开 HDMI 问题
注意: 3.5.0 是新版本,可能存在一些显示驱动的兼容性问题。如果问题普遍,官方会很快发布修复版本。先把你的显示器型号和 xrandr 输出补充到原帖!![]()
屏幕抖动?听起来像是显示适配的问题,跟双目算法无关?需要进一步的信息排查

