精灵P4飞机 切换到P档后使用虚拟摇杆,发现会自动将虚拟摇杆状态停止?原因是什么?(手动启用的虚拟摇杆,没有手动停...

Completed

Comments

10 comments

  • DJI Developer Support
    您好,这个是控制权的问题。切换档位之后遥控器会抢夺回控制权,MSDK会失去控制权,这样就意味着虚拟摇杆会被disable。
    0
    Comment actions Permalink
  • Rick

    没切换档位,在启动虚拟摇杆之前就已经是P挡了,使用虚拟摇杆过程没切换档位,一直P档

    0
    Comment actions Permalink
  • Rick

    没切换档位,自己停止控制虚拟摇杆是什么原因啊

    0
    Comment actions Permalink
  • DJI Developer Support
    您好,请问您详细的操作过程是怎样的?有几种情况飞机会自动退出虚拟摇杆: 1、遥控器信号不好,与飞机断联; 2、飞机因为GPS信号弱,自动切换到姿态模式; 3、执行了航点任务等其它控飞机的操作。
    0
    Comment actions Permalink
  • Rick

    用的模拟器模拟定位,遥控器就在飞机旁边,应该不是1和2了;出现这问题是我在用飞机执行拍摄全景任务,云台正在转动的时候出现的,开始拍之前启用了虚拟摇杆,拍的时候自己停止了虚拟摇杆。

    0
    Comment actions Permalink
  • DJI Developer Support
    您好,我们的全景任务拍摄是只支持手持系列产品的。您这边是如何实现全景拍摄的呢?
    0
    Comment actions Permalink
  • Rick

    使用timeline

     for (int j = 0; j < panoramaYawCount; j++) {
    if (j != 0) {
    AircraftYawAction aircraftYawAction = new AircraftYawAction(v, false);
    // aircraftYawAction.setDelayTime(delayTime);
    elements.add(aircraftYawAction);
    }

    // PanoramaAssistantManager.getInstance().getPanoramaPitchCount() 这里暂时固定为5
    // TODO 原先安卓手动测得 25f - 28.75f * i
    // TODO ios 是 -18f * i

    for (int i = 0; i < panoramaPitchCount; i++) {
    GimbalAttitudeAction gimbalAttitudeAction = new GimbalAttitudeAction(
    new Attitude((float) (v2 * i), Rotation.NO_ROTATION, Rotation.NO_ROTATION));
    // gimbalAttitudeAction.setDelayTime(delayTime);
    elements.add(gimbalAttitudeAction);

    ShootPhotoAction shootPhotoAction = ShootPhotoAction.newShootSinglePhotoAction();
    shootPhotoAction.setDelayTime(delayTime);
    elements.add(shootPhotoAction);
    }
    }
    // 云台回正
    GimbalAttitudeAction gimbalAttitudeAction = new GimbalAttitudeAction(new Attitude(0,
    Rotation.NO_ROTATION, Rotation.NO_ROTATION));
    // gimbalAttitudeAction.setDelayTime(delayTime);
    elements.add(gimbalAttitudeAction);


    if (dji.sdk.mission.MissionControl.getInstance().scheduledCount() > 0) {
    dji.sdk.mission.MissionControl.getInstance().unscheduleEverything();
    dji.sdk.mission.MissionControl.getInstance().removeAllListeners();
    }

    dji.sdk.mission.MissionControl.getInstance().scheduleElements(elements);
    dji.sdk.mission.MissionControl.getInstance().addListener((element, event, error) -> {
    if (error != null) {
    LogUtil.e("全景报错:ERROR " + error.toString() + "\n事件:" + event.name() + " " + event.toString());
    }
    });
    dji.sdk.mission.MissionControl.getInstance().startTimeline();
    0
    Comment actions Permalink
  • DJI Developer Support
    您好,虚拟摇杆理论上与timeline是不能同时使用的。因为都涉及到控飞机的动作,有可能会产生冲突。我们也没有测试哪些timeline动作对virtual stick有影响。您这边为什么在timeline中还要用virtual stick控制呢?只用timeline不能满足您的需求吗?
    0
    Comment actions Permalink
  • Rick

    需求是拍全景过程不能操控摇杆,所以就考虑使用虚拟摇杆

    0
    Comment actions Permalink
  • DJI Developer Support
    您好,timeline mission中不支持虚拟摇杆控制。您可以考虑只使用虚拟摇杆或者只使用waypoint mission来拍摄全景照片。请参考我们示例的实现方式:https://developer.dji.com/mobile-sdk/documentation/ios-tutorials/PanoDemo.html
    0
    Comment actions Permalink

Please sign in to leave a comment.