【ROS2机器人入门到实战】地图保存与编辑

这篇具有很好参考价值的文章主要介绍了【ROS2机器人入门到实战】地图保存与编辑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

6.地图保存与编辑

写在前面

  1. 当前平台文章汇总地址:ROS2机器人从入门到实战
  2. 获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取
  3. 教程配套机器人开发平台:两驱版| 四驱版
  4. 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn

一、 安装NAV2_MAP_SERVER

sudo apt install ros-$ROS_DISTRO-nav2-map-server

二、 保存地图

ros2 run nav2_map_server map_saver_cli --help

可以看到有下面的用法

Usage:
  map_saver_cli [arguments] [--ros-args ROS remapping args]
 
Arguments:
  -h/--help
  -t <map_topic>
  -f <mapname>
  --occ <threshold_occupied>
  --free <threshold_free>
  --fmt <image_format>
  --mode trinary(default)/scale/raw
 
NOTE: --ros-args should be passed at the end of command line

我们的地图话题为map,文件名字我们用fishbot_map,所以有下面这个这样写的命令行。

ros2 run nav2_map_server map_saver_cli -t map -f fishbot_map

接着我们就可以得到下面的两个文件

.
├── fishbot_map.pgm
└── fishbot_map.yaml
 
0 directories, 2 files

这两个文件就是对当前地图保存下来的文件,其中.pgm是地图的数据文件,.yaml后缀的是地图的描述文件。

三、 地图数据文件.pgm介绍

OccupancyGrid由一个.yaml格式的元数据文件,和.pgm图片格式的地图数据文件组成。从上节课建图后保存的文件也可以看出。

.
├── fishbot_map.pgm
└── fishbot_map.yaml

0 directories, 2 files

栅格地图.pgm,ROS2机器人入门到实战,机器人,ROS2,地图保存

打开上节课建好的地图,观察下,你应该会有几点疑问:

  1. 不是说占据栅格地图每个栅格都有一个概率吗?为什么看不出来?
  2. 立方体内和圆柱体内和墙之外的区域为什么是灰色的?

原因如下:

  1. 一个栅格对应到图片上其实是一个像素,每一个像素的值在0-255之间,所以将像素值和占据率之间的映射即可,而像素值反应到图像上就是颜色的深浅,1.2图对应的像素颜色如下:

栅格地图.pgm,ROS2机器人入门到实战,机器人,ROS2,地图保存

  1. 建图的时候物体内和墙之外的区域机器人并没有探索到,没有数据参考就认为其值是未知的。

四、地图描述文件.yaml介绍

除了fishbot_map.pgm文件外,还有另外一个fishbot_map.yaml的文件,fishbot_map.yaml文件是地图的配置文件,该文件内容如下:

image: fishbot_map.pgm
mode: trinary
resolution: 0.05
origin: [-3.37, -2.88, 0]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.25
  • image:图像名称

  • mode:图像模式,默认为trinary(三进制),还有另外两个可选项scale(缩放的)和raw(原本的值)。

  • resolution:分辨率,一个栅格对应的物理尺寸,单位为m。0.05则表示一个栅格为0.05m

  • origin:地图原点位置,单位是m。

  • negate:是否反转图像

  • cooupied_thresh:占据阈值

  • free_thresh:空闲阈值

如何在地图上找出机器人原点的像素位置?
  1. 图像的像素原点在左下角

  2. 借张图左边的0,0是地图原点,右边的图是图像的像素原点

    栅格地图.pgm,ROS2机器人入门到实战,机器人,ROS2,地图保存

  3. 假如机器人地图原点是[-3.37m, -2.88m],除上分辨率则可得到像素原点[-67.4px,-57.6px]。地图原点在x和y轴分别偏移[-67.4px,-57.6px]就到了像素原点,反过来说,地图原点就在像素原点的[67.4px,57.6px]处。

五、编辑地图

最后我们来说一下如何对地图进行编辑,地图编辑的方法有很多,你可以手动改图片,也可以通过opencv等图像处理库进行图像的去除噪点等操作。

这里小鱼介绍的是手动添加一个地图用PS进行编辑 。

打开网址:https://www.gaituya.com/ps/

接着点击文件打开选择我们的.pgm文件,即可看到下图。

栅格地图.pgm,ROS2机器人入门到实战,机器人,ROS2,地图保存

接着小鱼将下面的正方形给补上。

栅格地图.pgm,ROS2机器人入门到实战,机器人,ROS2,地图保存

保存后在文件选择导出为png格式即可,因为PS并不支持pgm格式的导出,所以我们选择png格式,幸运的是png格式的地图也是被map_server所支持的。

把导出的图片放到map文件夹下,接着我们需要修改下yaml配置文件中图片的后缀。

image: fishbot_map.png
mode: trinary
resolution: 0.05
origin: [-3.37, -2.88, 0]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.25

六、总结

到这里我们总算把地图搞定了,接下来我们一起搞定导航。文章来源地址https://www.toymoban.com/news/detail-779655.html

到了这里,关于【ROS2机器人入门到实战】地图保存与编辑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【ROS2机器人入门到实战】

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 第 1 章 ROS2介绍与安装 基础篇-Linux基础 1.Linux与Ubuntu系统介绍 2.在

    2024年02月16日
    浏览(55)
  • 【ROS2机器人入门到实战】4.ROS2初体验

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 通过几个简单的小例子来体验ROS2软件库和工具集。 游戏内容:很

    2024年02月04日
    浏览(73)
  • 【ROS2机器人入门到实战】3.动手安装ROS2

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 到了这一节,终于可以开始安装ROS2了。安装ROS2本来是一件比较麻

    2024年02月13日
    浏览(59)
  • 【ROS2机器人入门到实战】2.ROS与ROS2对比

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 经过上一节的学习,相信你已经对ROS和ROS2的发展有了一定的了解

    2024年02月04日
    浏览(48)
  • 【ROS2机器人入门到实战】2.ROS2功能包与工作空间

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 大家好,我是小鱼~上一节小鱼给大家介绍了一下节点,运行一个

    2024年01月23日
    浏览(55)
  • 【ROS2机器人入门到实战】Colcon使用进阶

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 基础篇中小鱼带你用gcc编译了ROS2节点。对你来说,使用CMake(GC

    2024年02月02日
    浏览(56)
  • 【ROS2机器人入门到实战】使用API进行导航

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn Navigation 2 对外提供了动作服务用于导航调用。动作通信是 ROS 2 四

    2024年02月03日
    浏览(49)
  • 【ROS2机器人入门到实战】Gazebo仿真环境搭建

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 本节我们要在Gazebo中建立一个测试的环境,其实也很简单,利用

    2024年02月05日
    浏览(62)
  • 【ROS2机器人入门到实战】Cartographer介绍与安装

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn Cartographer是Google开源的一个可跨多个平台和传感器配置以2D和3D形

    2024年02月02日
    浏览(46)
  • 【ROS2机器人入门到实战】话题之RCLCPP实现

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 本节我们学习使用ROS2的RCLCPP客户端库来实现话题通信。 RCLCPP为

    2024年02月07日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包