文章目录
- 前言
- 一、rviz_satellite
- 二、mapviz
前言
老是看到论文中有将地图映射到谷歌地图上的图,实在是泰裤辣!!(武汉大学)
搜索了很久,发现有两种可视化软件,分别为rviz_satellite和mapviz。本文完全运行的是rviz_satellite
rviz_satellite工具网站:
https://github.com/nobleo/rviz_satellite
mapviz工具网站:
https://github.com/swri-robotics/mapviz
一、rviz_satellite
1、从github上git clone下来并catkin_make
2、然后打开rviz_satellite/launch文件夹中的demo.gps
这个消息为ros的sensor_msgs::NavSatFix
类型消息,修改为你数据集的起始经纬度。
3、运行demo.launch,修改AerialMapDisplay
-
Topic
是GPS测量的主题。该Topic
字段必须指向 的发布者sensor_msgs/NavSatFix
。请注意,rviz_satellite 在机器人移出中心块之前不会重新加载块(如果启用了动态重新加载)。 -
Robot frame
应该是从机器人位置到固定框架的 TF。 -
Dynamically reload
当机器人移出中心块时,将导致图像重新加载。这仅在 TF 正确指定机器人框架时才有效。 -
Alpha
只是显示透明度。 -
Draw Under
将使地图显示在所有其他几何体下方。 -
Zoom
是地图的缩放级别。推荐值为 16-19,因为任何更小的值都是非常低的分辨率。22 是当前最大值。 -
Blocks
要加载的相邻块数。rviz_satellite 将加载中心块,以及中心周围的许多块。8 是当前最大值。 -
Frame Convention
是地图 X/Y 轴的约定。默认是将 XYZ 映射到 ENU,这是 libGeographic 和ROS的默认约定。 -
Object URI
必须提供Object URI
从中加载卫星图像的(或 URL)。rviz_satellite 目前仅支持瓷砖名称的OpenStreetMap约定。
我在这里整理了 URI 的两种形式:
https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png # 最简陋
https://tile.openstreetmap.org/{z}/{x}/{y}.png # 稍好点
注意!如果你想使用效果很好的卫星图,需要首先请求某些地图软件的API访问令牌。请参阅各自的服务条款和版权条款。
以下为readme中的4种需要访问令牌的URI
- OpenStreetMap: https://tile.openstreetmap.org/{z}/{x}/{y}.png
- TomTom: https://api.tomtom.com/map/1/tile/basic/main/{z}/{x}/{y}.png?tileSize=512&key=[TOKEN]
- Mapbox: https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/256/{z}/{x}/{y}?access_token=[TOKEN]
- GoogleMaps: https://maps.googleapis.com/maps/api/staticmap?maptype=satellite¢er={lat},{lon}&zoom={z}&size=256x256&key=[TOKEN]
中标记{z}
、{x}
、{y}
分别代表缩放级别、x 坐标和 y 坐标。在发出 HTTP 请求时,这些将自动被 rviz_satellite 替换。
4、最后一步,运行你的SLAM算法,将地图添加到rviz上即可,效果如下:
“重庆门大学”
二、mapviz
参考博客
1、从github上git clone下来并catkin_make
2、修改参数配置
3、相应的工程目录下运行launch文件,随后点击左下角add,依次添加tile_map和navsat。