msdk开发,控制无人机旋转
已完成无人机是inspire 2
如何使用虚拟摇杆控制飞机旋转至指定角度? – 大疆创新SDK技术支持论坛 (dji.net)我根据这个帖子,通过按钮点击事件来让无人机起飞后,再点击旋转让无人机旋转90°,最开始我以为sendVirtualStickFlightControlData的回调是只有一次,所以放在里面调用Timer的cancel()会出现不旋转的情况,我认为是schedule会持续进行run方法,所以回调也会触发多次。之后我把回调中的cancel方法注释掉,测试过程中出现了无人机旋转完90°后会向一个方向飞行。所以出现这种情况是不是没有调用cancel的原因,但是示例代码也没见调用cancel方法。所以如何去调用cancel让无人机在旋转到位后停止执行TimerTask。
附上我的代码
flightController.setYawControlMode(YawControlMode.ANGLE)
flightController.setRollPitchCoordinateSystem(FlightCoordinateSystem.BODY);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
/**
* FlightControlData(float pitch, float roll, float yaw, float verticalThrottle)
* verticalThrottle 垂直控制的速度(米/秒)或高度(米)值。
*/
flightController.sendVirtualStickFlightControlData(new FlightControlData(0, 0, yawData, 0),
djiError -> {
Utils.onResultShowToast(djiError, "偏航操作成功", "偏航操作失败:", activity);
});
}
}, 0, 100);
请先登录再写评论。
评论
6 条评论