navigation 加图层,导致全局规划读取不到参数,全局规划不可用问题。

1.yaml 加图层,yaml文件输入容易出错,最好复制格式修改内容,手动输入英文输入法输入。

  plugins:
     - {name: static_layer,            type: "costmap_2d::StaticLayer"}
     - {name: virtuals,        type: "costmap_2d::VirtualLayer"}
     - {name: obstacles,        type: "costmap_2d::ObstacleLayer"}
     - {name: inflation_layer,         type: "costmap_2d::InflationLayer"}

 

2.加图层导致整个地图的异常?在这里困住了两天,没发现原因,主要是由于加了图层之后,costmap_2d_ros可以读取到plugins 参数了。原先yaml 文件中没有plugins 参数。

因此其他图层包括障碍物图层的ros::NodeHandle  namespace 命名空间发生变化。可以运行时打印出来看看。使用nh.getNamespace() 函数获取。可以发现和之前不一样了。

解决方法:1. 在costmap_2d_ros图层初始化时候去掉/pname,保证名字一致。

plugin->initialize(layered_costmap_, name + "/" + pname, &tf_);

 方法2. 修改读取不到的配置参数前缀:加图层名字,这样也可以读取到参数。

observation_sources: scan
  scan: {sensor_frame: base_scan, data_type: LaserScan, topic: scan, marking: true, clearing: true}

改为:
obstacles: 
  observation_sources: scan
  scan: {sensor_frame: base_scan, data_type: LaserScan, topic: scan, marking: true, clearing: true}

 

navigation 加图层,导致全局规划读取不到参数,全局规划不可用问题。

上一篇:Visaul Studio 快捷方式


下一篇:使用 Docker 部署 Node 应用