规定纯追踪
规定纯追踪控制器是Pure Pursuit控制器的一种变体,专门针对服务/工业机器人的需求。它通过路径的曲率调节线速度,以帮助减少在高速环境中盲区拐角处的超调,从而使操作更加安全。它还比Pure Pursuit的其他变体更好地跟随路径。它还具有在接近其他障碍物时减速的启发式算法,这样当机器人接近潜在碰撞物体时,可以自动降低机器人的速度。它还实现了根据速度缩放的自适应前视点功能,以在更大范围的平移速度下实现更稳定的行为。
请参阅软件包的“README”以获取更完整的信息。
如果您使用了此存储库中的规定纯追踪控制器算法或软件,请在您的论文中引用此工作:
Macenski, S. Singh, F. Martin, J. Gines, 机器人路径跟踪的调控纯追踪方法. 自主机器人, 2023.
规定纯追踪参数
- desired_linear_vel
类型
默认
双精度
0.5
- 描述
要使用的期望最大线性速度(m/s)。
- lookahead_dist
类型
默认
双精度
0.6
- 描述
当
use_velocity_scaled_lookahead_dist
为false
时,用于寻找前瞻点的前瞻距离(米)。
- min_lookahead_dist
类型
默认
双精度
0.3
- 描述
当
use_velocity_scaled_lookahead_dist
为true
时,最小前瞻距离(米)阈值。
- max_lookahead_dist
类型
默认
双精度
0.9
- 描述
当
use_velocity_scaled_lookahead_dist
为true
时,最大前瞻距离(米)阈值。
- lookahead_time
类型
默认
双精度
1.5
- 描述
当
use_velocity_scaled_lookahead_dist
为true
时,将速度投影的时间(秒)。也称为前瞻增益。
- 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