第四章 如何在ROS2中部署路径规划
本章内容
路径规划是什么意思
在ROS2中怎么部署路径规划
Nav2 planner
Nav2 controller
Nav2 bt-navigator
Navigation behaviors 包括recovery behaviors
路径规划是什么意思
在之前的单元学习了建图和定位。现在这些在哪里使用以及如何使用?本课程即将结束,将获得关于机器人导航的全部内容。
路径规划是指规划从a点到b点的轨迹,避开沿途的障碍物。
在ros Nav2中启动路径规划
要启动路径规划,将启动多个节点。除此之外,还需要一些路径规划所需的其他节点。
要求
启动路径规划系统之前,需要运行以下节点:
nav2_map_server 节点
nav2_amcl 节点
为了启动路径规划
还需要启动:
planner、controller、manager of recovery behaviors、bahavior tree navigator、nav2_lifecycle_manager
1、启动planner
planner节点相当于ROS1中的Global Planner。目标是找到一条从a点到b点的路径。
它能够计算路径同时避开地图上的已知障碍物。一旦接收到2d_Goal_Pose就会构建路径计算。
Planner还可以访问全局环境表示和缓冲到其中的传感器数据(比如全局成本地图)
目前ROS2中只有一个planner算法可用,即Nav2Fn_Planner
在节点中需要指出的字段:
nav2_planner提供的controller
可执行文件叫做planner_server
package='nav2_planner',
executable='planner_server',
name='planner_server',
output='screen',
parameters=[nav2_yaml])
它需要的参数包括:
1、包含节点所有参数的yaml文件
planner_server:
ros__parameters:
expected_planner_frequency: 10.0
use_sim_time: True
planner_plugins: ["GridBased"]
GridBased:
plugin: "nav2_navfn_planner/NavfnPlanner"
tolerance: 0.5
use_astar: false
allow_unknown: true
2、启动controller
ROS Nav2 controller相当于ROS1中的local planner。他的主要任务是执行从当前位置到前方几米(传感器范围)的反应路径规划。然后建立一条轨迹,避开动态障碍物(这些障碍物不出现在地图上,但可以借助传感器数据进行检测),同时遵循全局计划。
他还负责产生轮子的命令,使机器人遵循轨迹。
目前有两个可用:
dwb_controller:通常用于差速驱动机器人
TEB Controller:用于车型机器人
在节点启动中需要指出的字段有:
nav2_controller提供控制器
可执行文件名为controller_server
它需要的参数节点包括yaml文件
package='nav2_controller',
executable='controller_server',
output='screen',
parameters=[controller_yaml])
controller_server:
ros__parameters:
use_sim_time: True
controller_frequency: 10.0
min_x_velocity_threshold: 0.001
min_y_velocity_threshold: 0.5
min_theta_velocity_threshold: 0.001
failure_tolerance: 0.3
progress_checker_plugin: "progress_checker"
goal_checker_plugins: ["general_goal_checker"]
controller_plugins: ["FollowPath"]
# Progress checker parameters
progress_checker:
plugin: "nav2_controller::SimpleProgressChecker"
required_movement_radius: 0.5
movement_time_allowance: 10.0
# Goal checker parameters
general_goal_checker:
stateful: True
plugin: "nav2_controller::SimpleGoalChecker"
xy_goal_tolerance: 0.25
yaw_goal_tolerance: 0.25
# DWB parameters
FollowPath:
plugin: "dwb_core::DWBLocalPlanner"
debug_trajectory_details: True
min_vel_x: 0.0
min_vel_y: 0.0
max_vel_x: 0.26
max_vel_y: 0.0
max_vel_theta: 1.0
min_speed_xy: 0.0
max_speed_xy: 0.26
min_speed_theta: 0.0
acc_lim_x: 2.5
acc_lim_y: 0.0
acc_lim_theta: 3.2
decel_lim_x: -2.5
decel_lim_y: 0.0
decel_lim_theta: -3.2
vx_samples: 20
vy_samples: 5
vtheta_samples: 20
sim_time: 1.7
linear_granularity: 0.05
angular_granularity: 0.025
transform_tolerance: 0.2
xy_goal_tolerance: 0.25
trans_stopped_velocity: 0.25
short_circuit_trajectory_evaluation: True
stateful: True
critics:

本文介绍了如何在ROS2中部署路径规划,包括启动Nav2的各个组件如GlobalPlanner、LocalPlanner(如DWB_Controller)、行为树协调器和恢复行为。详细阐述了各个节点的配置参数,并提供了启动这些节点的示例代码。还提到了在RVIZ中设置显示路径的方法以及如何通过命令行或动作客户端发送导航目标。
&spm=1001.2101.3001.5002&articleId=128639828&d=1&t=3&u=cb997f0d09114fc5ba711700edfaf6e4)
5615

被折叠的 条评论
为什么被折叠?



