APM无人船/车自主跑航线参数整定
本文讲解如何调整基于APM固件的无人车/船的自主航线相关的参数,如果大家在使用无人船/车的航线功能时,发现船/车不按预定航向行驶,呈现S型或始终无法贴合航线,则需要进行调参。如果设置得太低,无人船/车可能会经常减速,因为它的位置偏离了航路点之间的线。PIVOT _ TURN _ ANGLE 如果无人船/车的航向误差大于此值(以度为单位),无人船/车将立即停止并在继续航行前转向目标。将无人船/车的当
本文讲解如何调整基于APM固件的无人车/船的自主航线相关的参数,如果大家在使用无人船/车的航线功能时,发现船/车不按预定航向行驶,呈现S型或始终无法贴合航线,则需要进行调参。在尝试调整该控制器参数之前,应先调整更底层的速度控制器和偏航角速率控制器参数。
老版本的APM固件采用L1控制器,本文也对此控制器的参数调整进行介绍,不过从笔者的经验看,新版的控制器效果要更好一些。
1、4.3及更新版本固件
1.1位置控制器PID参数
位置控制器负责计算所需的速度和转弯率,以便无人船/车沿着S曲线(见上文)创建的航路点之间的路径行驶。所需的速度和转率然后传递到较低级别的控制器。
位置控制器的调谐方法:
-
使用遥测无线电将地面站连接到无人船/车。
-
使用长直线段创建矩形或来回任务并上传到无人船/车。
-
启动无人船/车,然后切换到 AUTO 模式。
-
调整这些参数以改善无人船/车沿线路的跟踪。
-
把 PSC_VEL_I 和 PSC_VEL_D 设置 为零。
-
增加 PSC_VEL_P 值 ,直到无人船/车很好地沿着弯道行驶,而不在直线上出现振荡。
-
增加 PSC_VEl_D 足以使弯角响应更快,但不会在直线中引入振荡。这通常不应超过 PSC _ VEL _ P 值的10%。
-
将 PSC_VEL_I 设置为 PSC_VEl_P的20%。
这些值通常不需要更改
-
PSC _ POS _ P 应该保留在0.2(默认值)。这将位置误差转换为所需的速度较高的数值将导致无人船/车试图更快地开回航线,但如果太高则可能导致振荡。
-
PSC _ VEL _ FF 可以设置为 0。
-
PSC _ VEL _ IMAX 可以设置为 1。
-
PSC_VEl_FLTD 、 PSC_VEl_FlTE 可以设置为5,小型无人船/车可以调的更高一些。
1.2其他参数
-
WP _ SPEED 定义了无人船/车在AUTO、GUIDED和RTL模式下的目标速度(以米/秒为单位)。
-
WP _ RADIUS 指定无人船/车开始转向下一个航路点前的距离。
1.3位置控制器的工作原理
-
将无人船/车的当前位置与所需位置进行比较,并计算所需的2D速度以减小误差。
-
将无人船/车的当前速度与上述速度(即位置校正速度)+ S 曲线提供的速度进行比较,并计算所需的二维加速度,以减少误差。
-
位置校正速度+ S 曲线速度的无人船/车前后部分为目标前进速度给速度控制器,2D加速度的侧向分量作为目标转弯率提供给角速率控制器。
2、4.2及更老版本固件
2.1 L1控制器 参数
L1 控制器是最高级别的转向控制器。它接受位置目标(即纬度、经度点)和无人船/车的当前速度,并输出所需的侧向加速度,然后将其馈送到较低级别的控制器(包括角速率控制器)。从而控制无人船/车跟踪一条线朝向目标。该控制器用于所有的自主模式,包括AUTO、GUIDED、RTL。
-
调整L1控制器的推荐步骤:
-
使用遥测无线电将地面站连接到无人船/车。
-
创建一个航线任并上传到无人船/车。
-
启动无人船/车,并切换到AUTO模式。
-
如果无人车/船沿着直线走S型,则将 NAVL1_PERIOD以0.5的增量进行调整。
-
如果无人车/船的转弯速度不够快,那么就把 NAVL1_PERIOD 降低0.5。
-
可以将 NAVL1_DAMPING 适当提高(每次加0.05),以改善在狭窄航道的航行。
2.2其他参数
ATC _ TURN _ MAX _ G 定义最大侧向加速度(以 Gs =9.81米/秒/秒为单位)管制员将在转弯时尝试。大多数无人船/车不能达到0.3 G以上。为了更精确地测量无人船/车的最大侧向加速度,需要:
-
在任务规划器的航行数据屏慕上,选中“调整”复选框(底部中间),双击图形并选择“ay”(加速度Y轴)。
-
驾驶无人船/车在手动模式下高速使非常急转弯。
-
将 ATC _ TURN _ MAX _ G 设置为略低于所看到的最高值。请注意,显示的值可能是cm/s/s,因此该值应该除以981以匹配参数。
-
WP _ SPEED 定义了无人船/车在AUTO以及GUIDED模式下的目标速度(以米/秒为单位)。
-
WP _ RADIUS 指定无人船/车可能开始转向下一个航路点之前的距离。此参数不应设置得太低,否则当无人船/车非常接近航路点时,无人船/车可能会尝试无帮助的转弯。
-
WP_OVERSHOOT用于在无人船/车偏离起点和终点线太远时使无人船/车减速。如果设置得太低,无人船/车可能会经常减速,因为它的位置偏离了航路点之间的线。如果设置得太高,无人船/车在转弯时可能无法减速。
PIVOT _ TURN _ ANGLE 如果无人船/车的航向误差大于此值(以度为单位),无人船/车将立即停止并在继续航行前转向目标。
为了方便广大开源无人船研究者,超维空间推出了USV1科研无人船开发平台,可以支持航线规划、ROS导航、视觉应用等,欢迎感兴趣的朋友咨询。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)