Savitzky-Golay Smoother
源代码在 Github.
Savitzky-Golay Smoother 是一个 Smoother Server 插件,它将接收输入路径并使用基于 Savitzky Golay Filters 的简单快速平滑技术对其进行平滑处理。它使用一种数字信号处理技术,旨在减少噪声扭曲参考信号(在本例中为路径)。
它对所有类型的规划器都很有用,但在 NavFn 中尤其有用,可以消除路径末端附近可能出现的微小伪影,或 Theta* 可以稍微软化视线线段之间的过渡**而不**修改主路径。它非常快(<< 1ms),因此对于可能导致轻微不连续性的规划器,建议将其作为默认设置。但是,它不会消除更大规模的不连续性、振荡或提高平滑度。对于这些,请使用提供的其他平滑器插件之一。它还提供了平滑后的路径点的估计方向向量。
该算法具有确定性和低参数性。在下图中,NavFn 梯度下降中的一些奇数点被给定路径中间和末端的平滑器平滑掉,同时保留了路径的精确特征。
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