Skip to content

踩坑Robotics Stack Exchange2014-07-23

差速机器人增量编码器如何更新位姿 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:Calculate position of differential drive robot(Robotics Stack Exchange #1653)

状态:已解决

问题 ​

提问者用左右轮增量距离计算差速机器人位置时,不确定更新 x、y 应使用旧 theta 还是新 theta,以及几何中心不在轮间中心时如何同步更新位置和朝向。

环境 ​

Linux / ROS 机器人软件与控制通用开发环境

解决办法 ​

  1. 不用左右轮直线近似;每个时间步把机器人从点 A 到点 B 视为沿圆弧运动。
  2. 若 fabs(leftDelta - rightDelta) < 1.0e-6,按直行处理:new_x = x + leftDelta * cos(heading),new_y = y + rightDelta * sin(heading),new_heading = heading。
  3. 否则计算 R = unitsAxisWidth * (leftDelta + rightDelta) / (2 * (rightDelta - leftDelta)),wd = (rightDelta - leftDelta) / unitsAxisWidth。
  4. 更新为 new_x = x + R * sin(wd + heading) - R * sin(heading),`new_y = y - R * cos(wd + heading) + R * cos(heading)…

原问题作者:Daniel Jour;采纳答案作者:Robz。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #1653:Calculate position of differential drive robot访问 2026-10-22