29.Isaac教程--调整导航

news2024/11/15 6:59:23

调整导航

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

文章目录

  • 调整导航
    • 定位器
    • 全局规划器
    • 局部规划器
    • 控制器

定位器

定位器是导航堆栈的关键部分,因为了解机器人的位置对于正确导航到目的地至关重要。 因此,快速准确的定位至关重要。

有几个参数可能需要进行一些调整以优化性能:

  • num_particles:控制使用多少粒子来跟踪机器人的位置。 增加粒子数量对速度有直接影响:粒子数量加倍,定位器需要两倍的时间。 但是,在某些情况下您可能想要增加粒子数:当传感器非常嘈杂时,环境与地图无法准确匹配(例如,如果有很多移动物体,如椅子),或者 里程计不可信。

  • initial_sigma:调整此参数以匹配全局定位器的不确定性。 前两个值表示 X 和 Y 方向的标准偏差。 一个好的值匹配像素大小的最大值和 grid_search_localizer 的 sample_distance。 第三个也是最后一个值对应于标题的标准偏差。 一个好的起始值是关于 grid_search_localizer 中使用的两个光束之间的间隙:2 x Pi / num_beams_gpu。

    如果您的传感器噪音很大,请考虑增加所有这些值。

  • absolute_predict_sigma:同上。 它包含 3 个值,对应于随机噪声的标准差。 该参数与机器人的当前运动无关。 它被调整以匹配一般定位的预期噪声。 这反映在传感器和地图的准确性上。

  • relative_predict_sigma:控制运动/里程计的噪声。 里程计越准确,该值越小。 它还反映了机器人的模型:差动底座沿 X 方向的噪声比 Y 方向的噪声更多。

全局规划器

  • graph_initialization_steps:控制start函数中执行多少个随机样本。 这直接影响启动函数的速度。 如果你想要一个覆盖率高的图表,增加这个值。 不幸的是,没有办法选择一个好的值。 它取决于图形的大小,还取决于机器人的形状、有效姿势之间的连接等。尝试不同的值并查看生成的图形,直到您对结果满意为止。

    注意:如果地图在应用程序的未来运行中主要是静态的,则值得花更长的时间来生成一个好的图表(通过增加此值)。 使用参数 graph_file_out 将图形保存到文件中。 之后,您可以使用参数 graph_file_in 直接从文件加载图形。

  • graph_in_tick_steps:在大多数情况下,您在启动函数中构建图形或从文件加载它,并且此参数应设置为 0(以免在 tick 函数期间浪费时间)。 但是,当地图在运行之间不断变化(防止从文件加载)并且应用程序需要快速启动时,可能值得减小上述参数的值并将此参数设置为合理的值(再次,有 不是神奇的数字,所以将其调整为大约允许滴答时间的 10/20%)一点一点地构建图表,在每次滴答时改进它。

  • max_colliding_lookup:当你期望机器人导航非常靠近障碍物或目标目的地靠近障碍物时,使用此参数允许规划器选择非碰撞状态下的替代起始/目标位置(从 规划师)。 然后规划器尝试规划到/从这些备选位置。 此参数控制在规划器放弃并寻找路径之前当前/目标位置可以在障碍物内多远。

  • model_max_translation_distance:控制导航图航路点之间允许的最大距离。 如果你减少这个参数,它会生成一个更密集的图(需要更多的随机采样)。 在拥有更多航点(减慢在图中寻找路径)和拥有较远的航点之间存在折衷,这使得两个航点之间的碰撞检查更慢。 最佳位置似乎是办公空间机器人大小的几倍。

    如果您的地图大部分是开放空间,则可能会增加此值。

  • model_max_rotation_distance:控制连接两个航路点所允许的最大旋转。 设置大于 Pi 的值意味着没有限制,大多数时候它是合理的选择。 但是,如果您的地图使得您的机器人不能旋转太多(在主要由走廊组成的地图中为矩形),则可能值得限制旋转以加快沿边缘的碰撞检查。 这通常会创建一个更密集的图形。

局部规划器

局部规划器是迄今为止最难调整的一个,因为它取决于您的机器人、应用程序和个人偏好:

  • 要控制机器人的速度,可以使用不同的参数:min_speedmax_speed控制合法的运行范围。 确保此范围包括零。 要限制机器人向后移动的能力,请将 min_speed 设置为 0。

    请注意,这些参数并不是对速度范围的绝对限制。 离开范围时会受到惩罚,因此将限制设置为低于所需的最大速度(因为它取决于其他参数,您可能想尝试一下,但通常大约为目标 max_speed 的 90% 是一个不错的猜测 ). 将值设置得足够低也很重要,这样规划器就不会命令机器人无法达到的速度。

    您还可以通过调整 DistanceQuadraticCostBuilder组件的 costs 参数来控制机器人接近障碍物时的速度。 此参数采用对应于增益、target_distance 和梯度的三元组列表。 如果梯度设置为 0,则机器人在靠近障碍物时不会调整速度。 如果该值设置为非零值,则机器人在接近障碍物时以指定的速率降低速度。 例如,如果梯度设置为 0.5,并且机器人在距离障碍物 1 m 处以 1 m/s 的速度移动,如果机器人被强制移动到距离障碍物 0.4 m 处,它会四处移动 1 m/s - 0.5 * (1 - 0.4) = 0.7 m/s 的速度。

    增加 gain_linear_acceleration 可能会降低最高速度或需要更长的时间才能达到。 增加 gain_lat_acceleration 会迫使机器人在转弯时减速。

  • 要控制旋转速度,请使用参数 max_angular_speed 限制最大旋转。 与线速度类似,这不是硬性限制。 最多将此值设置为机器人可以执行的最大旋转速率的 ~80%。 您还可以使用 gain_steering 来限制角速度。

  • 要控制到障碍物的距离,您可以设置两个限制: target_distance 是机器人尽可能保持的距离。 当机器人比这个距离更近时,它会受到一些惩罚。 使用 min_distance 设置机器人可以接近的硬性限制(至于速度,这不是真正的硬性限制,但惩罚增长很快超过这个值)。

控制器

  • use_pid_controller:控制是否使用pid控制器来跟踪错误。 如果禁用此参数,则命令与全局规划器提供的计划相匹配。 在这种情况下,请禁用本地规划器的 use_predicted_position。

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

在这里插入图片描述

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

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

相关文章

2、threejs官网本地化部署启动和Parcel热加载:Web应用打包工具介绍及使用

一、Three.js 官网 背景: threejs 是国外的网站,访问有时候比较卡,所以建议本地化部署启动一下,方便随时访问学习。 部署方案: 1、访问Threejs官网 2、点击github 选择 dev版本下载 3、下载完之后,解压…

Java中的this关键字

介绍 this关键字用于引用当前实例,在Java语言中,当创建一个对象后,Java虚拟机就会为其分配一个指向对象本身的指针,这个指针就是“this”。 Java关键字this只能用于方法方法体内,在类中的非静态方法中使用&#xff0…

14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)

本篇主要是集合框架基础和List集合,Map集合等等后续更 集合14.1 集合框架14.1.1 概念14.1.2 集合架构14.2 Collection接口14.2.1 常用方法14.3 迭代器14.3.1 迭代器原理14.3.2 迭代器使用常见问题14.4 泛型基本使用14.5 ArrayList类14.5.1 常用方法14.5.2 实现原理1…

【手写 Vue2.x 源码】第三十三篇 - diff算法-收尾+阶段性总结

一,前言 上篇,diff算法-乱序比对,主要涉及以下几个点: 介绍了乱序比对的方案介绍了乱序比对的过程分析实现了乱序比对的代码逻辑 本篇,diff 算法的阶段性梳理 二,初渲染与视图更新流程 Vue 初渲染时&…

注册商标需要哪些材料和条件?

申请注册商标条件是什么1、申请人必须是申请认定商标的所有人,是在当省区域内的自然人、法人和其他组织;2、该商标自核准注册之起连续使用满三年并继续有效,且无权属争议;3、该商标为相关公众所熟知,在相关市场内具有较高的知名度;4、该商标核…

亚信科技AntDB数据库荣获2022年度技术卓越奖

近日,业界知名IT垂直媒体IT168发布了“2022技术卓越奖”主题奖项,亚信科技AntDB数据库荣获技术卓越奖。 2022 “技术卓越奖”由行业CIO/CTO大咖、技术专家及IT媒体三方联合评选,评判标准代表了用户和媒体声音。经过多方评审,亚信科…

jvm参数简介

Xmx3550m:设置JVM最大堆内存为3550M。 -Xms3550m:设置JVM初始堆内存为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xss128k:设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,之…

【SCL】1200应用案例:交通灯模拟自动装料控制

使用博图SCL语言来编写 交通灯模拟控制 和 自动装料应用案例 文章目录 目录 前言 一、应用:交通灯模拟控制 1.控制要求 2.I\o分配和接线 3.程序编写和效果 4.小结 二、自动装料模拟控制 1.控制要求 2.I/O分配 3.程序编写 4.小结 总结 前言 本篇文章我们继续学习西…

宏任务和微任务

宏任务和微任务1. 什么是宏任务和微任务2. 宏任务和微任务的执行顺序3. 去银行办业务的场景4. 分析以下代码输出的顺序5. 经典面试题1. 什么是宏任务和微任务 JavaScript 把异步任务又做了进一步的划分,异步任务又分为两类,分别是: ① 宏任…

寄存器、RAM、ROM、Flash

单片机寄存器简述 寄存器详细请点这里 1、单片机寄存器就是单片机片内存储器(片内RAM)一部分,每一个都有地址。只不过这几个寄存器有特殊的作用,比如指令:MUL AB,这条指令用到两个寄存器A,B进行乘法,结果存到BA里面&a…

kaggle竞赛 | Quora Insincere Question | 文本情感分析

目录赛题背景赛题评价指标数据集分析pytorch建模之前发布了一遍实战类的情感分析的文章,包括微博爬虫,数据分析,相关模型。 可以参考: https://blog.csdn.net/lijiamingccc/article/details/126963413 比赛链接: http…

Spring Boot学习篇(十二)

Spring Boot学习篇(十二) shiro安全框架使用篇(四) 2 在主页显示用户登录状态、用户信息和完成默认注销(不改shiro原来的配置)操作 2.1 变更SysUserController类 2.1.1 在SysUserController类中注入sysUserMapper Autowired SysUserMapper sysUserMapper;2.1.2 在SysUserC…

1598_AURIX_TC275_GPIO功能以及部分寄存器梳理1

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 接下来,看一下GPIO的寄存器以及部分相关的功能。这部分将会是接下来这个章节剩余的全部,可能内容偏雷同,因此都是跳跃式看。但是中间需要临时关注一下的…

【2022年MathorCup大数据竞赛】B题:北京移动用户体验影响因素研究(二)(问题一的分析和结果)

目录:题目解析一、问题的解答框架二、问题一的分析2.1 附件1的处理流程2.2 附件2的处理流程2.2.1 拉格朗日插补法2.3 数据编码2.4 相关分析2.5 基于互信息GBDT的特征提取2.6 量化分析一、问题的解答框架 二、问题一的分析 针对问题一,首先需要对附件1和…

《MySQL高级篇》十二、MySQL事务日志

文章目录1. redo日志1.1 为什么需要REDO日志1.2 REDO日志的好处、特点1. 好处2. 特点1.3 redo的组成1.4 redo的整体流程1.5 redo log的刷盘策略1.6 不同刷盘策略演示1. 刷盘策略分析2. 举例1.7 写入redo log buffer 过程1. 补充概念:Mini-Transaction2. redo 日志写入log buffe…

「链表」数据结构简析

前言 前言:研究一个数据结构的时候,首先讲的是增删改查。 文章目录前言一、链表简介1. 含义2. 节点组成3. 存储方式1)数据在内存中的存储方式2)单链表在内存中的存储方式2)双链表在内存中的存储方式2)循环链…

程序地址空间

目录 1. 验证程序地址空间布局图 2. 虚拟地址空间 什么是虚拟地址空间 3. 进程地址空间 4. 为什么要有虚拟地址空间 1. 有效保护物理内存 2. 使内存管理模块和进程管理模块实现解耦合 3. 将内存分布有序化 1. 验证程序地址空间布局图 下面我们写段代码验证一下上图中…

qt调用matlab生成的dll库

最近由于在项目中要用到matlab的算法,而用C转换matlab算法非常麻烦,所以采用qtmatlab混合编程的方法,在使用中遇到了些许问题,特记录如下。 一、生成matlab库 1、首先需要下载matlab完整版,之前在网上下载的简版&…

基于C#制作一个休息提醒闹钟

> 此文主要通过WinForm来制作一个休息提醒闹钟,通过设置时间间隔进行提醒,避免沉浸式的投入到工作或者学习当中,战斗的同时也要照顾好自己。 实现流程1.1、创建项目1.2、时间间隔配置页1.3、闹钟提醒页1.4、开机自启动配置1.5、日志记录1.…

一个数据库文档生成神器

Gitee项目地址,可以直接去开源项目查看(推荐) 简介 在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是…