cartographer ros地图
时间: 2025-06-12 14:43:08 浏览: 22
### 使用 Cartographer 和 ROS 创建地图
为了使用 Cartographer 和 ROS 创建地图,需遵循一系列操作流程来配置环境、启动必要的节点以及执行建图过程。
#### 配置开发环境
建立工作空间并克隆所需仓库到指定位置:
```bash
mkdir -p ~/cartoros2_ws/src
cd ~/cartoros_ws/src
git clone https://github.com/ros2/cartographer.git
git clone https://github.com/ros2/cartographer_ros.git
```
上述命令用于初始化一个新的 Catkin 工作区,并从中获取 `cartographer` 及其对应的 ROS 接口包 `cartographer_ros` 的源码[^5]。
#### 启动离线回放构建二维地图实例
通过下载预录制的数据集文件来进行测试,可以验证安装是否成功并且熟悉基本的操作方式:
```bash
wget -P ~/Downloads \
https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsces_museum.bag
```
这段脚本会自动从网络上拉取一个名为 Deutsches Museum 的数据包至用户的 Downloads 文件夹内;随后利用此数据包作为输入参数调用 launch 文件完成一次完整的 SLAM 过程模拟[^4]。
#### 实时采集与保存新地图
当准备就绪后,在实际环境中部署机器人设备进行实时定位和制图活动。此时应确保传感器正常运作并将收集到的信息流传输给计算机端处理。一旦决定要存储当前状态的地图,则可通过如下指令实现:
```bash
rosservice call /write_state "{filename: '<绝对路径>/<地图名字>.pbstream'}"
```
这条语句指示系统将现有的内部表示形式导出成 Protobuf 流格式(.pbstream),以便后续进一步分析或是转换用途[^1]。
#### 将 PBStream 转换成栅格图像
最后一步涉及到了解码由 Cartographer 输出的二进制序列化文件成为人类可读的形式——即常见的 PNG 或者 JPG 类型图片。这通常借助于额外工具链如 map_server 完成,具体方法取决于个人需求和技术栈偏好。
阅读全文
相关推荐


















