Viobot回环使用

Viobot回环是使用词袋匹配的方式,,当新的关键帧能够匹配词袋里面记录过的关键帧时,触发回环,将设备的当前位姿拉到历史位姿。

一.上位机操作

词袋使用方法

连接上设备,先停止算法。UI上点 设置 选到 loop 选项卡:

1.记录词袋

注意加载词袋地图的勾不要勾上,勾上表示加载之前的词袋地图。

注意将 保存词袋地图的路径 设置为自己想要保存的路径(设备上,不是用户电脑)

(1)手动拍摄

将添加关键帧设置为手动,点确定

启动算法。

初始化完成后,将相机移动到需要拍摄的位置,点击UI上的 添加关键帧 或者执行例程里面的添加关键帧操作。

当完成所有拍摄点拍摄后,点击UI的 保存BOW 或者执行例程里面的保存关键帧操作。

(2)自动拍摄

将添加关键帧设置为自动,点确定。

启动算法

初始化完成后,将相机移动到需要拍摄的位置,点击UI上的 添加关键帧 或者执行例程里面的添加关键帧操作。

当完成所有拍摄点拍摄后,点击UI的 保存BOW 或者执行例程里面的保存关键帧操作。

2.加载词袋信息

关闭算法

将配置 项加载词袋地图 的勾勾上。

添加关键帧 设置为自动,点击确定。

启动算法,会自动加载保存在 保存词袋地图的路径 的词袋地图,当新的关键帧能够匹配上词袋里面的关键帧时,则会触发回环。

二.ROS操作

1.修改配置文件

修改设备里面的"/home/PRR/Viobot/install/share/stereo2/config/stereo2.yaml"这个文件:

add_keyframe_mode为1则是自动添加关键帧,0则为手动添加关键帧。修改文件并保存即可。

2.记录词袋

开启算法,记录词袋地图。自动添加关键帧模式下也能够手动继续添加关键帧。

在记录词袋的时候开启我们的pr_loop_action_demo的程序,并且输入数字1,添加关键帧,这个demo只是一次执行的,所以如果需要多次添加关键帧就需要多次开启程序,当然,用户也可以自行将程序改成自己的用输入键值多次调用的方式。输入数字1则为添加关键帧。

当记录的词袋足够了之后再次开启程序,输入数字2即可保存。

当你没有停止算法或者重启算法的时候,再次添加关键帧或者保存词袋都是再原有的词袋地图上面继续添加的。

3.加载词袋

停止算法。

修改设备里面的"/home/PRR/Viobot/install/share/stereo2/config/stereo2.yaml"这个文件:

将load_previous_pose_graph改为true,保存文件。

启动算法会自动加载保存在pose_graph_save_path的词袋地图,当新的关键帧能够匹配上词袋里面的关键帧时,则会触发回环。

三.http操作

1.修改配置文件

修改设备里面的"/home/PRR/Viobot/install/share/stereo2/config/stereo2.yaml"这个文件:

add_keyframe_mode为1则是自动添加关键帧,0则为手动添加关键帧。修改文件并保存即可。

2.记录词袋

开启算法,记录词袋地图。自动添加关键帧模式下也能够手动继续添加关键帧。

当你没有停止算法或者重启算法的时候,再次添加关键帧或者保存词袋都是再原有的词袋地图上面继续添加的。

3.加载词袋

停止算法。

修改设备里面的"/home/PRR/Viobot/install/share/stereo2/config/stereo2.yaml"这个文件:

将load_previous_pose_graph改为true,保存文件。

启动算法会自动加载保存在pose_graph_save_path的词袋地图,当新的关键帧能够匹配上词袋里面的关键帧时,则会触发回环。

相关推荐
南境十里·墨染春水3 小时前
C++传记(面向对象)虚析构函数 纯虚函数 抽象类 final、override关键字
开发语言·c++·笔记·算法
2301_797172753 小时前
基于C++的游戏引擎开发
开发语言·c++·算法
有为少年4 小时前
告别“唯语料论”:用合成抽象数据为大模型开智
人工智能·深度学习·神经网络·算法·机器学习·大模型·预训练
比昨天多敲两行4 小时前
C++ 二叉搜索树
开发语言·c++·算法
Season4504 小时前
C++11之正则表达式使用指南--[正则表达式介绍]|[regex的常用函数等介绍]
c++·算法·正则表达式
Tisfy5 小时前
LeetCode 2839.判断通过操作能否让字符串相等 I:if-else(两两判断)
算法·leetcode·字符串·题解
问好眼5 小时前
《算法竞赛进阶指南》0x04 二分-1.最佳牛围栏
数据结构·c++·算法·二分·信息学奥赛
会编程的土豆5 小时前
【数据结构与算法】优先队列
数据结构·算法
minji...7 小时前
Linux 进程信号(二)信号的保存,sigset_t,sigprocmask,sigpending
linux·运维·服务器·网络·数据结构·c++·算法
罗湖老棍子7 小时前
最大数(信息学奥赛一本通- P1549)(洛谷-P1198)
数据结构·算法·线段树·单点修改 区间求最大值