旋转控制器

Github 上的源代码 [校准@小鱼]

参数 nav2_rotation_shim_controller 将检查机器人和新接收路径的大致航向差异。如果在阈值内,它将把请求传递给 primary_controller 执行任务。如果超出阈值,该控制器将机器人旋转至该路径方向的适当位置。一旦它在公差范围内,它就会将控制执行从这个旋转垫片控制器传递到主控制器插件上。此时,机器人的主插件将控制顺利完成任务。 [待校准@2833]

参数``RotationShimController`` 最适用于: [待校准@2834]

  • 可以就地旋转的机器人,如差分和全向机器人。 [待校准@2835]

  • 当开始跟踪与机器人当前航向明显不同的航向的新路径时,或者当为其任务调整控制器时,优先选择旋转。 [待校准@2836]

  • 使用非运动学上可行的planner,如NavFn、Theta *,或Smac 2D (可行planner等Smac Hybrid-A*和点阵将启动搜索机器人的实际启动标题,无需旋转以来路径保证驱动物理约束)。 [待校准@2837]

更多完整信息请参见包装的 README[待校准@2788]

旋转控制器参数 [待校准@2838]

angular_dist_threshold [待校准@2839]

类型

默认值

double

0.785 [待校准@2828]

描述

最大角度距离,以弧度为单位,远离路径方向以触发旋转直至内部。 [待校准@2840]

forward_sampling_distance [待校准@2841]

类型

默认值

double

0.5

描述

沿着路径的前进距离,以米为单位,以选择用于近似路径方向的采样点 [待校准@2842]

rotate_to_heading_angular_vel [待校准@2802]

类型

默认值

double

1.8 [待校准@2803]

描述

旋转到路径方向的角旋转速度,以rad/s为单位 [待校准@2843]

primary_controller [待校准@2844]

类型

默认值

string

N/A

描述

内部控制器插件,用于旋转至航向后的实际控制行为 [待校准@2845]

max_angular_accel [待校准@2830]

类型

默认值

double

3.2 [待校准@2782]

描述

旋转至航向的最大角加速度 (rad/s) [待校准@2846]

simulate_ahead_time [待校准@2774]

类型

默认值

double

1.0

描述

以秒为单位的时间向前模拟旋转命令以检查冲突。如果发现冲突,将控制权转发回主控制器插件。 [待校准@2847]

Example

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_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
      # ...