376 lines
14 KiB
YAML
376 lines
14 KiB
YAML
amcl:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
alpha1: 0.4
|
|
alpha2: 0.3
|
|
alpha3: 0.1
|
|
alpha4: 0.1
|
|
alpha5: 0.04
|
|
base_frame_id: "base_footprint"
|
|
beam_skip_distance: 0.5
|
|
beam_skip_error_threshold: 0.9
|
|
beam_skip_threshold: 0.3
|
|
do_beamskip: false
|
|
global_frame_id: "map"
|
|
lambda_short: 0.1
|
|
laser_likelihood_max_dist: 2.0
|
|
# 激光匹配最大有效距离 / Maximum valid laser matching range, 限制远距离无效数据对粒子权重的影响 / limits the effect of invalid distant data on particle weights, 初始值 / Initial value: 100.0 m
|
|
laser_max_range: 10.0
|
|
# 激光匹配最小有效距离 / Minimum valid laser matching range, 过滤雷达近距离盲区数据 / filters data in the lidar near-field blind zone, 初始值 / Initial value: -1.0
|
|
laser_min_range: 0.2
|
|
laser_model_type: "likelihood_field"
|
|
# 每次定位更新采样的激光束数量 / Number of laser beams sampled per localization update, 增加定位匹配所使用的观测信息 / increases observation information used for localization matching, 初始值 / Initial value: 60
|
|
max_beams: 90
|
|
max_particles: 2000
|
|
min_particles: 500
|
|
odom_frame_id: "odom"
|
|
pf_err: 0.05
|
|
pf_z: 0.99
|
|
recovery_alpha_fast: 0.0
|
|
recovery_alpha_slow: 0.0
|
|
# 粒子滤波重采样间隔 / Particle filter resampling interval, 控制定位重采样与收敛更新频率 / controls localization resampling and convergence update frequency, 初始值 / Initial value: 2
|
|
resample_interval: 1
|
|
# 里程计运动模型类型 / Odometry motion model type, 定义机器人运动噪声与粒子位姿预测模型 / defines robot motion noise and particle pose prediction model, 初始值 / Initial value: nav2_amcl::OmniMotionModel
|
|
robot_model_type: "nav2_amcl::DifferentialMotionModel"
|
|
save_pose_rate: 0.5
|
|
# 激光命中模型标准差 / Laser hit model standard deviation, 调节激光观测偏差对粒子权重的敏感程度 / adjusts particle-weight sensitivity to laser observation error, 初始值 / Initial value: 0.02
|
|
sigma_hit: 0.04
|
|
tf_broadcast: true
|
|
transform_tolerance: 0.3
|
|
# 触发定位更新的最小旋转角度 / Minimum rotation angle triggering a localization update, 控制小角度运动时激光定位更新频率 / controls laser localization update frequency during small-angle motion, 初始值 / Initial value: 0.06 rad
|
|
update_min_a: 0.04
|
|
# 触发定位更新的最小平移距离 / Minimum translation distance triggering a localization update, 控制低速平移时激光定位更新频率 / controls laser localization update frequency during low-speed translation, 初始值 / Initial value: 0.025 m
|
|
update_min_d: 0.015
|
|
z_hit: 0.7
|
|
z_max: 0.001
|
|
z_rand: 0.059
|
|
z_short: 0.24
|
|
|
|
# Initial Pose
|
|
set_initial_pose: True
|
|
initial_pose.x: 0.0
|
|
initial_pose.y: 0.0
|
|
initial_pose.z: 0.0
|
|
initial_pose.yaw: 0.0
|
|
|
|
amcl_map_client:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
|
|
amcl_rclcpp_node:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
|
|
bt_navigator:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
global_frame: map
|
|
robot_base_frame: base_footprint
|
|
odom_topic: /odom
|
|
bt_loop_duration: 10
|
|
default_server_timeout: 20
|
|
enable_groot_monitoring: True
|
|
groot_zmq_publisher_port: 1666
|
|
groot_zmq_server_port: 1667
|
|
# 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
|
|
# nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
|
|
# nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
|
|
# They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
|
|
plugin_lib_names:
|
|
- nav2_compute_path_to_pose_action_bt_node
|
|
- nav2_compute_path_through_poses_action_bt_node
|
|
- nav2_follow_path_action_bt_node
|
|
- nav2_back_up_action_bt_node
|
|
- nav2_spin_action_bt_node
|
|
- nav2_wait_action_bt_node
|
|
- nav2_clear_costmap_service_bt_node
|
|
- nav2_is_stuck_condition_bt_node
|
|
- nav2_goal_reached_condition_bt_node
|
|
- nav2_goal_updated_condition_bt_node
|
|
- nav2_initial_pose_received_condition_bt_node
|
|
- nav2_reinitialize_global_localization_service_bt_node
|
|
- nav2_rate_controller_bt_node
|
|
- nav2_distance_controller_bt_node
|
|
- nav2_speed_controller_bt_node
|
|
- nav2_truncate_path_action_bt_node
|
|
- nav2_goal_updater_node_bt_node
|
|
- nav2_recovery_node_bt_node
|
|
- nav2_pipeline_sequence_bt_node
|
|
- nav2_round_robin_node_bt_node
|
|
- nav2_transform_available_condition_bt_node
|
|
- nav2_time_expired_condition_bt_node
|
|
- nav2_distance_traveled_condition_bt_node
|
|
- nav2_single_trigger_bt_node
|
|
- nav2_goal_updated_controller_bt_node
|
|
- nav2_is_battery_low_condition_bt_node
|
|
- nav2_navigate_through_poses_action_bt_node
|
|
- nav2_navigate_to_pose_action_bt_node
|
|
- nav2_remove_passed_goals_action_bt_node
|
|
- nav2_planner_selector_bt_node
|
|
- nav2_controller_selector_bt_node
|
|
- nav2_goal_checker_selector_bt_node
|
|
|
|
bt_navigator_rclcpp_node:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
|
|
controller_server:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
controller_frequency: 20.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"] # "precise_goal_checker"
|
|
controller_plugins: ["FollowPath"]
|
|
|
|
# Progress checker parameters
|
|
progress_checker:
|
|
plugin: "nav2_controller::SimpleProgressChecker"
|
|
required_movement_radius: 0.15
|
|
movement_time_allowance: 8.0
|
|
# Goal checker parameters
|
|
#precise_goal_checker:
|
|
# plugin: "nav2_controller::SimpleGoalChecker"
|
|
# xy_goal_tolerance: 0.25
|
|
# yaw_goal_tolerance: 0.25
|
|
# stateful: True
|
|
general_goal_checker:
|
|
stateful: True
|
|
plugin: "nav2_controller::SimpleGoalChecker"
|
|
# 到达目标的位置容差 / Goal position tolerance, 判定机器人位置是否满足导航完成条件 / determines whether robot position satisfies navigation completion, 初始值 / Initial value: 0.25 m
|
|
xy_goal_tolerance: 0.05
|
|
# 到达目标的航向角容差 / Goal heading tolerance, 判定机器人姿态是否满足导航完成条件 / determines whether robot orientation satisfies navigation completion, 初始值 / Initial value: 0.25 rad
|
|
yaw_goal_tolerance: 0.8
|
|
# DWB parameters
|
|
FollowPath:
|
|
plugin: "dwb_core::DWBLocalPlanner"
|
|
debug_trajectory_details: True
|
|
min_vel_x: -0.03
|
|
min_vel_y: 0.0
|
|
max_vel_x: 0.26
|
|
max_vel_y: 0.0
|
|
max_vel_theta: 0.5
|
|
min_speed_xy: 0.0
|
|
max_speed_xy: 0.26
|
|
min_speed_theta: 0.0
|
|
# Add high threshold velocity for turtlebot 3 issue.
|
|
# https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75
|
|
acc_lim_x: 2.5
|
|
acc_lim_y: 0.0
|
|
acc_lim_theta: 2.5
|
|
decel_lim_x: -2.5
|
|
decel_lim_y: 0.0
|
|
decel_lim_theta: -2.5
|
|
vx_samples: 20
|
|
vy_samples: 5
|
|
vtheta_samples: 40
|
|
sim_time: 1.7
|
|
linear_granularity: 0.05
|
|
angular_granularity: 0.025
|
|
transform_tolerance: 0.1
|
|
# DWB 进入目标姿态调整模式的位置容差 / Position tolerance for DWB goal-orientation adjustment mode, 控制路径跟踪切换到末端旋转控制的距离窗口 / controls the distance window for switching from path tracking to final rotation control, 初始值 / Initial value: 0.25 m
|
|
xy_goal_tolerance: 0.03
|
|
# 判定平移停止的速度阈值 / Velocity threshold for considering translation stopped, 控制进入仅旋转控制前的平移停止条件 / controls the translation-stop condition before rotate-only control, 初始值 / Initial value: 0.1 m/s
|
|
trans_stopped_velocity: 0.01
|
|
short_circuit_trajectory_evaluation: True
|
|
stateful: True
|
|
critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"]
|
|
BaseObstacle.scale: 0.02
|
|
PathAlign.scale: 23.0
|
|
PathAlign.forward_point_distance: 0.1
|
|
GoalAlign.scale: 18.0
|
|
GoalAlign.forward_point_distance: 0.1
|
|
PathDist.scale: 32.0
|
|
GoalDist.scale: 24.0
|
|
RotateToGoal.scale: 32.0
|
|
RotateToGoal.slowing_factor: 5.0
|
|
RotateToGoal.lookahead_time: -1.0
|
|
|
|
controller_server_rclcpp_node:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
|
|
local_costmap:
|
|
local_costmap:
|
|
ros__parameters:
|
|
update_frequency: 5.0
|
|
publish_frequency: 2.0
|
|
global_frame: odom
|
|
robot_base_frame: base_footprint
|
|
use_sim_time: False
|
|
rolling_window: true
|
|
width: 3
|
|
height: 3
|
|
resolution: 0.05
|
|
footprint: "[[0.26, 0.18], [0.26, -0.18], [-0.26, -0.18], [-0.26, 0.18]]"
|
|
plugins: ["voxel_layer", "inflation_layer"]
|
|
inflation_layer:
|
|
plugin: "nav2_costmap_2d::InflationLayer"
|
|
cost_scaling_factor: 4.0
|
|
inflation_radius: 0.30
|
|
voxel_layer:
|
|
plugin: "nav2_costmap_2d::VoxelLayer"
|
|
enabled: True
|
|
publish_voxel_map: True
|
|
origin_z: 0.0
|
|
z_resolution: 0.05
|
|
z_voxels: 16
|
|
max_obstacle_height: 2.0
|
|
mark_threshold: 0
|
|
observation_sources: scan
|
|
scan:
|
|
topic: /scan
|
|
max_obstacle_height: 2.0
|
|
clearing: True
|
|
marking: True
|
|
data_type: "LaserScan"
|
|
raytrace_max_range: 3.0
|
|
raytrace_min_range: 0.0
|
|
obstacle_max_range: 2.5
|
|
obstacle_min_range: 0.0
|
|
static_layer:
|
|
map_subscribe_transient_local: True
|
|
always_send_full_costmap: True
|
|
local_costmap_client:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
local_costmap_rclcpp_node:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
|
|
global_costmap:
|
|
global_costmap:
|
|
ros__parameters:
|
|
update_frequency: 1.0
|
|
publish_frequency: 1.0
|
|
global_frame: map
|
|
robot_base_frame: base_footprint
|
|
use_sim_time: False
|
|
footprint: "[[0.26, 0.18], [0.26, -0.18], [-0.26, -0.18], [-0.26, 0.18]]"
|
|
resolution: 0.05
|
|
track_unknown_space: true
|
|
plugins: ["static_layer", "obstacle_layer", "inflation_layer"]
|
|
obstacle_layer:
|
|
plugin: "nav2_costmap_2d::ObstacleLayer"
|
|
enabled: True
|
|
observation_sources: scan
|
|
scan:
|
|
topic: /scan
|
|
max_obstacle_height: 2.0
|
|
clearing: True
|
|
marking: True
|
|
data_type: "LaserScan"
|
|
raytrace_max_range: 3.0
|
|
raytrace_min_range: 0.0
|
|
obstacle_max_range: 2.5
|
|
obstacle_min_range: 0.0
|
|
static_layer:
|
|
plugin: "nav2_costmap_2d::StaticLayer"
|
|
map_subscribe_transient_local: True
|
|
inflation_layer:
|
|
plugin: "nav2_costmap_2d::InflationLayer"
|
|
cost_scaling_factor: 4.0
|
|
inflation_radius: 0.30
|
|
always_send_full_costmap: True
|
|
global_costmap_client:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
global_costmap_rclcpp_node:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
|
|
map_server:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
# Overridden in launch by the "map" launch configuration or provided default value.
|
|
# To use in yaml, remove the default "map" value in the navigation2_active.launch.py file & provide full path to map below.
|
|
yaml_filename: ""
|
|
|
|
map_saver:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
save_map_timeout: 5.0
|
|
free_thresh_default: 0.25
|
|
occupied_thresh_default: 0.65
|
|
map_subscribe_transient_local: True
|
|
|
|
planner_server:
|
|
ros__parameters:
|
|
expected_planner_frequency: 1.0
|
|
use_sim_time: False
|
|
planner_plugins: ["GridBased"]
|
|
GridBased:
|
|
plugin: "nav2_navfn_planner/NavfnPlanner"
|
|
# 全局规划终点替代容差 / Global planner substitute-goal tolerance, 目标点不可达时限定可接受替代终点的距离范围 / limits the acceptable substitute-goal distance when the goal is unreachable, 初始值 / Initial value: 2.0 m
|
|
tolerance: 0.05
|
|
use_astar: false
|
|
# 是否允许路径经过未知区域 / Whether paths may traverse unknown space, 控制全局规划器能否使用未观测栅格 / controls whether the global planner may use unobserved cells, 初始值 / Initial value: true
|
|
allow_unknown: true
|
|
|
|
planner_server_rclcpp_node:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
|
|
smoother_server:
|
|
ros__parameters:
|
|
use_sim_time: True
|
|
smoother_plugins: ["simple_smoother"]
|
|
simple_smoother:
|
|
plugin: "nav2_smoother::SimpleSmoother"
|
|
tolerance: 1.0e-10
|
|
max_its: 1000
|
|
do_refinement: True
|
|
|
|
recoveries_server:
|
|
ros__parameters:
|
|
costmap_topic: local_costmap/costmap_raw
|
|
footprint_topic: local_costmap/published_footprint
|
|
cycle_frequency: 10.0
|
|
recovery_plugins: ["spin", "backup", "wait"]
|
|
spin:
|
|
plugin: "nav2_recoveries/Spin"
|
|
backup:
|
|
plugin: "nav2_recoveries/BackUp"
|
|
wait:
|
|
plugin: "nav2_recoveries/Wait"
|
|
global_frame: odom
|
|
robot_base_frame: base_footprint
|
|
transform_timeout: 0.1
|
|
use_sim_time: False
|
|
simulate_ahead_time: 2.0
|
|
max_rotational_vel: 1.0
|
|
min_rotational_vel: 0.4
|
|
rotational_acc_lim: 3.2
|
|
|
|
robot_state_publisher:
|
|
ros__parameters:
|
|
use_sim_time: False
|
|
|
|
waypoint_follower:
|
|
ros__parameters:
|
|
loop_rate: 20
|
|
stop_on_failure: false
|
|
waypoint_task_executor_plugin: "wait_at_waypoint"
|
|
wait_at_waypoint:
|
|
plugin: "nav2_waypoint_follower::WaitAtWaypoint"
|
|
enabled: True
|
|
waypoint_pause_duration: 200
|
|
|
|
velocity_smoother:
|
|
ros__parameters:
|
|
use_sim_time: True
|
|
smoothing_frequency: 20.0
|
|
scale_velocities: False
|
|
feedback: "OPEN_LOOP"
|
|
max_velocity: [0.26, 0.0, 0.5]
|
|
min_velocity: [-0.26, 0.0, -0.5]
|
|
max_accel: [2.5, 0.0, 3.2]
|
|
max_decel: [-2.5, 0.0, -3.2]
|
|
odom_topic: "odom"
|
|
odom_duration: 0.1
|
|
deadband_velocity: [0.0, 0.0, 0.0]
|
|
velocity_timeout: 1.0
|