本文讲解如何调整基于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导航、视觉应用等,欢迎感兴趣的朋友咨询。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐