57.Isaac教程--定位监视器

news2025/1/18 10:41:32

定位监视器

在这里插入图片描述
ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html

检测异常系统状态并采取纠正措施有助于确保稳定的系统性能和与预期行为的最小偏差。 为此,Isaac SDK 提供了一个监控框架,可以搭载多种系统观察组件。 该框架目前包含专门用于监控机器人定位当前状态的组件。 凭借其模块化方法,它可以针对个别场景和用例轻松定制。 它由多个协同工作的组件组成:

  • 从各个评估器组件收集系统性能等级的中央监视器组件。

  • 定期将有关系统特定部分的性能等级发送到一个或多个连接的监视器组件的评估器组件。 以下评估人员是此版本的一部分:

    • flatscan_localization::MonitorEvaluatorFrequency:观察在指定的 FlatscanProto 通道上接收消息的频率,并向监视器报告与预期频率的偏差。

    • flatscan_localization::MonitorEvaluatorMapscan:持续将接收到的 FlatscanProto 激光扫描消息与当前估计的机器人姿态的预测激光扫描进行比较。 向 Monitor 报告一致程度。

    • flatscan_localization::MonitorEvaluatorSvio:观察两个不同姿态估计框架之间的漂移,并报告两者之间随时间的偏差。 例如,这可以用于检测基于激光扫描的定位和基于立体视觉惯性里程计的定位之间的漂移。

  • Monitor 使用 EvaluatorGradeFusion 组件组合多个收到的性能等级以形成可用于派生操作的总体等级。 在此版本中,实现了一种 EvaluatorGradeFusion:

    • MaxValueGradeFusion:返回所有当前收到的评估者评分中最高(最差)的评分值。

多个监视器实例可以存在于同一系统中,并且评估者可以通过将他们的等级边缘连接到监视器实例的任何唯一输入通道来将他们的数据并行地报告给多个监视器实例。 Monitor 组件中提供了以下参数:

  • evaluator_max_age:在任何时候,如果任何评估程序停止发送消息的时间超过此参数中指定的持续时间(以秒为单位),则会报告失败。

  • fused_grade_threshold:当Monitor实例当前使用的EvaluatorGradeFusion实例返回值大于该参数时,报失败。

  • settle_time:启动此小代码以开始评估后等待的时间(以秒为单位)。 这使整个系统有时间在初始启动阶段后稳定下来,并防止基于不代表正在运行的系统状态的数据采取行动。

一般本地化子图包括使用前两个评估器的本地化监视器设置。 如果 Monitor 实例报告失败,则重新启动全局本地化。 可以通过以下配置键更改基本配置:

navigation.localization.localization_monitor.Monitor -> evaluator_max_age
navigation.localization.localization_monitor.Monitor -> fused_grade_threshold
navigation.localization.localization_monitor.Monitor -> settle_time

navigation.localization.evaluator_frequency.Evaluator -> threshold
navigation.localization.evaluator_frequency.Evaluator -> expected_frequency

navigation.localization.evaluator_mapscan.Evaluator -> map
navigation.localization.evaluator_mapscan.Evaluator -> range_scan_model
navigation.localization.evaluator_mapscan.Evaluator -> flatscan_frames
navigation.localization.evaluator_mapscan.Evaluator -> robot_frame
navigation.localization.evaluator_mapscan.Evaluator -> beam_distance_threshold
navigation.localization.evaluator_mapscan.Evaluator -> good_beams_threshold

根据 Localization Monitor 部署场景的不同,expected_frequency 参数需要适配为被监控 flatscan 源的实际预期频率。 如有疑问,请使用较低的预期频率,因为高于预期的频率不会对监视器行为产生负面影响。 如果频率变化幅度相对较高,则可以调整阈值参数,以防止来自监视器的虚假故障报告。

如果系统的启动时间超过监视器的默认值(3 秒),可以相应地调整 settle_time 参数。 在 Monitor 决策看起来过于保守的情况下,例如 当由于非常嘈杂的传感器输入而过早报告故障时,可以增加 fused_grade_threshold 以适应这种情况。

如果用于定位变化的占用网格图经常不能准确代表实际环境,则可以增加 beam_distance_threshold 和 good_beams_threshold(范围从 0.0 到 1.0)。

如果您希望实施额外的评估器或等级融合,请注意以下设计指南:

  • 评估者必须将 CompositeProto 类型的消息发送到 Monitor 实例的唯一输入通道。 这些消息必须包含现场等级,如果达到预期的性能结果,则该等级应为 0.0。 正值(理想情况下标准化为 1.0)表示性能比预期差,负值(标准化为 -1.0)表示性能好于预期。

  • Grade Fusion 组件必须派生自组件::isaac::monitor::EvaluatorGradeFusion 并且必须实现其接口。 fuseGrades 返回的值应遵循上述评估者等级的指标。

在 Isaac Sight 中可视化当前监视器状态

可以使用 Isaac Sight 可视化监控器和评估器组件的当前状态。 这包括 Monitor 的整体等级,以及单个评估器等级及其特定值(例如 MonitorEvaluatorFrequency 测量的频率。

在 Sight 中,激活以下消息通道以可视化监控器和评估器等级(它们的位置可能因实际应用程序设置而异):

navigation.localization.evaluator_frequency.Evaluator -> grade
navigation.localization.evaluator_mapscap.Evaluator   -> grade
navigation.localization.localization_monitor.Monitor  -> grade

然后可以在二维图中可视化这些通道,以分析给定场景中定位的薄弱点:

各个评估者的内部状态也可以可视化:

更多精彩内容:
https://www.nvidia.cn/gtc-global/?ncid=ref-dev-876561

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

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

相关文章

达芬奇18.1.2软件更新内容及安装教程(WinMac)

DaVinci Resolve v18.1.2是一款在同一个软件工具中,将剪辑、调色、视觉特效、动态图形和音频后期制作融于一身的解决方案!它采用美观新颖的界面设计,易学易用,能让新手用户快速上手操作,还能提供专业人士需要的强大性能…

【论文速递】WACV2023 - 循环相似注意力的小样本医学图像分割

【论文速递】WACV2023 - 循环相似注意力的小样本医学图像分割 【论文原文】:Few-shot Medical Image Segmentation with Cycle-resemblance Attention 获取地址:https://arxiv.org/pdf/2212.03967.pdf博主关键词: 小样本学习,语…

SpringCloud系列(九)[docker 篇] - Centos 7 下 Docker 的安装及基本操作指令

本篇文章将详细介绍 Centos 7 下 Docker 的安装以及一些基本操作指令. DockerDocker 的安装步骤Docker 基本操作指令Docker 的安装步骤 步骤一: 确保自己电脑的虚拟机联网并安装了 yum 工具, 如果没有安装 yum, 则执行下面的命令; yum install -y yum-utils \device-mapper-p…

力扣:多数元素(详解)

前言:本期是关于多数元素的详解,内容包括四大模块:题目,代码实现,大致思路,代码解读 今天你c了吗? 题目: 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元…

Python爬虫实战之哔哩哔哩二维码登录申请

前言 哈喽,好久不见了吧,各位新年好!博主春节也是比较忙的,没时间去写文章和"coding"。最近我们学校也是初九就开学了,所以更加没时间创作了🤣 言归正传,本次写这篇文章算是想要对我…

软件测试基础(五) 之 了解测试团队的组织架构

今天来了解一下软件测试团队的组织架构模式到底是什么样子。测试团队的组织架构模式的分类一个公司软件测试的组织架构,可能会决定你未来的成长空间,同时也决定了我们的工作模式到底是什么样子。现在测试行业内通常测试团队的组织架构主要分成两种&#…

亚马逊站内流量太少,如何拓展流量渠道增加产品销量?

近两年,经历了行业大洗牌之后,由于入驻平台卖家逐日增多,站内广告成本越来越高,想要抢占更多的站内流量变得愈发困难,一天出不了几单的情况也随处可见。因此,当站内流量的获取遭遇瓶颈,卖家想要…

阿里二面:RocketMQ 消费者拉取一批消息,其中部分消费失败了,偏移量怎样更新?

大家好,我是君哥。最近有读者参加面试时被问了一个问题,如果消费者拉取了一批消息,比如 100 条,第 100 条消息消费成功了,但是第 50 条消费失败,偏移量会怎样更新?就着这个问题,今天…

Pycharm出现‘Error loading package list:Connection refused: connect’问题

问题描述依次打开File->Settting窗口点击图中号弹出如下错误:Package错误窗口‘Error loading package list:Connection refused: connect 一段时间后继续弹出以下窗口:2.问题分析目前这个问题普遍说是由于网络配置原因引起的,在这之前&am…

【数据结构/C++】 树详解

目录树树的定义树的基本术语二叉树⼆叉树的种类满二叉树完全二叉树二叉树的性质二叉树的遍历方法前序遍历中序遍历后序遍历层序遍历二叉树的实现树 树的定义 树(Tree)是n(n≥0)个结点的有限集。n0时称为空树。在任意一颗非空树中…

[Effective Objective] 块与大中枢派发

为了解决多线程问题,苹果公司以全新的方式设计了多线程。核心就是“块”(block)与“大中枢派发”(Grand Central Dispatch, GCD)。 “块”是一种可在C、C及Objective-C代码中使用的“词法闭包”,借由此机制…

在一起多少天怎么设置?如何微信推送在一起多少天

马上情人节要到了,你和你的对象在一起多久了?两个人在恋爱中,会需要记录彼此在一起的每一天,特别是一些重要的纪念日比如100天纪念日,365天、或者520天纪念日。市面上有许多工具,可以帮我们记录这些重要的日…

指针空值nullptr(C++11)

在良好的C/C编程习惯中,声明一个变量时最好给该变量一个合适的初始值,否则可能会出现 不可预料的错误,比如未初始化的指针。如果一个指针没有合法的指向,我们基本都是按照如下 方式对其进行初始化:void TestPtr() { in…

【Docker 02】docker镜像和容器命令大全

对于入门学习者,更推荐的方式是通过官网的Reffrence手册,学习使用命令,不仅存在用法,选项参数的解释,还有用力example。 docker命令的基本语法结构: docker 子命令 [选项] [参数] 一、Docker基本命令 1.镜像有关 一批模板文件,不同的镜像可以包含的环境内容是不一样的,…

深入了解多线程原理

目录 背景知识: 什么是进程? 什么是线程? 线程与进程的区别: Thread类及常用方法: 循环打印的例子: start() 和 run() 的区别: 通过监视窗口查看线程: 创建线程: 1.继承 …

console控制台有sql语句输出但log文件中不输出sql解决方式

控制台可以输出sql,但是log文件中无sql输出,如何解决?把握两点就可以输出:第一点,mybatis 本身的logImpl配置这个参数是配置mybatis所使用的日志框架,取值范围如下:SLF4JLOG4J #表示使用LOG4J作…

提名倒计时! | 2022 龙蜥社区优秀贡献者

各位盆友们:2022 年,那些为龙蜥壮大做出杰出贡献的人们,包括开源背后的推动者、组织者、布道者、代码贡献者,让我们看到了热爱技术的力量!为此社区推出「2022 龙蜥社区优秀贡献者」活动。截至目前,距离报名…

CSAPP Malloc Lab

CSAPP Malloc Lab 在这个实验室中,您将为C程序编写一个动态存储分配器,即您自己版本的malloc、free和realloc例程,实现一个正确,高效和快速的分配器。本实验性能指标有两个方面,内存利用率和吞吐量,这两个…

fpga图像处理(基于camera的图像读取和显示)

【声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 市面上目前很多的fpga开发板都有camera到lcd的显示demo。处理流程也是很相似的。一般的流程都是fpga首先初始化cmos,接着就是把数据从cmos读出来存储到sdram里面,显示模块再从sdra…

C语言高级教程-C语言数组(六):变长数组

C语言高级教程-C语言数组(六):变长数组一、本文的编译环境二、一维数组在执行期间确定长度三、二维数组在执行期间确定长度四、一维变长数组实例五、完整程序5.1 Main.h 文件程序5.2 Main.c 文件程序六、总结一、本文的编译环境 本文的编译环…