大疆无人机M300相关API揭秘(一)

关于激光测距:

激光测距只是针对于测量飞机与飞机镜头目标点的距离,需要镜头配合。如果需要获取飞机距离地面的高度,需要将镜头向下打到90度对准地面,回调会给到飞机距离地面的距离。这样的局限性很大。而且激光测距还有几个前置条件:
1.保证有GPS信号(RTK模式下是否能获取未知)
2.必须将镜头调到zoom 镜头对象
3.飞机距离目标点需要3米以上。
相关API:
camera.setLaserEnabled(打开激光测距功能)
mLens.setLaserMeasureInformationCallback
(设置激光测距回调,这里mLens要取zoom镜头对象)

关于避障功能:

M300可以自定义设置水平和垂直避障距离。以此降低自动飞行的炸机风险。
相关API:
FlightAssistant.setActiveObstacleAvoidanceEnabled
(打开避障功能)
FlightAssistant.setActiveObstacleAvoidanceDistance
(设置避障距离)

关于自动飞行2.0:

任务航点数量:

原来自动飞行任务最多只支持99个航点,航点超过限制时只能采用拼接任务的方式,航点飞行2.0解除了这个限制,任务航点数量提升至65535 个。

更丰富的航点动作:

原来自动飞行的航点动作 action 关联在 waypoint 上,waypoint 到达后按顺序触发这些动作。如果想在 action 之间做关联是做不到的。V2 中针对触发时机进行了完全的重新设计核心的改进是动作的触发时机更加丰富了,航点动作可以互相关联,可以设置定时器。专门定义了一个类来指定动作的触发时机,有更高的自由度。
自动飞行1.0航点动作的设置:



自动飞行2.0航点动作的设置:


由上图代码可以看出,航点动作已经单独抽离出来不再和原来的航点进行关联。而且航点动作间可以相互关联。上述代码直接与航点动作1进行关联,执行完航点动作1后飞机直接悬停。具体后续操作用航点动作3去设置就行。总体上和自动飞行1相比灵活了很多.

飞行路径:

原来的飞行路径只有两种:默认的直线和曲线。
V2 的飞行路径枚举(DJIWaypointV2FlightPathMode)多了几种类型,主要的区别是原来飞行路径是弧线时会绕过航点,就是 V2 中的 CoordinateTurn。但是有时只是希望两个航点间的路径是曲线,弧线的终点还是希望经过航点。这就是 V2 中的 GoToPointAlongACurve。
关于WaypointV2FlightPathMode枚举:

CURVATURE_CONTINUOUS_PASSED:
飞机将沿着一条曲线到达航路点并飞越该航路点
GOTO_POINT_CURVE_AND_STOP:
飞机将沿着一条曲线到达航路点,并在该航路点停止。
GOTO_POINT_STRAIGHT_LINE_AND_STOP:
飞机将沿着一条直线到达航路点并在该航路点停留。
COORDINATE_TURN:
飞机将沿着平滑的曲线从上一个航路点飞到下一个航路点,而不在这个航路点停留。
GOTO_FIRST_POINT_ALONG_STRAIGHT_LINE:
飞机将沿着一条直线到达第一个航路点。这只对第一个航路点有效。
STRAIGHT_OUT:
从最后一个航路点直接出口,仅对最后一个航路点有效。

兴趣点设置:

V1 中整个任务只能有一个兴趣点,现在每个航点可以设置自己的兴趣点。对于航拍类型的作业很友好,可能一条航线里有两个拍摄主体,原来只能分成两个任务执行,现在可以在一个任务里通过给航点设置兴趣点实现。
自动飞行1.0关于兴趣点的设置:


由上图代码可以发现自动飞行1.0中setPointOfInterest是关联与WaypointMission的,因此一个任务只有一个兴趣点。
自动飞行2.0关于兴趣点设置:


由上图代码可以发现自动飞行2.0中setPointOfInterest已经是关联到Waypoint上了,因此每个航点都可以去设置自己的兴趣点。

现有自动飞行的改进:

WaypointV2 相当于是一个全新的任务类型,虽然也是 waypoint mission,但是提供的 API 还是发生了不小变化。无法单独就一个优点对原方案进行改进。需要使用的话原有的自动飞行方案都要替换掉。只能根据自动飞行的所需场景是否有现有自动飞行无法满足的要求点而航点飞行2.0刚好可以满足进行考虑。毕竟航点飞行2.0目前只支持M300。替换的话还需要考虑不同机型的适配问题。

你可能感兴趣的:(大疆无人机M300相关API揭秘(一))