gazebo栅格地图生成-直接生成而非二次建图

Gazebo地图设计及无人机通信 使用软件自动生成gazebo地图,并添加树木车辆,及无人机 阅读详情

这里我们介绍一个在gazebo中快速生成栅格地图的方法。以前的生成一般需要通过slam进行建图,这个过程比较麻烦,而且容易产生漂移。我们现在通过gazebo中的一些插件来实现这个过程,变得更加合理而且地图非常标准化。
在这里插入图片描述
我们在做ros导航的时候经常会需要地图,无论是2d的栅格地图还是3d的点云地图,有没有办法直接生成gazebo中的这样的标准版本的地图呢?当然有,以下是本项目的实现的细节。

PGM Map Creator 项目

在这里插入图片描述
(https://github.com/chan-yuu/gazebo_pgm_ws.git)

架构与目录

  • 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 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吧。

ROS:gazebo创建仿真地图,turtlebot3加载仿真地图进行建图,生成yaml和pgm地图信息 阅读详情

相关推荐

ros20.04仿真地图创建、Gazebo仿真搭建地图(插件安装)

**打开gazebo的时候最好是使用管理员权限,不然保存地图的时候会出现卡顿等现象 ***这时就可点击创建地图等,可以搭建如门窗,楼梯等,以及墙的颜色。点击edit再点击building editor(创建)最后结合相关的urdf和launch文件后打开即可如下。然后再可添加我们下载的官方插件来对我们地图进行丰富。打开gazebo就能看到我们的插件了。这时界面还是刚才搭建好的地图界面。路径和名字可以默认也可以自定义。上面白色部分为二维图面。下面灰色部分为三维界面。

weixin_73968484的博客 1820

gazebo地图构建

使用gazebo创建一个世界模型

qq_56589253的博客 5009

ros学习——gmapping建图

Gmapping Gmapping算法 Gmapping是一个基于2D激光雷达使用RBPF(Rao-Blackwellized Particle Filters)算法完成二维栅格地图构建的SLAM(Simultaneous Localization And Mapping)算法。 Gmapping功能包 gmapping功能包集成了Rao-Blackwellized粒子滤波算法,为开发者隐去了复杂的内部实现 gmapping功能包订阅机器人的深度信息、IMU信息和里程计信息,同时完成一些必要参数的配置,即可

prqoppqpr的博客 2万+

「 Gazebo仿真 」地图创建、多模型显示、基本指令

一. 地图的构成 讲解,地图由三部分构成,一部分是在物理环境中实际的接触形状(.txt文件描述),第二部分是可视化形状(.png文件描述),最后是模型的贴纸(.png文件描述)。在实际操作中,我们当然会将前两部分设置一致,第三部分的分辨率越高越好。 二. 如何生成/修改地图 (1)查看Params文件夹的**.yaml文件,如:simulate_params.yaml,得知目前仿真平台使用的地图文件名,例如: # topics heightmap_name : "./mo......

Robot_Starscream的博客 7034

智能小车建图导航-在Gazebo中仿真SLAM(运行gmapping)

笔记来源:机器人开发与实践(古月) 在终端中输入如下命令,启动Gazebo仿真环境和gmapping节点: roslaunch mrobot_gazebo mrobot_laser_nav_gazebo.launch roslaunch mrobot_navigation gmapping_demo.launch 运行成功后以后Gazebo和rviz都会启动,Gazebo中的机器人模型会静止在仿真环境的中间位置,而rviz中的机器人会同步显示,另外,rviz中的相关参数的选项可以更改,这样看起来会更

猪猪的博客 4230

LIO-SAM(2)——Ubuntu20.04下Gazebo仿真运行,通过扫描建图获取PCD文件,并使用Octomap将点云地图pcd转换为三维栅格地图

Gazebo中仿真运行LIO-SAM,实现建图,获取PCD文件,并使用Octomap将点云地图pcd转换为三维栅格地图

LeaveZR的博客 1498

基于Gazebo仿真环境的SLAM建图与导航实战指南

本文提供了一份基于Gazebo仿真环境的SLAM建图与导航实战指南。从搭建ROS工作空间、创建仿真世界与机器人模型开始,详细讲解了如何使用Gmapping算法进行SLAM建图,并完成地图保存。最后,指导读者配置move_base导航栈,实现机器人在已知地图中的自主定位与路径规划,涵盖了从环境搭建到算法调试的全流程。

white的博客 683

如何生成gazebo仿真环境的二维地图真值

在移动机器人仿真中,二维地图真值可以用来评价slam建图结果,也可以直接给路径规划算法提供输入。利用gazebo进行仿真时,有很多方法都可以获取静态仿真环境的二维地图真值,本文介绍其中一种方法。

hanmoge的博客 1万+

告别枯燥命令:用TurtleBot3在Gazebo仿真里建个虚拟房子地图(ROS2 Humble实战)

本文详细介绍了如何使用TurtleBot3在Gazebo仿真环境中构建虚拟房屋地图的完整流程。从ROS2 Humble环境准备、Gazebo仿真启动,到Cartographer SLAM算法的应用和地图保存,逐步指导读者完成整个建图过程。通过手动控制机器人探索环境并优化地图质量,最终生成可用于导航的pgm/yaml格式地图文件。

cumi6497的博客 641

在Gazebo中配置Husky机器人实现Cartographer高精度建图

本文详细介绍了在Gazebo仿真环境中配置Husky机器人并集成Cartographer算法实现高精度2D建图的完整流程。通过分析Husky机器人模型优势、Cartographer算法特点,提供从环境搭建、传感器配置、参数调优到运行调试的实战指南,帮助开发者在仿真中高效验证和优化SLAM算法,为真实机器人应用奠定基础。

weixin_29292431的博客 168

ROS导航小车建图实战:用gmapping从零搭建室内栅格地图

SLAM是移动机器人自主导航的核心技术,它让机器人在未知环境中一边感知周边障碍物,一边估计自身位置。gmapping作为ROS生态中最经典的2D激光SLAM方案,基于Rao-Blackwellized粒子滤波原理,通过大量粒子的位姿假设与扫描匹配,在室内小场景中能以较低计算代价生成精确的二维栅格地图。这项技术对轮式底盘、激光雷达和里程计构成的小车尤为友好,是入门导航系统搭建的首选路径。无论是家庭扫地机器人,还是教学科研用的ROS导航小车,干净的地图都是AMCL定位与move_base规划能够正常运行的前提。

weixin_33907511的博客 424

Cartographer实战:Gazebo仿真建图参数精调与典型TF问题深度解析

本文深入解析了在Gazebo仿真环境中使用Cartographer进行SLAM建图时,参数精调与TF(坐标变换)问题的实战解决方案。文章聚焦于从“能建图”到“建好图”的进阶之路,详细讲解了核心Lua参数配置、坐标系(tracking_frame, published_frame)设置逻辑、以及典型TF错误(如点云扭曲、建图漂移)的诊断与修复方法,旨在帮助读者构建高精度、稳定的仿真地图,为后续定位与导航奠定坚实基础。

game4的博客 351

移动小车SLAM建图实战:从Gazebo仿真到Gmapping算法详解

本文提供了一份移动小车SLAM建图的完整实战指南。通过Gazebo搭建仿真环境,详细解析了Gmapping算法的核心原理与参数调优,并指导如何从仿真到实际应用,完成地图构建、问题诊断与地图保存,为机器人导航奠定基础。

weixin_29093169的博客 100

ROS2机器人开发实战:从Gazebo仿真到SLAM建图与Nav2导航

机器人开发离不开仿真验证与自主导航能力的支撑。在ROS2生态中,Gazebo为算法验证提供了物理仿真环境,SLAM技术则通过激光雷达等传感器实时构建环境地图,而Nav2作为行为树驱动的导航框架,实现了路径规划与避障。这三者构成了一条从环境感知到运动控制的完整技术链路,广泛应用于教学实践、课程设计与工程预研。对于入门者而言,理解SLAM建图原理和Nav2导航机制,是掌握机器人自主移动的关键。本文以Ubuntu 22.04和ROS2 Humble为基础,梳理出一条从环境配置、Gazebo仿真启动、Cartogr

weixin_33755649的博客 398

Gazebo仿真下宇树Go2激光雷达Gmapping建图教程

SLAM(同步定位与建图)是移动机器人自主导航的核心基础,2D激光SLAM因精度高、计算量适中被广泛应用。Gmapping作为经典的粒子滤波SLAM算法,凭借轻量、稳定、参数少的特点,成为初学者理解建图原理的理想起点。实际开发中,常借助Gazebo仿真环境在物理模拟条件下验证传感器配置与算法参数,降低真机调试成本。从为宇树机器狗Go2模型挂载激光雷达,到通过planar_move插件模拟移动,再到利用Gmapping实时构建二维栅格地图,ROS Noetic下的仿真流程完整展示了TF树检查、参数调优与地图保

weixin_29166013的博客 165

小鱼:移动机器人建图导航仿真做完了,如何移植到真实机器人上?

大家好,我是小鱼。最近来问小鱼问题的同学越来越多了,实在是回答不过来,大家尽量先在我们的鱼群里将问题完整的描述出来,和群友们互相交流问题。 今天说一个很多同学遇到的,也是一位鱼粉问了小鱼很久的问题,所以来说一说,已经完成建图和导航的仿真,接着如何在真实机器人上做建图和导航。 一、搞清楚数据流图 在开始动手在真实机器人上做导航之前,我们要搞清楚整个建图导航的数据流图,也就是建图和导航功能包的输入和输出。 1.1 首先是建图 建图算法有很多种,这里小鱼拿比较常见的gmapping功能包来说。 整体数据流图如下图

生活不止眼前的苟且 2339

实景建图实战:2D激光雷达+Cartographer从传感器到栅格地图全解析

机器人要在真实世界中稳定导航,离不开可靠的同步定位与建图(SLAM)能力。相比仿真环境,真实场景中的光照变化、玻璃反射、动态行人以及地面打滑等因素,都会对建图精度产生显著影响。以2D激光雷达、轮式里程计和IMU为核心的多传感器融合方案,是当前室内服务机器人、园区巡检车和物流小车实现低成本、高可靠地图构建的主流路径。Cartographer作为一套成熟的2D SLAM框架,通过前端相关扫描匹配(CSM)与后端位姿图优化,结合子图与回环检测机制,能够在复杂环境中持续输出一致性良好的二维栅格地图。本文围绕传感器选

weixin_29098391的博客 230

Cartographer实战:Gazebo仿真建图参数精调与TF坐标系避坑指南

本文针对Cartographer在Gazebo仿真建图中常见的激光数据乱飞与TF报错问题,提供了系统性的参数精调与避坑指南。文章深入解析了雷达类型、坐标系三兄弟(tracking_frame、published_frame、provide_odom_frame)等关键参数,并分享了TF坐标系排查工具与实战流程,帮助开发者快速定位并解决建图漂移、地图模糊等问题,实现高质量的仿真建图。

q3r4s5t的博客 409
上一篇: RVC声音转换的使用
下一篇: 稀疏奖励与强化学习以及约束处理
白云千载尽
博客等级 码龄5年 9168粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白云千载尽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值