【移动机器人技术】cartographer定位模式下的功能开发(三):禁止发布地图

在移动机器人导航模式下,cartographer与move_base联合使用,其中move_base利用map_sever加载之前已经建好的地图,并且地图上存在后期的认为标注,比如电子围栏等。
在纯定位模式下,cartographer如果持续发布地图,就会影响map_sever加载的地图效果,最终影响路径规划用的地图。
本文描述内容主要解决以上问题。

launch文件的修改

在启动cartographer_occupancy_grid_node节点时,增加pure_localization参数。

<node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"
      type="cartographer_occupancy_grid_node" args="-resolution 0.05
                                                    -pure_localization 1" />

源文件的修改

在cartographer_ros/cartographer_ros/cartographer_ros/occupancy_grid_node_main.cc文件中,

  • 增加纯定位参数
DEFINE_int32(pure_localization, 0, "Pure localization !");
  • 更改初始化函数,增加参数赋值
//Node::Node(const double resolution, const double publish_period_sec)
Node::Node(const int pure_localization,const double resolution, const double publish_period_sec) 
    : resolution_(resolution),
      pure_localization_(pure_localization),//kaikai.gao
  • 禁止地图话题发布:
void Node::DrawAndPublish(const ::ros::WallTimerEvent& unused_timer_event) {
  if (submap_slices_.empty() || last_frame_id_.empty()) {
    return;
  }

  // 非常重要,逻辑不能出错,否则影响导航地图!
  if(pure_localization_ == 1) return;

  ::cartographer::common::MutexLocker locker(&mutex_);
  auto painted_slices = PaintSubmapSlices(submap_slices_, resolution_);
  std::unique_ptr<nav_msgs::OccupancyGrid> msg_ptr = CreateOccupancyGridMsg(
      painted_slices, resolution_, last_frame_id_, last_timestamp_);

  occupancy_grid_publisher_.publish(*msg_ptr);
}
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
定位模式下,李太白作为地图制图师,可以运用以下方法来更新地图。 首先,李太白可以收集现有地图中的相关数据。这包括地理信息、道路网络、建筑物、地形等等。可以通过地理调查、卫星遥感、无人机飞行等方式获取详细的地理数据。 其次,李太白需要使用传感器和测量设备进行实地勘测。通过对具体地区进行测量、标记和定位,可以获取准确的地理坐标和地物信息。 然后,李太白可以利用计算机技术和GIS(地理信息系统)软件进行数据处理和地图制作。他可以将收集到的地理数据输入到GIS软件中,进行数据清洗、处理、分析和整合,以生成准确的地图更新数据。 接着,李太白需要使用专业的地图制作工具,将处理好的地理数据以符号、注记和颜色等形式表现在地图上。他可以使用不同的图形和标识来表示不同的地物特征,如道路、河流、山脉、城市等。 最后,李太白可以对地图进行验证和修正。他可以与地理学家、测量师和其他领域的专家合作,对地图进行检查和评估,以确保地图的准确性和完整性。如果发现错误或遗漏,可以进行修改和更新,以保证地图的及时性和可靠性。 总结而言,在定位模式下,李太白可以通过收集数据、实地勘测、数据处理和地图制作,以及验证和修正等步骤来更新地图,从而提供准确的地理信息供使用者参考。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值