ROS move base 简易调试
本地地图加载
本地地图加载参考之前文章
Move base配置
<launch><node pkg="move_base" type="move_base" name="move_base" output="screen"><!-- 加载全局规划器 (二选一) --><param name="base_global_planner" value="global_planner/GlobalPlanner" /><!-- 或使用navfn:<param name="base_global_planner" value="navfn/NavfnROS" /> --><!-- 加载局部规划器 --><param name="base_local_planner" value="base_local_planner/TrajectoryPlannerROS" /><param name="global_costmap/transform_tolerance" value="0.5" /><param name="local_costmap/transform_tolerance" value="0.5" /><param name="trajectory_planner/transform_tolerance" value="0.5" /><!-- 加载配置文件 --><rosparam file="$(find z_move_base)/config/costmap_common_params.yaml" command="load" ns="global_costmap" /><rosparam file="$(find z_move_base)/config/costmap_common_params.yaml" command="load" ns="local_costmap" /><rosparam file="$(find z_move_base)/config/global_costmap_params.yaml" command="load" /><rosparam file="$(find z_move_base)/config/local_costmap_params.yaml" command="load" /><rosparam file="$(find z_move_base)/config/base_local_planner_params.yaml" command="load" /></node>
</launch>
注意,tolerance一定设置,否则无法正常工作
配置地图
在ROS包中创建配置文件(如my_robot_config目录):
(1) 通用代价地图参数 (costmap_common_params.yaml
)
obstacle_range: 2.5 # 障碍物探测范围
raytrace_range: 3.0 # 清理自由空间的探测范围
footprint: [[-0.2, -0.2], [-0.2, 0.2], [0.2, 0.2], [0.2, -0.2]] # 机器人轮廓
inflation_radius: 0.15 # 膨胀半径
cost_scaling_factor: 10.0 # 代价缩放因子
传感器配置(根据实际传感器修改)
observation_sources: scan
scan: {sensor_frame: laser, data_type: LaserScan, topic: scan, marking: true, clearing: true}
(2) 全局代价地图参数 (global_costmap_params.yaml)
global_costmap:global_frame: map # 全局坐标系robot_base_frame: base_link # 机器人基坐标系update_frequency: 1.0 # 更新频率publish_frequency: 0.5static_map: true # 使用静态地图rolling_window: false # 禁用滚动窗口(全局地图固定)
配置局部地图
(3) 局部代价地图参数 (local_costmap_params.yaml
)
local_costmap:global_frame: odom # 局部使用odom坐标系robot_base_frame: base_linkupdate_frequency: 5.0publish_frequency: 2.0static_map: false # 动态更新局部地图rolling_window: true # 启用滚动窗口width: 3.0 # 窗口宽/高 (单位:米)height: 3.0resolution: 0.05 # 分辨率 (与cost_map一致)
配置规划器
(4) 规划器参数 (base_local_planner_params.yaml
)
TrajectoryPlannerROS: # 使用默认的局部规划器max_vel_x: 0.3 # 最大线速度min_vel_x: 0.1max_vel_theta: 0.5 # 最大角速度xy_goal_tolerance: 0.1 # 目标位置容差yaw_goal_tolerance: 0.05 # 目标角度容差sim_time: 1.0 # 预测轨迹时长
tf发布
rosrun tf static_transform_publisher 0 0 0 0 0 0 odom base_link 1000
rosrun tf static_transform_publisher 300 50 0 0 0 0 map odom 1000