Viobot回环使用

news2024/11/13 15:06:33

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的词袋地图,当新的关键帧能够匹配上词袋里面的关键帧时,则会触发回环。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/959744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分布式搜索引擎elasticsearch】

文章目录 1.elasticsearch基础索引和映射索引库操作索引库操作总结 文档操作文档操作总结 RestAPIRestClient操作文档 1.elasticsearch基础 什么是elasticsearch? 一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能 什么是…

python“梦寻”京东商品评论数据接口(含代码示例)

要通过京东的API获取商品详情评论数据,您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例,展示如何通过京东开放平台API获取商品详情评论数据: 首先,确保您已注册成为京东开放平台的开发者&#xf…

微服务-gateway基本使用

文章目录 一、前言二、gateway网关1、什么是微服务网关?2、微服务架构下网关的重要性2.1、没有网关2.2、有网关 3、gateway的功能4、gateway实战4.1、依赖配置4.2、添加网关配置4.3、添加网关启动类4.4、查看项目是否启动成功4.5、验证路由配置是否正确 三、总结 一…

全网首发!大众宝来高尔夫polo领驭迈腾帕萨特奥迪A4A6B6B7等老车机增加带蓝牙控制的AUX解码模块,支持小程序原车按钮控制,支持外接高品质蓝牙模块

文章目录 前言1、设计指标2、PCB设计3、程序设计4、调试4.1蓝牙控制AUX解码板4.2自定义车机按钮控制其他高品质蓝牙音频模块4.3小程序使用 5、模块与车机连接方法6、结语 前言 ​ 之前写过四篇关于车机增加音频输入的方法。 1、07宝来经典车机CD收音机(RC668&…

11.Redis数据库管理命令

Redis数据库管理命令 数据库管理selectdbsizeflushall / flushdb 数据库管理 redis 中的 database 是现成的,咱们用户不能创建新的数据库,也不能删除已有的数据库~ 默认 redis 给我们提供了 16 个数据库,名字为 数字0 到数字15 这16个数据库…

【深度学习】ChatGPT

本文基于Andrej Karpathy(OpenAI 联合创始人,曾担任特斯拉的人工智能和自动驾驶视觉主管)在Microsoft Build 2023上的演讲整理而成(完整的视频在文末,直接拖到文章底部),主要分为2大部分: 1.如何训练GPT(可…

实战系列(一)| Dubbo和Spring Cloud的区别,包含代码详解

目录 1. 概述2. 核心功能3. 代码示例4. 适用场景 Dubbo 和 Spring Cloud 都是微服务架构中的重要框架,但它们的定位和关注点不同。Dubbo 是阿里巴巴开源的一个高性能、轻量级的 RPC 框架,主要用于构建微服务之间的服务治理。而 Spring Cloud 是基于 Spri…

3D开发工具HOOPS Publish如何快速创建交互式3D PDF文档?

HOOPS Publish是一款功能强大的SDK,可以创作丰富的工程数据并将模型文件导出为各种行业标准格式,包括PDF、STEP、JT和3MF。HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:2014),它为装配树、拓扑和几何、产品制造信息和视…

基于grpc从零开始搭建一个准生产分布式应用(6) - 02 - MapStruct数据转换

一、基础转换 1.1、基础类型 基本类型、包装类、BigDecimal转String默认使用DecimalFormat格式化,Mapping#numberFormat可以指定格式,Date转String默认使用SimpleDateFormat格式化,如默认格式不符要求,可以用,Mapping…

华为OD机试 - 字符串分割(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路1、根据题意:2、例如:3、解题思路: 五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《…

温习下git同步本地代码至远程仓库

本地服务推远程git仓库: 1、远程git仓库或者云效服务创建服务名生产 ssh代码路径 2、进入本地项目文件夹git init 初始化git仓库 3、git remote add origin ssh(远程origin路径) 4、git add . 添加当前文件至暂存区 5、git commit -m "Initial commit"提交…

stable diffusion实践操作-安装

本文专门开一节写安装相关的内容,在看之前,可以同步关注: stable diffusion实践操作 正文 1、 秋葉一键安装包 github安装:https://github.com/AUTOMATIC1111/stable-diffusion-webui 秋叶安装:[b站教程和下载安装包…

按钮控件之1---QPushButton 标准按钮/普通按钮控件

1、父类QAbstractButton 2、QPushButton按钮,是Qt常用的控件之一,提供普通的按钮功能。 通过信号槽机制接收触发信号并执行对应动作。3、创建QPushButton 它有三个构造函数: // 空对象 QPushButton(QWidget *parent nullptr); // 指定QPus…

【Dots之008】TransformUsageFlags基础知识

一、基础介绍 在Baker中进行GetEntity对象的时候,需要填入TransformUsageFlags类型的参数;针对不同类型的参数,看看GameObject所转换后的IComponentData有什么差异; 演示代码: public class CubeAuthoring : MonoBe…

ITIL 4—创建、交付和支持—利用信息和技术创建、交付和支持服务

3.1 集成和数据共享 服务设计通常依赖于多个系统之间的集成(integration),在这种情况下,理解集成建模的不同层次相当重要。例如: 应用程序级 应用程序之间是相互交互的。企业级 已集成的应用程序共同提供价值。业务…

计算机/嵌入式入门教材资料

背景 自学计算机,首先我们要找到好的教材、教程,可以事半功倍。 目前,互联网上计算机资源较多,难的不再是寻找资源,而是筛选出质量比较高的资源。 基于笔者经验,推荐以下资源。 书籍 传统的书籍是纸质版…

云存储:实现数据备份与恢复的创新方法

文章目录 云存储的基本概念数据备份的创新方法自动化备份策略增量备份和版本控制多地点备份 数据恢复的创新方法快速数据恢复弹性扩展性数据验证和一致性 案例分析:AWS S3自动化备份策略增量备份和版本控制多地点备份快速数据恢复数据验证和一致性 结论 &#x1f38…

不会还有人排长队吃饭吧?用这招,快速搞定!

随着现代企业对员工福利和工作环境的关注不断增加,企业智慧食堂已经成为了企业管理的重要组成部分。 智慧收银系统的出现不仅使员工用餐变得更加便捷和高效,还提供了一种强大的管理工具,有助于企业更好地理解员工消费行为、优化食堂运营&…

安卓10创建文件夹失败

最近在做拍照录像功能,已经有了文件读写权限,却发现在9.0手机上正常使用,但是在安卓12系统上根本没有创建文件夹。经过研究发现,创建名称为“DCIM”的文件夹可以,别的又都不行。而且是getExternalStorageDirectory和ge…

史上最细 B+Tree 解读

前言: BTree 经过几十年的发展已经成为 OLTP 数据库的首选索引结构,深入分析开始前先介绍一些书籍给大家,BTree 的演进非常的复杂,有很多的大牛论文都做出了很关键的指导性作用,就算当前还是在不断探索优化的可能&…