旋转增益控制器

在Github上的源代码

“nav2_rotation_shim_controller”将检查与机器人和新接收的路径之间的大致方向差异。如果在一个阈值内,它将将请求传递给“primary_controller”来执行任务。如果超出阈值,该控制器将原地旋转机器人朝向该路径方向。一旦在容差范围内,它将从此旋转适配器控制器转移到主要控制器插件上执行控制。此时,机器人的主要插件将接管控制权,以平稳地过渡到任务。

RotationShimController 最适用于以下情况:

  • 能够原地旋转的机器人,如差分驱动和全向驱动机器人。

  • 在开始跟踪一个与机器人当前朝向显著不同的新路径时,或者在为任务调整控制器时,进行原地旋转的首选。

  • 使用非运动学可行的规划器,如 NavFn、Theta* 或 Smac 2D(可行的规划器如 Smac Hybrid-A* 和 State Lattice 将从机器人的实际起始方向开始搜索,不需要旋转,因为它们的路径在物理约束下是可行的)。

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

旋转适配器控制器参数

angular_dist_threshold

类型

默认

双精度

0.785

描述

最大角度偏离路径航向的弧度,触发旋转直到在范围内。

forward_sampling_distance

类型

默认

双精度

0.5

描述

沿路径选择采样点以近似路径航向的前向距离,单位为米。

rotate_to_heading_angular_vel

类型

默认

双精度

1.8

描述

以弧度/秒表示的角度旋转速度,用于旋转到路径方向

主控制器

类型

默认

string

N/A

描述

旋转到方向后用于实际控制行为的内部控制器插件

max_angular_accel

类型

默认

双精度

3.2

描述

旋转到航向的最大角加速度(弧度/秒/秒)。

模拟前进时间

类型

默认

双精度

1.0

描述

以秒为单位的时间,用于前向模拟旋转命令以检查碰撞。如果发现碰撞,则将控制权返回给主控制器插件。

示例

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_rotation_shim_controller::RotationShimController"
      primary_controller: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
      angular_dist_threshold: 0.785
      forward_sampling_distance: 0.5
      rotate_to_heading_angular_vel: 1.8
      max_angular_accel: 3.2
      simulate_ahead_time: 1.0

      # Primary controller params can be placed here below
      # ...