尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

gazebo栅格地图生成(ros1/ros2均可启用)

gazebo栅格地图生成(ros1/ros2均可启用)
📅 发布时间:2026/6/19 21:21:27

gazebo栅格地图生成(ros1/ros2均可启用)

这里我们介绍一个在gazebo中快速生成栅格地图的方法。以前的生成一般需要通过slam进行建图,这个过程比较麻烦,而且容易产生漂移。我们现在通过gazebo中的一些插件来实现这个过程,变得更加合理而且地图非常标准化。
在这里插入图片描述

PGM Map Creator 项目

在这里插入图片描述

pgm_map_creator 是一个专注于机器人地图构建的全栈式生成器:输入 Gazebo world 或自定义场景配置,即可一次性导出 2D 栅格、PNG 预览、ROS/ Nav2 元数据、点云以及二进制 Octomap,帮助团队在仿真与真实部署之间保持一致的地图基线。来源

架构与目录

  • src/、include/:C++ 核心扫描引擎,负责读取世界文件、进行空间采样与占用推断
  • gui/:PyQt GUI 封装,加载 map_config.json 并调用 CLI 接口完成生成
  • scripts/:构建与辅助脚本,方便在 CI 或批处理场景复用
  • world/room.world:默认示例场景,展示多物体、多层结构处理能力
  • map_config.json:集中存放边界框、分辨率、输出名等参数

参数设计细节

  • --corners:以 (x,y,z) 对指定下右角与上左角,满足 upper_left.x > lower_right.x 等约束,可确保扫描体积合法,避免倒置坐标导致的空输出
  • --resolution:默认 0.01m,可以直接控制 PGM/Octomap 细粒度;实践中可结合机器人 LiDAR 精度调优
  • --multiplier:碰撞检测距离倍数,用于将模型碰撞体适度放大,避免窄缝漏检
  • --threshold:2D 栅格灰度阈值,0→占用、255→空闲,适合根据传感器噪声调整
  • --skip-vertical-scan:仅进行平面采样,大幅减少 3D 扫描耗时,适合只关心 2D 导航
  • --filename:统一输出前缀,生成 .pgm/.png/.yaml/.pcd/.bt 五种文件,便于归档

工作流示例

  1. 构建:mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make -j$(nproc),得到 CLI 可执行文件
  2. 参数配置:在 map_config.json 中填写 corners、分辨率、阈值等信息,也可直接启动 python3 gui/map_creator_gui.py 进行可视化调参
  3. 生成:运行 GUI 或 CLI 命令;CLI 会遍历扫描体积进行射线投射,逐层写入占据概率
  4. 验证:
    • 2D:xdg-open map.pgm 或 eog map.png 快速查看占用情况
    • 3D:pcl_viewer map.pcd 检查点云稠密度
    • ROS:在 rviz 中加载 map.yaml,确认坐标与机器人框架对齐
  5. 迭代:调小 --resolution 获得更高精度,或调整 --multiplier 避免过度膨胀带来的闭塞

典型应用

  • 室内服务机器人:以真实房间尺寸配置 room.world,快速生成导航地图并在 Nav2 中复现
  • 研究对比实验:在不同阈值、分辨率组合下批量导出地图,分析路径规划性能变化
  • 教学/演示:GUI 提供滑块与输入框,降低初学者理解占据栅格概念的门槛
  • 仿真管线:通过 .bt 与 .pcd 直接供 Octomap 或 3D SLAM 模块消费,保持环境一致性

亮点总结

  • 多格式同步输出:一次扫描、五种结果,减少繁琐的格式转换
  • 参数显式可控:从坐标框、阈值到碰撞倍数,全部在 CLI/GUI 中可追踪
  • 易集成:CMake 构建 + Python GUI,可嵌入现有 C++/ROS/仿真项目
  • 面向自动化:脚本化接口配合 map_config.json,可在 CI 中批量更新地图

用法

首先git对应的仓库:

git clone -b feat-cyun https://github.com/chan-yuu/pgm_map_creator.git

然后通过build.sh进行编译

./build.sh

最后运行即可

python3 gui/map_creator_gui.py

在这里插入图片描述

界面的相关的配置和说明在README当中有具体的说明。

注意,如果不需要3D的点云地图,可以勾选2d,更快的生成栅格地图。
在这里插入图片描述
在这里插入图片描述
进度条没有那么准确,基本上80多就可以算是结束了,只要有对应的文件就可以了。
在map文件夹下可以找到:
在这里插入图片描述
选择了2d之后就只有2d的栅格地图,3d的pcd几乎没有高度值:
在这里插入图片描述
在这里插入图片描述

如果觉得有用请点个star吧。

如果觉得有用请点个star吧。

如果觉得有用请点个star吧。

相关新闻

  • 日总结 44
  • ServiceWorker 通信
  • Dockerfile

最新新闻

  • ARM9微控制器LPC32x0系列:低功耗、高集成度与VFP协处理器的嵌入式设计实践
  • 洛阳市奢侈品手表包包回收价格差距高达15%:实测对比告诉你哪家店报价最实在 - 谊识预商务
  • 14000张高清驾驶员行为数据集:YOLO危险驾驶识别实战基线
  • 濮阳市闲置爱马仕、劳力士变现指南:奢侈品手表包包回收门店实地测评 - 谊识预商贸
  • 大连市奢侈品手表包包回收价格差距高达15%:实测对比告诉你哪家店报价最实在 - 谊识预商贸
  • 曲靖市闲置手表包包奢侈品变现,整理了5家靠谱回收店联系方式 - 谊识预商务

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号