Viobot基本功能使用及介绍
设备拿到手当然是要先试一下效果的,这部分可以参考本专栏的第一篇 Viobot开机指南。
接下来我们就从UI开始熟悉这个产品吧!

1.状态
设备上电会自动运行它的程序,开启了一个服务器,上位机通过连接这个服务器连接到设备,连接成功后就如上图所示,状态栏会显示已连接。
此时它的系统的算法状态是停止状态的,这个系统状态有七个状态:
1)停止
2)mono1初始化中
3)mono1运行中
4)stereo1初始化中
5)stereo1运行中
6)stereo2初始化中
7)stereo2运行中
对应着SDK上面的定义:

2.点云

上位机有点云显示类型的选择,分别是stereo、tof和rdf三种
stereo点云是算法的原生输出点云,也就是对应的ROS话题/pr_loop/points
rdf点云对应滤波后的点云,对应的ROS话题/pr_loop/points_rdf ,此功能基础版是没有的!
tof点云只有在TOF版本开启TOF传感器并且stereo2算法启动了TOF建图才会有输出,对应的ROS 话题为/pr_loop/tof_points
还可以设置上位机接收到的点云的显示大小,以及点云显示的范围(主要是Z轴上面的范围),当点云的Z坐标大于最高值或者小于最小值的时候,点云就不会显示在上位机界面。
3.操作面板

1)算法选择
stereo2所在的框可以点击右边的倒三角选择启动的算法。
算法包含了stereo2、stereo1和mono1
mono1是一个单目的测试例程,需要激励才能完成初始化,用于测试。stereo1是一个双目的测试例程,启动能够直接完成初始化,但是效果一般,已被弃用。stereo2是我们设备自带的主SLAM算法,会长期维护并更新升级。
2)算法控制
算法控制包含了六个按键

启动:点击即可启动选中的算法,启动后上面的系统状态会更新到相应的状态,启动按钮会变成停 止,点击停止即可停止算法。重置:重置设备当前位姿,但不清除词袋信息,当设备触发词袋回环时,仍可重定位到之前词袋记 录的位姿。
算法重启:重启整个算法,并清除之前记录并加载在算法的词袋信息,词袋会重新开始记录。
清除轨迹:清除UI当前显示的轨迹和点云。词袋地图:加载词袋地图时,在UI上面显示关键帧位姿。添加关键帧 :手动添加一帧关键帧到词袋里面。保存BOW :将本次运行生成的词袋地图保存到指定路径。
3)其他控制

关闭视频 :关闭UI视频流显示。关机 :关闭设备的程序,用于程序升级。打开:打开设备的文件服务器,用于修改配置,查看保存的文件等。设备重启:点击按钮后,整个设备系统会直接重启,用于一些配置向修改生效。TOF ON(OFF) :TOF手动开关(TOF版可用)LED ON(OFF) :补光灯手动开关(补光灯版可用)坐标 :设备当前位姿显示。全局一致:根据运行过程的关键帧重新生成一个完整的点云地图,加入滤波和修正。保存PCD:将全局一致生成的点云保存PCD。
4.设置页面
点击设置页面,会弹出一个小窗口,对应五个标签栏
1)network
设置对应网络的ip、子网掩码、网关,配置后点确定,设备重启即可生效。

2)viobot

此页面设置需要重启设备才能生效!
左边补光灯和TOF的勾勾上表示设备上电启动时会自动开启补光灯/TOF,如果需要手动开启可以点击UI上面那两个独立按键。imu频率:默认200Hz,现最高支持400Hz,没有特殊需求一般不建议修改。image频率:相机帧率,基础版兼顾开销最好的是15fps,PRO版25fps。自动曝光:前面的勾勾上则开启自动曝光,根据下面设置的常规亮度来调节相机成像亮度,如果不需 要自动曝光,则将勾去掉,单独设置下面的曝光时间。自动增益:前面的勾勾上则开启自动增益,该功能在场景特别暗的时候好用,但在一般场景下,开启 自动增益可能会影响算法精度。曝光时间:曝光时间在去掉上面的自动曝光的勾时可设置,如果要用到这个设置,可能需要用户自行 根据不同设置值下的成像表现来设置,属于经验值。调大图片 会变量,调小会变暗,取值 范围:1~65535。增益等级:自动增益勾去掉时可设置,推荐值1,如果画面太暗,效果不佳可设置为2。常规亮度:推荐室内:80~95;室外:120~135;根据画面亮度手动调节。

3)stereo2


TOF:勾选则使用TOF建图,如果勾选但是没有开启TOF传感器,stereo2将会一直卡在初始化状态。Z轴修正:用于修正Z轴偏差,默认关,如果Z轴偏差过大建议勾选。点云密度:pro版默认设置为16,基础版默认32。滤波参数:设置过滤点云的孤立点,单位m,建议0.15。点云最小深度:0.1以内的点深度准确性变低,不建议设置更小的值,往大了设可以屏蔽一些特别近的噪点,单位(m)
点云最大深度:深度管理的最大半径,室外大场景可以设置为100.默认室内20~35即可.
4)loop

加载词袋地图:在使用历史词袋地图时,勾选会自动加载下面路径下的词袋地图。保存关键帧图片:勾选则会保存所有关键帧的图片到下面那个路径下,一般不勾选,因为会占用太多磁盘空间。添加关键帧:设置添加关键帧的方式:手动/自动;设置为手动,在没有手动添加关键帧时,可以屏蔽掉回环的影响。保存词袋地图的路径:设置保存词袋地图的路径。注意:该路径是在设备上的。
5)version

这页记录了这台设备的基本信息,以及程序的版本。
相关文章:
Viobot基本功能使用及介绍
设备拿到手当然是要先试一下效果的,这部分可以参考本专栏的第一篇 Viobot开机指南。 接下来我们就从UI开始熟悉这个产品吧! 1.状态 设备上电会自动运行它的程序,开启了一个服务器,上位机通过连接这个服务器连接到设备,…...
《PMBOK指南》第七版12大原则和8大绩效域
《PMBOK指南》第七版12大原则 原则1:成为勤勉、尊重和关心他人的管家 原则2:营造协作的项目团队环境 原则3:有效地干系人参与 原则4:聚焦于价值 原则5:识别、评估和响应系统交互 原则6:展现领导力行为…...
docker 启动命令
cd /ycw/docker docker build -f DockerFile -t jshepr:1.0 . #前面测试docker已经介绍过该命令下面就不再介绍了 docker images docker run -it -p 7003:9999 --name yyy -d jshepr:1.0 #上面运行报错 用这个 不报错就不用 docker rm yyy docker ps #查看项目日志 docker …...
C++ DAY7
一、类模板 建立一个通用的类,其类中的类型不确定,用一个虚拟类型替代 template<typename T> 类template ----->表示开始创建模板 typename -->表明后面的符号是数据类型,typename 也可以用class代替 T ----->表示数据类型…...
Vue2 使用插件 Volar 报错:<template v-for> key should be placed on the <template> tag.
目录 问题描述 版本描述 问题定位 问题解决 VS Code 插件地址 问题描述 在 VS Code 上使用插件 Volar 开发 Vue3 项目,然后去改 Vue2 项目时,对没有放在<template v-for> 元素上的 :key,会提示 <template v-for> key should…...
启动线程方法 start ()和 run ()有什么区别
在Java中,线程可以通过调用start()方法或者直接调用run()方法来执行。这两种方式有着重要的区别: start() 方法:当你调用线程的start()方法时,它会使线程进入就绪状态,等待系统调度。系统会为该线程分配资源,并在合适的时机执行线程的run()方法。实际上,start()方法会启…...
Java的全排列模板
c有全排列函数,我们Java没有,所以我们只能自己手写了。 模板一:(不去重) import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class liyunpeng {public static void main(Stri…...
读书笔记——《万物有灵》
前言 上一本书是《走出荒野》,太平洋步道女王提到了这本书《万物有灵》,她同样是看一点撕一点的阅读。我想,在她穿越山河森林,听见鸟鸣溪流的旅行过程中,是不是看这本描写动物有如何聪明的书——《万物有灵》…...
面试现场表现:展示你的编程能力和沟通技巧
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
34亿的mysql表如何优雅的扩字段长度兵并归档重建
业务背景: 该系统有一张表数据量已达到34亿,并且有个字段长度不够,导致很多数据无法插入。因为业务只要保留近2个月数据即可,所以需要接下来需要做2点:1,扩字段长度 2,只保留近2个月的数据。 …...
C#_进程单例模式.秒懂Mutex
什么是Mutex? 可以定义调用线程是否具有互斥性,程序创建者拥有控制权,相反只能引用程序。 参数1:如果是程序创建者,就获得控制权。 参数2:名称,可使用GUID生成。 参数3:out 返回值…...
AcWing 5050. 排序 (每日一题)
题目描述 给定一个长度为 n 的由小写字母构成的字符串。 请你按照 a∼z 的顺序,对字符串内的字符进行重新排序,并输出重新排序后的字符串。 输入格式 第一行包含整数 T ,表示共有 T 组测试数据。 每组数据第一行包含整数 n 。 第二行包…...
【TypeScript】proxy 和 Reflect
proxy (代理) 和 Reflect (反射) 参数一样。 基本用法 let person { name: xx, age: 20} // proxy 支持对象,数组,函数,set,map // 代理对象的常用模式:前面一个对象&…...
STM32f103入门(5)定时器中断
STM32 TIM(定时器/计数器)模块的中断流程如下: 配置TIM寄存器:首先,通过配置TIM相关的寄存器来设置计时器的基本参数,例如预分频系数、计数模式、计数器周期等。 使能TIM中断:使用TIM_ITConfig函…...
Mybatis查询数据
上一篇我们介绍了在pom文件中引入mybatis依赖,配置了mybatis配置文件,通过读取配置文件创建了会话工厂,使用会话工厂创建会话获取连接对象读取到了数据库的基本信息。 如果您需要对上面的内容进行了解,可以参考Mybatis引入与使用…...
【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了
文章目录 为什么看这篇整体流程1. 注册账号【首次需要】2. 工单申请【新项目必须】3. 项目配置【新项目必须】4. 授权认证【新项目必须】5. 一键发布 最后也很重要 为什么看这篇 一是当前网络上一些博客有遗漏部分,这里做补充,二是网上思路没错ÿ…...
如何理解IaaS、PaaS、SaaS?盘点受欢迎的八大SaaS平台!
如何理解IaaS、PaaS、SaaS?他们各自的优势在哪里?我们又应该如何选择?本篇将带大家深入浅出的了解IaaS、PaaS、SaaS,并为大家盘点2023最受欢迎的SaaS平台。 通过本文你将了解: IaaS、PaaS、SaaS分别是什么我们该如何理…...
立创EDA专业版的原理图上器件有一个虚线框
立创EDA专业版的原理图上器件有一个虚线框解决方法 问题分析: 在使用立创EDA专业版 设计电路原理图时,中途莫名其妙就给我的元件添加了下面图片所示的虚线外框。看着就很别扭的样子,而且工程大了和器件稍微布局比较密的时候就导致整体很难看…...
JUC并发编程--------基础篇
一、多线程的相关知识 栈与栈帧 我们都知道 JVM 中由堆、栈、方法区所组成,其中栈内存是给谁用的呢?其实就是线程,每个线程启动后,虚拟 机就会为其分配一块栈内存。 每个栈由多个栈帧(Frame)组成…...
秒懂算法2
视频链接 : 希望下次秒懂的是算法题_哔哩哔哩_bilibili P1094 [NOIP2007 普及组] 纪念品分组 原题链接 : [NOIP2007 普及组] 纪念品分组 - 洛谷 思路 : 排序 贪心 双指针首先先对输入进来的数组进行排序(由小到大)运用贪心的思想 : 前后结合,令l1,rn,若a[l]a[r]<w…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
