GAZEBO构建室外环境地图之创建高度图

2023-05-16

GAZEBO构建室外环境地图之创建高度图

  • 前言
    • 下载真实地形数据
    • 处理下载好的高度图

前言

  最近在搭建gazebo的室外仿真环境用于室外机器人的室外建图算法研究,发现网上说这方面的文章非常少,走dem来创建地形的路,我没走通,谁走通了,麻烦评论下方告知一下,在此先谢过了!我走通的是创建Heightmap(高度图)的方式,成功搞到了地形图,当然你可以渲染成带草地的山脉,海岸,沙漠等等,这些下一篇再讲,废话不多说,先创建一个高度图。参考链接可以轻松获取全球任意位置高度图的方案链接

下载真实地形数据

  打开网址https://terrain.party/,参考前言中链接的描述,一开始进去的不是中国位置,鼠标滚轮放缩地图,缩到最小就直接能看到中国位置了,如下图
https://terrain.party/  注意那个蓝色小框框,你移动地图什么的,方框不会移动,要鼠标拖着框走(待会取的就是框里的高度图),实在把框弄丢了,就重新刷新页面,然后就能看到那个蓝色框框了。同时还发现一个问题,如果操作很慢,页面停止刷新,那接下来地图就不放缩更新了,所以速度快一点,最快速度选好位置,地图放到最大,如下图
在这里插入图片描述  框的大小,可以自己调整,右边的加减号进行调整,我上图中的是18km,也就是当前地图大小是18km*18km的大小,需要小地图就按减号进行缩小,OK,接下来点击+号上方的下载图标,自己取个名字就开始下载了(最喜欢的就是没有任何用户注册要求,下载控制要求等等,直接下载即可)。

处理下载好的高度图

  下载完成后是一个zip文件,解压后有四张png,README说明文档中的意思是如果使用一张高度图的话,选用(Merged).png那张,好吧,其他张,肉眼也看不出来差别,听文档的吧,选merged混合的那张。
  前言链接的文档里也说了,下载下来的png是16位的,不是8位的,所以需要处理,这里重复一下前言链接文档中gazebo对高度图的要求:

  1. 高度和宽度必须相等(上面下载的时候就是正方形,直接满足,github上也看到很多对高度图的处理,第一步就是cv2.imread,第二部就是cv2.resize);
  2. 边的大小必须满足像素=2^n+1, n = 1,2,3,…(常用像素129*129和513*513),像素取太高不一定gazebo 能渲染的起来;
  3. 图片必须是8位图片(uint8)(实际上就是0~255,0就是地面了,值越高越白,也就越高,你看那个下载下来的黑白图,白色就是山脉了)。

  好的,接下来改像素和图片编码(这个会玩opencv的,直接用opencv,如:hm=cv2.imread(img,cv2.IMREAD_GRAYSCALE),后面heightmap=cv2.resize(hm,(129,129)),最后cv2.imwrite(“heightmap.png”,heightmap)这样也可以),不想写代码的,就使用gimp软件(sudo apt-get install gimp安装)
在这里插入图片描述  我的图片是1081*1081的,这样,最大只能截取1025*1025了(不懂的,重看一下上面写的图片边的要求)。 鼠标右击菜单–> image --> scale image,如下
在这里插入图片描述  修改成1025*1025之后, 鼠标右击菜单–> file --> export as保存成一个新的png格式高度图(注意compression level选择0,减少地图精度损失)。OK,此时你已经拥有了一张8位正方形满足规定像素的高度图了,下一篇接着讲怎么加载到gazebo上显示出来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GAZEBO构建室外环境地图之创建高度图 的相关文章

随机推荐

  • 【好书推荐】计算机网络:自顶向下方法(第七版)

    人生的美妙之处在于迷上一样东西 人生苦短 xff0c 少做些虚无缥缈的事 刘慈欣 三体 推荐理由 自计算机网络诞生以来 xff0c 经过数十年的发展 xff0c 计算机的体系已经非常庞大 xff0c 同时计算机网络也大大促进了人类社会的发展
  • 【C语言内功心法】__DATE__和__TIME__帮你构建更完善的软件版本信息

    弱小和无知 xff0c 都不是生存的障碍 xff0c 傲慢才是 刘慈欣 三体 何为 DATE 和 TIME xff1f DATE 和 TIME 是 C 语言中的两个内置宏 xff0c 你可以理解为两个字符串值 xff0c 这两个宏用于记录编
  • 【好书推荐】车载以太网权威指南

    20年后 xff0c 会令你失望的不是做过的事 xff0c 而是你没做过的 xff0c 所以解开帆索 xff0c 从安全的港湾出发 xff0c 乘风而行 xff0c 去探索 去梦想 去发现 xff01 Twenty years from n
  • 【荐书】C程序设计语言(第二版)

    在大多数人眼中 xff0c 我是个一事无成 乖僻古怪 令人作呕的人 我毫无社会地位可言 xff0c 也永远不会有 总之 xff0c 我是底层人中的底层人 好吧 xff0c 就算这些看法都完全正确 xff0c 我也想有那么一天 xff0c 通
  • 【推荐书籍】C语言深度解剖

    她想要统治 xff0c 同时又要享受 xff1b 她想要王后的权柄 xff0c 还要女人的自由 xff1b 她伸出玉手 xff0c 抓起王冠 xff0c 就像拿起一件意想不到的礼物 她那时还太年轻 xff0c 不知道所有命运赠送的礼物 xf
  • 【荐书】电子设计从零开始

    人生就是不断的放下 xff0c 但最遗憾的是 xff0c 我们来不及好好告别 少年派的奇幻漂流 推荐理由 如果你想成为一名优秀的嵌入式工程师 xff0c 那么硬件的基础知识是一定要有的 xff0c 因为我们在编程的时候要经常跟硬件打交道 x
  • ROS安装教程(ubuntu18.04+melodic版本)

    1 ROS版本选择 ROS是一个用于编写机器人软件的灵活框架 xff0c 它集成了大量的工具 库 协议 xff0c 提供了类似操作系统所提供的功能 xff0c 包括硬件抽象描述 底层驱动程序管理 公用功能的执行 程序间的消息传递 程序发行包
  • 使用realsense D435i实现机械臂对物体的自动抓取总结

    1 开发环境搭建 Intel RealSense D435环境搭建之安装pyrealsense2 ModuleNotFoundError No module named 39 apt pkg 39 on Ubuntu 秃头小宝贝ec的博客
  • ZOJ - 2313 Chinese Girls' Amusement

    You must have heard that the Chinese culture is quite different from that of Europe or Russia So some Chinese habits see
  • ROS通信机制与TCP

    http blog exbot net archives 1605 http wiki ros org ROS TCPROS
  • 花两天时间写的stm32f103串口BootLoader(有keil工程)

    因为在论坛和官网都没搜到完全合适的BootLoader xff0c 所以自己移植完成了一个BootLoader工程 另外附APP文件工程 xff0c 可做实验 用良心保证 xff0c 看完后可以做一个成功的实验 上位机选用SecureCrt
  • 信号量与消息队列的区别

    出现信号量与消息队列的原因 xff1a 全局变量可以承载通信的内容 xff0c 但接受方任务需要不断检测此全局变量的值 所以产生了信号量与消息队列 信号量 xff1a 可以通知接收方某个事件的发生 xff0c 但无法传递具体事件内容 xff
  • <Unity>局部坐标(localPosition) && 世界坐标(Position)

    局部坐标 amp amp 世界坐标 的区别 1 官方文档介绍1 1 Transform Position1 2 Transform localPosition 2 问题2 1 Position真的不会受到父物体的影响吗 1 官方文档介绍 1
  • ADRC与Matlab/Similink/C++实现

    写在前面 ADRC控制算法主要分为三部分 xff0c 跟踪微分器TD 观测器ESO和状态误差反馈控制器 xff0c 其中控制器分为线性控制器PD和非线性状态误差反馈控制器NLSEF xff0c 观测器分为线性观测器LESO和非线性观测器NL
  • 状态空间方程MATLAB语句

    1 连续系统 xff08 1 xff09 使用系数矩阵获得传递函数 num den 61 ss2tf A B C D xff08 2 xff09 将传递函数写成因式分解 xff08 零极点 xff09 形式 z p k 61 ss2zp A
  • 力扣刷题

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 H指数 题目介绍一 实现思路方法一 xff1a 排序分析复杂度分析 方法二 xff1a 计数分析算法 复杂度分析 二 使用算法1 pyth
  • [markdown语法]公式篇--整理总结了常用的公式语法全

    一 公式部分 前言 行内公式 xff1a 公式 行间公式 xff1a 公式 1 1 常用符号标注 1 1 1 上下标 数学符号实际效果语法向量 a vec a
  • ubuntu mate18.04+树莓派4B+ROS安装详细教程

    前记 最近项目需要 xff0c 需要给树莓派4B 安装Ubuntu mate xff0c 本来是一件很简单的事情 xff0c 因为Ubuntu mate官网已经开始支持树莓派4B了 xff0c 但是实际操作后 xff0c 才发现烧录官方的桌
  • QGC参数表

    QGC parameters 1 Battery Callbration ParametersDetail含义BAT A PER VBattery current per volt A V 每伏电池电流BAT CAPACITYBattery
  • GAZEBO构建室外环境地图之创建高度图

    GAZEBO构建室外环境地图之创建高度图 前言下载真实地形数据处理下载好的高度图 前言 最近在搭建gazebo的室外仿真环境用于室外机器人的室外建图算法研究 xff0c 发现网上说这方面的文章非常少 xff0c 走dem来创建地形的路 xf