本文主要是方便以后再次使用查看,不会详细描述每个参数的来源,至于环境大家自己根据官方配置就好。
private FlightController mFlightController;
mFlightController = ((Aircraft) DJISDKManager.getInstance().getProduct()).getFlightController();
下面就是获取避障距离的方法,其实可以获取水平角度360的障碍物距离,和上下距离
/**
* 避障距离
*/
String distanceStr = "";
private void iniAssistant() {
if (mFlightController != null) {
//避障距离
mFlightController.getFlightAssistant().setVisualPerceptionInformationCallback(new CommonCallbacks.CompletionCallbackWith<PerceptionInformation>() {
@Override
public void onSuccess(PerceptionInformation perceptionInformation) {
int[] distances = perceptionInformation.getDistances();
int downwardObstacleDistance = perceptionInformation.getDownwardObstacleDistance();
int upwardObstacleDistance = perceptionInformation.getUpwardObstacleDistance();
distanceStr+= "长度"+distances.length+",距离:";
distanceStr+=(distances[0] + ",");//前
distanceStr+=(distances[90] + ",");//右
distanceStr+=(distances[180] + ",");//后
distanceStr+=(distances[270] + ",");//左
distanceStr+=("下"+downwardObstacleDistance + ",");
distanceStr+=("上"+upwardObstacleDistance);
runOnUiThread(() -> gcsTxt.setText(distanceStr));
distanceStr="";
}
@Override
public void onFailure(DJIError djiError) {
}
});
}
}
功能虽简单,寻找实现并不易,自己一点点寻找API真无人机测试才有的,有需要的可以收藏,转发希望留个链接,有机会会出一套大疆msdk使用教程。