当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]该项目采用本地网络配置,将Arduino Uno Q连接至USB摄像头和机器人手臂,并通过电脑或笔记本电脑上的Arduino AppLab进行编程。由于Arduino Uno Q的输入/输出引脚与标准Arduino Uno完全相同,因此任何人都能轻松上手完成操作。

该项目采用本地网络配置,将Arduino Uno Q连接至USB摄像头机器人手臂,并通过电脑或笔记本电脑上的Arduino AppLab进行编程。由于Arduino Uno Q的输入/输出引脚与标准Arduino Uno完全相同,因此任何人都能轻松上手完成操作。

在这一相对简单的项目中,系统会将检测到的手部位置转换为两个舵机的运动指令,用于控制机器人手臂的云台旋转和倾斜机构;同时,不同类型的 gestures(例如开合动作)将控制夹爪/抓手部分的舵机。系统可使用Arduino AppLab中现有的“手势识别”模型,也可在AppLab中集成并使用Edge Impulse Studio创建的自定义模型。该模型将以Python代码的形式实现程序逻辑,然后传递给Arduino代码,以驱动相应的舵机运行。

本项目旨在实现机器人中的基本目标检测,具备实时物体跟踪和直观的机械臂运动功能,是应用于更复杂机器人系统的基础。

1. Uno Q 设置与 Arduino AppLab

初始设置时,请在电脑上安装 Arduino AppLab,并通过 USB-C 连接 Arduino Uno Q(使用 PC 主机模式)。打开 AppLab 后,设备 Uno Q 会自动显示出来;选择该设备,创建访问密码,并配置 Wi-Fi 网络,以便我们能以本地网络模式方便地使用。完成上述步骤后,断开 Uno Q 的连接,将其接入电源适配器。然后在电脑上打开 Arduino AppLab,Uno Q 就会出现在界面中供您访问。

为了熟悉这一生态系统,您可以从“示例”中选择一个项目并点击“运行”,这将上传并执行所选程序到 Uno Q 上。

接下来,我们将通过复制“从摄像头检测物体”示例来创建自己的项目,因为该项目使用了类似的硬件模块。打开该项目,点击右上角的“复制并编辑”,然后按需重命名,例如:“自定义手势检测”。接着,选择“AI 模型”标签页,点击“训练新 AI 模型”,即可使用您的 Arduino 账户登录 Edge Impulse Studio(如果尚未注册,请先登录或创建账户)。然后,点击“开始训练您的AI模型”将被重定向至Edge Impulse Studio。我们将在下一步中讨论Edge Impulse Studio中的各个阶段。

2. 收集数据(图像)

在开始上传照片之前,我们将创建三个标签/类别:闭手(中性)和剪刀状的手势(打开和闭合)。请使用相机或笔记本电脑的内置摄像头拍摄这些照片。我建议为每种类型拍摄30到40张不同角度的照片,这样对于本项目来说应该足够。将照片保存在文件夹中,之后我们将在Edge Impulse Studio中继续进行。

对于不熟悉 Edge Impulse Studio 的用户,请选择“图像”项目,然后选择“对象检测”。在仪表板 > 项目信息中,将标注方法设为“边界框”,目标设备设为“Uno Q”。接着在数据采集中,点击“上传数据”标签页,选择已保存的文件夹并上传。

3. 标注

下一步是进行标注。现在点击“数据采集”,然后点击“标注队列”标签页,开始拖动一个框选中对象并为其添加标签,最后保存。重复此操作,直到所有图像都完成标注。

标注完成后,建议将数据按大约80%训练集和20%测试集的比例进行划分。如果尚未完成,请点击“训练/测试划分”以自动执行此过程。

4. 训练、构建、部署

当您的标注数据集准备就绪后,进入 Impulse 设计 > 创建 Impulse,设置图像的宽度和高度(例如 320x320)。选择“适应最短轴”,然后将学习模块设为“图像与目标检测”,点击保存 Impulse。接着,转到“图像参数”部分,选择 RGB 作为颜色深度,点击保存参数。之后,点击“生成”,您将看到一个图形化分布图。

接下来进入“目标检测”部分,配置训练设置。选择 GPU,将训练周期设置为约 100 次,学习率设为 0.001,模型大小选择中等。选择 YOLO-Pro 或 MobileNetV2 SSD FPN-Lite 作为神经网络架构。完成后,点击“开始”启动训练,并监控训练进度。

如果一切顺利,例如 MAP@50 = 1.0 或精度结果超过 90%,即可进入下一步。前往“模型测试”部分,点击“全部分类”,若 MAP@50 = 1.0 或准确率约为 90%,则可进入部署阶段。选择部署目标为 Arduino Uno Q,选择量化(int 98),然后点击“构建”。下一步将进入 Arduino AppLab。

5. 测试 Uno Q

在构建模型后,返回 Arduino AppLab;您会发现之前在 Edge Impulse Studio 中创建的自定义模型——点击下载图标并选择它。现在,我们的自定义模型已准备就绪,可直接使用。要进行测试,请记得连接 USB-C 到 USB-A 转接头,并将 USB 相机连接到您的 Uno Q。然后,在 AppLab 中点击“运行”;Uno Q 上的上传和执行过程将开始。如果一切顺利,WebUI-HTML 程序将在您的电脑浏览器中显示实时物体检测结果。尝试使用我们模型中的三种手势,以确保其正常工作。

6. 构建你的系统:Uno Q + USB摄像头 + 机械臂 + 程序

要通过手势控制机械臂,必须确保所有设备都已正确连接,如上图所示。此外,在编写Python或Sketch程序之前,你需要下载若干Sketch库。点击“添加Sketch库”,然后逐一搜索并下载:Servo 1.3.0、MsgPack 0.4.2、DebugLog 0.8.4、ArxContainer 0.7.0 和 ArxTypeTraits 0.3.1(或其最新更新版本)。

以下是Python代码的截图。重要的是要根据您特定机械臂的实际配置调整或校准伺服角度。在此Python代码中,逻辑如下:当检测到“中立”手势时,水平位置被映射到俯仰伺服角度,而边界框的大小则被解释为倾斜伺服角度的变化。而“打开”和“关闭”手势则对应夹爪伺服的运动/角度变化。同时,Sketch文件决定了使用哪些引脚;在此情况下,使用引脚9、10和11。伺服角度的标准设置会处理在检测到手部手势时LED矩阵上的输出显示(一个笑脸)。所有Python、Sketch和YAML文件均可从代码附件部分下载,然后点击AppLab中的“添加文件”图标,按需修改和调整。

本项目成功演示了一个基本的边缘AI视觉系统,通过部署Edge Impulse自定义手势模型,实现了实时物体检测与物理执行的连接,具有可靠的准确性和低延迟。该项目验证了在单一嵌入式系统中从摄像头输入、空间映射到执行器控制的端到端流程。该项目展示了边缘人工智能与机器人技术的实际融合,并为更高级的应用奠定了基础。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭