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

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

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:集中存放边界框、分辨率、输出名等参数

参数设计细节

工作流示例

  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.pgmeog map.png 快速查看占用情况
    • 3D:pcl_viewer map.pcd 检查点云稠密度
    • ROS:在 rviz 中加载 map.yaml,确认坐标与机器人框架对齐
  5. 迭代:调小 --resolution 获得更高精度,或调整 --multiplier 避免过度膨胀带来的闭塞

典型应用

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

亮点总结

用法

首先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吧。

http://www.jsqmd.com/news/135761/

相关文章:

  • MTPA数值求解的两种方法
  • 我发现数据中心冷却成本骤降后来才知道是ACTN动态优化温控策略的隐藏技巧
  • 2025 核心DeepSeek推广公司大全 - 品牌2025
  • 日总结 44
  • Python 的类型提示(type hint)
  • ServiceWorker 通信
  • 鸿蒙应用开发之通过ListItemGroup、nestedScroll实现商城活动可折叠分组滚动效果
  • 推出新型面向 AI 加速器的高性能编程框架——PyPTO
  • Java计算机毕设之基于springboot的公司财务预算管理系统财务收支管理 收入/支出记录(完整前后端代码+说明文档+LW,调试定制等)
  • VMware替代 | ZStack Cloud与NSX二层三层网络对比分析
  • 2025 年公众号排版软件怎么选?6 款主流编辑器真实横评
  • 18.0环实现线程和进程的监控(ObRegisterCallbacks函数)-Windows驱动
  • Dockerfile
  • 【Linux】进程控制(2)进程等待
  • 硬件有限,如何部署“大”模型?AMCT模型压缩工具3步解忧
  • 有关LangChain
  • 软件工程学习日志2025.12.24
  • 52、卷积层(填充paddinng)
  • 用NLMS实现对语音的回声的消除,共4个文件,语音原声,语音回声,NLMS的实现
  • 【毕业设计】基于springboot的公司财务预算管理系统(源码+文档+远程调试,全bao定制等)
  • 乐迪信息:煤矿皮带区域安全管控:人员违规闯入智能识别
  • 49、图像的相关知识
  • 基于VMD分解算法的信号处理与故障诊断:程序化实现及数据预测分类研究
  • 【毕业设计】基于SpringBoot+Vue技术的医疗器械管理系统设计与实现(源码+文档+远程调试,全bao定制等)
  • AUTOSAR学习资料大集合
  • 接口自动化测试框架搭建:从0到1构建企业级解决方案
  • Flutter---轮播图
  • 专利推荐系统实战手记:当协同过滤遇上用户画像
  • 当花朵学会组团解题:新型花授粉算法的暴力美学
  • 50、CNN的概述介绍