当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]该项目展示了一个自主的类人机器人,利用粒子速子和高通人工智能加速器来检测和踢球,使用边缘脉冲训练的YOLO-Pro模型。机器人利用ROS 2实现感知、决策和运动控制的无缝集成。YOLO-Pro模型可实现高精度的实时球检测,并针对高通AI加速器的边缘部署进行了优化。该系统处理视觉输入,规划轨迹,并自动执行精确的踢脚动作。这种创新的设置展示了嵌入式人工智能、边缘计算和机器人技术在动态、现实世界任务中的协同作用。

该项目展示了一个自主的类人机器人,利用粒子速子和高通人工智能加速器来检测和踢球,使用边缘脉冲训练的YOLO-Pro模型。机器人利用ROS 2实现感知、决策和运动控制的无缝集成。YOLO-Pro模型可实现高精度的实时球检测,并针对高通AI加速器的边缘部署进行了优化。该系统处理视觉输入,规划轨迹,并自动执行精确的踢脚动作。这种创新的设置展示了嵌入式人工智能、边缘计算和机器人技术在动态、现实世界任务中的协同作用。

硬件

我们正在使用高通Dragonwing QCM6490 SoC的粒子速子。Dragonwing QCM6490采用八核高通Kryo CPU,高通Adreno 643 GPU和高通Hexagon 770 DSP,其中包含能够提供12 TOPS的AI加速器。

我们选择了一个HiWonder的AiNex双足人形机器人,配有24个串行总线伺服器,头部安装了一个640x480分辨率的USB摄像头。它带有一个预装的树莓派4,我们将换掉粒子速子。

我们选择使用带有高通AI加速器的粒子速子进行快速推理,以便在需要快速响应时间的动态环境中检测球。粒子速子与树莓派4的外形相同,但用5G天线取代了USB和LAN连接器。用粒子速子交换现有的树莓派4很简单。我们可以把机器人的背板拆下来,把机器人控制器帽和树莓派4拧下来。

安装粒子速子使用4 x十六进制僵局。

将机器人控制器的帽子固定在粒子速子的40针头上,用螺丝固定。

机器人控制器连接到24个串行总线伺服器,并从11.1 V, 3500 mAh的LiPo电池向粒子速子(通过40针头上的5V电源引脚)和伺服器供电。我们在连接5G、USB网络摄像头和运行人工智能加速器的情况下,评估了粒子速子的用电量。功耗一般保持在800mA以下,偶尔峰值达到1.2A。

设置粒子速子

完成后,通过WiFi对设备的SSH访问应该完全启用并可操作。我们选择Headless模式安装是因为该设备将部署在行走的人形机器人上,不需要桌面界面。

Qualcomm AI Engine直接SDK安装

要使用为Qualcomm AI Accelerator编译的QNN模型执行推理,请按照我在提供的链接中提供的其他项目中概述的所需软件包的安装说明进行操作。

人形机器人设置

HiWonder AiNex驱动程序和SDK依赖于ROS 1 Noetic,该公司已于2025年5月31日停产。它的Kinematics库是在Ubuntu 20.04上为Python 3.8构建的,由于Ubuntu 22.04或24.04的Python版本更新,因此与Ubuntu 22.04或24.04不兼容。然而,粒子速子本身支持Ubuntu 20.04。虽然ROS 2 Humble和Jazzy不能在Ubuntu 20.04上通过APT安装,但ROS 2 Humble可以从源代码编译。因此,运行Ubuntu 20.04的粒子速子是使用ROS 2 Humble和AiNex运动学库的最佳选择。此外,由于RPI。GPIO库不支持Particle Tachyon,它可以用Adafruit Blinka代替,它使用libgpiod来实现GPIO功能,并且与Particle Tachyon兼容。我们完全重写并将所有提供的代码从ROS 1移植到ROS 2。

ROS 2简易安装

按照下面的说明安装从源代码构建ROS 2所需的基本包。

设置语言环境

设置ROS 2 Apt存储库

安装开发工具和ROS工具

获取ROS 2源代码并安装依赖项

从源代码构建ROS 2 Humble

如果由于缺少Ubuntu软件包而导致构建过程失败,请检查日志以识别丢失的软件包,使用apt安装它,然后使用以下命令恢复构建过程。

我们省略了RViz2和它的依赖,因为与高通图形驱动程序冲突,我们不需要它在无头模式。

数据采集

我们需要在Edge Impulse工作室注册一个账户然后创建一个新项目。我们将使用安装在机器人头上的网络摄像头来捕捉球的图像。

运行以下命令并按照屏幕上的说明将设备连接到Edge Impulse Studio进行数据收集。

我们捕获了232张不同距离和照明设置的图像,并使用Edge Impulse Studio的数据采集页面中的标签队列选项卡标记它们。

我们收集了多个由相机运动、头顶照明和反射表面引起的运动模糊和明亮照明条件的样本,以提高模型的准确性并防止遗漏检测。

脉冲设计

对于模型开发,我们需要创建一个脉冲,一个集成图像处理和机器学习模型的定制管道。导航到“脉冲设计>创建脉冲”页面,选择“添加处理块”,并选择“图像”对图像数据进行预处理和归一化。在同一页面中选择“添加学习块”,选择“目标检测(图像)”。我们使用320x320的图像大小。然后,单击Save Impulse按钮。

特征提取

接下来,进入脉冲设计>图像页面,将颜色深度参数设置为RGB,然后点击保存参数按钮,这将重定向到另一个页面,我们应该点击生成功能按钮。通常需要几分钟来完成特征生成。

我们可以在Feature Explorer中看到生成特征的2D可视化。

模型训练

要训练模型,请导航到Impulse Design > ObjectDetection页面。我们选择的对象检测设置如下所示。

我们在高级训练设置中选择了基本的空间和色彩空间增强。

我们选择了最新的YOLO-Pro型号,它非常适合检测由于与相机距离不同而大小不同的球,并且能够在高通AI加速器上高效运行。点击Save & train按钮开始训练。

注:YOLO-Pro目前正在积极开发中。边缘脉冲不保证准确性,也不鼓励在生产中使用这种模式。

训练结束后,训练效果如下图所示。该模型在训练数据上获得了98.7%的精度分数。

模型试验

要评估模型在测试数据集上的性能,导航到模型测试页面并单击“分类所有”按钮。该模型在未见过的数据集上显示出更高的性能,准确率达到100%。

模型部署

由于模型将使用高通AI加速器在粒子速子上运行推断,我们在部署页面上选择了Linux(带有高通QNN的AARCH64)选项。

为模型优化选择Quantized (int8)选项,因为高通AI加速器与float32模型不兼容。

点击Build按钮编译并下载EIM(边缘脉冲模型)二进制文件。

应用程序开发

应用程序构建为分布式ROS 2节点,遵循关注点分离原则。它从相机捕获图像,处理它们以检测球,并使用推理来跟踪和接近球,并精确地控制步态。结果通过HTTP流传输以进行实时监控。这种模块化的设计保证了任务的清晰划分,提高了效率和可维护性。每个节点处理一个特定的功能,从图像捕获到运动控制,同时无缝集成以实现应用程序的目标。

下面是object_detection节点的代码。

下面是find_and_kick_ball节点的代码。

find_and_kick_ball节点的功能可以通过下面所示的流程图来理解。

完整的项目代码可以在代码部分列出的GitHub存储库中找到。将代码复制或克隆到ws_ainex_robot目录并构建它。

启动应用程序

执行以下命令设置ROS 2工作空间环境。

下面是启动文件代码。

执行以下命令启动应用程序。

我们可以在/edge_impulse/detections主题上监视检测结果。

ROS 2节点

以下是应用程序中使用的ROS 2节点的简要说明:

•/camera/rectify_color:使用校准数据校正原始相机图像。

•/find_and_kick_ball:订阅检测主题,决定是否接近,并启动踢球动作。

•/controller_node:运行一个50 Hz的控制回路,通过低级串行伺服驱动器来管理机器人的运动和步态。

•/object_detection:使用边缘脉冲模型检测校正图像流中的球。

•/image_bbox_node:订阅校正后的图像和检测结果,绘制边界框,并将注释后的图像流式传输。

节点图的示意图如下所示。

当web_video_server节点启动时,可以通过web浏览器查看320x320像素图像的第一人称视图(First-Person View, FPV)。

结论

该项目展示了将Edge Impulse的人工智能功能与Particle Tachyon的高效处理与高通芯片相结合的强大功能,以实现实时、自主的机器人任务。ROS 2提供了低延迟通信,增强了机器人平台之间的互操作性,并通过可重用组件简化了开发。未来的增强功能可能包括多球跟踪或自适应学习,以提高在动态环境中的准确性。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭