根据您提供的错误日志和社区讨论,我为您整理了以下关键信息和解决方案建议:
问题核心分析
从您的日志中可以清晰看到两个主要错误:
1. MIPI 相机初始化失败:There are no available host.
[mipi_cam-1] [ERROR] [1749038243.671936137] [mipi_cam]: There are no available host.
[mipi_cam-1] [ERROR] [mipi_cam-1]: process has died [pid 10765, exit code -11]
→ 这表明 MIPI 摄像头驱动无法识别或访问任何 MIPI Host(主机通道),可能是:
- 硬件连接问题(如摄像头未正确插入或引脚接触不良)
- 驱动未加载或版本不兼容
- 系统内存/资源不足导致设备初始化失败
2. BPU 内存分配失败:Insufficient memory / Cannot allocate memory
[DNN] Runtime version = 1.24.5_(3.15.55 HBRT)
hbrtErrorBPUMemAllocFail
ION_ALLOCATOR: Fail to do ION_IOC_ALLOC(ret=Cannot allocate memory)!
hb_mem_alloc_com_buf_with_lable: Fail to allocate common buffer(ret=-16777211).
...
Load model failed, model file:/opt/tros/humble/share/hobot_stereonet/config/V22_disp96.bin
→ 这是深度学习模型加载失败的根本原因。BPU(AI加速芯片)无法分配足够的内存来加载模型,可能是因为:
- 系统总内存不足(尤其是 RDK X5 通常为 4GB RAM,运行双目+算法易爆内存)
- 内存池被其他进程占用
- 模型过大,超出 BPU 可用显存(HBM)
- 系统未正确配置 ION 内存池大小(Android/Linux 的内存管理机制)
解决方案建议
1. 检查硬件连接与电源
- 确认双目摄像头是否正确插入 RDK X5 的 MIPI 接口(通常是 J1 或 J2)
- 检查摄像头供电是否稳定(部分摄像头需要额外 5V 供电)
- 尝试更换摄像头或接口测试,排除硬件故障
提示:在文档《RDK X5 基础应用开发》中提到,MIPI 接口支持
host 0和host 2,但需确保固件和驱动支持。
2. 释放系统内存 & 优化 BPU 内存分配
方法一:重启系统并清空缓存
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
sudo reboot
方法二:检查当前内存使用情况
free -h
cat /proc/meminfo | grep MemTotal
→ 如果 MemTotal 显示只有 3.5GB 左右,说明系统内存紧张,必须优化内存使用。
方法三:修改 ION 内存池大小(Linux 内核参数)
在 /boot/config.txt 中添加以下内容(适用于 RDK X5):
# 增加 ION 内存池大小(单位:MB)
dtoverlay=ion,mem_size=256
然后重启:
sudo rdk-reboot
注意:此设置需根据实际硬件调整,过大可能导致系统卡顿。
3. 检查并更新系统与算法包
更新 TROS 和算法包
sudo apt update
sudo apt upgrade -y
sudo apt install -y tros-humble-hobot-stereonet
检查模型文件是否存在
ls /opt/tros/humble/share/hobot_stereonet/config/V22_disp96.bin
→ 如果文件不存在,说明安装不完整,需重新安装:
sudo apt remove tros-humble-hobot-stereonet
sudo apt install -y tros-humble-hobot-stereonet
查看当前系统版本
rdkos_info
cat /etc/version
→ 确保系统版本 ≥ 3.4.1(最新版),旧版本可能存在内存管理 bug。
4. 简化启动参数以降低内存压力
尝试减少分辨率或帧率,例如:
ros2 launch hobot_stereonet stereonet_model_web_visual_v2.3.launch.py \
mipi_image_width:=320 \
mipi_image_height:=180 \
mipi_lpwm_enable:=False \
mipi_image_framerate:=10.0 \
need_rectify:=False \
height_min:=-10.0 \
height_max:=10.0 \
pc_max_depth:=5.0
→ 降低分辨率可显著减少 BPU 内存占用。
5. 参考官方文档与社区指南
- 官方文档《RDK X5 双目深度估计算法》章节:
- https://developer.d-robotics.cc/rdk_doc/RDK/X5双目深度估计算法(若无法访问,可尝试搜索“RDK X5 StereoNet 使用指南”)
- 社区 FAQ:https://developer.d-robotics.cc/forumDetail/266442573995170050
如果以上方法无效?
请提供以下信息以便进一步排查:
-
系统版本号:
rdkos_info -
内存总量与可用量:
free -h cat /proc/meminfo | grep MemAvailable -
MIPI 摄像头型号(如 SC132GS、OV5647 等)
-
是否使用了自定义启动脚本或修改过 launch 文件?
-
是否有其他后台进程占用了大量内存?
总结
| 问题 | 原因 | 解决方案 |
|---|---|---|
There are no available host. |
MIPI 驱动未初始化或硬件连接异常 | 检查硬件连接、重启、更新驱动 |
Insufficient memory |
BPU 内存不足,模型加载失败 | 降低分辨率、增加 ION 内存池、清理缓存、升级系统 |
| 模型加载失败 | 文件缺失或权限问题 | 重新安装 tros-humble-hobot-stereonet |
推荐操作顺序:
- 重启系统 + 清理缓存
- 检查摄像头连接和供电
- 修改
config.txt增加 ION 内存 - 降低分辨率运行测试
- 升级系统和算法包
- 如仍失败,请提供系统版本和内存详情
如果您能提供上述补充信息,我可以为您定制更精确的解决方案!
祝您调试顺利,早日解决双目深度估计问题!![]()
温馨提示:RDK X5 是一款高性能开发板,但在运行 AI 模型时对内存要求较高,建议在非生产环境下优先使用低分辨率、低帧率模式进行调试,避免系统崩溃。