gpt4 book ai didi

java机器人转弯不足转向

转载 作者:行者123 更新时间:2023-11-30 05:45:09 24 4
gpt4 key购买 nike

我正在用java构建一个机器人,并且正在实现一个转动系统,该系统计算两个坐标(x1,y1),(x2,y2)之间的角度,但是机器人当前正在翻转,即如果我告诉它转动90度度数只会转 40 度,所以我需要输入更多转向。机器人可以左转或右转,具体取决于所需的转弯是否大于 180 度。下面的代码有效,但仅当起始航向为 0 度时,所以我需要代码考虑当前位置。

        double xDiff = x2 - x1;
double yDiff = y2 - y1;
double angle = Math.toDegrees(Math.atan2(yDiff, xDiff));

double currentAngle = 0; //is changed after first run

angle = (angle + 360) % 360;

angle = angle - currentAngle;

使角度介于 -180 和 180 之间

     if (angle > 180)  
angle -= 360;

if(angle < 0 )
{
angle = angle - 45;

}
else if(angle > 0)
{
angle = angle + 45;

}

最佳答案

不要为此使用角度。 (如果可以避免的话,不要使用角度。)如果此帧的 [xDiff,yDiff] 与当前航向 vector 之间的点积为负,则角度大于 180度。 (此外,perp 点积指示您是否需要向左转或向右转。)

关于java机器人转弯不足转向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54986307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com