Fast Planner——代码解读参考资料整理

这篇具有很好参考价值的文章主要介绍了Fast Planner——代码解读参考资料整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 地图部分

1.1 EGO-Swarm代码解读-地图部分

参数解读
主要函数解读

1.2 EGO-Swarm代码阅读笔记之GridMap类

1.3 EGO-PLANNER代码阅读(地图部分)

1.4 欧几里得距离转换(EDT)算法

1.5 EDT欧式距离变换

1.6 栅格地图建立-Grid-Mapping

概率栅格地图,概率更新过程的公式推导过程
全概率公式、贝叶斯公式

2 路径搜索部分

2.1 Fast-Planner代码阅读-1. Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight

一. kinodynamic a_star(前端hybrid A_star动力学路径搜索)
1.1启发函数的计算
1.2 Compute shot Traj
1.3 节点扩张
1.4 节点剪枝
1.5 返回kinopath与 getsamples
二、B样条曲线设置
2.1 均匀B样条设置
2.2 B样条函数值计算
2.3 控制点获得-前端路径拟合
2.4 非均匀B样条一阶及二阶微分
2.5 可达性检查
2.6 小结
三、B样条优化
3.1 优化项计算
3.2 优化项结合
3.3 Nlopt优化
3.4 小结
四. 规划系统运行逻辑
4.1 plan_mannager
4.2 kino_replan_fsm.cpp
4.3 流程总结

2.2 【项目解读】fast_planner工程解读

一、规划系统运行逻辑【业务部分】
1.Fast_planner_node.cpp【程序入口】
功能
代码实现
2.kino_replan_fsm.cpp【状态机转移】
功能
代码实现
KinoReplanFSM::init()函数
订阅目标点回调函数
订阅里程计回调函数
【重要】执行状态机FSM定时器回调函数
【重要】路径规划并检查规划是否成功(planner_manager的入口)
【重要】判断目标点是否有障碍物或者是轨迹执行过程中是否有障碍物的回调函数
3.planner_manager.cpp【算法拼接部分】
功能
【核心函数–正常情况的规划】FastPlannerManager::kinodynamicReplan()
【核心函数–航向角yaw规划】FastPlannerManager::planYaw()
为什么要进行航向角yaw规划
核心思想
其他函数接口
二、规划系统算法部分
1.前端kinodynamic A*算法动力学路径搜索
2.后端轨迹优化
(1)Bspline曲线拟合
(2)bspline_opt非线性优化器
3.安全检查线程(safetyCallback)
功能
原理
4.轨迹处理控制指令traj_serve
功能
三、Gazebo仿真环境运行步骤
1.使用激光雷达作为传感器
2.使用RGBD相机作为传感器
总结

2.3 【路径生成–基于运动学的A*图搜索方法】运动学/动力学Kinodynamic A*算法

一、前端kinodynamic A*算法动力学路径搜索的功能
二、步骤一:进行实时采样,离散的获得一些轨迹点(节点point_set,即创建open_list)以及起始点的速度与加速度
1.功能
2.代码实现
三:步骤二:设置算法搜索参数setParam()
四、步骤三:整体的搜索过程search()–包括进行节点扩张-剪枝
1.整体搜索的逻辑流程
手撕示例图
步骤详细解释
2.代码实现
五、步骤四:获取规划得到的路径点getKinoTraj()
1、功能
2、代码实现
六、关键函数分析【重点】
(1)计算启发代价值H estimateHeuristic()
1、原理
2、代码实现
(2)计算当前节点的真实的代价G值
(3)计算一条直达曲线computeShotTraj()
1.原理
2.代码实现
(4)节点扩张、节点剪枝流程
1.节点扩张
2.节点剪枝
总结
参考资料

2.4 Faster Planner——Kinodynamic Astar详解

文中给出了启发成本 Heuristic Cost的详细公式推导,可与KinodynamicAstar::estimateHeuristic( )KinodynamicAstar::computeShotTraj( ) 等函数中代码相对应。
Fast Planner——代码解读参考资料整理

2.5 Optimal Boundary Value Problem (OBVP) 学习笔记

给出了OBVP问题求解的详细推导过程,可与上面一篇及下面一篇文章同时阅读。

2.6 运动规划课程第四次作业——考虑运动约束的路径规划代码全解析

2.7 庞特里亚金最小值原理解最优控制问题

2.8 fast planner代码解析–kino_replan_fsm.cpp

KinoReplanFSM::init()函数
void KinoReplanFSM::waypointCallback()订阅目标点回调函数
void KinoReplanFSM::odometryCallback()订阅里程计回调函数
void KinoReplanFSM::changeFSMExecState() 改变执行状态机FSM函数
void KinoReplanFSM::printFSMExecState()输出执行状态机状态函数
void KinoReplanFSM::execFSMCallback()执行状态机FSM定时器回调函数
void KinoReplanFSM::checkCollisionCallback() 回调碰撞检测函数
路径规划并检查规划是否成功

3 后端优化部分

3.1 Fast-Planner代码阅读-1. Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight

与2.1是同一篇博客。

3.2 贝塞尔曲线,B-样条,非均匀有理B样条梳理

一些关于贝塞尔曲线和B样条曲线的基础概念。

3.3 计算机表示物体形状的基本方法、贝塞尔曲线、B样条曲线、NURBS 曲线、Catmull-Rom 样条曲线

一些关于贝塞尔曲线和B样条曲线的基础概念。

3.4 Fast planner 基本原理学习(一)

部分B样条理论公式推导。以及Fast planner原理架构图。

3.5 代码阅读:使用nlopt和b-spline曲线进行优化

3.6 【轨迹优化–梯度下降】使用nlopt优化库进行路径规划的后端轨迹优化–梯度下降的函数优化使得轨迹形变

4 github中参考代码(有部分注释)

  • https://github.com/Mesywang/Fast-Planner-Noted

仓库代码注释于2020年2月,只包含Hybrid A* + 基于梯度的B-Spline优化方案,不包括作者后来提交的版本。

  • https://github.com/amov-lab/Prometheus/wiki/%E4%BD%BF%E7%94%A8FastPlanner%E8%BF%9B%E8%A1%8C%E8%BD%A8%E8%BF%B9%E4%BC%98%E5%8C%96

阿木实验室Prometheus项目中关于Fast Planner代码的注释。文章来源地址https://www.toymoban.com/news/detail-451995.html

到了这里,关于Fast Planner——代码解读参考资料整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32重要参考资料

    stm32f103c8t6 (有时候不小心短接VCC和GND,芯片会锁住,可以BOOT0拉高试试(用跳线帽接)) 可用于PCB设计 1.RCC开启时钟错误,例如    RCC_ APB2 PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); 写成    RCC_ APB1 PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); 这个函数是有说明的,可以看看vscode显示的函

    2024年04月11日
    浏览(42)
  • 资料与参考

    资料: 本书(《Python神经网络编程》)的资料是使用Jupyter notebooks写的,本人并不擅长使用Jupyter,所以用传统py重写了一遍,并附加了新功能(即多数字识别),现将Jupyter版和py版连带本书pdf一并上传至gitee,地址:python-neuralNetwork-coding: 《Python神经网络编程》pdf和随书源码,

    2024年02月11日
    浏览(60)
  • [渝粤教育] 中国人民警察大学 工业企业防火 参考 资料

    教育 -工业企业防火-章节资料考试资料-中国人民警察大学【】 随堂测验 1、【判断题】工业企业的火灾特点是涉及行业种类繁多,涉及到社会生活的方方面面。 A、正确 B、错误 参考资料【 】 2、【判断题】工业企业的火灾特点是物资集中,存在各种形式的点火源,发生火灾

    2024年02月02日
    浏览(58)
  • [渝粤教育] 辽宁对外经贸学院 数字新技术 参考 资料

    教育 -数字新技术-4-章节资料考试资料-辽宁对外经贸学院【】 第一单元测验 1、【单选题】1. 云计算是对(D)技术的发展与运用 云计算是对( )技术的发展与运用。 A、并行计算 B、网格计算 C、分布式计算 D、三个选项都是 参考资料【 】 2、【单选题】从研究现状上看,下

    2023年04月25日
    浏览(93)
  • 【Python NLTK】零基础也能轻松掌握的学习路线与参考资料

    Python 自然语言处理工具包(Natural Language Toolkit,简称 NLTK)是一款 Python 的库,主要用于处理自然语言的相关问题,如文本清洗、标记化、分词、语义分析、词性标注、文本分类等功能,是数据科学家和机器学习工程师不可或缺的工具之一。 本文将介绍学习 Python NLTK 的路线,

    2024年02月07日
    浏览(64)
  • 【Python psycopg2】零基础也能轻松掌握的学习路线与参考资料

    Python psycopg2是一个Python库,在Python中提供了一个连接PostgreSQL数据库的接口。它可以让Python应用程序和PostgreSQL数据库之间进行通信和数据传输。学习Python psycopg2的路线和教程可以在查阅资料和实践中快速入门。 一、学习前置知识 学习Python psycopg2需要一定的前置知识,如Pytho

    2024年02月05日
    浏览(49)
  • 【Python Cookie 和代理 IP】零基础也能轻松掌握的学习路线与参考资料

    一、Python Cookie 1、什么是Cookie? Cookie是一种在客户端保存数据的机制,服务器通过在HTTP响应头中添加Set-Cookie头实现。浏览器在接收到响应头中的Set-Cookie后,会将这个Cookie保存在本地。之后每次请求都会将本地保存的Cookie自动添加到请求头中,发送给服务器。 2、为什么需要

    2024年02月05日
    浏览(49)
  • 基于JAVA高校校园学习资料共享系统 设计与实现(springboot框架) 参考文献

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月19日
    浏览(48)
  • 基于python影视电影点评系统设计与实现:开题报告、成品参考、毕设辅导资料

     博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月05日
    浏览(51)
  • java工程师面试技巧和方法,这份Github标星50K,相关资料参考

    Dubbo 为什么要用 Dubbo? Dubbo 的整体架构设计有哪些分层? 默认使用的是什么通信框架,还有别的选择吗? 服务调用是阻塞的吗? 一般使用什么注册中心?还有别的选择吗? 默认使用什么序列化框架,你知道的还有哪些? 服务提供者能实现失效提出是什么原理? 服务上线怎么

    2024年04月16日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包