move_base 配置文件说明

本文详细介绍了move_base配置文件中各参数的意义及作用,包括base_local_planner_params.yaml、costmap_common_params.yaml、global_costmap_params.yaml和local_costmap_params.yaml等文件。重点解释了路径规划频率、速度限制、障碍物探测距离等关键设置。

move_base 配置文件说明

1. base_local_planner_params.yaml

controller_frequency: 3.0 # 更新路径规划的频率
recovery_behavior_enabled: false # 复原行为使能
clearing_rotation_allowed: false # 清除旋转允许

TrajectoryPlannerROS: # ROS轨迹计划
   max_vel_x: 0.3 # X方向最大速度
   min_vel_x: 0.05 # X方向最小速度
   max_vel_y: 0.0  # 差速轮机器人无Y方向速度,取0
   min_vel_y: 0.0

   min_in_place_vel_theta: 0.5 # 机器人最小原地旋转速度
   escape_vel: -0.1 # 机器人逃离速度,负值

   acc_lim_x: 2.5 # X方向最大线加速度
   acc_lim_y: 0.0 # 差速轮机器人无Y方向线加速度,取0
   acc_lim_theta: 3.2 # 最大角加速度

   holonomic_robot: false # 全向移动机器人使能
   yaw_goal_tolerance: 0.1 # 至多距离目标方向误差
   xy_goal_tolerance: 0.1  # 至多距离目标位置误差
   latch_xy_goal_tolerance: false # 锁定至多距离目标位置误差

   # 全局路径规划和到达目的地之间权重
   # 比 gdist_scale 大时,机器人倾向考虑全局路径规划
   pdist_scale: 0.8 
   # 到达目的地和全局路径规划之间权重
   # 比 pdist_scale 大时,机器人倾向考虑到达目的地
   gdist_scale: 0.6

   meter_scoring: true # 以米为单位

   occdist_scale: 0.1 # 避开障碍物的权重
   oscillation_reset_dist: 0.05 #在振荡标志被清零前,机器人必须在出行多远。
   publish_cost_grid_pc: false # 是否使用cost_grid发布
   prune_plan: true # 机器人行走1m后,结束动作。

   sim_time: 1.0 # 规划时需要考虑未来多长时间,结合dwa
   sim_granularity: 0.025 # 给定轨迹的步长
   angular_sim_granularity: 0.025 # 给定角度轨迹的弧长
   vx_samples: 8 # x方向速度的样本数
   vy_samples: 0 # 差速轮机器人无Y方向速度,取0
   vtheta_samples: 20 # 角速度的样本数,默认为20
   dwa: true # 模拟未来轨迹时是否使用动态窗口法

2. costmap_common_params.yaml

obstacle_range: 2.5 # 障碍物探测距
raytrace_range: 3.0 # 传感器最大探测距离
robot_radius: 0.165 # 机器人半径
inflation_radius: 0.3 # 机器人与障碍物保持的最小距离
max_obstacle_height: 0.6 # 最大障碍物高度
min_obstacle_height: 0.0 # 最小障碍物高度
observation_sources: scan # 观察源,我们这里是激光数据
# 观察源的数据类型,发布话题,标记和添加障碍物,
scan: {data_type: LaserScan, topic: /scan, marking: true, clearing: true}

3. global_costmap_params.yaml

global_costmap:
   global_frame: /map # 使用map框架作为global框架
   robot_base_frame: /base_footprint # 机器人最底层框架
   update_frequency: 1.0 # 全局地图更新频率,1.0~5.0
   publish_frequency: 0 # 发布频率,静态全局地图不需要发布
   static_map: true # 是否为静态地图,全局地图一般为静态
   rolling_window: false # 更新全局地图,与上一个参数相反
   resolution: 0.01 # 解析度,即地图分辨率
   transform_tolerance: 1.0 # tf装换最大延时
   map_type: costmap # 地图类型

4. local_costmap_params.yaml

local_costmap:
   global_frame: /odom # 使用odom框架作为global框架
   robot_base_frame: /base_footprint # 机器人最底层框架
   update_frequency: 3.0 # 局部地图更新频率
   publish_frequency: 1.0 # 发布频率,局部地图不要发布
   static_map: false # 是否为静态地图,局部地图一般为动态
   rolling_window: true # 更新局部地图,与上一个参数相反
   width: 6.0 # 更新的局部地图的X维长度
   height: 6.0 # 更新的局部地图的Y维长度
   resolution: 0.01 # 解析度,即地图分辨率
   transform_tolerance: 1.0 # tf装换最大延时
   map_type: costmap # 地图类型
ROS中配置 `move_base` 参数是实现机器人导航功能的关键步骤之一。`move_base` 依赖于多个参数文件进行全局和局部路径规划、代价地图构建以及局部规划器行为控制。以下是对主要配置文件及其内容的详细说明。 ### 配置文件结构 通常,`move_base` 的参数配置分为以下几个YAML文件: 1. **costmap_common_params.yaml** 此文件包含全局和局部代价地图共用的参数,例如障碍物检测的传感器信息、代价地图更新频率等。 ```yaml obstacle_range: 2.5 raytrace_range: 3.0 footprint: [[x1, y1], [x2, y2], ...] # 机器人的轮廓定义 inflation_radius: 0.55 cost_scaling_factor: 3.0 map_type: costmap transform_tolerance: 0.1 obstacle_layer: enabled: true max_obstacle_height: 2.0 observation_sources: laser_scan_sensor laser_scan_sensor: data_type: LaserScan topic: /scan marking: true clearing: true ``` 2. **global_costmap_params.yaml** 全局代价地图主要用于全局路径规划,其配置包括地图来源、更新周期、坐标系设置等。 ```yaml global_costmap: global_frame: /map robot_base_frame: /base_link update_frequency: 5.0 static_map: true publish_voxel_map: false ``` 3. **local_costmap_params.yaml** 局部代价地图用于避障和局部路径调整,需指定局部坐标系及传感器数据源等。 ```yaml local_costmap: global_frame: /odom robot_base_frame: /base_link update_frequency: 5.0 publish_frequency: 2.0 static_map: false rolling_window: true width: 6.0 height: 6.0 resolution: 0.05 ``` 4. **base_local_planner_params.yaml** 局部规划器负责生成速度指令以避开障碍并朝向目标点移动。常见的局部规划器为 `TrajectoryPlannerROS` 或 `DWAPlannerROS`。 ```yaml TrajectoryPlannerROS: max_vel_x: 0.5 min_vel_x: 0.1 max_vel_theta: 1.0 min_vel_theta: -1.0 acc_lim_theta: 1.2 yaw_goal_tolerance: 0.1 xy_goal_tolerance: 0.1 sim_time: 1.7 pdist_scale: 0.8 gdist_scale: 0.2 ``` ### 启动配置文件 将上述配置文件通过一个 `.launch` 文件加载到 `move_base` 节点中,确保参数正确作用于对应的命名空间。 ```xml <launch> <node pkg="move_base" type="move_base" name="move_base" output="screen"> <rosparam file="$(find my_robot_navigation)/config/costmap_common_params.yaml" command="load" ns="global_costmap"/> <rosparam file="$(find my_robot_navigation)/config/global_costmap_params.yaml" command="load" ns="global_costmap"/> <rosparam file="$(find my_robot_navigation)/config/costmap_common_params.yaml" command="load" ns="local_costmap"/> <rosparam file="$(find my_robot_navigation)/config/local_costmap_params.yaml" command="load" ns="local_costmap"/> <rosparam file="$(find my_robot_navigation)/config/base_local_planner_params.yaml" command="load"/> </node> </launch> ``` ### 参数调优建议 - **轨迹规划问题(如原地打转、绕圈)**:可以尝试调整局部规划器中的 `pdist_scale` 和 `gdist_scale`,提高对目标方向的优先级[^3]。 - **定位误差过大导致路径偏移**:检查 `/odom` 数据是否稳定,并确认 AMCL 定位节点已正确运行[^4]。 - **传感器数据异常影响导航**:确保激光雷达 `/scan` 数据正常发布,并在 `costmap_common_params.yaml` 中配置正确的 `observation_sources`。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forrest-Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值