自己知道的两种方法,分别基于rviz_satellite和mapviz,实测下来Mapviz在清晰度和准确度上效果感觉更好一些,大家可以都试下,有更好的方法可以留言大家讨论下~
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有关,大家清楚原因的请告知下。
可视化采用的是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. 修改参数配置
3. 申请天地图API KEY用户系统,申请时应用类型选择“服务端”,提交。
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
实际运行效果图如下,可以看出同样的场景效果比rviz_satellite的清晰度和准确度要更好些。
mapviz - ROS Wiki