ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)

这篇具有很好参考价值的文章主要介绍了ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近公司布置给我个小任务,要我创建一个自定义尺寸的室内平面地图。
该地图最后要用于ROS机器人在模拟环境导航的测试。查了下资料发现网上虽然有相关教程,但很少有提到如何画出较精准的地图,所以自己边找方法边记录下过程。

接下来的教程我们以以下地图为例。

地图外框是一个宽1.2m,长2.4m的矩形,地图中央是一个宽0.4m,长1.2m的矩形障碍物。

下图是最后结果。(十分简易,也可以依据需求自己制作复杂的地图)
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)


一、所需工具

1.PS工具(任意版本) , 用于绘制指定尺寸的地图

本来想着直接用Win10自带3D工具画图,但发现不能自定义矩形或者边线的精确长度,后面想用WPS的流程图工具里的矩形框来画图,但发现里面流程图的矩形框边的长度最短只能到20px,不能再进一步缩小,故只好放弃。

(WPS流程图矩形框最小尺寸必须大于20px)
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)

所以最后还是选择了万能的PS工具

2.图片格式转换网站

我的PS版本较老,不能直接转出pgm格式(可能我不太会用),其转出的是pbm格式,故我最后借助网上的一个在线转换工具完成了格式转换。

链接: convertio在线文件格式转换网站

该网站也是厉害,能转换的格式种类很多,速度也不慢,最重要的一点是免费。

二、制作步骤

1.了解Rviz中网格以及像素的尺寸对应关系

首先用Rviz打开任意一张pgm图片。

用上方工具栏的Measure工具测量地图一个Rviz灰色格子的高度对应现实环境中是多少米。

使用方法:单击Measure,鼠标左键点击一次格子顶边,再点击一次格子底边,然后我们就能在Rviz界面的左下角观察到两次点击之间的距离。
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)

可以看到Rviz左下角Reset按键右边显示了Length等字样,即一个Rviz网格的长度是[Length:0.1m],所以一个灰色网格对应现实中0.1m*0.1m的区域。

ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)
(我的pgm图片对应yaml文件默认配置如下)
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)

知道了Rviz网格和现实环境距离的比例后,我们就可以进一步查看网格和图片像素的关系。

首先用Measure工具,以同样方法,测试地图长度和宽度。
以下面回字形地图为例(其实就是我要制作的地图),我测量了左右边的长度为2.6m,刚好对应26个格子(包含边框)。
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)
然后查看我们的pgm图像尺寸
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)

可以看到长度为52px,是我们上边测量的Rviz地图长度的两倍。

至此,我们可以知道

  1. Rviz网格与图片分辨率的关系是1:2的比例关系。
  2. Rviz网格与现实环境距离的关系是1:0.1m的关系

2.根据所需地图大小换算要制作的pgm图像尺寸

得到比例关系后,我们如何自定义所需要的pgm地图呢?

先前我们已经提到过,要长2.4m,宽1.2m的长方形地图

所以需要的Rviz网格区域为:长26格,宽14格 (长宽不是24格和12格的原因是因为要加上边框的粗细1px,所以就是长=24+1+1,宽=12+1+1)

由于Rviz与像素比例1:2,所以我们就能知道我们要的图像分辨率为(H:26*2px,W:14*2px)。
故我们在PS工具中要创建的画布尺寸是(H:52px,W:28px)

在PS工具中(CTRL+N)快捷创建画布,画布大小H:52px,W:28px
在画布中画自己计算好的框大小就行
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)
记得在上面工具栏把描边改为黑色
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)
然后自行创作后导出图片即可
ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)

ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)

总结

以上就是制作自定义地图的过程,比较简略,理清好像素和格子比例关系就好制作了。文章来源地址https://www.toymoban.com/news/detail-432757.html

到了这里,关于ROS在Rviz中创建自己的自定义地图(pgm地图和自定义尺寸)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 8. 《自动驾驶与机器人中的SLAM技术》基于保存的自定义NDT地图文件进行自动驾驶车辆的激光定位

    目录 1. 为 NDT 设计一个匹配度评估指标,利用该指标可以判断 NDT 匹配的好坏。 2. 利用第 1 题的指标,修改程序,实现 mapping 部分的回环检测。 3. 将建图结果导出为 NDT map,即将 NDT 体素内的均值和协方差都存储成文件。 4. 实现基于 NDT map 的激光定位。根据车辆实时位姿,

    2024年02月02日
    浏览(38)
  • 如何使用torch.nn.utils.prune稀疏神经网络,以及如何扩展它以实现自己的自定义剪裁技术

    最新的深度学习技术依赖于难以部署的过度参数化模型。 相反,已知生物神经网络使用有效的稀疏连通性。 为了减少内存,电池和硬件消耗,同时又不牺牲精度,在设备上部署轻量级模型并通过私有设备上计算来确保私密性,确定通过减少模型中的参数数量来压缩模型的最

    2024年02月12日
    浏览(43)
  • 实现矩阵地图与rviz地图重合

    此方法矩形地图可能会与rviz地图不重合,通过改变偏移量x_offset,y_offset接近地图 可以将矩阵地图的坐标转换为rviz地图坐标,比较两者差异使地图重合

    2024年02月12日
    浏览(31)
  • ROS之rviz文件的加载和保存

    最近将ORB-SLAM3中的 pangolin 可视化功能给搞掉了,换成了基于 rviz 的可视化显示,摆脱程度对 pangolin 库的依赖,为了方便每次在启动时程序自动打开 rviz 可视化界面,需要在第一次运行程序时将 rviz 文件保存下来,然后把 rviz 文件路径写在 launch 文件中,在启动时进行加载。

    2024年02月09日
    浏览(37)
  • ROS rviz和gazebo联合仿真报错

    运行launch文件后,rviz可以显示模型,但是只能plan不能execute,同时gazebo中没有模型,终端报错很多,如下 一、 Error [parser.cc:406] parse as old deprecated model file failed. 二、 [ERROR] [1672799068.164709, 10.219000]: Spawn service failed. Exiting. 三、 [spawn_gazebo_model-4] process has died [pid 15463, exit code 1,

    2024年02月10日
    浏览(46)
  • ROS仿真机器人实现Rviz轨迹显示

    一、实现效果 红色为行驶过的轨迹 二、实现方法 1、导航包中创建.cpp文件,并将以下代码复制进去 2、CMakeLists当中添加可执行文件及链接库 3、启动导航的launch文件中添加启动该cpp文件 三、代码

    2024年02月15日
    浏览(52)
  • 【ROS 2 基础-常用工具】-7 Rviz仿真机器人

     所有内容请查看:博客学习目录_Howe_xixi的博客-CSDN博客

    2024年02月08日
    浏览(48)
  • ROS安装与Rviz的摄像头视频采集与标定

         ROS 是一个适用于机器人编程的框架,具有分布式、点对点,支持多种语言,组件化工具包 丰富,免费且开源的特点,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。 ROS 虽然叫做操作系统,但并非 Windows、Mac 那样通常意义的操作系统,它只是

    2023年04月11日
    浏览(62)
  • ROS中RVIZ坐标系及TF坐标系转换

    RVIZ坐标系 X轴--红色 Y轴---绿色 Z轴---蓝色 YAW(偏航角)绕Z轴旋转 PITCH(俯仰角)绕Y轴旋转 ROLL(滚转角)绕X轴旋转 符合右手坐标系原则 利用TF进行坐标系转换 采用以下指令进行转换,其中frame_id child_frame_id 为两个坐标系的名称,通过以下命令可以确定两者的关系 通过在RVIZ中更改“

    2024年02月11日
    浏览(36)
  • 【Ubuntu】Docker中配置ROS并可视化Rviz及Gazebo

    由于 ros 常与本地环境冲突,为了不影响大量的本地项目,因此选择在 docker 中搭建 ros 环境,从而与本地环境隔离,但会引入 docker 中无法可视化的问题,而 ros 项目常需要与 rviz 及 gazebo 配合开发,以下提供可视化的解决方案 拉取镜像文件 ros安装是个费时费力费脑且看脸的

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包