问题已解决!
从日志看到关键改善:
[StereoNetNode]: => sub rectified [fx, fy, cx, cy, baseline(m), doffs] :
[252.011457, 163.066237, 326.581749, 173.519216, 0.079981, 0.000000]
[StereoNetNode]: => publish result, fps: 14.71, bpu_usage: 90%
标定参数已正确加载,StereoNet 节点正常运行!
下一步:验证 rviz2 点云显示
现在点云应该能正常发布了,按以下步骤验证:
检查点云话题是否有数据
# 查看点云数据
ros2 topic echo /StereoNetNode/stereonet_pointcloud2 --once
# 查看点云话题频率
ros2 topic hz /StereoNetNode/stereonet_pointcloud2
如果有点云数据输出,说明发布正常。
rviz2 配置检查
启动 rviz2:
rviz2
关键配置:
| 设置项 | 值 |
|---|---|
| Fixed Frame | camera_link |
| PointCloud2 Topic | /StereoNetNode/stereonet_pointcloud2 |
| Queue Size | 10 |
| Style | Flat Squares |
| Size (m) | 0.01 - 0.05(根据点云密度调整) |
如果 rviz2 仍不显示点云
检查坐标系:
# 查看 tf 树
ros2 run tf2_tools view_frames.py
evince frames.pdf
# 或查看 tf 话题
ros2 topic echo /tf --once
添加 static_transform(如果需要):
# 如果 Fixed Frame 是 base_link,需要添加变换
ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 base_link camera_link
总结
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 点云不显示 | 标定参数缺失(fx=0, baseline=nan) | 使用官方 run_stereo.sh 脚本 |
| StereoNet 节点崩溃 | 收不到 camera_info | 脚本自动加载标定文件 |
| AWB OTP 数据异常 | 相机 EEPROM 读取问题 | 不影响深度计算,可忽略 |
相关社区资源
请在 rviz2 中测试点云显示,如果还有问题,提供:
ros2 topic hz /StereoNetNode/stereonet_pointcloud2的输出- rviz2 的 Fixed Frame 设置
- rviz2 中 PointCloud2 的配置截图