我正在对机器人进行模拟,该机器人以中心坐标(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是最后一次测量和当前测量之间所花费的时间)
答案 0 :(得分:1)
几乎正确。给定的公式在第一和第四象限与第二和第三象限之间穿过轴时会出现问题,因此您需要取角度差的绝对值的最小值,然后补偿符号。 / p>