飞控问题
Completed示例程序c语言代码的飞控模块,往给定点飞行时,joystick的高度参数为绝对高度,那无人机如何判断是往上飞还是往下飞呢?是否有与当前高度比较的环节?这个环节在代码的哪一块?
-
尊敬的开发者, 您好,感谢您联系DJI 大疆创新。 位置移动模式,您传参的高度是相对于当前位置的,您可以看下这个函数DjiTest_FlightControlMoveByPositionOffset,在 DjiTest_FlightControlMoveByPositionOffset 函数中,首先获取起飞点的 GPS 位置和相对高度,这些值代表了飞机起飞时的位置和高度。 在控制循环中,使用相同的函数获取当前 GPS 位置和高度,T_DjiFcSubscriptionPositionFused currentGPSPosition = DjiTest_FlightControlGetValueOfPositionFused(); dji_f32_t currentHeight = DjiTest_FlightControlGetValueOfRelativeHeight(); 使用 DjiTest_FlightControlLocalOffsetFromGpsAndFusedHeightOffset 函数计算当前位置与起飞点之间的局部偏移量,这个函数计算了当前位置与起飞点之间的三维偏移量(NED坐标系),其中 deltaNed.z 表示高度差。通过将期望的偏移量(例如 {20, 0, 0} 或 {0, 0, 30})与当前的局部偏移量进行比较,计算出剩余的偏移量:T_DjiTestFlightControlVector3f offsetRemaining = DjiTest_FlightControlVector3FSub(offsetDesired, localOffset); 最后,使用计算出的 offsetRemaining 来生成控制命令,并通过 DjiFlightController_ExecuteJoystickAction 函数发送给飞控,让飞控朝指定位置移动。DjiFlightController_ExecuteJoystickAction()这个函数的入参是目标点相对于起飞点的高度 您可以结合以下文档看下:5.7 joystick飞行控制(flight_control)(https://sdk-forum.dji.net/hc/zh-cn/articles/5497460532889) 希望我们的解决方案能够帮到您,感谢您的邮件,祝您生活愉快! Best Regards, DJI 大疆创新SDK技术支持
Please sign in to leave a comment.
Comments
1 comment