TGK-Planner-前后端路径规划(基于梯度的后端无约束优化)

news2024/11/16 9:34:28

高速移动无人机的在线路径规划一直是学界当前研究的难点,引起了大量机器人行业的研究人员与工程师的关注。然而无人机的计算资源有限,要在短时间内规划出一条安全可执行的路径,这就要求无人机的运动规划算法必须轻型而有效。本文将介绍一种无人机的在线路径规划算法 TGK-Planner,希望能给开发者提供一些解决思路。

TGK-Planner简介

TGK-Planner 为浙江大学 Fast Lab 提出的一种轻型有效的拓扑引导的无人机路径规划算法,用于具有有限机载计算资源的四旋翼无人机在线飞行。该算法结构遵循传统的前后端工作流程,采用新颖的设计来提高寻路和轨迹优化子模块的鲁棒性和效率。

首先在前端部分使用拓扑引导图来粗略的捕捉环境结构,并指导基于采样的动态规划器进行状态采样,给出一条粗略的全局避障路径。然后在后端优化框架中改进轨迹的平滑性和连续性,并且将优化的轨迹曲线往前端的无碰撞轨迹曲线吸引。下面我们将TGK-Planner算法分为前端路径规划以及后端轨迹优化两部分来进行讲解。

前端路径规划

TGK-Planner 的前端轨迹规划部分,是一个改进的Kinodynamic RRT*采样算法,其主要改进的地方在于环境引导采样策略。前端部分的算法步骤如下所示:

1、首先不考虑障碍物,直接规划出一条从起点到终点的路径,如上图红色曲线所示;

2、沿着规划的路径,记录路径曲线进出障碍物的交点,并将每一对交点连接起来,如上图蓝色虚线所示;

3、沿着蓝色虚线的法向方向进行双向延伸射线,射线端点延伸到离开障碍物的栅格为止,如上图橘色虚线所示;

4、将起点、终点以及延伸的射线端点连接起来,最后可以获得一块包裹障碍物的区域,如上图橘色实线所示;

5、在橘色实现区域外围进行 Kinodynamic RRT* 状态采样,通过较少的时间花费可以得到一条粗略的无碰撞轨迹。

通过前端的轨迹规划,我们可以得到一条安全无碰撞的粗略轨迹,该轨迹的位移和速度是连续的,但分段轨迹的连接点上其加速度是不连续的,这会导致姿态抖动,并对无人机控制造成干扰。

后端轨迹优化

优化框架

无人机的轨迹可以用多项式来表达,通过后端的优化框架,可以改进无人机轨迹的平滑性以及无人机加速度的连续性,让无人机更加平稳飞行。后端的轨迹优化可以考虑为一个无约束的优化问题,其代价函数可以表示为:

代价函数考虑了三项目标函数,J_s 表示为光滑项代价函数,J_h 表示为优化轨迹与前端全局轨迹的差异,J_c 为惩罚分段轨迹之间的加速度不连续性。

1、光滑项惩罚:无人机轨迹使用高阶多项式表示,将轨迹的高阶导数作为控制输入,最小化高阶导数能够使得整段轨迹控制能量小,并使无人机的整段轨迹更加光滑。

2、差异性惩罚:由于前端部分规划的全局路径是安全无碰撞的,那么就可以通过惩罚优化后的曲线与前端规划轨迹的差异性,将优化的轨迹曲线吸引到前端规划的曲线位置上,这样就可以保障优化后的曲线也是安全无碰撞的,且实现十分轻型高效,无需太多计算资源。

3、连续性惩罚:由于无人机前端规划分段轨迹的连接点的加速度不连续,通过惩罚分段连接点的两端加速度差异,迫使无人机轨迹连接点的加速度趋于相同,保证无人机的平稳飞行。

TGK-Planner Paper:

https://arxiv.org/abs/2008.03468

Code:

https://github.com/ZJU-FAST-Lab/TGK-Planner

Video:

https://www.bilibili.com/video/BV1mi4y1c78T

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

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

相关文章

electron-vue中报错 Cannot use import statement outside a module解决方案(亲测有效!!!)

错误: Cannot use import statement outside a module(不能在模块之外使用导入语句)。 原因: 安装的某个依赖包里使用了import语法,因为我们打包输出的是commonjs规范,所以不识别import语法而导致报错。 可以从 .electron-vue/w…

PrimoBurnerSDK蓝光刻录工具开发工具包

PrimoBurnerSDK蓝光刻录工具开发工具包 PrimoBurnerSDK是一个CD、DVD和蓝光刻录工具开发工具包。它还提供了一个全面灵活的API,用于快速轻松地实现各种燃烧/翻录替代方案。 PrimoBurner SDK for.NET的强大功能: 自2003年以来一直在发展的广泛使用的老式发…

比机器人还智能的数字孪生地下停车场监管系统!

现在的停车场管理大多采用人工或智能收费系统,两种方式都有一个弊端就是无法直接知晓停车场内部信息。 车驶入停车场只能自行寻找停车位,工作人员也只有走进停车场才能知晓停车场内部情况,无可避免造成很多麻烦。 停车场智慧监管系统结合数…

期货开户交易操作技巧

期货交易的时候需要有一些操作技巧,以及要注意一些操作上常见的错误。 个人建议刚刚开始交易的投资者期货交易的投资者,一定要多看慢做,首先要摒弃做这个会一夜暴富的想法。抱着个想法来的往往都会折戟沉沙,一去不复返了。所以我…

基于springboot+mybatis+mysql+vue中学生成绩管理系统

基于springbootmybatismysqlvue中学生成绩管理系统一、系统介绍二、功能展示1.登陆2.用户管理(管理员)3.班主任信息管理(管理员)4.教师信息管理(管理员、班主任)5.学生信息管理(管理员)6.成绩信息管理(管理员、班主任、…

一个人,仅30天!开发一款3D竞技足球游戏!他究竟经历了些什么?

今天,晓衡向大家推荐一款Coco Store 优质 3D足球竞技游戏 资源《足球快斗》玩法介绍:游戏为 7V7 足球竞技类玩法。玩家控制本队的一个球员(脚下高亮圆圈显示的是玩家),其他球员和守门员为电脑AI控制,期间可…

Jvm上如何运行其他语言?JSR223规范最详细讲解

一 在Java的平台里,其实是可以执行其他的语言的。包括且不仅限于jvm发展出来的语言。 有的同学可能会说,在java项目里执行其他语言,这不吃饱了撑着么,java体系那么庞大,各种工具一应俱全,放着好好的java不…

责任链模式在复杂数据处理场景中的实战

相信大家在日常的开发中都遇到过复杂数据处理和复杂数据校验的场景,本文从一线开发者的角度,分享了责任链模式在这种复杂数据处理场景下的实战案例,此外,作者在普通责任链模式的基础上进行了升级改造,可以适配更加复杂…

34_DAC原理及数模转换实验

目录 数模转换原理 DAC模块框图 事件选择控制数字模拟转换 DAC转换 DAC数据格式 选择DAC触发 DAC输出电压计算 硬件连接 DAC配置步骤 实验源码 数模转换原理 STM32的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与…

linux安装nginx

1.nginx官网 http://nginx.org/en/download.html 下载安装包,如图所示下载nginx-1.23.2,并上传到指定目录:/usr/local/src/nginx 2.解压 tar -zxvf nginx-1.23.2.tar.gz3.安装nginx, cd /usr/local/src/nginx/nginx-1.23.2 该目录…

Titanic 泰坦尼克数据集 特诊工程 机器学习建模

以下内容为讲课时使用到的泰坦尼克数据集分析、建模过程,整体比较完整,分享出来,希望能帮助大家。部分内容由于版本问题,可能无法顺利运行。 Table of Contents 1 经典又有趣的Titanic问题1.1 目标1.2 解决方法1.3 项目目的2…

Vector-常用CAN工具 - CANoe入门到精通_03

NetWork Node 前面已经介绍了CANoe的基本情况、硬件环境搭建、CANoe软件环境配置,今天我们就来聊一下NetWork Node,在我们的测试工作中,大部分情况我们默认CANoe作为一个Client端,但是有些情况,我们需要实时监测被测件…

Akka 学习(四)Remote Actor

目录一 介绍1.1 Remote Actor1.2 适用场景1.3 踩坑点二 实战2.1 需求2.2 Java 版本2.2.1 效果图2.2.2 实体类2.2.3 服务端Actor 处理2.2.4 服务端配置文件2.2.5 客服端Actor处理2.2.6 客服端配置文件2.2.7 测试2.3 Scala 版本2.3.1 效果2.2.3 服务端Actor处理2.3.4 客户端Actor…

使用 Excel 数据透视表深入研究数据分析

问题 1(文章数据在底部) 为美国选民案例研究创建一个数据透视表,并用它来回答以下问题: A) 有多少个州的选民人口百分比低于 55%?哪些州? 答:有5个州的选民人数低于55%,分别是得克萨斯州、阿肯色州、俄克拉荷马州、夏威夷州和西弗吉尼亚州。 步骤:根据以下结果,创建…

基于jsp+java+ssm的社会保险信息管理系统-计算机毕业设计

项目介绍 课题研究的基本内容及预期目标或成果 用户注册与登录功能,在单位注册功能中有申请管理功能,填写具体信息。 系统管理员: 1)个人密码修改:实现了管理员用户密码信息的修改。 2)参保人员管理&a…

ORACE dbca创建报错Oracle system identifier(SID) “orcl“

最近项目需要通过备份恢复oracle实例,必须使用orcl,通过dbca创建实例是提示如下报错: 查看日志,$ORACLE_HOME/cfgtoollogs/dbca/dbcaui.log EVERE: [FATAL] A database instance with Oracle system identifier(SID) "orcl&…

零基础入门推荐系统 - 新闻推荐 - 实操2

内容导航: 零基础入门推荐系统 - 新闻推荐 - 实操2比赛数据分析:用户属性分析:训练集和测试集中分别有多少用户?用户城市分布有什么规律?平均每个用户会点击多少个文章?点击来源与文章点击次数是否存在关联?用户行为分析:零基础入…

【车载开发系列】UDS诊断---读取周期标识符($0x2A)

【车载开发系列】UDS诊断—读取周期标识符($0x2A) UDS诊断---读取周期标识符($0x2A)【车载开发系列】UDS诊断---读取周期标识符($0x2A)一.概念定义二.报文格式1)请求报文2)初始响应3…

[附源码]计算机毕业设计课程在线测评系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…