实现效果:
介绍:
使用Astar进行路径规划,使用minimum-snap进行路径优化处理,建议参考文章:
【附源码和详细的公式推导】Minimum Snap轨迹生成,闭式求解Minimum Snap问题,机器人轨迹优化,多项式轨迹路径生成与优化-CSDN博客
参考代码:
AllocateTime:zm0612 Minimum-Snap https://github.com/zm0612/Minimum-Snap.git
Astar:lh9171338 Astar https://github.com/lh9171338/Astar.git
Minimum-Snap:peiyu-cui motion-planning https://github.com/peiyu-cui/motion-planning.git
代码空间:
https://gitee.com/upcgyl/minimum-snap.git
使用说明:
- git clone https://gitee.com/upcgyl/minimum-snap.git
- cd minimum-snap
- catkin_make
- source devel/setup.bash
- roslaunch MyAstar astar.launch
osqp_Eigen 安装可参考:osqp_eigne ubuntu安装和使用
osqp_Eigen 安装后修改bug可参考:linux安装eigen/osqp/osqp_eigen库
目前存在问题:
由于调用minimum_snap选点采用平均采样,导致最终得到的路径并不是特别平滑,尤其在直线路径影响较为明显 ;
在路径的结尾处会有较明显的失真;
在考虑使用对路径的曲率进行分析选择曲率较大的点作为路径的关键点作为minimum_snap的输入后,效果并没有变好,因为长距离的角度不改变的线段会只选择线段的两个端点,失真严重,目前来看平均选点效果较好;
2024/9/4 修改:
之前的代码有bug,将minimum snap的点改为world中的坐标,而不是在A* 中定义的坐标点,这样在插值处理后路径会变得平滑,参考下图红色路径,但是仍然有bug,不管我的目标点选取在哪里,最后的路线都会比较差,考虑原因在于调用minimum snap的时候采用的是A* 的路径的平均采样点,如果将采样点选为路径的关键点可能效果会好很多,所以后续将考虑对曲率进行分析选取部分关键点作为minimum_snap的输入: