1. 课程导论:3D视觉定位与手眼标定的行业应用、课程目标与学习路径、所需软硬件环境概览

1.1 这门课到底讲什么?

大家好,我是这门课的主讲。在机器人视觉领域摸爬滚打了十几年,我见过太多项目因为“眼睛”和“手”没对齐而翻车。说白了,3D视觉定位就是让机器人知道“东西在哪儿”,手眼标定就是让机器人知道“我的手和我的眼睛之间是什么关系”。

这两个技术绑在一起,才是工业自动化的核心。你想想看,一个机械臂抓取零件,如果相机说“零件在坐标(100, 200, 50)”,但机器人实际抓过去却扑了个空——这就是没标定好的典型症状。

核心一句话:3D视觉给机器人装上“眼睛”,手眼标定让“眼睛”和“手”说同一种语言。

1.2 行业应用:哪些地方离不开它?

我这些年接触过的项目,几乎覆盖了所有主流场景。这里列几个典型的:

行业 典型应用 我踩过的坑
汽车制造 发动机缸体抓取、车门装配 曾经因为标定板反光,导致一天报废了20个工件
3C电子 手机屏幕贴合、芯片分拣 精度要求0.1mm,标定误差0.3mm直接退货
物流仓储 包裹分拣、码垛拆垛 纸箱变形导致点云匹配失败,后来加了形状先验
医疗手术 手术导航、穿刺定位 这个我没做过,但同行说标定失败会出医疗事故
农业采摘 水果识别与抓取 光照变化大,3D相机经常“瞎掉”

注意:不要以为买了高精度相机就万事大吉。我见过太多人花10万买相机,却舍不得花时间做标定,最后精度还不如人家用2000块的相机+认真标定。

1.3 课程目标:学完你能干什么?

这门课不是纯理论课。我的目标很明确——学完之后,你能独立完成以下事情:

  • 搭建一套3D视觉定位系统:从相机选型、安装到点云处理,全流程跑通
  • 完成手眼标定:无论是眼在手上(Eye-in-Hand)还是眼在手外(Eye-to-Hand),都能搞定
  • 解决实际工程问题:比如标定精度不够怎么办、点云噪声怎么滤、抓取位姿怎么算

我个人习惯把课程分成三个阶段:

  1. 基础篇(第1-10章):坐标系、相机模型、点云基础,把数学和原理打牢
  2. 核心篇(第11-20章):手眼标定算法、3D定位算法,手撕代码
  3. 实战篇(第21-30章):完整项目案例,从零搭建一套系统

1.4 学习路径:怎么学最有效?

我建议你按这个顺序来,别跳着看:

我的建议:每章看完后,一定要动手跑代码。光看是学不会标定的,我当年就是看了三个月书,一上手全忘光。

  • 第一步:搞懂坐标系变换(第2-4章)——这是所有标定的数学基础
  • 第二步:理解相机成像原理(第5-7章)——不懂内参外参,标定无从谈起
  • 第三步:手眼标定算法(第11-15章)——核心中的核心
  • 第四步:3D定位与抓取(第16-20章)——把标定结果用起来
  • 第五步:综合实战(第21-30章)——做两个完整项目

1.5 知识体系总览

下面这张图,是我花了一晚上画的。它把整个课程的知识结构串起来了,建议你保存下来,学完一章回来看一眼,就知道自己处在哪个位置。

课程知识体系结构图 课程知识体系总览 基础理论 核心算法 工程实战 坐标系变换 相机模型 点云基础 手眼标定 3D定位 位姿估计 系统搭建 调试优化 旋转矩阵 四元数 欧拉角 AX=XB ICP配准 PnP求解 ROS集成 精度验证 每章都包含:理论讲解 + 代码实现 + 避坑指南 学完一章,动手做一个小实验,别攒到最后

1.6 软硬件环境:你需要准备什么?

嗯,这里我得说清楚。很多初学者卡在环境搭建上,一卡就是一周。我帮你列个清单:

硬件部分

设备 推荐型号 备注
3D相机 Intel RealSense D435 / 奥比中光 Astra Pro 入门首选,性价比高
机器人 UR5 / 艾利特 EC66 / 模拟器 没有实体机器人可以用仿真
标定板 棋盘格(7x9或8x11) 淘宝30块一张,别买太便宜的
电脑 CPU i7以上,内存16G+,有独立显卡更好 点云处理吃内存,别省

避坑:我曾经用一台集成显卡的笔记本跑点云配准,一个ICP迭代跑了3分钟……后来换了台式机,3秒搞定。硬件别太寒酸,否则你会怀疑人生。

软件部分

  • 操作系统:Ubuntu 20.04 或 22.04(Windows也能用,但很多库在Linux下更稳)
  • 编程语言:Python 3.8+(主要用),C++(部分性能敏感模块)
  • 核心库:
    • Open3D(点云处理,我强烈推荐)
    • OpenCV(图像处理、相机标定)
    • Eigen(C++矩阵运算)
    • ROS/ROS2(机器人通信,可选但建议装)
  • 开发工具:VS Code、Jupyter Notebook、Git

我的习惯:我会在课程配套的GitHub仓库里放一个 environment.yml 文件,你直接用 conda 导入就能把环境搭好。别自己一个个装,容易漏。

1.7 写在前面的话

这门课不会让你成为理论大师,但会让你成为一个能动手解决问题的工程师。我见过太多人学了半年理论,一到现场连相机都连不上。咱们不搞那套。

每一章我都会放一个真实项目里踩过的坑。有些坑我花了三天才爬出来,你花三分钟看完就能避开——这笔买卖划算吧?