上一篇 | 目录 | 下一篇 |
本文介绍了什么是任务恢复后重定向功能,以及如何使用该功能。
注意:从4.1开始,该功能可用于飞机,直升机和多旋翼。
在某些应用或操作区域中,出于某种目的中断任务是很常见,这时候切换到另一种模式和操纵飞行器离开计划任务。当准备好恢复任务时,飞行器的常见行为是直接飞/驾驶任务中装载的最后一个“活动”航点。这种行为如下所示:
可以看出,这样会让计划任务中的一部分由于航线和航向不正确而没有完成。对于诸如测绘之类的数据收集任务而言,这成为一个问题,所以需要重复执行任务的某个环节。
任务恢复时候的重定向功能可解决此行为。重定向距离由操作员定义。恢复任务后,飞行器将在任务中断点之后,在所设定的距离处返回任务轨道。这为飞行器提供了足够的时间,使其在到达其最初被中断的位置之前达到所需的航线和航向。 这种行为如下所示:
通过设置DO_SET_RESUME_REPEAT_DIST任务项,可以启用“恢复后重定向”功能。 可以通过以下两种方法之一来完成此操作:
1)地面站识别出DO_SET_RESUME_DIST任务项
从任务中希望启用该功能的点添加一个DO_SET_RESUME_DIST任务项。
在恢复上,将第一个数据列设置为希望任务重新开始的距离(单位为米)。
2)地面站不能识别出DO_SET_RESUME_DIST任务项
从希望启用该功能的任务中添加一个UNKNOWN任务项目,并将MAVLink ID设置为215。
在恢复(resume)上,将第一个数据列设置为希望任务重新开始的距离(单位为米)。
注意:为了使此功能起作用,必须将MIS_RESTART参数设置为零,以防止任务重新启动。
要检查重定向距离在任务中是否已正确设置,请在地面站监控信息输出。当车辆注册命令时,会显示以下信息:“Resume repeat dist set to <DISTANCE>m”。
在整个任务中可以设置多个DO_SET_RESUME_DIST命令,这使得操作人员能够在整个任务过程中改变重定向距离或开启关闭功能,在某些任务阶段需要非常小心和精确地操纵飞行器。
这个功能可以通过设置一个距离为0的DO_SET_RESUME_DIST任务项来关闭。
提醒:当确定所需的重定向距离时,对大多数飞行器来说,一个合理的尝试值是最小转弯半径的两倍。唯一的例外是可以在原地转向的飞行器(多旋翼),在这种情况下,合理的距离将是WP_RADIUS的两倍。
启用后,ArduPilot将开始记录已成功加载为“活动”状态的航点。最多可存储七个航点的历史记录。在任务重定向和恢复时,将搜索任务历史记录,直到:
在任务轨迹中找到一个满足重定向距离要求的位置。
如果搜索不到,返回存储的任务历史记录的最后一个,在这种情况下,恢复位置将是历史记录中存储的最后一个航点。
然后,飞行器将恢复到任务航线上的该位置,并按计划继续执行任务。
注意:
恢复位置中的高度说明。如果飞行器沿任务航线恢复到飞行器正在改变高度的位置,则恢复位置的高度将在两个相邻航点之间线性插值。
为了防止飞行器存储一个模糊的历史和恢复到一个意想不到的位置,例如通过使用地面站或脚本中的设置路标功能更改了任务,则会重置历史记录(存储的航点历史)。这样可以防止飞行器将任务后退到超过历史记录重置点的位置。
该功能可与DO_JUMP命令配合使用,并且在飞行器恢复执行任务时,跳跃计数不会增加。
1)任务行程短(Short mission legs):如果任务的航点间隔很近,并且请求的重定向距离大于已通过的最后六个航点的距离,则飞行器将在存储的“最旧”航点上恢复行驶。
2)样条航点(Spline waypoints):此功能将与样条航点一起工作。然而,由于距离计算是基于导航命令定位之间的直线,恢复距离的精度将会降低。
3)非航点导航命令:此功能可用于非航点导航命令,例如LOITER_TURNS。 但是,距离计算未考虑这些命令中车辆轨迹的距离。使用前面的示例,距离计算不考虑多旋翼飞行的距离。