差速两轮机器人位移与航向角增量计算

差速两轮机器人位移与航向角增量计算(零基础详解)

差速两轮机器人是移动机器人里最基础、最常用的构型,像常见的巡检小车、扫地机器人很多都是这种结构。它的核心原理是通过控制左右两个轮子的转速差,实现前进、后退、转向等运动 。我们要解决的问题就是:已知左轮线位移增量右轮线位移增量轮距 ,怎么计算车体中心的平移增量航向角增量

先明确:所有带 "增量" 的物理量,指的都是在一小段时间 Δt 内,机器人的运动变化量,因为机器人的运动是连续的,取极短时间的增量可以近似认为这段时间内做 "匀速 / 匀角速度运动",方便计算。

一、 先搞懂所有专业名词

1. 左轮线位移增量 / 右轮线位移增量

  • 名词解释
    • 线位移:物体沿直线方向移动的距离,单位是米(m)。
    • 增量 :指在极短时间 Δt 内,轮子滚动产生的线位移变化量,分别记为 ΔsL(左轮)、ΔsR(右轮)。
  • 通俗理解:就是在一瞬间,左轮滚了多长,右轮滚了多长。比如左轮滚了 0.02m,右轮滚了 0.03m,那 ΔsL=0.02m,ΔsR=0.03m。
  • 补充:轮子的线位移和轮子的转动角度有关,公式是 Δs=r⋅Δθ,其中 r 是轮子半径,Δθ 是轮子的角位移增量(弧度)。这个公式可以辅助理解,但咱们这次计算不用它。

2. 轮距

  • 名词解释 :差速机器人两个驱动轮中心之间的水平距离,记为 b,单位是米(m)。
  • 通俗理解:把机器人看成一个小车,两个后轮(驱动轮)之间的宽度就是轮距。比如扫地机器人的轮距可能是 0.2m,工业巡检小车的轮距可能是 0.5m。
  • 注意:轮距是固定值,一旦机器人造好,b 就不会变了。

3. 车体中心

  • 名词解释 :差速机器人的几何中心 ,通常定义为两个驱动轮中心连线的中点,记为点 C。
  • 通俗理解:把两个轮子的中心连一条线,这条线的正中间就是车体中心。机器人的位置,一般都是用车体中心的坐标来表示的。

4. 车体中心的平移增量

  • 名词解释 :在极短时间 Δt 内,车体中心 C 移动的直线距离,记为 ΔsC,单位是米(m)。
  • 通俗理解:就是机器人的 "中心点" 在这一瞬间往前走 / 往后退 / 斜着走了多远。

5. 航向角增量

  • 名词解释
    • 航向角 :机器人的前进方向与世界坐标系 x 轴的夹角 ,记为 θ,单位是弧度(rad)(机器人领域不用角度,必须转成弧度)。
    • 航向角增量:极短时间 Δt 内,航向角的变化量,记为 Δθ,单位是弧度(rad)。
  • 通俗理解:就是机器人在这一瞬间 "转了多少弯"。Δθ>0 表示逆时针转,Δθ<0 表示顺时针转,Δθ=0 表示直线运动。

二、 核心假设(为什么能这么算)

因为我们取的是极短时间 Δt ,在这段时间内,机器人的运动可以近似为:绕着一个瞬时旋转中心(ICC) 做圆周运动。

这个假设是所有计算的基础!简单说:不管机器人是直线走还是转弯,极短时间内都像在画一个小圆弧。

三、 计算公式推导与讲解(从易到难)

我们分两种情况讨论:直线运动转向运动,转向运动是通用情况,直线运动是转向运动的特例。

情况 1:直线运动(左右轮线位移增量相等)

当 ΔsL​=ΔsR​=Δs 时,机器人做直线运动。

  • 航向角增量:机器人没有转弯,所以航向角不变。Δθ=0

  • 车体中心的平移增量:中心点移动的距离和轮子移动的距离相等。ΔsC​=ΔsL​=ΔsR​

  • 例子:左轮滚了 0.05m,右轮也滚了 0.05m,轮距 0.2m。则 Δθ=0,ΔsC​=0.05m,机器人直线前进 0.05m。

情况 2:转向运动(左右轮线位移增量不相等)

这是通用情况,ΔsL​=ΔsR​,机器人会绕瞬时旋转中心转弯。

步骤 1:计算航向角增量 Δθ

核心逻辑:左右轮的线位移差,是由 "绕瞬时中心旋转" 引起的,而线位移差和轮距、航向角增量直接相关。

我们想象机器人绕瞬时中心转了一个小角度 Δθ,此时:

  • 左轮走过的圆弧长度:ΔsL=RL⋅Δθ
  • 右轮走过的圆弧长度:ΔsR=RR⋅Δθ其中 RL 是左轮到瞬时中心的距离,RR 是右轮到瞬时中心的距离。

又因为轮距 b=RR​−RL​(右轮离瞬时中心更远,差值就是轮距)。

把上面两个式子相减:ΔsR​−ΔsL​=(RR​−RL​)⋅Δθ=b⋅Δθ

整理得到航向角增量的公式:Δθ=bΔsR​−ΔsL​​

  • 公式解读
    1. 单位验证:分子是长度(m),分母是长度(m),所以 Δθ 是无量纲的?不对!这里的长度相除后,结果的单位是弧度(rad),因为弧度的定义就是 "弧长 / 半径",本身无量纲,但物理意义是角度。
    2. 符号意义:ΔsR>ΔsL 时,Δθ>0,机器人逆时针转 ;ΔsR<ΔsL 时,Δθ<0,机器人顺时针转
    3. 特殊情况:ΔsR=ΔsL 时,Δθ=0,和直线运动一致。
步骤 2:计算车体中心的平移增量 ΔsC​

车体中心是两轮连线的中点,所以中心点到瞬时旋转中心的距离 RC​=2RL​+RR​​。

而中心点的平移增量就是中心点走过的圆弧长度:ΔsC​=RC​⋅Δθ

把 RL​=ΔθΔsL​​、RR​=ΔθΔsR​​ 代入 RC​:RC​=2ΔθΔsL​​+ΔθΔsR​​​=2ΔθΔsL​+ΔsR​​

再代入 ΔsC​=RC​⋅Δθ,可以消掉 Δθ,得到最终公式:ΔsC​=2ΔsL​+ΔsR​​

  • 公式解读
    1. 不管机器人是左转还是右转,车体中心的平移增量,都等于左右轮线位移增量的平均值
    2. 单位:米(m),和轮线位移单位一致。
    3. 特殊情况:直线运动时,平均值等于单个轮子的位移,和情况 1 一致。

总结:核心公式表

物理量 符号 计算公式 单位
航向角增量 Δθ Δθ=bΔsR​−ΔsL​​ 弧度(rad)
车体中心平移增量 ΔsC​ ΔsC​=2ΔsL​+ΔsR​​ 米(m)

四、 实例计算(帮你彻底理解)

已知条件:差速机器人轮距 b=0.2m,在 Δt 时间内,左轮线位移增量 ΔsL​=0.03m,右轮线位移增量 ΔsR​=0.05m。

计算步骤

  1. 计算航向角增量Δθ=0.20.05−0.03​=0.20.02​=0.1 rad结果为正,说明机器人逆时针转了 0.1 弧度(约 5.73 度)。

  2. 计算车体中心平移增量ΔsC​=20.03+0.05​=20.08​=0.04 m说明机器人的中心点在这段时间内移动了 0.04 米。

**再换一个例子(顺时针转)**已知 b=0.2m,ΔsL​=0.05m,ΔsR​=0.03m

  • Δθ=0.20.03−0.05=−0.1 rad(负号表示顺时针转)
  • ΔsC=20.05+0.03=0.04 m

五、 易错点提醒(期末复习重点)

  1. 单位问题 :航向角增量的单位是弧度,不是角度!如果题目要求角度,需要用公式 角度弧度 转换。
  2. 符号问题:Δθ 的正负代表转向方向,记住 "右轮快,逆时针转;左轮快,顺时针转"。
  3. 增量的含义:所有 Δ 开头的量都是 "变化量",不是 "总量",必须是极短时间内的数值,否则假设不成立,公式会有误差。
  4. 车体中心的定义:必须是两轮中心连线的中点,不能随便选其他点,否则公式不适用。
相关推荐
qq_336313931 小时前
java基础-多线程练习
java·开发语言·算法
不知名XL1 小时前
day25 贪心算法 part03
算法·贪心算法
瑞华丽PLM1 小时前
PLM系统中的BOM管理演进:从数据孤岛到全生命周期协同
大数据·人工智能·plm·国产plm·瑞华丽plm·瑞华丽
咚咚王者2 小时前
人工智能之核心基础 机器学习 第十六章 模型优化
人工智能·机器学习
电商API_180079052472 小时前
1688商品详情采集API全解析:技术原理、实操指南与业务落地
大数据·前端·人工智能·网络爬虫
期待のcode2 小时前
Java虚拟机的垃圾回收器
java·开发语言·jvm·算法
向上的车轮2 小时前
麦肯锡《智能体、机器人与我们:AI时代的技能协作》
人工智能·机器人
叫我:松哥2 小时前
基于Flask框架开发的二手房数据分析与推荐管理平台,集成大数据分析、机器学习预测和智能推荐技术
大数据·python·深度学习·机器学习·数据分析·flask
星火开发设计2 小时前
C++ 分支结构:if-else 与 switch-case 的用法与区别
开发语言·c++·学习·算法·switch·知识·分支