4.树莓派上部署yolov5、搭建Astra Pro Plus环境【问题篇】

本文讲述了作者在从树莓派的ssh服务迁移到Ubuntu18.04系统后遇到的问题,涉及IP扫描、相机启动(包括AstraCamera和ROS),以及在Ubuntu18.04上部署YOLOv5模型(处理CUDA兼容性问题和Python版本切换)的过程。

有很多尚未解答的疑惑,如果大家对这里的知识比较熟悉,请多指教!

一、用ipscan扫描树莓派的IP

之前用树莓派系统(上面有ssh服务)可以扫描到,现在换了Ubuntu18.04系统,就扫描不到了。
解决方法:
在烧录有Ubuntu18.04镜像的SD卡中,找到network-config并打开修改:
1.去掉wifis那一片的注释
2.增加wifi名称和密码

在这里插入图片描述

二、启动相机

我的情况就很符合这篇
中间我遇到问题的几步:
1.git clone https://github.com/orbbec/ros_astra_camera
可能因为网络问题而失败,多试几次可能就会成功
2.roslaunch astra_camera astra.launch
报错如下:

在这里插入图片描述

翻译:即使在刷新缓存后,也无法加载类型为[astra_camera/AstraDriverNodelet]的nodelet[/camera/driver]:找不到与插件astra_camera/AstraDriverNodelet对应的库。确保插件描述XML文件具有正确的库名称,并且该库确实存在。

解决:刷新工作空间。

source ~/catkin_ws/devel/setup.bash

但是,在rviz的Image Topic里只有深度和IR图像,没有彩色图像。

在这里插入图片描述

三、部署yolov5

不太懂这类知识,去网上搜Ubuntu18.04上部署yolov5,出来的教程很多都要安装CUDA,按操作下来到这步:ubuntu-drivers devices
——无结果输出,网上解决方法很统一,统一地对我无用。
这条命令是用来检测可用驱动的,但是(问gpt):
树莓派通常不支持 Ubuntu 提供的 NVIDIA 驱动程序管理工具 ubuntu-drivers。这是因为树莓派通常使用 Broadcom 或者其他厂商的集成图形解决方案,而不是 NVIDIA 的 GPU。因此,ubuntu-drivers 命令在树莓派上可能不会提供有用的输出。
对于树莓派4B这样的 ARM 架构设备,由于其与常见的 x86 架构不同,无法直接使用 NVIDIA 的 CUDA 加速库。然而,YOLOv5 也提供了 PyTorch 版本,而 PyTorch 支持 CPU 上的推理运行,因此你可以在树莓派上运行 YOLOv5,只是推理速度可能会比在支持 CUDA 的 GPU 上慢一些。

### Orbbec Astra Pro 深度摄像头与树莓派的兼容性分析 Orbbec Astra Pro 是一款深度摄像头,广泛用于机器人、3D扫描和手势识别等应用。关于其是否兼容树莓派环境问题,可以从硬件支持和驱动支持两方面进行分析。 #### 硬件兼容性 Orbbec Astra Pro 本身是 USB 接口设备,理论上可以连接到任何支持 USB 的主机设备,包括树莓派。然而,树莓派的 USB 总线带宽可能成为限制因素,尤其是在需要高分辨率或高帧率数据传输时[^1]。因此,在使用树莓派时,建议选择较低分辨率和帧率设置以确保稳定运行。 #### 驱动支持 Orbbec Astra Pro 的官方驱动主要针对 Linux 平台开发,而树莓派运行的操作系统通常是基于 Debian 的 Raspbian 或其他 Linux 发行版。这意味着从理论上讲,Orbbec Astra Pro驱动可以在树莓派上运行。然而,具体实现需要以下步骤: 1. **安装依赖库**:确保树莓派上已安装 `libfreenect2` 或其他支持 Astra Pro 的开源驱动库。这些库提供了访问深度摄像头的功能接口[^2]。 2. **编译驱动程序**:由于树莓派的架构为 ARM,许多驱动程序可能需要从源代码编译。这通常涉及安装交叉编译工具链,并确保所有依赖项正确配置[^3]。 3. **测试与调试**:完成驱动安装后,可以通过 OpenCV 或 PCL(Point Cloud Library)等库进行测试,验证深度数据的获取和处理功能是否正常。 #### 示例代码:在树莓派上初始化 Orbbec Astra Pro 以下是一个简单的 Python 示例,展示如何通过 OpenCV 访问 Orbbec Astra Pro 的 RGB 和深度数据流: ```python import cv2 # 初始化视频捕获对象 cap = cv2.VideoCapture(0) # 假设 Astra Pro 作为默认摄像头设备 if not cap.isOpened(): print("无法打开摄像头") else: while True: ret, frame = cap.read() if not ret: break # 显示RGB图像 cv2.imshow('RGB Frame', frame) # 按下 'q' 键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() ``` 需要注意的是,上述代码仅适用于 RGB 数据流。若要访问深度数据,可能需要额外的驱动支持或第三方库,如 `libfreenect2`。 ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值