Joystick的位置模式控制移动,垂直方向上的位置是“相对起飞点的高度”还是“相对于当前位置的高度”?

评论

6 条评论

  • DJI Developer Support
    您好,图中这个示例代码是相较于当前位置高度移动的。
    0
    评论操作 固定链接
  • 周-zyh

    也就是说 位置模式控制移动,垂直方向上的位置设置的值是”相对于当前位置的高度“吗?

    而且您说的是这个示例代码吗?offsetDesired.z + originHeightBaseHomePoint,originHeightBaseHomePoint 这个变量表示的是相对于起飞点的高度,所以偏差位移+上起飞点的高度不就是“相对起飞点的高度”吗?是示例写错了吗?

    同样看到这个示例说明:https://sdk-forum.dji.net/hc/zh-cn/articles/5497460532889-5-7-joystick%E9%A3%9E%E8%A1%8C%E6%8E%A7%E5%88%B6-flight-control

    里面描述垂直方向上的位置设置的值是”相对起飞点的高度“?

    0
    评论操作 固定链接
  • DJI Developer Support
    您好,位置移动模式,您传参的高度是相对于当前位置的,您可以看下这个函数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 函数发送给飞控,让飞控朝指定位置移动。
    0
    评论操作 固定链接
  • 周-zyh

    我感觉您给我绕了一大圈啊,我想询问的不是这个二次封装函数DjiTest_FlightControlMoveByPositionOffset()的入参,而是DjiFlightController_ExecuteJoystickAction() 函数在位置移动模式下,它的入参是“相对起飞点的高度”还是“相对于当前位置的高度”?

    示例代码采用”offsetDesired.z + originHeightBaseHomePoint“ 表示”期望移动的高度偏差+当前无人机相对于起飞点的高度“ ,示例代码的意思是,这个高度位置参数需要输入“最终的相对起飞点高度”,

    但是如果是“相对于起飞点的高度”,那源码为什么注释设置值的范围为0~120,这明显和示例代码不匹配啊

      while (elapsedTimeInMs < timeoutInMilSec) {
          ...
            T_DjiFlightControllerJoystickCommand joystickCommand = {positionCommand.x, positionCommand.y, offsetDesired.z + originHeightBaseHomePoint, yawDesiredInDeg};
            DjiFlightController_ExecuteJoystickAction(joystickCommand);
    0
    评论操作 固定链接
  • DJI Developer Support
    您好,抱歉没有第一时间理解您的疑惑,DjiFlightController_ExecuteJoystickAction()这个函数的入参是目标点相对于起飞点的高度。注释这部分我们会反馈给研发团队做修改,抱歉给您带来了误解,这个0-120m的范围没有说清楚,因为之前OSDK还不支持脱控飞行(此功能原本是OSDK功能合并进来的),控制的飞行高度限制在120m以内,想给开发者说明相对于起飞高度是0-120m内。
    0
    评论操作 固定链接
  • 周-zyh

    好的,了解了

    0
    评论操作 固定链接

请先登录再写评论。