当前位置: 首页 > news >正文

【ROS】map_server 地图的保存和加载

【ROS】map_server 地图的保存和加载

  • 前言
  • 地图的保存
  • 地图的加载

前言

在 ROS 中,想要实现导航功能,首先需要一张已建好的地图。导航系统依赖这张地图进行路径规划、定位和障碍物避让等操作。本文将讲解在使用 gmappinghector_mapping 建图后,如何保存和加载地图。

本章面向 ROS 初学者,系统地讲解地图的保存与加载流程,为后续的定位与导航功能奠定基础。

我的环境:
本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 Melodic

参考资料:

  • 如何在 ROS 中保存和加载地图
  • ROS Wiki - map_server 官方文档

地图的保存

关于地图保存,可参考 map_server 文档 2.2 小节,如下图所示:
map_saver说明

地图保存的原理是:将当前发布在 /map 话题中的地图数据保存为本地文件。
因此,只有在建图(如 Gmapping 或 Hector 等)已经完成并且 /map 话题正在发布数据的前提下,才能执行保存操作。


常用命令:

假设我们要把地图保存到主目录下的 map 文件夹中,文件名为 my_map,命令如下:

rosrun map_server map_saver -f ~/map/my_map

执行后会生成两个文件:

  • my_map.pgm(地图图像)
  • my_map.yaml(地图元数据,包括分辨率、原点等)

地图的加载

关于地图加载,可参考 map_server 文档 2.1 小节,如下图所示:
在这里插入图片描述
地图加载的原理:将本地保存的地图配置文件(.yaml 文件)解析,并将静态地图数据发布到 /map 话题,供其他节点(如导航)订阅使用。


常用命令:

假设我们已经将地图保存在主目录下的 map 文件夹中,文件名为 my_map.yaml,可以使用以下命令加载地图:

rosrun map_server map_server ~/map/my_map.yaml

执行后,map_server 节点会自动读取:my_map.yaml(地图元数据)、my_map.pgm(地图图像),并持续发布 /map 话题,供导航、定位等功能模块使用。

相关文章:

  • 50、Spring Boot 详细讲义(七) Spring Boot 与 NoSQL
  • 在生信分析中,从生物学数据库中下载的序列存放在哪里?要不要建立一个小型数据库,或者存放在Gitee上?
  • 常见数据结构
  • 【系统分析师之1、绪论+2、数学与工程基础】
  • 【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——LED、按键测试
  • 删除win11电脑上的阿尔巴尼亚输入法SQI
  • OSPF综合实验
  • MySQL——流程控制
  • 【Unity笔记】Unity开发笔记:ScriptableObject实现高效游戏配置管理(含源码解析)
  • 全国青少年信息素养大赛 C++算法创意实践挑战赛初赛 集训模拟试卷《二》及详细答案解析
  • ACI EP Learning Whitepaper 3. Disabling IP Data-plane Learning 功能
  • Vue3服务端渲染(SSR)深度调优:架构裂变与性能突围
  • bC一体化是传统批发企业 换道超车的唯一路径
  • Spring Cache(笔记)
  • 第二天 通过脚本控制物体移动和旋转
  • 03 UV
  • Flutter实战(1)-- 调试工具
  • 处理 Flutter 没有反应
  • 【C++算法】59.哈希表_存在重复元素 II
  • 排序算法复杂度及稳定性全解析(八种排序)
  • 特朗普说克里米亚将留在俄罗斯,泽连斯基:绝不承认
  • 广州多条BRT相关线路将停运,全市BRT客运量较高峰时大幅下降
  • 蚂蚁集团将向全体股东分红
  • 四川省人大常委会原党组成员、副主任宋朝华接受审查调查
  • 我国首次实现地月距离尺度卫星激光测距
  • 五一假期上海路网哪里易拥堵?怎么错峰更靠谱?研判报告来了