< >
Home » ROS2与Navigation2入门教程 » ROS2与Navigation2入门教程-配置受管制纯追踪(Regulated Pure Pursuit)控制器

ROS2与Navigation2入门教程-配置受管制纯追踪(Regulated Pure Pursuit)控制器

说明:

  • 介绍如何配置受管制纯追踪(Regulated Pure Pursuit)控制器

概述

  • 其源代码在Github网站上可以找到。

  • 受管制纯追踪(Regulated Pure Pursuit)控制器专门针对服务/工业机器人需求实现了纯追踪(Pure Pursuit)控制器的变体。该控制器通过路径的曲率来调节线速度,以帮助减少盲角附近的高速超调(overshoot),从而使机器人操作更加安全。与纯追踪控制器目前可用的任何其他变体相比,受管制纯追踪控制器还可以更好地遵循路径。

  • 而且受管制纯追踪控制器还具有在靠近其他障碍物时减慢速度的启发式算法,以便可以在附近发生潜在碰撞时自动减慢机器人的速度。

  • 受管制纯追踪控制器也实现了可以按速度进行位姿插补的自适应前瞻点功能,以在更大的平移速度范围内实现更稳定的行为。

  • 有关更完整的信息,请参阅该软件包的README自述文件。

受管制纯追踪控制器参数

  • desired_linear_vel参数:
数据类型:double
默认值:0.5
描述:用于设置要使用的期望最大线速度(单位为m/s)。
  • max_linear_accel参数:
数据类型:double
默认值:2.5
描述:用于设置线速度的最大加速度(单位为m/s2)。
  • max_linear_decel参数:
数据类型:double
默认值:2.5
描述:用于设置线速度的最大减速度(单位为m/s2)。
  • lookahead_dist参数:
数据类型:double
默认值:0.6
描述:当use_velocity_scaled_lookahead_dist设为false时,此参数用于设置查找前瞻点的前瞻距离(单位为m)。
  • min_lookahead_dist参数:
数据类型:double
默认值:0.3
描述:当use_velocity_scaled_lookahead_dist设为true时,此参数用于设置最小前瞻距离阈值(单位为m)。
  • max_lookahead_dist参数:
数据类型:double
默认值:0.9
描述:当use_velocity_scaled_lookahead_dist设为true时,此参数用于设置最大前瞻距离阈值(单位为m)。
  • lookahead_time参数:
数据类型:double
默认值:1.5
描述:当use_velocity_scaled_lookahead_dist设为true时,此参数用于设置投射速度的时间。也称为前瞻增益。
  • rotate_to_heading_angular_vel参数:
数据类型:double
默认值:1.8
描述:如果use_rotate_to_heading参数设为true,则此参数用于设置要使用的角速度。
  • transform_tolerance参数:
数据类型:double
默认值:0.1
描述:用于设置TF坐标变换的容差(单位为秒)。
  • use_velocity_scaled_lookahead_dist参数:
数据类型:bool
默认值:false
描述:用于设置是否使用按速度插补的前瞻距离,还是使用常量lookahead_distance。
  • min_approach_linear_velocity参数:
数据类型:double
默认值:0.05
描述:当use_approach_linear_velocity_scaling为true时,此参数用于设置在接近目标以确保前进时应用的最小线速度阈值(单位为m/s)。
  • use_approach_linear_velocity_scaling参数:
数据类型:bool
默认值:true
描述:用于设置是否在接近目标时降低线速度以平稳地停下来。
  • max_allowed_time_to_collision参数:
数据类型:double
默认值:1.0
描述:设置用于检测碰撞允许的最长时间(单位为秒)。
  • use_regulated_linear_velocity_scaling参数:
数据类型:bool
默认值:true
描述:用于设置是否对路径曲率使用受管制功能(例如在高曲率路径上减慢线速度)。
  • use_cost_regulated_linear_velocity_scaling参数:
数据类型:bool
默认值:true
描述:用于设置是否对接近障碍物使用受管制功能(例如在接近障碍物时减慢线速度)。
  • regulated_linear_scaling_min_radius参数:
数据类型:double
默认值:0.90
描述:用于设置当use_regulation_linear_velocity_scaling设为tru时会触发调节功能的最小转弯半径(单位为m)。请记住,急转弯的半径更小。
  • regulated_linear_scaling_min_speed参数:
数据类型:double
默认值:0.25
描述:任何受管制启发式算法可以发送的最小速度(单位为m/s),以确保即使在具有高曲率的高成本空间中过程仍然可以实现。
  • use_rotate_to_heading参数:
数据类型:bool
默认值:true
描述:用于设置使用完整规划器时是否启用旋转到粗略航向和目标方向的功能。此参数推荐用于所有可以原地旋转的机器人类型。请注意:use_rotate_to_heading和allow_reversing这两个参数不能同时设为true,因为这会导致不明确的状况。
  • allow_reversing参数:
数据类型:bool
默认值:false
描述:用于设置当规划的路径涉及倒车(由方向尖头表示)时是否允许机器人反向行驶。请注意:use_rotate_to_heading和allow_reversing这两个参数不能同时设为true ,因为这会导致不明确的状况。
  • rotate_to_heading_min_angle参数:
数据类型:double
默认值:0.785
描述:用于设置如果use_rotate_to_heading参数设为true的话,会触发机器人原地旋转的路径方向与机器人起始方向之间的最小角度差(单位为弧度)。
  • max_angular_accel参数:
数据类型:double
默认值:3.2
描述:用于设置如果use_rotate_to_heading参数设为true的话,机器人在旋转到航向过程中允许的最大角速度加速度(单位为rad/s2)。

示例

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_plugin: "progress_checker"
    goal_checker_plugin: "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
      max_linear_accel: 2.5
      max_linear_decel: 2.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
      use_approach_linear_velocity_scaling: true
      max_allowed_time_to_collision: 1.0
      use_regulated_linear_velocity_scaling: true
      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

参考:

  • https://navigation.ros.org/configuration/packages/configuring-regulated-pp.html

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与navigation2入门教程