gpt4 book ai didi

math - 如何找到从车辆到目标的方位角/仰角?

转载 作者:行者123 更新时间:2023-12-04 02:56:47 25 4
gpt4 key购买 nike

我正在尝试找出如何计算从移动的飞行器模拟到地面上某个点的方位角和仰角。

我有车辆的位置向量 P 及其方向四元数 vehQ。我有目标位置 T,并且我通过从 T 中减去 P 构建了差异向量 dPT

如何计算目标的 az/el 角?您可以猜到,我对 3D 数学不是很熟悉,所以一些有用的解释会很好。

谢谢

最佳答案

首先,找到相对位置向量dPT从车辆到目标:

worldspace target vector dPT = T - P

自车辆位置P和目标位置 T在世界坐标系中,生成的矢量 dPT也将以世界坐标表示。所以,你必须使用车辆方向四元数来旋转dPT从世界坐标到车辆坐标。执行此操作的正确方法取决于生成四元数所使用的约定,但数学可能是以下之一:

vehicle target vector U = vector_part( vehQ * quaternion(0,dPT) * conjugate(vehQ) )
or
U = vector_part( conjugate(vehQ) * quaternion(0,dPT) * vehQ )

由于您没有提供有关四元数约定的信息,我无法知道其中哪一个对您的应用程序是正确的。但是,您的四元数源很可能还提供了使用其四元数旋转向量的函数或方法。因此,您实际上应该做的是找到这些函数,阅读它们的文档,并在自己动手之前尝试使用它们。

在车辆坐标中获得目标矢量后,您可以使用标准公式来计算方位角和仰角。这取决于您的坐标约定,但作为示例,如果您的坐标约定是右手坐标且 Z 轴为“向上”方向:

azimuth = atan2(U.y, U.x)
elevation = atan2(U.z, sqrt(U.x^2 + U.y^2))

这应该以弧度计算高度,范围从 -PI/2+PI/2 ,以及以弧度为单位的方位角,范围从 -PI+PI ,沿 +x 轴为 0,并逆时针增加(只要高度不是垂直的...)。

关于math - 如何找到从车辆到目标的方位角/仰角?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16531466/

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