move base参数配置

move base参数配置

  下面6个yaml文件都是必须的

costmap_common_params.yaml

obstacle_range: 2.5 #最大障碍物检测范围
raytrace_range: 3.0 #检测自由空间的最大范围
footprint: [[0.08, 0.08], [0.08, -0.08], [-0.08, -0.08], [-0.08, 0.08]] #机器人为矩形,设置矩形的四个点
inflation_radius: 0.2 #膨胀层半径
cost_scaling_factor: 2.0
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: base_scan, data_type: LaserScan, topic: /scan, marking: true, clearing: true}

global_costmap_params.yaml

global_costmap:
  global_frame: map #全局代价地图参考系为map
  robot_base_frame: base_footprint #机器人的base_frame为base_footprint

  transform_tolerance: 2 #tf的更新容忍度为1
  update_frequency: 1.0 #地图更新频率
  publish_frequency: 0.5 #代价地图发布可视化信息的频率
  # rolling_window: false 
  static_map: true #使用静态地图(已建好),并初始化
  width: 32
  height: 32
  resolution: 0.05
  map_type: costmap

  # plugins:
  #   - {name: static_layer, type: "costmap_2d::StaticLayer"}
  #   - {name: global_inflation_layer, type: "costmap_2d::InflationLayer"}

local_costmap_params.yaml

local_costmap:
  global_frame: odom #本地代价地图参考系为odom
  robot_base_frame: base_footprint #机器人的base_frame为base_footprint
  transform_tolerance: 1

  update_frequency: 5 #地图更新频率
  publish_frequency: 2 #rviz代价地图发布可视化信息的频率
  
  
  static_map: false  #本地代价地图会不断的更新地图,所以这里设置为false
  rolling_window: true  #设置滚动窗口,使得机器人始终在窗体中心位置
  width: 3.0 #代价地图的宽度
  height: 3.0  #代价地图的长度
  resolution: 0.05 #代价地图的分辨率
  map_type: costmap

  # plugins:
  #   - {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"}
  #   - {name: local_inflation_layer, type: "costmap_2d::InflationLayer"}

global_planner_params.yaml

GlobalPlanner:

  allow_unknown: false #是否允许规划器规划穿过未知区域的路径,只设计该参数为true还不行,还要在costmap_commons_params.yaml中设置track_unknown_space参数也为true才行

  default_tolerance: 0.5  #当设置的目的地被障碍物占据时,需要以该参数为半径寻找到最近的点作为新目的地点

  visualize_potential: false #是否显示从PointCloud2计算得到的势区域

  use_dijkstra: true #设置为true,将使用dijkstra算法,否则使用A*算法

  use_quadratic: true #设置为true,将使用二次函数近似函数,否则使用更加简单的计算方式,这样节省硬件计算资源

  use_grid_path: false #如果设置为true,则鬼狐沿着网格边界的路径,偏向于直线穿越网格,否则将使用梯度下降算法,路径更为光滑点

  old_navfn_behavior: false

 

  lethal_cost: 253 #致命代价值,默认是设置为253

  neutral_cost: 66 #中等代价值,默认设置是50

  cost_factor: 0.55 #代价地图与每个代价值相乘的因子

dwa_local_planner_params.yaml

DWAPlannerROS:

  max_vel_trans: 2.5 #平移速度最大值
  min_vel_trans: -2.5 #平移速度最小值
  
  max_vel_x: 2.5 #x方向最大速度
  min_vel_x: -2.5 #x方向最小值绝对值,如果为负值表示可以后退

  max_vel_y: 0 #y方向最大速度
  min_vel_y: 0 #y方向最小速度

  max_vel_theta: 2.5 #最大角速度
  min_vel_theta: -2.5 #最小角速度

  acc_lim_x: 2.5 #x方向的加速度
  acc_lim_y: 0 #y方向的加速度,一般为0
  acc_lim_theta: 2.5 #旋转加速度
  acc_lim_trans: 2.5

  xy_goal_tolerance: 0.2 #距离目标在xy方向与目标点的距离误差
  yaw_goal_tolerance: 1.0 #距离目标点偏行角允许的误差,单位弧度
  latch_xy_goal_tolerance: false #设置为true,如果到达容错距离内,机器人就会原地旋转,即使转动是会跑出容错距离外

  sim_time: 2.0 #向前仿真轨迹的时间
  sim_granularity: 0.025 #步长,轨迹上采样点之间的距离,轨迹上点的密集程度
  angular_sim_granularity: 0.1 #旋转步长
  path_distance_bias: 64.0     # 32.0 定义控制器与给定路径接近程度的权重
  goal_distance_bias: 24.0      # 24.0 定义控制器与局部目标点的接近程度的权重
  forward_point_distance: 0.2 # 0.325
  occdist_scale: 0.01            # 0.01 转弯处过不去,把这个参数设置小一点
  # pdist_scale: 0.5

  vx_samples: 10 #x方向速度空间的采样点数
  vy_samples: 0  #y方向速度空间的采样点数
  vth_samples: 40 #旋转方向的速度空间采样点数


move_base_params.yaml

shutdown_costmaps: false #当move_base在不活动状态时,是否关掉costmap

 
controller_frequency: 10 #向底盘控制移动话题cmd_vel发送命令的频率
controller_patience: 3.0 #在空间清理操作执行前,控制器花多长时间等有效控制下发
conservative_reset_dist: 3.0 #清理costmap的范围,单位为m

planner_frequency: 1.0 #全局规划操作的执行频率.如果设置为0.0,则全局规划器仅在接收到新的目标点或者局部规划器报告路径堵塞时才会重新执行规划操作
planner_patience: 5.0 #在空间清理操作执行前,留给规划器多长时间来找出一条有效规划

oscillation_timeout: 8.0 #执行修复机制前,允许振荡的时长
oscillation_distance: 0.1 #来回运动在多大距离以上不会被认为是振荡

recovery_behavior_enabled: true # 默认true,是否启用 move_base 恢复行为以尝试清理空间
clearing_rotation_allowed: false # 默认true,仅当使用默认恢复行为有效,确定机器人在尝试清理空间时是否会尝试就地旋转

# base_local_planner: "teb_local_planner/TebLocalPlannerROS"
# base_local_planner: "eband_local_planner/EBandPlannerROS"
base_local_planner: "dwa_local_planner/DWAPlannerROS"



base_global_planner: "global_planner/GlobalPlanner"
# base_global_planner: "waypoint_global_planner/WaypointGlobalPlanner"




总的加载上面配置参数的launch文件selfrobot_nav.launch

selfrobot_nav.launch

<launch>
  <!-- <include file="/home/ryan/laser_odom_amcl/src/all/navigation/amcl/launch/amcl_loc1.launch.xml" /> -->
  <node name="map_server" pkg="map_server" type="map_server" args="~/map/carto_ws_fangzhen/map/2d-1.yaml"/>
  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true">
    <rosparam file="~/navigation_ws/src/navigation/move_base/config/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="~/navigation_ws/src/navigation/move_base/config/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="~/navigation_ws/src/navigation/move_base/config/global_costmap_params.yaml" command="load" />
    <rosparam file="~/navigation_ws/src/navigation/move_base/config/local_costmap_params.yaml" command="load" />
    <rosparam file="~/navigation_ws/src/navigation/move_base/config/dwa_local_planner_params.yaml" command="load" />
    <!-- <rosparam file="~/navigation_ws/src/navigation/move_base/config/teb_local_planner_params.yaml" command="load" /> -->
    <!-- <rosparam file="~/navigation_ws/src/navigation/move_base/config/eband_local_planner_params.yaml" command="load" /> -->
    
    <rosparam file="~/navigation_ws/src/navigation/move_base/config/global_planner_params.yaml" command="load" />
    <!-- <rosparam file="~/navigation_ws/src/navigation/move_base/config/waypoints_global_planner_params.yaml" command="load" /> -->
    <rosparam file="~/navigation_ws/src/navigation/move_base/config/move_base_params.yaml" command="load" />
    
  </node>

  <!-- 下面是配置rviz显示,运行报错就注释掉这行 -->
  <node name="rviz" pkg="rviz" type="rviz" required="true" args="-d /home/space/1022.rviz" /> 

</launch>

  • 1
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值