##minimumSnap算法总结
- 离散化 在移动机器人运动规划中,离散化是将连续空间或时间分割成离散的小部分的过程。对时间进行离散化,可以理解为插值,比如轨迹解算。这样做的目的是将复杂的连续问题转换为离散的问题,从而更容易进行计算和处理。 在运动规划中,通常将机器人的工作空间或路径划分为离散的小单元,例如网格或时间步长。然后可以在这些离散单元中进行路径搜索、碰撞检测、路径优化等操作。通过离散化,可以将机器人的运动规划问题转化为一个离散状态空间的搜索问题。 离散化的好处是可以大大减小问题的复杂性,节省计算资源,并且方便使用各种搜索算法和优化方法来解决问题。但是也需要注意选择合适的离散化分辨率,以保证精度和效率的平衡。 对于移动机器人,其工作空间通常是机器人能够到达的地方,包括机器人能够行驶的区域和机器人能够操作的范围。例如,对于一个房间清扫机器人,其工作空间是整个房间的区域。
###前言&&概述 这是一个典型的convex optimization problem Disciplined convex optimization program 优化问题包含两个方面:优化目标和约束条件(不等式约束和等式约束) 每一段轨迹多项式次数的选择: 如果是minimum jerk,则需要23 - 1 = 5次多项式 如果是minimum snap,则需要24 - 1 = 7次多项式 并且上述两种minimum算法,优化目标函数和约束条件不同。假设k段轨迹 第一种,约束条件是起点终点pva + 中间点p + 中间点pva连续;则约束个数为6+(k-1)+3*(k-1)=4*k+2 第二种,约束条件是起点终点pvaj(一般高于a后的阶次都是给定0),中间点p,中间点pvaj连续;则约束个数为8+k-1+4(k-1)=5k+3 上面三组约束中,前两个是微分约束,最后一个是连续性约束!
###补充 对于二次规划调库求解这种方式,求解可能有一点不稳定,也就是同样的输入,多次运行几次,求出的轨迹参数可能有些许不同,小数点3或者4位之后的数值可能不一样,但不是大问题!
相对时间和绝对时间的使用选择:选择使用相对时间,数值求解更加稳定快速,实测也是这样的,因为数据值没有绝对时间那么大。
###参考文章 https://blog.csdn.net/qq_15390133/article/details/106854420
【L2】深蓝学院-高飞老师 移动机器人规划笔记 基于搜索的路径规划
##配置doxygen 参考文献 在Ubuntu下使用Doxygen步骤 ubuntu 使用doxygen生成软件文档[Vscode 配置doxygen插件方法] 文档生成神器---doxygen的使用和代码注释规范