26.Isaac教程--导航算法

news2024/11/23 21:59:33

导航算法

本节详细介绍导航算法。
在这里插入图片描述
ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html

文章目录

  • 导航算法
    • 全局路径规划器
    • 规划器模型
    • 可见性图算法
    • 优化器
    • 轨迹规划器

全局路径规划器

Isaac 框架中的全局规划器问题被分解为三类:规划器模型、可见性图算法和优化器。

规划器模型

规划器模型 (sdk/packages/path_planner/gems/planner_model.hpp) 必须提供以下内容:

  • 一组函数,提供有关给定状态是否无碰撞的信息。

  • 有关两个状态之间是否存在直接路径(简单路径,例如直线)且无碰撞的信息。

  • 路径的距离或长度。

  • 一种在状态空间中随机采样的方法。

在carter平台的情况下,差分基座近似为圆形,允许使用距离图进行快速碰撞检测。 直接路径定义为直线上的短路径 (< 2m)(因为我们始终可以沿该方向旋转)。 因此规划问题是一个二维问题。

可见性图算法

灵感来自 T. SIMÉON, J.-P. LAUMOND和 C. NISSOUX 的论文“基于可见性的运动规划概率路线图”,可见性图算法提供了一种非常通用的算法来在高维空间中寻找路径。 目标是生成一个具有高可见性覆盖率的小图。

该图是通过保留一组不能直接相互连接的点(在论文中称为守卫)来构建的。 只要存在直接连接未通过任何路径连接的两个守卫的中间状态,就会添加连接。

Isaac 实现在未通过大小为 2 的路径连接的守卫之间添加了一个连接,仅使用一个中间状态。 这会产生更大但质量更高的图表。

一旦构建了图形,就可以通过首先找到这些状态与守卫之间的连接,然后在图形上运行 Djikstra 算法来计算最短路径。 只要环境是静态的,就可以预先计算同一个图,在遇到困难问题时手动辅助,并重复用于其他最短路径请求。

为了获得更好的性能,请通过增加随机样本的数量来构建密集图。

优化器

最终状态是路径优化。 快速路径生成期间的可见性图会产生非常混乱的路径。 然后使用捷径计算质量更好的路径:随机选择两个路径点,如果它们之间存在直接路径,则绕过中间的所有路径点。 此外,接近障碍物的航路点从最近的障碍物移开。

轨迹规划器

Isaac 的局部规划器是基于线性二次调节器 (LQR) 的。 Isaac SDK 提供可定制的 LQR 求解器。 系统的动力学以及成本函数需要提供给 LQR 求解器,后者使用线性搜索执行迭代梯度下降以找到最佳路径。

在carter 平台的情况下,系统的动态是微分基础的动态:

  • State:

    • x ( t ) x(t) x(t): X position of the base

    • y ( t ) y(t) y(t): Y position of the base

    • θ ( t ) θ(t) θ(t): Orientation of the base

    • v ( t ) v(t) v(t): Linear velocity

    • θ ′ ( t ) θ′(t) θ(t): Angular velocity

  • Control:

    • a l ( t ) al(t) al(t): Left wheel angular acceleration

    • a r ( t ) ar(t) ar(t): Right wheel angular acceleration

动力学然后由公式给出(L 是基本长度,R 是车轮半径):

  • x ′ ( t ) = v ( t ) c o s ( θ ( t ) ) x′(t)=v(t)cos(θ(t)) x(t)=v(t)cos(θ(t))

  • y ′ ( t ) = v ( t ) s i n ( θ ( t ) ) y′(t)=v(t)sin(θ(t)) y(t)=v(t)sin(θ(t))

  • θ ′ ( t ) = θ ′ ( t ) θ′(t)=θ′(t) θ(t)=θ(t)

  • v ′ ( t ) = a ( t ) = ( a r ( t ) + a l ( t ) ) ⋅ R / 2 v′(t)=a(t)=(ar(t)+al(t))⋅R/2 v(t)=a(t)=(ar(t)+al(t))R/2

  • θ ′′ ( t ) = ( a r ( t ) − a l ( t ) ) ⋅ R / L θ′′(t)=(ar(t)−al(t))⋅R/L θ′′(t)=(ar(t)al(t))R/L

以下是 carter 在本地视图中生成的路径示例:

本地地图和距离地图都是实时计算的。 红色是全局规划器提供的路径,蓝色是 LQR 生成的计划,优化速度、障碍物距离、加速度和其他因素。

更多精彩内容:
https://www.nvidia.cn/gtc-global/?ncid=ref-dev-876561
在这里插入图片描述

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

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

相关文章

SpringBoot使用Swagger2

SpringBoot使用Swagger21.引入swagger依赖2.添加swagger配置类3.测试Controller4.测试5.swagger的注解Api注解ApiOperation注解ApiImplicitParam、ApiImplicitParams注解ApiParam注解ApiResponse、ApiResponses注解ResponseHeader注解ApiModel、ApiModelProperty注解6.更多1.引…

Redis 分布式锁实现文章集锦

前言近两年来微服务变得越来越热门&#xff0c;越来越多的应用部署在分布式环境中&#xff0c;在分布式环境中&#xff0c;数据一致性是一直以来需要关注并且去解决的问题&#xff0c;分布式锁也就成为了一种广泛使用的技术&#xff0c;常用的分布式实现方式为Redis&#xff0c…

PDF压缩在线怎么操作?这几个操作谁还不知道

我们在工作里经常处理非常多的文件&#xff0c;如果每个文件都要储存到设备上是非常困难的&#xff0c;因为这需要占用大量的内存&#xff0c;所以我们需要将PDF文件进行压缩&#xff0c;这样就可以释放我们设备的储存空间&#xff0c;不过对于很多人来说&#xff0c;压缩文件并…

自学Java篇之JFrame创建《石头迷阵小游戏》

自学Java篇之JFrame创建《石头迷阵小游戏》 根据黑马程序员java教程自学完java基础&#xff0c;觉得石头迷阵小游戏案例具有一定的编程练习价值&#xff0c;记录之。 最终效果&#xff1a; 案例主要思想流程&#xff1a; ​ 主要是思想是创建一个4*4的二维数组data&#xff…

【openGauss实战5】表管理及CURD

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61…

汽车网络技术概述

车辆总线是一个专门的内部通信网络&#xff0c;将车辆&#xff08;如汽车、公共汽车、火车、工业或农业车辆、船舶或飞机&#xff09;内的部件相互连接。在电子学中&#xff0c;总线只是一个将多个电气或电子设备连接在一起的设备。车辆控制的特殊要求&#xff0c;如保证信息传…

数据分析-深度学习 Pytorch Day7

图像识别&#xff1a;CIFAR10图形识别1.CIFAR10数据集共有60000张彩色图像&#xff0c;这些图像式32*32*3&#xff0c;分为10个类&#xff0c;每个类6000张2.这里面有50000张用于训练&#xff0c;构成5个训练批&#xff0c;每一批10000张图&#xff1b;另外10000张用于测试&…

vhdx中的win10进行大版本系统升级

文章目录前言普通的win10大版本iso升级方式vhdx中的win10大版本升级方式难点分析 - 无法在虚拟驱动器上安装windows解决方案 - HyperV升级vhdx win10过程效果图hyperV虚机创建mbr引导启动项hyperV虚机设置在hyperV中升级过程图问题集锦问题一&#xff1a;hyverV虚机中升级报错&…

力扣刷题记录——561. 数组拆分、566. 重塑矩阵、575. 分糖果

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《力扣刷题记录——561. 数组拆分、566. 重塑矩阵、575. 分…

IDEA远程调试

1 概述 原理&#xff1a;本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信&#xff0c;传递调试指令和调试信息。 被调试程序的远程虚拟机&#xff1a;作为 Debug 服务端&#xff0c;监听 Debug 调试指令。jdwp是Java Debug Wire Protocol的缩写。 调试程序的本…

初识redis

1.初识Redis Redis是一种键值型的NoSql数据库&#xff0c;这里有两个关键字&#xff1a; 键值型 NoSql 其中键值型&#xff0c;是指Redis中存储的数据都是以key、value对的形式存储&#xff0c;而value的形式多种多样&#xff0c;可以是字符串、数值、甚至json&#xff1a;…

HTTPS一定可靠吗?

HTTPS一定可靠吗&#xff1f;中间人伪装服务器首先我们先看看客户端是如何验证证书的&#xff1f;数字证书签发和验证流程客户端校验服务端数字证书的过程如何出现中间人伪装服务器成服务器的情况&#xff1f;避免该情况中间人伪装服务器 客户端向服务端发起HTTPS建立连接请求时…

你知道吗?python lxml 库也能用于操作 svg 图片

在大多数场景中&#xff0c;我们都用 lxml 库解析网页源码&#xff0c;但你是否知道&#xff0c;lxml 库也是可以操作 svg 图片的。我们可以使用 lxml 中的 etree 模块来解析 SVG 文件&#xff0c;然后使用 SVG 中的各种元素和属性来进行操作。 python lxml 库操作 svg 图片lxm…

传输层协议:TCP协议(上)——协议结构、主要特点以及应用场景

简介 传输控制协议&#xff08;英语&#xff1a;Transmission Control Protocol&#xff0c;缩写&#xff1a;TCP&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;由IETF的RFC 793定义。在简化的计算机网络OSI模型中&#xff0c;它完成第四层传…

xubuntu系统偶发自动登出

项目场景&#xff1a; 系统&#xff1a;xubuntu-16.04.3-desktop 问题描述 使用xubuntu系统期间&#xff0c;在root用户下进行相关开发&#xff0c;突然系统会回到普通用户登录界面&#xff0c;需要输入密码进入到普通用户下   它会终止所有打开的应用程序和进程&#xff0…

【Vue组件通信方式】

文章目录前言一、父子组件通信1、父传子①使用props接收父组件传递的属性② 使用$attrs接收父组件未在 props 和 emits 中定义的属性和事件③使用 $parent获取父组件的信息2、子传父① 使用 $emit传递信息给父组件② 使用$refs获取子组件的属性和事件二、自定义事件&#xff1a…

独家丨DeepMind科学家、AlphaTensor一作解读背后的故事与实现细节

一直以来&#xff0c;DeepMind的Alpha系列工作&#xff0c;AlphaGo、AlphaStar等致力于棋类和游戏应用中战胜人类&#xff0c;而两个月前发布的AlphaTensor则把目标指向了科学计算领域&#xff0c;意在为矩阵乘法等基本计算任务自动设计更高效的经典算法&#xff0c;这一工作一…

Burpsuite超详细安装教程(附安装包)

写在开头 Burp Suite 是用于攻击web 应用程序的集成平台&#xff0c;包含了许多工具。Burp Suite为这些工具设计了许多接口&#xff0c;以加快攻击应用程序的过程。所有工具都共享一个请求&#xff0c;并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。 接下来我来…

软件测试面试经 | 双非院校,从外包到外企涨薪85%,他的涨薪秘籍全公开

本文为霍格沃兹测试开发学社优秀学员跳槽笔记&#xff0c;测试开发进阶学习文末加群。 本身是一所不入流的院校毕业的一名建工类专业的瓜娃子&#xff0c;至今记得当初是因为找工作被培训公司忽悠才加入到这个行业的&#xff0c;抱着做着试试的想法这一干在深圳就是6年&#xf…

excel替换技巧:如何将手机号码的部分数字变成星号

每个销售员经常会接触大量客户&#xff0c;会用小本本记下众多客户的信息&#xff0c;而手机号码就是其中重要的一项。为了保护客户隐私&#xff0c;在公开的信息里销售员需要把客户手机号码的部分数字变成星号。比如说&#xff0c;把客户A的手机号码15867852976修改成158****2…