该函数用于导航航点。它根据当前位置、速度和航点信息计算出导航方向和横向加速度。

函数首先计算航点A到航点B的方向向量,并将其单位化。然后,计算从航点A到飞机的向量,并计算出横向偏差(crosstrack error)。接下来,函数判断飞机是否在航点A的后方,并且距离航点A大于L1距离。如果是这样,那么航点A将成为L1点。如果飞机已经在航点A和航点B之间,那么将应用正常的L1逻辑。然后,函数计算飞机当前位置相对于航点B的角度,并计算出飞机当前位置相对于航点A的角度。最后,函数根据角度计算横向加速度。

这个函数的输入参数是航点A的位置、航点B的位置、飞机当前位置、地速向量。函数的输出参数是目标航向和横向加速度。

#include ECL_L1_Pos_Controllerhpp#include libgeogeoh#include px4_platform_commondefinesh#include floathusing matrixVector2f;voidECL_L1_Pos_Controllernavigate_waypointsconst Vector2f &vector_A const Ve

原文地址: https://www.cveoy.top/t/topic/hX38 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录