ROS下如何将GPS数据在卫星地图显示(两种开源方法)

自己知道的两种方法,分别基于rviz_satellite和mapviz,实测下来Mapviz在清晰度和准确度上效果感觉更好一些,大家可以都试下,有更好的方法可以留言大家讨论下~

一、rviz_satellite

1. 首先下载相应代码编译:

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/nobleo/rviz_satellite
git clone https://github.com/chengwei0427/simple_gnss_localizer.git
cd ..
catkin_make

2. 编译成功后,修改相应的gps话题,并配置origin gps的位置

1. 修改run.launch中的ori_lat、ori_lon、ori_alt值为你自己数据包第一帧GPS数据
2. 修改path_client_copy.py中的ref_point = [31.6128525822,120.785404263,11.8973]为你自己数据包第一帧GPS数据,同步骤1相同。
3. 修改run.launch中的gps话题:

3. 使用:

1. roslaunch gnss_localizer run.launch
2. rosbag play your-bag.bag --clock

4. 放一张运行结果图,我这边跑的与实际有一定位置的偏移,不知道是否与Object URI有关,大家清楚原因的请告知下。

ROS下如何将GPS数据在卫星地图显示(两种开源方法)_第1张图片

二、mapviz

 可视化采用的是Mapviz,采用的地图API是天地图API (tianditu.gov.cn),采用其他地图亦可,具体使用方法如下:

1. 安装mapviz

a. ros melodic已经自带了mapviz,所以可以直接命令安装。

sudo apt-get install ros-melodic-mapviz

b. 源码安装

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/swri-robotics/mapviz.git
sudo apt-get install ros-$ROS_DISTRO-mapviz ros-$ROS_DISTRO-mapviz-plugins ros-$ROS_DISTRO-tile-map ros-$ROS_DISTRO-multires-image
cd ..
catkin_make

2. 修改参数配置

ROS下如何将GPS数据在卫星地图显示(两种开源方法)_第2张图片

 3. 申请天地图API KEY用户系统,申请时应用类型选择“服务端”,提交。

ROS下如何将GPS数据在卫星地图显示(两种开源方法)_第3张图片

 4. 对天地图API (tianditu.gov.cn)中API的格式进行修改,原格式如下:

http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={x}&TILECOL={y}&tk=您的密钥

由于在mapviz的tile_map 中,添加的Base URL 格式为

http://tile.stamen.com/terrain/{level}/{x}/{y}.png     #   level  x  y  分别表示  高经纬

所以将天地图的API中的z变量更改为level,修改后的格式为:

http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={x}&TILECOL={y}&tk=您的密钥

5. 使用:

相应的工程目录下运行launch文件,随后点击左下角add,依次添加tile_map和navsat。

roslaunch mapviz mapviz.launch

在tile_map栏修改相应的base URL和Max Zoom,在navsat栏修改相应的Topic

ROS下如何将GPS数据在卫星地图显示(两种开源方法)_第4张图片

 实际运行效果图如下,可以看出同样的场景效果比rviz_satellite的清晰度和准确度要更好些。

 三、参考:

mapviz - ROS Wiki

你可能感兴趣的:(激光SLAM,机器人,自动驾驶)