规定纯追踪

在Github上的源代码

规定纯追踪控制器是Pure Pursuit控制器的一种变体,专门针对服务/工业机器人的需求。它通过路径的曲率调节线速度,以帮助减少在高速环境中盲区拐角处的超调,从而使操作更加安全。它还比Pure Pursuit的其他变体更好地跟随路径。它还具有在接近其他障碍物时减速的启发式算法,这样当机器人接近潜在碰撞物体时,可以自动降低机器人的速度。它还实现了根据速度缩放的自适应前视点功能,以在更大范围的平移速度下实现更稳定的行为。

请参阅软件包的“README”以获取更完整的信息。

如果您使用了此存储库中的规定纯追踪控制器算法或软件,请在您的论文中引用此工作:

规定纯追踪参数

desired_linear_vel

类型

默认

双精度

0.5

描述

要使用的期望最大线性速度(m/s)。

lookahead_dist

类型

默认

双精度

0.6

描述

use_velocity_scaled_lookahead_distfalse 时,用于寻找前瞻点的前瞻距离(米)。

min_lookahead_dist

类型

默认

双精度

0.3

描述

use_velocity_scaled_lookahead_disttrue 时,最小前瞻距离(米)阈值。

max_lookahead_dist

类型

默认

双精度

0.9

描述

use_velocity_scaled_lookahead_disttrue 时,最大前瞻距离(米)阈值。

lookahead_time

类型

默认

双精度

1.5

描述

use_velocity_scaled_lookahead_disttrue 时,将速度投影的时间(秒)。也称为前瞻增益。

rotate_to_heading_angular_vel

类型

默认

双精度

1.8

描述

如果“use_rotate_to_heading”为“true”,则使用此角速度。

transform_tolerance

类型

默认

双精度

0.1

描述

TF变换容差(秒)。

use_velocity_scaled_lookahead_dist

类型

默认

布尔值

false

描述

是否使用基于速度缩放的前瞻距离或常数“前瞻距离(lookahead_distance)”。

最小接近线速度

类型

默认

双精度

0.05

描述

在接近目标时应用的最小速度阈值(米/秒),以确保进展。必须为“> 0.01”。

接近速度缩放距离

类型

默认

双精度

0.6

描述

开始减速的路径剩余距离(米)。应小于代价地图宽度的一半。

使用碰撞检测

类型

默认

布尔值

true

描述

是否启用碰撞检测。

最大允许碰撞时间(直到胡萝卜位置)

类型

默认

双精度

1.0

描述

当“use_collision_detection”为“true”时,向前投影速度命令以检查碰撞的时间(秒)。在“Humble”之前,这是“max_allowed_time_to_collision”。

使用规定线速度缩放

类型

默认

布尔值

true

描述

是否使用规范化特征来计算路径曲率(例如,在高曲率路径上减速)。

使用代价规定线速度缩放

类型

默认

布尔值

true

描述

是否使用规范化特征来计算与障碍物的接近度(例如,在靠近障碍物时减速)。

规定线速度缩放最小半径

类型

默认

双精度

0.90

描述

当``use_regulated_linear_velocity_scaling``为``true``时触发规则特性的转弯半径(米)。请记住,转弯越急,半径越小。

regulated_linear_scaling_min_speed

类型

默认

双精度

0.25

描述

为了确保即使在成本高且曲率高的空间中,仍能实现过程,任何受管制的启发式算法都可以发送的最低速度(米/秒)。必须为``> 0.1``。

use_fixed_curvature_lookahead

类型

默认

布尔值

false

描述

是否使用固定的前瞻距离计算曲率。由于前瞻距离可能会根据速度的变化而设置,它可能会引入一个参考循环,对于较大的前瞻距离可能会有问题。

curvature_lookahead_dist

类型

默认

双精度

0.6

描述

在路径上前瞻查看的距离,以检测曲率。

use_rotate_to_heading

类型

默认

布尔值

true

描述

在使用全向规划器时,是否启用旋转到粗略朝向和目标朝向。建议对所有可以原地旋转的机器人类型进行启用。

注意:use_rotate_to_heading``和``allow_reversing``不能同时设置为``true,否则会导致歧义情况。

allow_reversing

类型

默认

布尔值

false

描述

允许机器人在路径规划需要倒车时倒车行驶(通过方向拐点表示)。smac_planner的变种支持倒车。请查看:ref:`configuring_smac_planner`了解更多信息。

注意:use_rotate_to_heading``和``allow_reversing``不能同时设置为``true,否则会导致歧义情况。

rotate_to_heading_min_angle

类型

默认

双精度

0.785

描述

如果“use_rotate_to_heading”为“true”,则路径方向和起始机器人方向之间的差异(以弧度表示),触发原地旋转。

max_angular_accel

类型

默认

双精度

3.2

描述

如果“use_rotate_to_heading”为“true”,则旋转到目标方向时的最大允许角加速度(弧度/秒²)。

max_robot_pose_search_dist

类型

默认

双精度

局部代价地图最大范围(最大宽度或高度的一半)

描述

在全局规划路径上沿着积分距离搜索最接近机器人姿态的位姿的上界。除非存在不离开局部代价地图的具有循环和交叉的路径,否则应保留此默认值,否则必须将该值设小以防止捷径。如果设置为“-1”,将使用最大可能距离,在路径上搜索最近的路径点。

use_interpolation

类型

默认

布尔值

true

描述

启用在前瞻点选择时对姿态进行线性插值。导致产生更平滑的线性和角速度命令。

示例

controller_server:
  ros__parameters:
    use_sim_time: True
    controller_frequency: 20.0
    min_x_velocity_threshold: 0.001
    min_y_velocity_threshold: 0.5
    min_theta_velocity_threshold: 0.001
    progress_checker_plugins: ["progress_checker"] # progress_checker_plugin: "progress_checker" For Humble and older
    goal_checker_plugins: ["goal_checker"]
    controller_plugins: ["FollowPath"]

    progress_checker:
      plugin: "nav2_controller::SimpleProgressChecker"
      required_movement_radius: 0.5
      movement_time_allowance: 10.0
    goal_checker:
      plugin: "nav2_controller::SimpleGoalChecker"
      xy_goal_tolerance: 0.25
      yaw_goal_tolerance: 0.25
      stateful: True
    FollowPath:
      plugin: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
      desired_linear_vel: 0.5
      lookahead_dist: 0.6
      min_lookahead_dist: 0.3
      max_lookahead_dist: 0.9
      lookahead_time: 1.5
      rotate_to_heading_angular_vel: 1.8
      transform_tolerance: 0.1
      use_velocity_scaled_lookahead_dist: false
      min_approach_linear_velocity: 0.05
      approach_velocity_scaling_dist: 0.6
      use_collision_detection: true
      max_allowed_time_to_collision_up_to_carrot: 1.0
      use_regulated_linear_velocity_scaling: true
      use_fixed_curvature_lookahead: false
      curvature_lookahead_dist: 0.25
      use_cost_regulated_linear_velocity_scaling: false
      regulated_linear_scaling_min_radius: 0.9
      regulated_linear_scaling_min_speed: 0.25
      use_rotate_to_heading: true
      allow_reversing: false
      rotate_to_heading_min_angle: 0.785
      max_angular_accel: 3.2
      max_robot_pose_search_dist: 10.0
      use_interpolation: false