ELAI S.r.l.

机器人准确数轮转:为什么位置仍然错误?

用精确圆弧、欧拉误差和错误轮半径解释差速里程计:可复现仿真,不是真机测量。

机器人准确数轮转:为什么位置仍然错误?

数运动量不等于知道位置

移动机器人沿工业走廊运送零件。编码器完整计数轮转,没有丢脉冲,软件却把位置放在预期路径外。加入神经网络前,应先理解轮转如何变距离、距离如何转动车体、旋转如何在地图累积。本文区分两类需不同补救的问题:错误近似正确运动,以及完美积分由错误参数估出的运动。

摘要。推导平面双驱轮无滑移、区间内轮速恒定的里程计。轮距.5米、左移1米右移1.02米时,转角.04弧度,位置约(1.009731,.020197)米。比较精确圆弧与欧拉积分及数值收敛。另构造两轮真实均行10米、软件右轮半径偏大2%的情形,精确积分也偏离真实位置约两米。这是确定性仿真,不是硬件基准或安全证明。

模型:车轮、车体与假设

b是两滚动点完整间距,不是半轮距。车体原点在轮间,x向前、y向左、逆时针角为正;Δl,Δr前进为正。全局姿态(x, y,φ)单位米与弧度。未建模加速度、轮胎形变、坡度、载荷。无滑移滚动是假设,只有在此下才可仅从轮转推导车体运动。

Kevin Lynch与Frank Park的Modern Robotics第13.4节解释轮增量、车体运动及矩阵指数积分,已阅读其技术说明。本文用自构数据及标量公式,明确b为全轮距;混用半轮距公式会有两倍误差。没有运行其软件或EL-AI机器人估计。

从车轮到圆弧

轮半径r与编码器角增量Δθ给出距离rΔθ。精确计脉冲不认证有效半径。两轮平均距离给中心弧长,距离差除b给转角。右轮行更多则向左转,符合正号。这是几何,不需学习函数。

Δl=r_lΔθ_l; Δr=r_rΔθ_r Δs=(Δl+Δr)/2; Δφ=(Δr−Δl)/b b=0.5m, Δl=1m, Δr=1.02m → Δs=1.01m, Δφ=0.04rad

积分曲线而非切线

还要把弧长转角转换为笛卡尔位移。轮速恒定时中心沿圆弧,非零Δφ的半径R=Δs/Δφ。在初始车体参考系,前向RsinΔφ,侧向R(1−cosΔφ)。公式回答边行边转后的终点,而非先全部前进再转。

u=Δs·sin(Δφ)/Δφ v=Δs·[1−cos(Δφ)]/Δφ x_next=x+cosφ·u−sinφ·v y_next=y+sinφ·u+cosφ·v φ_next=φ+Δφ

u, v是初始车体系中的米。cosφ, sinφ先把增量转至地图系,再加x, y;朝北前进一米不等于地图x方向一米。方向用角度相加。实验φ不折返区间,三角函数支持多圈;应用可一致地规范角范围。

Δφ趋零时sinΔφ/Δφ→1,(1−cosΔφ)/Δφ→0,得到直行u=Δs, v=0。程序在10⁻¹²弧度以下用极限避免除零,适合本测试。更稳健小角实现可用sinc或级数,因1−cosΔφ近数相减丢精度。没有库或硬件比较;精确推导不同于浮点评估。

从原点φ=0得到x=1.009730688米、y=.020197307米、φ=.04弧度。若把全部Δs放在初始方向,得到(1.01,0)米后才更新角度,即显式欧拉,以初切线近似弧。这是合理但步长相关的近似。混同结果会在本构造区间隐藏约两厘米侧移。

可以减小的数值误差

固定总Δl=10米、Δr=10.2米,分N等段。这是拆分已知恒速合成数据,不是提高真实编码器频率。精确终点(9.832813143,1.993209901)米、方向.4弧度,在容差内与分段无关。N增大欧拉趋近;误差为最终位置欧氏距离,非仅侧差或碰撞概率。

N欧拉误差(米)
12.011038172
100.200660483
1000.020065607
10000.002006560

区间十倍、误差约减十倍,符合此规则问题欧拉一阶全局收敛,不证明所有驾驶均如此。若区间内轮速变化,恒速圆弧也可能近似,总增量未必保留动作时序。前面只隔离声明运动的方法误差;接下来保留精确积分,改变输入信息质量。

积分器无法纠正的标定误差

第二场景真实直行:两实际半径.1米、各编码器累计100弧度,各走10米。软件左用.1米、右用.102米,参数偏大2%,把轮转变为10和10.2米。与前一曲线输入相同,但此时曲线只是估计非真实。明确区分两个场景,仅积分器输入相同。

100段精确积分估计(9.832813143,1.993209901)米,真实(10,0)米、方向0,两点距离2.000209278米。增加分段不能消除:积分正确计算了现实不存在的轮差。假转角.4弧度不断改变估计前进方向,累计侧移,不只是路长加2%。

左:标定场景的真实直线与右半径偏大2%的曲线估计,米制等比例轴。右:欧拉相对声明正确圆弧的数值误差,双对数轴。两个独立合成比较,减小后者不消除前者。
左:标定场景的真实直线与右半径偏大2%的曲线估计,米制等比例轴。右:欧拉相对声明正确圆弧的数值误差,双对数轴。两个独立合成比较,减小后者不消除前者。

编码器看不到什么

原地打滑与真实前进可能产生相同脉冲,编码器单独不能无额外假设地区分。有效半径、轮距也可能随接触机械变化。未仿真这些效应,所以两米不是所有车辆误差预测。计数精度、参数正确与定位质量不同,编码器准确不单独证明定位准确。

相机或环境参照可增加实际运动证据,但融合引入标定、时间、噪声与共同误差。本文未运行卡尔曼、视觉定位或SLAM(同时定位与建图),不编造性能。里程计是可与外部证据比较的模型相关输入,不是绝对姿态真值。

复现与工业系统

每次姿态更新工作内存恒定,保留绘图路径则内存O(N)。无随机或种子,记录Python 3.14.0、Matplotlib 3.11.2。断言检查直行、圆弧分段等价与数值比较。展示代码重算1、10、100段,直接显示精确不变与欧拉收敛,不拿截图当数据。

真机测试应将参数标定与未用于标定的路径评估分开,记录地面、载荷、速度、半径、轮距、编码器及外部参照不确定性。这是建议非已执行协议。仿真不证明安全合规或适合人员附近。工业协作机器人是用户所述EL-AI探索方向,不是已开发移动产品、客户或安装证据。

轮转计数正确仍可能位置错,因为计数只是首环。精确圆弧解决假设下积分,不纠错参数或不可观运动。相同数值输入展示了不同声明真值。让AI补偿漂移前,应问误差来自近似还是系统缺失信息。

Kevin M. Lynch, Frank C. Park. Modern Robotics, section 13.4 Odometry. Technical transcript read 17 October 2026; independent scalar simulation, no robot measurements..

from experiment import integrate
for n in [1,10,100]:
    print(n,integrate(n,exact=True)[0],integrate(n,exact=False)[0])

代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 10 月 17 日。