代码之家  ›  专栏  ›  技术社区  ›  TonyW

在圆上使用atan2获取角度用于机器人仿真

  •  0
  • TonyW  · 技术社区  · 10 年前

    我在一个机器人上做一个模拟,它以中心坐标(x1,y1)做圆周运动。机器人定期测量其位置并返回信息。假设返回的坐标是(x3,y3)。然而,我不太确定在python中使用atan2来计算当前测量值与上一次中心测量值之间的角度的正确方法。

    到目前为止,我正在做以下工作,并想确认是否正确:

    current_angle = atan2(y3-y1, x3-x1)
    last_angle = atan2(y2-y1, x2-x1)
    angle_difference =  current_angle - last_angle
    

    使用 angle_difference ,然后计算角度 velocity = angle_difference / dt (dt是上次测量和当前测量之间花费的时间)

    1 回复  |  直到 10 年前
        1
  •  1
  •   Ignacio Vazquez-Abrams    10 年前

    几乎正确。当通过第一象限和第四象限以及第二象限和第三象限之间的轴时,给定的公式会有问题,因此您需要取角度差的绝对值的最小值,然后补偿符号。