所以说我在一个已知位置(X1,Y1)的X,Y空间中有一架无人机,其坐标系相对于坐标系中的原点向右45度(见下面的例子)。
红色箭头表示无人机的正面,橙色点表示空间的位置(X1,Y1)。
知道无人机有向前和向后运动的推力输入(范围从+1(向前)到-1(向后);向左和向右运动(范围从+1(向右)到-1(向左)关于无人机前脸(见下面的例子,用紫色表示)。
考虑到无人机的方向,我如何确定在坐标系(X2,Y2)中到达新点的推力输入。原谅我粗糙的mspaint图纸。感谢任何帮助!
答案 0 :(得分:2)
提出问题的方式,我假设你不想转动无人机。
让我们给点起一些名字:A =(X1,Y1),B =(X2,Y2)。
您想要移动的方向是D =标准化(B - A)。
无人机的前部面向U =(cos(a),sin(a)),其中a是角度。
无人机的右侧面向V =(sin(a), - cos(a))。
如果将前进/后退推进器与点(D,U)成比例,左/右推进器与点(D,V)成比例,则将按所需方向移动。 (这称为change of basis。)
您可以均匀缩放(点(D,U),点(D,V))以提高或降低速度。