1. 课程导论与硬件准备:目标检测+机械臂能做什么?
大家好,我是你们这门课的老朋友。在机器人这行摸爬滚打了十来年,踩过的坑比吃过的盐还多。今天咱们开篇,不整虚的,直接聊聊目标检测和机械臂结合,到底能玩出什么花来。
说白了,就是给机械臂装上一双「眼睛」。让它不再是傻乎乎地重复固定轨迹,而是能看懂周围环境,自己判断该抓什么、怎么抓。我最早接触这个方向,是在一个3C电子厂的产线上。那时候机械臂只能抓固定位置的零件,稍微偏一点就报废。后来我们给它加了个相机和检测模型,好家伙,良品率直接飙了20%。
你想想看,这技术能用在哪儿?
- 无序抓取:零件乱堆着,机械臂自己识别、自己规划抓取点。
- 分拣码垛:传送带上混着不同物料,一眼认出,分门别类放好。
- 质量检测:抓起来之前先看一眼,有瑕疵的直接跳过。
- 人机协作:机械臂能看懂人的手势或者工具位置,主动避让或配合。
嗯,这些都是实打实的落地场景。但要把这套东西跑起来,硬件选型是第一道坎。选错了,后面算法调得再好也白搭。
硬件选型:相机、机械臂、工控机
硬件这东西,我个人的习惯是「先定场景,再选设备」。别上来就盯着参数看,先想清楚你要抓什么、多快、多准。
1. 相机选型
相机是机械臂的「眼睛」。选型主要看三个指标:分辨率、帧率、接口。
| 类型 | 分辨率 | 帧率 | 接口 | 适用场景 |
|---|---|---|---|---|
| USB 工业相机 | 200万~500万像素 | 30~60 FPS | USB 3.0 | 静态抓取、慢速分拣 |
| GigE 工业相机 | 500万~1200万像素 | 15~30 FPS | 千兆网口 | 高精度、远距离传输 |
| 深度相机(RGB-D) | 200万+深度图 | 30 FPS | USB 3.0 | 无序抓取、3D定位 |
我个人建议,入门阶段直接上深度相机。比如 Intel RealSense D435 或者奥比中光的 Astra Pro。为什么?因为目标检测只能告诉你「这是什么、在图像哪里」,但机械臂需要知道「在三维空间哪里」。深度相机一步到位,省得后面再折腾手眼标定。
2. 机械臂选型
机械臂这块,核心看负载、臂展、重复定位精度。
- 负载:抓取物体的重量 + 夹爪重量。一般选负载比实际重 1.5 倍以上。
- 臂展:工作范围。别买回来发现够不着目标。
- 重复定位精度:机械臂每次回到同一点的误差。目标检测+抓取,精度至少 0.1mm 级别。
我踩过最大的坑,就是选了一款精度 0.5mm 的机械臂,结果检测模型定位误差 2 个像素,换算到实际空间差了 3mm。抓一个螺丝钉,十次有八次抓偏。后来换了台精度 0.02mm 的协作臂,问题才解决。
入门推荐:越疆 Dobot Magician 或 UFACTORY xArm 5 Lite。轻量、开源、支持 ROS,非常适合做算法验证。
3. 工控机选型
工控机是「大脑」。目标检测模型推理 + 机械臂控制,对算力要求不低。
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | Intel i5 第8代 | Intel i7 第10代 / AMD Ryzen 7 |
| GPU | NVIDIA GTX 1050 Ti | NVIDIA RTX 3060 / Jetson Orin |
| 内存 | 8 GB | 16 GB 或以上 |
| 存储 | 256 GB SSD | 512 GB NVMe SSD |
整体技术栈概览
硬件选好了,软件怎么搭?我习惯把整个技术栈分成四层。下面这张图,基本就是我们这门课的核心骨架。
从上往下看:
- 应用层:你最终想让机械臂干什么。这是需求源头。
- 算法层:目标检测模型 + 抓取位姿估计。我们这门课主要讲 YOLO 系列的部署和优化。
- 中间件层:ROS 2 负责通信,OpenCV 处理图像,TensorRT 加速推理,MoveIt 做运动规划。说白了,就是让算法和硬件能「对话」。
- 硬件层:工控机、相机、机械臂。这是所有代码最终跑的地方。
我记得刚开始带团队做这个项目时,大家各搞各的。做算法的只管模型精度,做控制的只管轨迹平滑。结果联调那天,模型推理一次 200ms,机械臂控制周期才 10ms,根本配合不上。后来我们才意识到,整个技术栈必须统一考虑延迟和吞吐量。这也是为什么这门课会花大量篇幅讲模型量化和推理加速。