【Ubuntu20.04下mapviz的安装与使用】

mapviz简介

Mapviz 是一款高度可定制的基于 ROS 的可视化工具,专注于大规模 2D 数据,并带有插件系统,具有极高的可扩展性。

mapviz安装

  1. 下载mapviz
git clone https://github.com/swri-robotics/mapviz.git
  1. 将功能包放在ros工作空间(catkin_ws为例)并安装依赖
cd  catkin_ws/src
sudo apt-get install ros-$ROS_DISTRO-mapviz ros-$ROS_DISTRO-mapviz-plugins ros-$ROS_DISTRO-tile-map ros-$ROS_DISTRO-multires-image
  1. 使用rosdep安装依赖
rosdep install --from-paths src --ignore-src
  1. 编译
catkin_make

可能的报错及解决方法

  • Qt相关报错 Cannot mix incompatible Qt library (version 0x50201) with this library (version 0x5060或者一堆除0、未定义变量之类的错误
    报错原因:anaconda和ros自带的Qt版本冲突
    查看当前Qt版本
qmake -v
QMake version 3.1
Using Qt version 5.9.7 in /home/wdy/anaconda3/lib

查看系统Qt版本

cd usr/lib/qt5/bin
./qmake -v
QMake version 3.1
Using Qt version 5.12.8 in /usr/lib/x86_64-linux-gnu

解决方法:在CMakeLists.txt中指定Qt相关库的导包路径
具体包括:

  • catkin_ws/src/mapviz-master/mapviz/CMakeLists.txt

    find_package(Qt5Concurrent REQUIRED)
    find_package(Qt5Core REQUIRED)
    find_package(Qt5Gui REQUIRED)
    find_package(Qt5OpenGL REQUIRED)
    find_package(Qt5Widgets REQUIRED)
    前设定路径
    路径为对应的 PackageNameConfig.cmake
    输入命令 sudo find / -name Qt5CoreConfig.cmake 或者 直接使用文件搜索功能
  set(Qt5Concurrent_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5Concurrent")
  set(Qt5Core_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5Core")
  set(Qt5Gui_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui")
  set(Qt5OpenGL_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5OpenGL")
  set(Qt5Widgets_DIR "/usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets")
注:我采用/usr下的Qt,因为我使用anaconda下的Qt在编译成功后无法加入tile_map
以下几个文件中类似操作,注意包名对应
catkin_ws/src/mapviz-master/mapviz_plugins/CMakeLists.txt
catkin_ws/src/mapviz-master/multires_image/CMakeLists.txt
catkin_ws/src/mapviz-master/tile_map/CMakeLists.txt
  • OpenCV相关报错
    与opencv发生冲突** opencv_imgcodecs3.so.3.3.1: undefined reference to `TIFFReadDirectory@LIBTIFF**
    参考:
    https://blog.csdn.net/hongge_smile/article/details/105656702

mapviz使用

  1. 修改配置文件
    修改mapviz.launch文件中经纬度信息(修改后将加载该地理坐标为中心的地图)和GPS数据包话题名称(可以看到我的为/gps/fix)
    在这里插入图片描述
  2. 启动
    安装成功后启动roslaunch文件
roslaunch mapviz mapviz.launch

请添加图片描述
3. 申请地图的API key
天地图为例,首次登录需要注册一个账号,然后在控制台创建应用并申请密钥。
在这里插入图片描述
获得密钥并填入下一步中。
4. 修改Target Frame名称为origin 并设置地图的base URL为:

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=密钥

根据需求可选择矢量图等各种地图类型
在这里插入图片描述
BUT
不知为何我申请的密钥显示出来会是这个亚子。。。
请添加图片描述在网上搜索一番参考了这位大佬的密钥

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={y}&TILECOL={x}&tk=375f936acc7c22013f7b7b96559094a7

请添加图片描述地图显示效果
5. 加入NavSat等话题订阅显示模块,并修改对应的话题名称BufferSize,由于我录制的GPS数据的rosbag包含约5000条消息,所以我将BufferSize设置为6000。也可转为path、odometry等ros消息类型发布订阅。
在这里插入图片描述
6. 播放rosbag,获得最终显示结果
请添加图片描述其中红色线为GPS轨迹

mapviz插件功能

mapviz插件说明
在这里插入图片描述

tile_map(必备)

将地理参考的多分辨率图像图块地图投影到场景中。地图图块可以从必应地图或任何 WMTS 图块服务获取。提供访问Stamen设计的预定义地图服务,包括地形、水彩和碳粉地图,但国内都用不了。还可以指定自定义或本地 WMTS 地图服务器(比如本文使用的天地图,或者谷歌地图等)。将地图数据缓存到磁盘,从而离线使用部分应用。

坐标拾取器Coordinate Picker

获取地图点在不同坐标系下的坐标
在这里插入图片描述

画折线Draw Polygon

在地图上画折线,且可以发布相应话题
在这里插入图片描述

GPS

将 gps_common::GPSFix 类型的消息投影到地图上

GPS轨迹NavSat

将 sensor_msgs::NavSat 类型的消息投影到地图上(见前述结果图)

图像Image

在地图上显示sensor_msgs::Image类型的图像,这不就可以做SLAM同时展示场景图片、GPS轨迹了~
在这里插入图片描述 同时显示场景和GPS轨迹(红色曲线)

激光雷达点云LaserScan

将sensor_msgs::LaserScan类型点云投影到地图上,但常用的是sensor_msgs::PointCloud2,所以需要转换一下话题发布的消息类型

激光雷达点云Pointcloud2

将sensor_msgs::Pointcloud2 类型点云投影到地图上,加上tf变换后,激光SLAM的点云就可以投影到地图上了。

TODO
将激光SLAM构建的点云投影到地图上

数字、字符显示Float、String

将数字、字符串信息显示到地图上了。

路径、里程计、位姿显示path、odometry、pose

参考链接

https://blog.csdn.net/weixin_41281151/article/details/114046438

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值