[英]Android DJI SDK - Dynamic GoToAction with MissionControl
我想通过MissionControl给Phantom 4进行“指向任务”。 我添加了新元素-GoToAction with point。 有一种方法可以动态更改元素中的点,以使Drone不会停止并到达新点,但是会继续飞行到新点吗?
谢谢!
我想你不能。 每个位置都必须有一个新的Mission // Waypoint,所以唯一的方法是:每次从移动物体获得新的GPS位置时,仅用一个Waypoint创建一个新Mission,将其上传并启动Mission。 。
但是您可以使用DJIFollowMeMissionOperator,在那里您可以设置target-Position
编辑:这是我的示例,我测试了几次,重要的是在任务超时之前更新targetPosition。 因此,例如使用计时器或FlightcontrollerStateCallback来更新followMeTargetPosition:
在我的类MissionControlWrapper中:
开始任务:
public void startSimpleFollowMe(){
if(fmmo == null){
fmmo = getFollowMeMissionOperator();
}
final FollowMeMissionOperator followMeMissionOperator = fmmo;
if (followMeMissionOperator.getCurrentState().equals(FollowMeMissionState.READY_TO_EXECUTE)){
fmm = FollowMeMission.getInstance().initUserData(targetLocation.getLatitude() , targetLocation.getLongitude(),0);
followMeMissionOperator.startMission(fmm, new CommonCallbacks.CompletionCallback() {
@Override
public void onResult(DJIError djiError) {
if(djiError != null){
setLastState(djiError.getDescription());
} else {
setLastState("Mission Start: Successfully");
}
}
});
}
}
更新目标:
public void updateSimpleFollowMe(){
if(fmmo == null){
fmmo = getFollowMeMissionOperator();
}
final FollowMeMissionOperator followMeMissionOperator = fmmo;
if(followMeMissionOperator.getCurrentState().equals(FollowMeMissionState.EXECUTING)) {
followMeMissionOperator.updateFollowingTarget(new LocationCoordinate2D(targetLocation.getLatitude(),
targetLocation.getLongitude()),
new CommonCallbacks.CompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error != null) {
setLastState(followMeMissionOperator.getCurrentState().getName().toString() + " " + error.getDescription());
} else {
setLastState("Mission Update Successfully");
}
}
});
}
}
我更新
目标位置
从班级外面然后打电话
startSimpleFollowMe()
并使用更新目标位置
updateSimpleFollowMe()
开始任务后:等待“任务开始:成功”。
然后以一定间隔更新targetLocation(似乎它从每秒一次到每3秒工作一次)
我使用FollowMe代替WaypointMission随时更改targetLocation,而无需启动新任务。 如果实际目标距离超过2米,我将以1米为步长更新目标,因为如果无人机与targetPosition之间的距离过长,则会出现错误。
我必须再尝试几件事,但这似乎是一种解决方案:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.