避障功能介绍
不同的飞行器类型、飞行模式、障碍类型,有不同的策略,如重规划、掠过、停止、失效保护。总计分为两个范畴,
• ADSB(Automatic Dependent Surveillance Broadcast)
https://ardupilot.org/copter/docs/common-ads-b-receiver.html 介绍了硬件模块与设置,包括软件仿真接入ADSB硬件。
• 路径规划与避障
传感器硬件
§ Proximity 传感器,一般是360°激光雷达,或具有较宽视野的传感器,多个测距传感器或深度相机也可用作Proximity传感器。 § 测距传感器,为单点测距。 § 深度相机,参考链接给出了Python程序将深度图像若干行像素转为MAVLink协议OBSTACLE_DISTANCE消息,通过串口发给APM飞控。实测前要对深度图做一些滤波。https://ardupilot.org/copter/docs/common-realsense-depth-camera.html#common-realsense-depth-camera避障算法
i. 简单避障 ii. Dijkstra iii. BendyRuler iv. D+B 首先在航线上存在的所有障碍围栏用Dijkstra规划路径,若路径上有检测到障碍,换用BendyRuler算法,若传感器视野内无障碍,恢复正常的Dijkstra算法。 https://ardupilot.org/copter/docs/common-oa-dijkstrabendyruler.htmlAPM飞控参数设置
串口
SERIAL_PROTOCAL,如用TELEM1接口,n为1,参数SERIAL1_PROTOCAL=2,即选MAVLink2,波特率根据传感器输出配置。PRX1_TYPE = 2,即MAVLink,AVOID_ENABLE = 7。根据传感器类型,如毫米波雷达TeraRangerTowerEvo(PRX1_TYPE = 6)。
避障逻辑
AVOID_MARGIN = 1.5: How many meters from the barrier the vehicle will attempt to stop or try to slide along it
AVOID_BEHAVE = 1: Whether the vehicle should simply Stop (1) in front of the barrier or Slide (0) around it
AVOID_DIST_MAX = 1.5: How far from a barrier the vehicle starts leaning away from the barrier in AltHold
AVOID_ANG_MAX = 30: How far the vehicle will try to lean away from the barrier in
下一篇,将介绍避障功能常用的传感器数据输入,即MAVlink协议消息OBSTACLE_DISTANCE (330)
https://mavlink.io/en/messages/common.html#messages