- 本教程来自:Nav2中文网
- Nav2交流社区:https://fishros.org.cn/forum
- ROS2/Nav2千人交流群:(QQ)139707339
- 更多精彩教程请关注微信公众号:鱼香ROS
- 欢迎添加机器人小伊微信,解锁机器人学习特殊服务
Github 上的源代码 [校准@小鱼]
参数 nav2_rotation_shim_controller
将检查机器人和新接收路径的大致航向差异。如果在阈值内,它将把请求传递给 primary_controller
执行任务。如果超出阈值,该控制器将机器人旋转至该路径方向的适当位置。一旦它在公差范围内,它就会将控制执行从这个旋转垫片控制器传递到主控制器插件上。此时,机器人的主插件将控制顺利完成任务。 [待校准@2833]
参数RotationShimController
最适用于: [待校准@2834]
- 可以就地旋转的机器人,如差分和全向机器人。 [待校准@2835]
- 当开始跟踪与机器人当前航向明显不同的航向的新路径时,或者当为其任务调整控制器时,优先选择旋转。 [待校准@2836]
- 使用非运动学上可行的planner,如NavFn、Theta *,或Smac 2D (可行planner等Smac Hybrid-A*和点阵将启动搜索机器人的实际启动标题,无需旋转以来路径保证驱动物理约束)。 [待校准@2837]
更多完整信息请参见包装的 README
。 [待校准@2788]
angular_dist_threshold [待校准@2839]
类型默认值double0.785 [待校准@2828]描述最大角度距离,以弧度为单位,远离路径方向以触发旋转直至内部。 [待校准@2840]
forward_sampling_distance [待校准@2841]
类型默认值double0.5描述沿着路径的前进距离,以米为单位,以选择用于近似路径方向的采样点 [待校准@2842]
rotate_to_heading_angular_vel [待校准@2802]
类型默认值double1.8 [待校准@2803]描述旋转到路径方向的角旋转速度,以rad/s为单位 [待校准@2843]
primary_controller [待校准@2844]
类型默认值stringN/A描述内部控制器插件,用于旋转至航向后的实际控制行为 [待校准@2845]
max_angular_accel [待校准@2830]
类型默认值double3.2 [待校准@2782]描述旋转至航向的最大角加速度 (rad/s) [待校准@2846]
simulate_ahead_time [待校准@2774]
类型默认值double1.0描述以秒为单位的时间向前模拟旋转命令以检查冲突。如果发现冲突,将控制权转发回主控制器插件。 [待校准@2847]
Examplecontroller_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
# ...
- 本文主要校准贡献:小鱼
- 本文遵循知识共享协议,禁止未授权商用转载