第三章:传感器与感知——机器人的“眼睛”与“耳朵”

各位同学,大家好。今天我们聊聊机器人感知世界的那点事儿。

你想想看,一个机械臂要在地图里找到自己,还要避开障碍物,它靠什么?靠的就是传感器。说白了,传感器就是机器人的感官系统。没有它们,机械臂就是个“睁眼瞎”。

我个人习惯把传感器分成三类:测距的、看图像的、算位置的。今天咱们就一个一个掰开揉碎了讲。

传感器与感知体系 感知层 传感器融合 激光雷达 (LiDAR) 点云 · 2D/3D · 建图 深度相机 (RGB-D) 彩色图 · 深度图 · 视觉 轮式里程计 编码器 · 航迹推算 IMU 加速度计 · 陀螺仪 四种传感器协同工作,构建完整感知能力

3.1 激光雷达(LiDAR)—— 距离感最准的“眼睛”

激光雷达,英文叫 LiDAR(Light Detection And Ranging)。原理很简单:发射激光束,碰到物体反射回来,算时间差,就知道距离了。

我在项目中遇到过一件事:有一次调试AGV小车,激光雷达装在底盘前方,结果总是撞到低矮的障碍物。后来发现,雷达安装角度低了,扫描平面刚好在障碍物上方扫过去。嗯,这里要注意——安装高度和角度,直接影响感知效果。

核心参数:
  • 扫描范围: 常见 270° 或 360°。室内导航用 270° 够用,室外建议 360°。
  • 角分辨率: 0.1° ~ 1°。分辨率越高,点云越密,但数据量也大。
  • 最大测距: 室内 10~30m,室外可达 100m+。
  • 扫描频率: 10Hz ~ 40Hz。频率越高,动态响应越好。

说白了,激光雷达就是给机器人画一张“距离地图”。它不关心物体是什么颜色、什么材质,只关心“多远”。

我的小建议: 初学者选雷达,先看角分辨率。0.5° 以下的雷达,建图效果明显好。别贪便宜买那种 1° 以上的,后期滤波能把你搞疯。

3.2 深度相机(RGB-D)—— 看得见,还知道有多远

深度相机,说白了就是普通摄像头加了个“测距功能”。它输出两种数据:一张彩色图(RGB),一张深度图(Depth)。

深度图里每个像素的值,代表那个点到相机的距离。你想想看,有了这个,机械臂就能知道“前面那个杯子离我 0.5 米”。

常见的深度相机技术有三种:

技术类型 原理 典型产品 优缺点
结构光 投射红外点阵,根据变形算深度 Kinect v1 室内精度高,室外受阳光干扰
ToF(飞行时间) 发射红外光脉冲,算往返时间 Kinect v2, Intel L515 速度快,但分辨率偏低
双目立体视觉 两个摄像头视差计算深度 ZED, Intel D435i 室外可用,但计算量大
我曾经踩过的坑: 用结构光相机在强光下做室外导航,结果深度图全是噪点。后来换成双目相机才解决问题。所以,室外场景慎用结构光。

深度相机的好处是信息丰富。你不仅能知道“前面有障碍”,还能知道“那是个红色的箱子”。这对物体识别、抓取任务特别有用。

3.3 里程计(轮式/视觉)—— 机器人怎么知道自己走了多远?

里程计,说白了就是“计步器”。机器人每走一步,它都记下来。但问题来了——步数不准怎么办?

3.3.1 轮式里程计

轮式里程计靠编码器。编码器装在电机轴上,轮子转一圈,编码器输出固定数量的脉冲。数脉冲,就能算出轮子转了多少圈,再乘以轮子周长,就是移动距离。

听起来很完美?其实不然。

我做过一个测试:让机器人直线走 10 米,轮式里程计告诉我走了 9.7 米。差了 0.3 米。为什么?因为轮子打滑、地面不平、轮胎磨损……这些都会导致误差累积。

轮式里程计的误差来源:
  • 轮子打滑(最常见)
  • 轮胎气压变化导致周长不准
  • 地面凹凸不平
  • 编码器分辨率有限

3.3.2 视觉里程计

视觉里程计,就是用摄像头图像来推算运动。它跟踪图像中的特征点(比如墙角、桌角),看这些点怎么移动,反推出相机自己的运动。

说白了,就是“看风景走路”。你盯着远处的山,山在画面里往左移,说明你在往右走。

视觉里程计的优点是不受轮子打滑影响。但缺点也很明显:光线不好时容易失效,纹理太少的地方也跟踪不上。

我的经验: 轮式里程计 + 视觉里程计融合使用,效果最好。一个负责短时精度,一个负责修正漂移。这叫“传感器融合”,后面章节会细讲。

3.4 IMU(惯性测量单元)—— 机器人的“内耳”

IMU 包含加速度计和陀螺仪。加速度计测“加速度”,陀螺仪测“角速度”。

你想想看,有了加速度,积分一次就是速度,再积分一次就是位移。有了角速度,积分一次就是角度。理论上,IMU 可以算出完整的位姿。

但现实很残酷——IMU 的积分误差会随时间快速累积。你让它静止不动,积分 10 秒后,它可能告诉你“你已经走了 5 米”。

注意: IMU 不能单独用于长时间定位。它必须配合其他传感器(如激光雷达、GPS)使用。IMU 的作用是“短时补缺”——比如激光雷达被遮挡的瞬间,靠 IMU 撑一下。

IMU 还有一个重要用途:检测姿态。机械臂的末端执行器是否水平?机器人是否在爬坡?这些靠 IMU 的加速度计就能判断。

3.5 传感器融合——1+1 > 2

单个传感器都有短板。激光雷达怕玻璃、怕镜面;深度相机怕强光;里程计怕打滑;IMU 怕漂移。

怎么办?融合!

最常见的融合方式是卡尔曼滤波(Kalman Filter)。它把多个传感器的数据“加权平均”,权重由传感器的不确定性决定。你越信任哪个传感器,它的权重就越高。

举个例子:机器人直线行驶时,轮式里程计比较准,卡尔曼滤波就多信它一点。当机器人转弯时,轮子容易打滑,卡尔曼滤波就多信 IMU 的角速度数据。

传感器融合的黄金法则:
  • 低频高精度传感器(如激光雷达)负责修正长期漂移
  • 高频低精度传感器(如 IMU)负责填充短期数据
  • 视觉传感器提供语义信息(“那是个门”而不是“那有个障碍”)

我个人习惯在项目初期,先把每个传感器单独调试通。确认每个传感器都能输出合理数据后,再做融合。否则,一旦融合结果不对,你根本不知道是哪个传感器出了问题。

好了,这一章的内容就到这里。传感器是机器人的感官,选对、用好、融合好,你的机械臂才能真正“感知”这个世界。

可可精品资料库