maplab运行之ROS+Rviz

2018/01/20 15:24
阅读数 133

首先,我们要尊重原作者的劳动成果,给出原作者网页

下载数据集 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(同上),这里图就不贴了撒~

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部