4.5.7 路径平滑节点说明
在Nav2框架中nav2_smoother功能包下的smoother_server节点通过加载和运行各种平滑器插件,对规划出的路径进行平滑处理,使得机器人能够更流畅、连续且安全地移动。这一功能对于提高机器人的导航性能和减少硬件磨损具有重要意义。
1.订阅的话题
| 话题 |
接口 |
描述 |
| /global_costmap/costmap_raw |
nav2_msgs/msg/Costmap |
全局代价地图的原始数据,用于路径规划 |
| /global_costmap/published_footprint |
geometry_msgs/msg/PolygonStamped |
机器人在全局代价地图中的足迹表示 |
2.发布的话题
| 话题 |
接口 |
描述 |
| /plan_smoothed |
nav_msgs/msg/Path |
经过平滑处理后的全局路径 |
3.提供的Action服务器
| 话题 |
动作类型 |
描述 |
| /smooth_path |
nav2_msgs/action/SmoothPath |
提供平滑路径的服务,接受路径平滑的请求,并返回平滑后的路径。这允许客户端(如行为树)异步地请求路径平滑,并在平滑完成后接收结果。 |
4.参数
/bond_disable_heartbeat_timeout: 指示是否禁用Bond的心跳超时功能。在分布式系统中,Bond用于管理节点间的连接和心跳,此参数用于调整心跳相关的行为。
costmap_topic: 代价地图数据的ROS话题名称,通常是全局代价地图的原始数据。
footprint_topic: 机器人足迹(即机器人在地图上的占用区域)的ROS话题名称,用于在全局代价地图中表示机器人的物理尺寸。
robot_base_frame: 指定机器人基座的坐标系名称,这是机器人导航中用于定位和移动的参考点。
simple_smoother:
do_refinement: 指示是否启用路径的细化(或进一步优化)过程。
max_its: 平滑过程中允许的最大迭代次数,用于控制平滑算法的收敛时间。
plugin: 平滑插件的类型,这里是nav2_smoother::SimpleSmoother,表示使用简单的平滑算法。
tolerance: 平滑算法的收敛容差,当路径变化小于此值时,认为平滑过程已完成。
w_data: 平滑过程中数据项(如障碍物距离)的权重。
w_smooth: 平滑过程中平滑项(如路径曲率)的权重。
smoother_plugins: 定义的平滑插件列表,这里列出了simple_smoother,表示将使用此插件进行路径平滑。
transform_tolerance: 坐标变换的容差,用于处理不同坐标系之间的转换时的不确定性。
use_sim_time: 指定是否使用模拟时间而非实际时间。在仿真环境中,这通常设置为true,以匹配仿真器的虚拟时间;在真实环境中,应设置为false以使用ROS系统的实际时间。