AI视觉机械臂_项目框架与流程

AI 视觉机械臂 — 项目框架与实施流程

本文档依据毕业论文《AI 视觉机械臂》,并结合本仓库中的 MaixcamProject 代码工程整理,用于说明系统分层、主流程步骤及所需技术栈。

https://github.com/pieceofApple/AI-vision-robotic-arm.git


1. 项目定位与目标

  • 定位:基于边缘计算的「视觉感知 + 机械臂执行」一体化平台,在成本可控前提下实现物体识别、目标定位与抓取类任务。
  • 论文方案Maixcam(视觉与 AI 推理) + ESP32(运动控制与中继) + 4 轴机械臂(5 路 PWM 舵机驱动),视觉与控制器之间采用 UDP 实时通信。
  • 核心链路:单目图像 → 目标检测 → 像素坐标到棋盘格世界坐标(透视变换)→ 将 ((x,y,z)) 等指令下发 ESP32 → 逆运动学 解算关节角 → PWM 驱动舵机;辅以梯形速度规划、线性插值轨迹以平滑运动。

2. 总体架构(三层)

层次 职责 论文对应 本仓库代码参考
感知层 采集图像、畸变校正、棋盘格角点、YOLO 检测、世界坐标换算 第三章 3.2 Project/Maixcam/main.pyMaixcam/纸团-demo/main.py
通信层 Maixcam ↔ ESP32 的 UDP 文本指令(如坐标、rststop 等) 3.1.3 main.pyudp_communication;ESP 端 WiFiUDP
执行层 逆运动学、工作空间校验、轨迹/速度规划、5 路 PWM 3.3 Project/robot_arm_5PWM/robot_arm_5PWM.ino

说明:论文中视觉侧强调将训练好的 YOLOv5s 转为 int8 / cvimodel 以适配 TPU;当前工程中的在线推理多采用 Maix 官方 nn.YOLOv5 + .mud 模型(MaixHub 部署路径),原理一致,均为边缘侧 YOLO 推理。仓库 Maixcam/模型文件/ 下另有 YOLO11 OBB.mud,可用于旋转框等扩展场景,与论文正文以 v5s 为主略有差异,选型时以实际任务为准。


3. 硬件框架

  • Maixcam:GC4653 摄像头、Wi‑Fi/蓝牙;算力侧含 NPU(论文中用于加速 YOLO)。
  • ESP32:连接同一局域网,监听 UDP;运行逆运动学与 PWM 输出。
  • 机械臂:论文为 4 轴结构、5 路 PWM(多一路如夹爪);臂长参数见论文表 4.1(如 P、A1~A4),与 robot_arm_5PWM.ino 中宏定义一致。
  • 标定场地:棋盘格(论文示例 6×8 格、中心为原点);摄像头置于棋盘上方,视野覆盖工作区。

4. 软件模块与目录对应

模块 内容 路径提示
端侧视觉主程序 采集、lens_corr、棋盘格、getPerspectiveTransform、YOLO 检测、逆透视得世界坐标、UDP Project/Maixcam/main.py
应用描述 Maix 应用元数据 Project/Maixcam/app.yaml
纯检测 Demo 无标定与网络,便于验模 Maixcam/纸团-demo/main.py
PC 标定与可视化 OpenCV 标定、坐标映射等(论文 PC 端标定) Project/Maixcam/PC_cv2/*.py论文代码/相机标定.py
机械臂固件 WiFi、UDP、逆运动学、状态机、PWM Project/robot_arm_5PWM/robot_arm_5PWM.ino
备份/试验 历史 UDP 测试等 Project/save_backup/

5. 主流程步骤(建议实施顺序)

5.1 研发与标定阶段

  1. 数据集与训练(PC):按论文构建场景数据(如小纸团),用 YOLOv5s 训练;再按 Sophgo / Maix 工具链 导出为设备可用的 int8(论文)或按 Maix 流程导出 .mud(工程现状)。
  2. PC 相机标定(可选但推荐):用棋盘格求内参与畸变,与端上 lens_corr 或粗略校正配合;参考 PC_cv2/ 与论文 2.3、3.2.1。
  3. 部署模型到 Maixcam:将模型放到设备约定路径(如 main.py 中的 nn.YOLOv5(model=...))。

5.2 运行阶段(端侧闭环)

  1. 初始化:摄像头分辨率与模型输入一致;启动 目标检测线程UDP 线程threading)。
  2. 每帧视觉
    • 读图 → lens_corr
    • 转 OpenCV 灰度 → findChessboardCorners + cornerSubPix
    • 成功则计算世界四角与图像四角 → 透视矩阵 M(异常时用上一帧 last_M 兜底);
    • YOLO 检测 → 目标中心像素坐标 → cv2.perspectiveTransform(配合 (M^{-1}))得到 世界坐标 (cm 级)
  3. 通信:ESP32 侧按协议发请求或接收指令;Maixcam 将 x,y,z,flag 或论文表 3.1 所列格式发往 ESP32(具体字符串以固件解析为准)。
  4. 执行:ESP32 逆运动学 → 关节角 → 梯形规划 + 线性插值PWM;完成抓取/放置/复位等状态切换。

5.3 联调与测试

  • 论文第四章:检测准确率、坐标映射误差、实时性、重复定位、整机拾放等;环境为稳定 Wi‑Fi、统一光照与棋盘摆放。

6. 技术栈汇总

类别 技术
视觉 / AI Python 3(Maix 设备)、maix(camera、display、image、nn、app)、OpenCV(opencv-python)NumPyYOLOv5s 训练(PyTorch 生态,PC 端);模型部署:TPU/NPU 量化 int8(论文)或 Maix .mud(工程)
几何与标定 棋盘格角点、透视变换 / 单应性、亚像素角点;可选传统相机标定
通信 UDPsocket)、Wi‑Fi;多线程 threadingqueue
控制 ESP32Arduino 框架WiFi / WiFiUDPmath逆运动学(几何法)梯形速度规划线性插值轨迹PWM 舵机
工具 Arduino IDE + ESP32 板支持;PC 上 Python 标定脚本;可选 SolidWorks / 3D 打印(臂体,论文描述)

7. 小结

本项目在论文层面是 「Maixcam 边缘视觉 + ESP32 实时控制 + 单目透视定位」 的完整闭环;在仓库层面,Project/Maixcam/main.pyProject/robot_arm_5PWM/robot_arm_5PWM.ino 分别对应感知通信与执行两大核心,Maixcam/纸团-demo 用于快速验证检测模型,PC_cv2论文代码 支撑标定与坐标映射开发。实施时以论文第三章、第四章为理论依据,以当前工程中的 IP、端口、指令字符串和模型路径为运行配置依据。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇