4.5.8 速度平滑节点说明

Nav2框架中的nav2_velocity_smoother包下的velocity_smoother节点主要负责平滑由Nav2框架发送给机器人控制器的速度指令。其核心功能是实现速度和加速度平滑。这一功能对于确保机器人在导航过程中的稳定性和安全性至关重要。

1.订阅的话题

话题 接口 描述
/cmd_vel_nav geometry_msgs/msg/Twist 接收来自其他节点的速度控制指令的话题

2.发布的话题

话题 接口 描述
/cmd_vel geometry_msgs/msg/Twist 发布经过处理或平滑后的速度控制指令的话题

3.参数

  • bond_disable_heartbeat_timeout: 指示是否禁用节点间的心跳超时机制。如果为true,则节点间的心跳检测不会因超时而断开连接。

  • deadband_velocity: 定义在哪些速度分量上应用死区平滑(即忽略小于此阈值的微小速度变化)。这里分别为X轴、Y轴和偏航角速度(theta)设置了死区值。

  • feedback: 指定速度平滑器的反馈类型。OPEN_LOOP表示开环控制,即不考虑机器人的实际速度反馈进行速度调整。

  • max_accel: 定义机器人在各个方向上的最大加速度限制,包括X轴、Y轴和偏航角速度(theta)。

  • max_decel: 定义机器人在各个方向上的最大减速度限制,包括X轴、Y轴和偏航角速度(theta)。注意,减速度值以负数表示。

  • max_velocity: 定义机器人在各个方向上的最大速度限制,包括X轴、Y轴和偏航角速度(theta)。

  • min_velocity: 定义机器人在各个方向上的最小速度限制,包括X轴、Y轴和偏航角速度(theta)。这通常用于避免发送过小的速度指令给底层控制器。

  • odom_duration: 与里程计数据相关的参数,但在此上下文中可能不直接用于velocity_smoother节点,可能是遗留或与其他功能相关联。

  • odom_topic: 指定里程计数据的ROS话题名称,velocity_smoother节点将订阅此话题以获取机器人的运动信息。

  • scale_velocities: 指示是否根据加速度限制同比例调整速度的其他分量。如果为false,则不会进行速度缩放。

  • smoothing_frequency: 定义速度平滑操作的执行频率(Hz),即每秒进行多少次平滑计算。

  • use_sim_time: 指定是否使用模拟时间而非实际系统时间。这对于仿真环境特别有用,可以确保时间的一致性和可预测性。

  • velocity_timeout: 如果在指定时间内未接收到新的速度指令,则velocity_smoother节点将停止发布速度指令,并可能发送零速度指令以停止机器人运动。这是为了防止在失去速度控制时机器人继续移动。

results matching ""

    No results matching ""