当前位置: 首页 > news >正文

MINCO+汽车

规划典型的解决方法:
如何准确的描述他的动力学,实际上是对这个物理对象进行建模.(规划等于开环的控制,控制等于闭环的规划),规划系统要做到是假设已知系统模型的情况下去计算一些可能会影响比较好的
未来运动的指令,做未来运动轨迹的推演.对自己建模的情况下还需对环境有个比较好的建模.环境感知,感知到的主要是一些数据,这些数据如何转换为规划系统如何能读得懂的有用的数据结构,如何用环境表征得到对避障有用的约束的形式.
没有优化:
没有死胡同只需要向前飞的环境中可以得到很好的效果.(随机树林).有很多死胡同没有全局规划无法保证从死胡同退出来. 对随即树林的环境比较友好.在非常复杂的情况下是无法保证轨迹质量非常好的.但是算力非常低.
ego_planner:
核心思想:从环境里获取障碍物,障碍物以无人机为代表的移动机器人运动过程中产生的推力.推着无人机远离障碍物的梯度信息,梯度信息把未来一段时间无人机可能获取到的梯度信息给叠加在一个生成的轨迹上,然后把梯度的代价函数传导到轨迹的参数空间里构造优化问题.最后生成一个既安全又光滑有符合无人机运动约束的飞行航迹.
MINCO:
核心思想:走的是环境里的freespace,用空旷空间来表征无人机可以在环境里去deploy航迹的形状,对于一个建出来的地图来说,重点在于传感器获取的障碍物位置,得到障碍物的空间分布,但对于机器人导航来说机器人并不care障碍物在哪里,更关心的哪些地方可以通行的,把地图里一个个可通行的区域用一个个简单的凸的子单元提取出来,构成一连串可通行区域,最后交给后端的轨迹优化,把可行区域作为一个安全性约束去生成轨迹.
MINCO:
时间空间的多项式轨迹,时间空间参数同时优化的方法,并且定制了高效的求解器,用这个方法可以使他任意的,只要给解析的无人机的微分平坦状态方程表示的约束函数(避障:用位置和freespace的空间约束表示出安全;底层动力学约束:推力角速度;)
对于环境中的静态障碍物,我们构造几何自由空间来约束自我车辆的完整模型以保证安全。

对于动态障碍物,我们使用凸多边形来覆盖其形状。

然后,我们约束小车与障碍物多边形在每一时刻的符号距离[1]的下界近似,以保证小车的安全。

最小控制努力轨迹类[2]用于参数化轨迹以加快优化过程。

进一步,将原约束规划问题转化为无约束规划问题,并采用拟牛顿方法[3]进行鲁棒求解。

第三节介绍了自动驾驶汽车的时空轨迹规划。

瞬时状态约束和动态避障约束分别在第四节和第五节讨论。
在第六节中,我们重新表述了轨迹优化。
VII给出了基准和真实世界的实验。本文在第八节结束。

讨论了完整的运动规划流水线,并介绍了类车机器人的差分平面模型。然后,我们给出了平面输出空间中考虑人的舒适性、执行时间和可行性约束的轨迹优化问题的表达式。
最后分析了该问题的梯度传播链,为后续的数值优化提供了依据。

时空最优轨迹规划

A.规划管线


整个管道采用分层结构,如图3所示。在实际应用中,建议的规划器与前端规划器合作,前端规划器的主要作用是提供初始猜测。在结构化的道路环境中,我们的规划师被整合到一个多层的规划框架中[19],其中行为策略规划器用于提供前端输出。在没有参考线的非结构化环境中,我们采用轻量级hybridA*算法寻找无碰撞路径,并由所提出的规划器进一步优化。我们定义了一个额外的变量η∈{−1,1}来表征运动方向,η =−1和η = 1分别表示车辆的前后运动。此外,η由前端输出决定,并在后端优化过程之前加上前缀。

B.差分平面车辆模型

 本文采用了简化的自行车运动模型
用笛卡尔坐标系来描述四轮车辆。
假设汽车为前轮驱动和转向,具有完美的滚动和无打滑,模型如图4所示。状态向量为

x = (p_{x},p_{y},\Theta ,v,a_{t},a_{n},\phi ,\kappa ) ^{T}

其中p = (p_{x},p_{y})^{T}为后轮中心位置,v为车身框架的纵向速度,at为经度加速度,an为纬度加速度,φ为前轮转向角度,κ为曲率。

 其中L是汽车的轴距长度,CoG是重心的缩写。由于对差分平面汽车模型的深入研究[51],我们选择平面输出为\sigma =( \sigma _{x},\sigma _{y})^{T}具有物理意义,σ = p是汽车后轮中心的位置。除px、py外,其他变量变换可表示为:

 因此,利用自然的微分平坦性,我们可以利用平坦输出及其有限导数来表征车辆的任意状态量,从而简化了轨迹规划,便于优化。

C.整车平坦输出优化方案

 其中n为轨迹段的数目,β(t)为自然基。系数矩阵c_{i}=(c_{i,1}^{T},....,c_{i,Mi}^{T})^{T} \in R^{2Mis*2}

然后,轨迹第i段的第j段可写为 \sigma _{i,j},

考虑避障约束和动态可行性约束,涉及时间正则化的最小控制努力问题可以表示为非线性约束优化:

W\in R^{2*2}是一个惩罚控制的对角线矩阵。

等式(6c)为边界条件

特定的约束条件等式(6d)

D = {d: d = v,at,an,κ,ζ,Θ}包括动态可行性(v,at,an,κ)、静态和动态避障(ζ,Θ)

可行性约束条件等式(6g)施加在整个轨迹

D.梯度推导

瞬时状态约束

A.动态可行性

经度速度限制:对于自动驾驶,由于交通规则、物理车辆性能和环境不确定性等实际因素,经度速度总是需要限制在一个合理的范围内。然后,将在一个约束点处的经度速度的约束函数定义如下

B. 避免静态障碍

在本小节中,我们分析地提出了基于环境中自由空间的几何表示的有效可计算的静态安全约束。首先对语义环境进行分解,提取安全空间,构造一个由一系列凸多边形组成的驾驶走廊。然后,推导了在行驶走廊中建立全车模型的充分必要条件,并用于构造静态无碰撞约束

在进行特定的推导之前,我们将介绍约束建模的管道。我们首先将前端生成的无碰撞路径离散为与后端优化中约束点数量相同的采样点。然后,结合环境信息,利用[60]方法或根据采样点直接展开生成自由凸多边形。因此,通过将全车辆模型限制在8个约束点,每个约束点限制到相应的凸多边形,保证了整个轨迹是安全的.

还可以与其他常见的地图表示相结合,以保证静态避障,如欧几里得符号距离场(ESDF)。直观地说,我们可以从ESDF地图中获得梯度信息,以推动车辆的整个刚体远离障碍物

动态避障

动态回避约束函数的动态回避约束函数。

A.距离表示

B. 对动态避障的约束

重新对轨迹的优化的设计

A. 可行性限制

B.平等约束

相关文章:

MINCO+汽车

规划典型的解决方法: 如何准确的描述他的动力学,实际上是对这个物理对象进行建模.(规划等于开环的控制,控制等于闭环的规划),规划系统要做到是假设已知系统模型的情况下去计算一些可能会影响比较好的 未来运动的指令,做未来运动轨迹的推演.对自己建模的情况下还需对环境有个比较…...

大模型机器人发展史:从VoxPoser、RT2到斯坦福Mobile ALOHA、Google机器人

前言 23年7月,我在朋友圈评估Google的RT2说道: “大模型正在革新一切领域啊,超帅,通过大模型不仅能理解“人话”,还能对“人话”进行推理,并转变为机器人能理解的指令,从而分阶段完成任务。回…...

Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 Vins-Fuison 运行配置

一、PX4飞控EKF配置 PX4默认使用的EKF配置为融合GPS的水平位置与气压计高度。如果我们想使用视觉定位,就需要把修改配置文件。让EKF融合来自mavros/vision_pose/pose的数据 1.1修改rcS配置文件 gedit ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/rcS 通过注…...

Linux 常见服务配置

笔记所以内容很多,建议选择性看看 SSH Secure Shell 用于与服务器建立安全的连接 对应服务 sshd 注意:配置文件 配制文件修改需要重启或重载sshd服务才能生效 systemctl sshd reload # 重载 sshd 配置文件 systemctl sshd restart # 重启 ssh…...

Flutter基础

一、关键字 class:用于定义一个新的类; extends: 用于指定一个类继承另一个类; mixin: 用于将一个类的代码片段添加到另一个类中,实现代码复用; abstract: 用于声明一个抽象类或抽象方法,不能直接实例化&a…...

MySQL-数据库概述

数据库相关概念: 数据库(DateBase)简称DB,就是一个存储数据的仓库,数据有组织的进行存储。 数据库分为关系型数据库简称RDBMS和非关系型数据库 关系型数据库简称RDBMS:建立在关系模型的基础上,由多张相互连接的二维表组成的数据库.简单来说…...

HTML---JQurey的基本使用

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 本章目标 (1)能够搭建jQuery开发环境 (2)使用ready( )方法加载页面、掌握jQuery语法 使用addClass( )方法和css( )方法为元素添加CSS样式使用n…...

搜索docker镜像

要查看Docker镜像库&#xff0c;可以使用docker search命令。 docker search <关键词>例如&#xff0c;如果你想要查找名为nginx的镜像&#xff0c;可以执行以下命令&#xff1a; docker search nginx命令执行后&#xff0c;将会列出所有与关键词nginx相关的Docker镜像…...

旋变检测AD2s1205手册学习笔记

旋变故障检测故障表 信号丢失检测 检测原理&#xff1a;任一旋变输入(正弦或余弦)降至指定的LOS正弦/余弦阈值 以下时&#xff0c;器件会检测到信号丢失(LOS)。AD2S1205通过将 监视信号与固定最小值进行比较检测此点 丢失的效果表现&#xff1a;LOS由DOS和LOT引脚均闩锁为逻辑…...

【温故而知新】JavaScript的防抖与节流

一、概念 JavaScript中的防抖&#xff08;debounce&#xff09;和节流&#xff08;throttle&#xff09;是用于控制函数执行频率的技术。 防抖&#xff1a;当一个事件连续触发时&#xff0c;防抖技术将只执行最后一次触发事件的函数调用。换句话说&#xff0c;只有在停止触发…...

C++模板——(3)类模板

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 勤奋&#xff0c;机会&#xff0c;乐观…...

深度学习中Epoch和Batch Size的关系

在深度学习中&#xff0c;Epoch&#xff08;周期&#xff09;和 Batch Size&#xff08;批大小&#xff09;是训练神经网络时经常使用的两个重要的超参数。它们之间的关系是通过以下方式连接的&#xff1a; Epoch&#xff08;周期&#xff09;&#xff1a; Epoch 表示整个训练…...

Python采集微博评论做词云图

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用: Python 3.10 Pycharm 第三方模块使用: import requests >>> pip install requests import wordcloud >>> pip install wordclou…...

一文详解VScode 的远程开发

VS code登录服务器后进行编码和调试&#xff0c;VS code上的所有功能都可以使用&#xff0c;和在本地开发基本无区别。 一、配置免密远程登录 因为是要远程登录&#xff0c;那么需要通过使用ssh进行密钥对登录&#xff0c;这样每次登录服务器就可以不用输入密码了。 先来一句官…...

捕捉“五彩斑斓的黑”:锗基短波红外相机的多种成像应用

红外处于人眼可观察范围以外&#xff0c;为我们了解未知领域提供了新的途径。红外又可以根据波段范围&#xff0c;分为短波红外、中波红外与长波红外。较短的SWIR波长——大约900nm-1700nm——与可见光范围内的光子表现相似。虽然在SWIR中目标的光谱含量不同&#xff0c;但所产…...

解读 Sobit v2:铭文资产跨链更注重安全、易用性

铭文市场的发展正在从早期的“无序”进入到“有序”阶段&#xff0c;我们看到从 12 月份以来&#xff0c;比特币生态内的多个应用纷纷宣布获得融资。这表明&#xff0c;目前仍旧有大量的资金有意向铭文领域&#xff0c;同样铭文赛道新一轮浪潮或许正在酝酿。 另一方面&#xff…...

[开源]万界星空开源MES系统,支持低代码大屏设计

一、开源系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、商业开源低代码MES、市面上最好的开源MES、MES源代码、免费MES、免费智能制造系统、免费排产系统、免费排班系统、免费质检系统、免费生产计划系统、精美的数据大屏。 二、开源协议&#xff1a; 使…...

开源软件运维安全防护的六个手段

开源&#xff0c;顾名思义&#xff0c;即开放软件源代码。代码贡献者可将自己编写的程序提交到开源社区的公开平台上&#xff0c;其他代码开发者如有类似的功能需求可以不必再自己动脑动手编写代码&#xff0c;而是直接集成、修改或应用贡献者公开的代码。 开源软件是通过特定…...

开启Android学习之旅-5-Activity全屏

Android 两种方式设置全屏&#xff1a; 1. 第一行代码中的方法 通过 getWindow().getDecorView()方法拿到当前Activity的DecorView,再调用 setSystemUiVisibility() 方法来改变系统UI的显示&#xff0c;这里传入了 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 和 View.SYSTEM_UI_…...

运行时类型信息 typeid、type_info...(C++)

4.5 运行时类型信息4.5.1 typeid和type_info4.5.2 dynamic_cast 4.5 运行时类型信息 运行时类型信息&#xff08;Run-time Type Information,RTTI&#xff09;提供了在程序运行时刻确定对象类型的方法&#xff0c;是面向对象程序语言为解决多态问题而引入的一种语言特性。由于…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...