maplab运行之ROS+Rviz
Posted 花心葬空魂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maplab运行之ROS+Rviz相关的知识,希望对你有一定的参考价值。
首先,我们要尊重原作者的劳动成果,给出原作者网页。
下载数据集 MH_01_easy.bag,原作者网页提供了链接,这里直接给出入口。
上篇随笔创建了工程 maplab_ws,并编译了maplab源码。把下载好的数据集拷到 maplab_ws 下备用。
打开命令行运行ros:
roscore
新开一个命令行窗口并进入到 maplab_ws,执行:
source devel/setup.bash
rosrun rovioli tutorial_euroc save_folder MH_01_easy.bag
可以看到输出视频,同时在 maplab_ws 下生成 save_folder 文件夹,里面的文件结构详见原作者网页。
视频大概是这样纸的:
1、从生成的地图数据中生成图
刚才的程序运行完后,在 save_folder/vi_map 文件夹下会有10个 vertices 包。
maplab 控制台的基本操作见这里,对地图的操作在这里(不得不说原作者们提供全套服务这点实在满满的人道主义精神啊,再看看国内。。。哎,不说了。当然这也是我写这篇随笔的原因之一咯)。
打开 maplab 控制台:
rosrun maplab_console maplab_console
它是这样的:
加载地图(就是生成的 save_folder 下的东西):
load --map_folder ~/maplab_ws/save_folder
然后就成了这样:
然后我们要在Rviz中显示出来 so ~~~
新开命令行窗口,输入:
rosrun rviz rviz
它大概长酱紫:
接着在 maplab 控制台中输入显示命令:
visualize
咦?没反应诶!Rviz里什么也没有是不是?
别担心,这是因为Rviz里面还要设置一下,你可以先看一下Rviz的官方教程。
先添加一个maker:
topic选择 /vi_map_edges/viwls,这里的 topic 就是运行ROS时的topic,可以通过指令 rostopic list 查看,建议还是看一下ROS的关于topic的官方教程:
然后,是不是出来东西了呢
再添加一个点云 pointcloud2,是不是很漂亮,莫名想起了小时候躺房顶上看星星,,,,,:
2、运行数据集时生成图
前面生成的图是我们利用运行完程序之后的地图数据生成的,现在我们要边加载下载的数据集边生成图。
2.1 rosbag 形式运行
把前面打开的 maplab 控制台关掉,把 Rviz 关掉,提示你是否保存,这个随意,如果保存的话,下次打开会自动加载上次的东西。
运行数据集(当然是在 /maplab_ws/ 下运行),如果刚才不小心关掉了窗口,重新进入/maplab_ws/要记得先source一下setup脚本,忘了的看一哈上篇的喵:
rosrun rovioli tutorial_euroc save_folder MH_01_easy.bag
另开窗口运行 Rviz:
rosrun rviz rviz
在 Rviz 中添加 mark,topic 选择 /vi_map_edges/viwls,可以看到实时增长的轨迹,动态的噢!
添加 T_G_I 和 T_G_M pose(在 by topic 下):
然后可以在轨迹上看到箭头:
2.2 rostopic 形式运行
跟rosbag的区别是,运行rovioli时的脚本变了,至于二者到底有什么本质区别,我也不是太清楚,我觉得rosbag使用数据集实现的“伪实时”,但假如你有一个真的机器人,应该就需要rostopic形式运行了,当然这里的rostopic也是用的数据集,不过不同于rosbag直接运行数据集,而是先运行程序,再加载数据集来代替真实机器人的输入..........没看懂得话就算了,毕竟我也不知所云了。。。。。。
运行:
rosrun rovioli tutorial_euroc_live save_folder
新开窗口进入 /maplab_ws,先 source setup脚本,然后执行:
rosbag play MH_01_easy.bag
新开窗口,打开Rviz:
rosrun rviz rviz
添加mark和T_G_I、T_G_M pose(同上),这里图就不贴了撒~
以上是关于maplab运行之ROS+Rviz的主要内容,如果未能解决你的问题,请参考以下文章