如何确定新的推力输入将当前坐标移动到指定坐标位置

How to determine new thrust input to move current coordinate to specified coordinate position

假设我在 X,Y space 的已知位置 (X1,Y1) 有一架无人机,相对于坐标系中的原点向右倾斜 45 度(参见下面的示例) ).

红色箭头表示无人机的正面,橙色点表示它在 space (X1,Y1) 中的位置。

知道无人机有向前和向后运动的推力输入(范围从 +1(向前)到 -1(向后);以及向左和向右运动(从 +1(向右)到 -1 (向左)。关于无人机正面(见下面紫色的例子)。

考虑到无人机的方向,我将如何确定推力输入以到达坐标系 (X2,Y2) 中的新点。请原谅我粗糙的 mspaint 绘图。感谢任何帮助!

根据你的提问方式,我假设你不想转动无人机。

让我们给这些点起一些名字:A = (X1, Y1), B = (X2, Y2)。

您要移动的方向是 D = normalize(B - A)。

无人机正面朝向U = (cos(a), sin(a)) 其中a是角度。
无人机右侧正对着V = (sin(a), -cos(a)).

如果你打开 forward/backward 推进器与点(D,U)成比例,left/right 推进器与点(D,V)成比例,你将向你想要的方向移动. (这称为change of basis。)

您可以统一缩放(dot(D, U), dot(D, V))来增加或减少速度。