Savitzky-Golay Smoother

源代码在 Github.

Savitzky-Golay Smoother 是一个 Smoother Server 插件,它将接收输入路径并使用基于 Savitzky Golay Filters 的简单快速平滑技术对其进行平滑处理。它使用一种数字信号处理技术,旨在减少噪声扭曲参考信号(在本例中为路径)。

它对所有类型的规划器都很有用,但在 NavFn 中尤其有用,可以消除路径末端附近可能出现的微小伪影,或 Theta* 可以稍微软化视线线段之间的过渡**而不**修改主路径。它非常快(<< 1ms),因此对于可能导致轻微不连续性的规划器,建议将其作为默认设置。但是,它不会消除更大规模的不连续性、振荡或提高平滑度。对于这些,请使用提供的其他平滑器插件之一。它还提供了平滑后的路径点的估计方向向量。

该算法具有确定性和低参数性。在下图中,NavFn 梯度下降中的一些奇数点被给定路径中间和末端的平滑器平滑掉,同时保留了路径的精确特征。

../../_images/savitzky-golay-example.png

Savitzky-Golay 平滑器参数

do_refinement:

Type

Default

bool

True

Description

是否对平滑结果进行“refinement_num”次以获得改进的结果。

refinement_num:

Type

Default

int

2

Description

递归平滑片段的次数

Example

smoother_server:
  ros__parameters:
    costmap_topic: global_costmap/costmap_raw
    footprint_topic: global_costmap/published_footprint
    robot_base_frame: base_link
    transform_timeout: 0.1
    smoother_plugins: ["savitzky_golay_smoother"]
    savitzky_golay_smoother:
      plugin: "nav2_smoother::SavitzkyGolaySmoother"
      do_refinement: True
      refinement_num: 2