用弯弯尺避开物体

Copter 和 Rover 4.0(及更高版本)支持 "BendyRuler",用于绕过障碍物和栅栏进行路径规划。BendyRuler 算法会从多个方向探测载具周围的空地,然后尝试选择足够开阔的方向,同时将载具驶向最终目的地。

备注

这仅适用于自动、引导和 RTL 飞行模式。

./_images/oa-bendy-ruler.png

基本配置

  • OA_TYPE = 1(BendyRuler)。更改后,您可能需要刷新参数才能看到下面的参数。

  • oa_br_lookahead:该参数在 Copter 和 Rover 4.1 之前称为 "OA_LOOKAHEAD"。它是载具前方需要探测的距离(以米为单位)。超过这个距离的障碍物将被忽略。这个距离应该足够长,以便可以 "看到 "障碍物周围的路径,但也不能太长,否则飞行器就会过于谨慎,无法进入障碍物较多的区域。一般为 5 米。

  • OA_MARGIN_MAX:载具应远离障碍物的距离(以米为单位)。2 米是一个典型值。

备注

用户经常会混淆 OA_BR_LOOKAHEAD 和 OA_MARGIN_MAX 这两个参数。OA_BR_LOOKAHEAD 参数越小,BendyRuler 就会在通往目的地的更短路径上寻找障碍物,因此路径规划过程中将不会使用任何超过这个米数的物体。更短的 OA_MARGIN_MAX 参数会让载具更接近接近的障碍物。

弯尺类型

Copter 4.1 以后版本支持两种不同类型的 BendyRuler 路径规划。

    1. OA_BR_TYPE = 1:水平弯尺:这是 Rover 和旧版 Copter 上的唯一选项。它只在水平方向上搜索无障碍路径,因此当它检测到路径上有障碍物时,只会向这些方向移动。

    1. OA_BR_TYPE = 2:垂直弯尺:该功能只搜索四个方向的路径:直奔目的地、垂直向上、垂直向下和向后。该功能通常有助于在拥挤的空间中避开矮小的障碍物。如果不想让 Copter 爬升超过一定高度,不要忘记设置高度栅栏。

高级配置

如果使用激光雷达或近程传感器,可使用以下 "障碍物数据库 "参数:

  • OA_DB_SIZE:可跟踪障碍物的最大数量

  • OA_DB_EXPIRE:障碍物从视野中消失后从数据库中删除的秒数

  • oa_db_queue_size:激光雷达和障碍物数据库之间的缓冲区大小。通常可以保留默认值

  • OA_DB_OUTPUT目标:控制被跟踪物体是否在全球监视系统上显示为小型飞机

  • OA_DB_ALT_MIN:如果飞行器在原点上方的高度低于此参数,OADatabase 将拒绝原点周围 3 米半径内的障碍物。如果您的传感器在起飞时将地面视为障碍物,这将非常有用。

视频