机器人底盘+里程计
很多初学者常常将轮式里程计与编码器、电机控制主板、底盘等概念混为一谈,所以需要特别注意。可以看出,轮式里程计其实是编码器、底盘运动学模型、航迹推演算法等综合出来的产物。也就是说,轮式里程计并不是某种传感器,而是利用轮式编码器计算底盘位姿的一种算法
机器人底盘概述
机器人底盘可理解为移动机器人的“下肢与躯干”,概念上与汽车底盘接近,但在尺度、驱动方式和任务场景上差异很大。它由轮子(或履带/腿)、驱动装置(电机、减速器)、控制系统(MCU/驱动器/上位机)以及机械承载结构组成,是移动机器人实现“能走、能扛、能载”的基础平台。
在裸底盘之上集成外壳、传感器(激光雷达、相机、IMU)、执行器(机械臂、货箱、显示屏)后,才形成我们熟知的自动驾驶小车、送餐机器人、AMR 物流机器人等产品形态。底盘决定了机器人“怎么动”,上层系统决定“动去做什么”。
一、核心构成
行驶部件:轮系(普通轮、全向轮、麦克纳姆轮等)或腿/旋翼
驱动层:伺服电机 / 步进电机 + 驱动器 + 减速传动
控制层:底层运动控制器(速度闭环、里程计)、与上位机通信
结构件:铝合金/钣金/3D打印机架,承担载荷与安装接口
二、两大核心作用
运动执行:把控制指令转化为位姿变化(平动+旋转),提供自主移动能力;没有底盘,感知与交互功能只能停留在原地。
结构支撑:为传感器、计算单元、电池、作业模块提供安装基准与力学传递路径,是整机刚度和重心分布的决定因素。
三、按运动方式分类(广义)
飞行类:四旋翼、多旋翼无人机(空间 6DOF 移动)
轮式类:地面主流方案,成本低、效率高
足式类:双足、四足、六足,适应非结构化地形
仿生类:蛇形、爬行、扑翼等特殊形态
四、轮式机器人常见底盘形态
类型
典型结构
适用场景
两轮差速
左/右轮独立驱动,无转向轮
扫地机、室内服务机器人
四轮差速
前后两组差速或四轮独立
割草机、轻型物流车
阿克曼
前轮转向+后轮驱动,同汽车
无人车、园区接驳车
全向底盘
麦克纳姆轮/全向轮
窄通道搬运、精密对接
注:全向底盘因轮组侧向分力可控,可实现零转弯半径横移,但机械损耗与标定复杂度高于差速方案。
下一步若展开底盘运动学模型,自然顺序就是:
两轮差速:推导 v,ω与左右轮速关系,给出逆运动学
阿克曼:转向几何约束 + 自行车模型
全向:麦克纳姆轮速度分解与雅可比矩阵
再补一点里程计误差来源(打滑、轮径偏差、采样延迟)
轮式里程计是什么(以及不是什么)
很多入门资料里会出现这样的句子:
“机器人用里程计定位”“底盘带了里程计”“编码器就是里程计”
严格来说,这三句都不准确。
轮式里程计(Wheel Odometry)不是一种传感器,也不是一块电路板,而是一种位姿估计方法。
它的本质定义可以一句话写完:
轮式里程计 = 轮式编码器原始脉冲 × 底盘运动学模型 × 航迹推演(Dead Reckoning)算法
1. 各概念边界划清
名称
物理形态
干什么
是否=里程计
电机
硬件
把电能转成转矩
否
编码器
传感器
测电机/轮子转角或转速(脉冲数)
否
电机控制主板
硬件
驱电机、读编码器、跑 PID
否
底盘
机械+电气系统
提供轮系、承载、执行运动
否
运动学模型
数学关系
轮速 → 车体速度/角速度
否(是工具)
(续)
| 航迹推演算法 | 软件算法 | 对速度积分得到 x/y/θ | 否(是工具) |
|轮式里程计 |算法输出 |连续估计机器人位姿 (x, y, θ) |是 |
2. 数据是怎么“长成”里程计的
以两轮差速底盘为例,信号流是:
编码器 输出左右轮脉冲 ΔNL,ΔNR
控制板把脉冲转成轮缘位移 ΔsL,ΔsR(乘周长/分辨率)
代入差速运动学逆解:
v=2ΔtΔsL+ΔsR,ω=LΔtΔsR−ΔsL
航迹推演把 (v,ω)对时间积分:
xk+1=xk+vΔtcosθk,yk+1=yk+vΔtsinθk,θk+1=θk+ωΔt
输出的 (x,y,θ)序列,才叫轮式里程计轨迹
所以你会看到:
拔掉编码器 → 里程计立刻死
换阿克曼底盘 → 运动学模型换了,但“里程计”概念还在
加 IMU / 视觉 SLAM 做融合 → 那就叫“里程计融合”,不再是纯轮式里程计
3. 为什么这个区分很重要
调试时:里程计漂了,不一定是编码器坏,可能是运动学参数(轮距 L、轮径)标错,或打滑模型没处理
架构上:ROS 里
wheel_odometry是一个 node / topic,而encoder只是 driver 层,两者层级不同认知上:里程计本质是“用已知运动关系反推自己在哪”,它和 GPS(绝对观测)、激光雷达(环境观测)不属于同一类东西
一句话记忆:
编码器给“轮子上发生了什么”,运动学模型给“轮子动代表车体怎么动”,航迹推演给“车体怎么动代表我在哪”——三者拼起来,才叫轮式里程计。
一、驱动的本质:静摩擦力是“推进剂”
轮子本身并不会“推着空气前进”,真正让机器人移动的是地面对驱动轮的静摩擦力。
驱动轮在电机作用下,轮胎接地点相对地面有向后滑动的趋势
地面通过静摩擦力给轮子一个向前的反作用力
该力通过轮轴传递到车体,使整车产生平动
关键点:是静摩擦,不是滑动摩擦。
一旦轮子打滑(滑动摩擦为主),牵引力下降,里程计失效,控制精度也会明显恶化。
这一机制决定了:
驱动轮必须提供足够的法向压力(重力或配重)
轮胎材料与地面摩擦系数 μ直接限制最大加速度与爬坡能力
二、摩擦力的微观本质:电磁相互作用
传统解释中,摩擦力常被简化为“表面凹凸啮合”;现代固体物理视角则更准确:
宏观“光滑”表面在微观下仍是原子/分子尺度的起伏
两表面接触时,原子间距进入分子间作用力(范德华力、化学键等)范围
相对滑动会改变原子平衡位置,引起电磁相互作用的重新排列
这部分能量耗散表现为宏观的摩擦力
由此可得一个重要结论:
不存在绝对光滑、无摩擦的接触面
只要存在接触 + 相对运动(或有运动趋势),就一定伴随摩擦与能量损耗。
这对机器人底盘设计意味着:
无法完全消除摩擦,只能优化摩擦的方向与大小
运动学建模中通常引入非完整约束来描述这种不可回避的物理特性
三、摩擦力的双重角色:动力 vs 约束
从运动学角度看,摩擦力是一把典型的“双刃剑”。
1. 正向作用:提供驱动力
纵向静摩擦 → 推进车体
转向时的侧向摩擦分量 → 提供向心力(如自行车过弯)
2. 负向约束:限制自由度
以自行车后轮为例:
理想刚性轮在平整地面只能沿轮平面方向滚动
侧向运动被侧向摩擦力“锁死”
若要侧移,只能拖滑,代价是高摩擦阻力 + 轮胎磨损
这正是非完整约束(non-holonomic constraint)的典型体现:
y˙cosθ−x˙sinθ=0含义是:无法瞬时改变侧向坐标 y,只能通过连续的前向 + 转向运动间接到达目标位置。
后续运动学模型的核心目标之一就是:
✅充分利用纵向摩擦实现高效驱动
❌尽量避免侧向拖滑带来的能量浪费与控制复杂性
四、从单轮到多轮:操控性与约束的变化
你提到的几个例子,非常直观地展示了轮子数量与布置如何影响运动可控性。
构型
典型代表
运动特点
操控复杂度
独轮
独轮车
仅靠一个驱动轮,侧向、俯仰均不稳定
极高(需身体姿态调节)
两轮(前后)
自行车
前轮转向 + 后轮驱动,自然稳定
中等(靠车把转向)
四轮(前转后驱)
汽车
前轮转向 + 后轮/四轮驱动
低(成熟操控逻辑)
两轮(共轴)
平衡车
无转向节,靠左右轮速差实现转向
低(自动平衡控制)
几个关键观察:
独轮车:系统欠约束,需要高频调整身体重心才能维持平衡与转向
自行车:引入前轮转向自由度后,只需控制车把角度即可稳定转弯
双自行车并联(四轮):类似汽车底盘,前轮负责几何转向,后轮负责驱动
去前轮、留后轮对:类似平衡车,转向不再依赖机械转向角,而是差动转向(Differential Drive)
轮式里程计详解:原理、定位逻辑与误差特性
一、定义与定位原理
1. 核心定义
轮式里程计(Wheel Odometry)的本质是一种相对定位传感器系统。其作用类似于出租车里的里程表,核心功能是记录机器人从起点(上电时刻)到当前时刻的相对位移和姿态变化,而非绝对地理坐标。
2. 位姿表示方法
在二维平面(2D)运动中,机器人的位姿(Pose)通常由三个自由度(DOF)描述:
X:机器人在世界坐标系下的横坐标。
Y:机器人在世界坐标系下的纵坐标。
θ(Theta):机器人绕 Z 轴的偏航角(Yaw),即朝向。
3. 航迹推演(Dead Reckoning)逻辑
轮式里程计的核心算法是航迹推演。其基本原理是:已知上一时刻 tk的位姿 (xk,yk,θk),结合该时间段内的速度信息,推算出下一时刻 tk+1的位姿 (xk+1,yk+1,θk+1)。
速度分解:机器人自身的线速度为 V,角速度为 ω。在机器人坐标系(Body Frame)下,通常设定前向为 X 轴,侧向为 Y 轴。对于非全向轮底盘(如差速、阿克曼),VY=0。
坐标变换:要将机器人自身的速度映射到世界坐标系(Odometry Frame)中,需要使用旋转矩阵进行投影。X 轴和 Y 轴方向的速度分量分别为:
VXworld=V⋅cosθ
VYworld=V⋅sinθ
4. 递推公式
设时间间隔为 Δt,则标准的航迹推演公式为:
xk+1=xk+(Vcosθk)⋅Δtyk+1=yk+(Vsinθk)⋅Δtθk+1=θk+ω⋅Δt通过上述公式不断循环计算,即可得到机器人运动的完整轨迹。
5. 坐标系特性:相对定位
轮式里程计建立在ODM(Odometry)坐标系下。该坐标系具有以下显著特征:
原点动态:以底盘上电时刻的位置为原点 (0,0,0)。
独立性:每次断电重启后,坐标系原点重置。因此,它无法像 GPS 那样提供全局唯一的地理位置参考,仅能描述相对于起点的位移。
二、误差特性与使用建议
1. 累积误差(Drift)的产生
轮式里程计最大的缺陷是误差随时间累积。这主要由以下两个原因造成:
源头误差:里程计依赖的 V和 ω是通过编码器脉冲换算得到的,受限于轮径标定误差、地面摩擦系数变化等因素,计算值与真实物理速度之间存在固有偏差。
递推放大:由于后一时刻的位置是基于前一时刻的位置计算的,P1 的误差会带入 P2 的计算中。随着步数增加,小的测量误差会演变成巨大的位置偏离(即“差之毫厘,谬以千里”)。
2. 使用策略
鉴于上述特性,在实际应用中应遵循以下原则:
短期可靠,长期漂移:轮式里程计在短时间、短距离内具有较高的精度,适合用于局部路径跟踪和速度闭环控制。
慎用绝对位姿:不建议直接使用里程计输出的绝对坐标 (X,Y)作为导航的最终依据,尤其是在长时间运行后。
善用相对量:轮式里程计非常适合提供相对运动信息。例如,计算“从 A 点到 B 点走了多远”或“相对于当前朝向旋转了多少度”。
3. 误差修正:全局定位
为了消除累积误差,机器人必须引入绝对定位传感器进行校正。
SLAM 技术:通过激光雷达(LiDAR)或视觉传感器感知环境特征,与地图进行匹配,从而获得不受累积误差影响的全局位姿。
传感器融合:通常使用扩展卡尔曼滤波(EKF)等算法,将轮式里程计(高频、相对)与 IMU、GPS、激光 SLAM(低频、绝对)进行融合,既保证了实时性,又保证了全局一致性。
总结:轮式里程计是机器人移动的“脚步”,它提供了高频的运动信息,但每一步都可能踩偏一点点;SLAM 则是“眼睛”和“地图”,负责在宏观上纠正脚步的偏移,二者结合才能实现可靠的自主导航。