旋转增益控制器
“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
# ...