关于A星的一些问题

我觉得我的任务就是重复一些研究性并不高的事情,今天的收获其实并不大,客观原因就是有点困,主观原因,还没有想到,或许是积极性不高。下次再做相关内容我要把前端的代码跑通。因为做这些事情,我能收获的只有扩展知识面,不适合深入研究。
关于A星,主要解决了以下问题:

1. 路径不过起始点

排除了B线条优化的问题,确实是算法有问题。因为A星节点的索引值是整数,所以要把路径点通过格子转换成整数索引值(函数calc_xyindex()实现),作为节点的标识。所以实际得到的路径经过的是格子的顶点,不一定是路径的起始点和终点。只需自己加上这些点即可。
在这里插入图片描述
在这里插入图片描述
这里的gx,gy是起点,在调用规划函数的时候就已经把起点写到了终点的位置,这样规划得到的路径是从实际起点到终点的连线。(A星的路径是从最后一个点根据节点向前索引的)

2. 路径与障碍物相交&无法收敛

从图中可以看出完全是B样条优化造成的问题,最终选用无优化的路径。在我尝试增大避障安全距离的时候,发现了另外一个问题,A星搜索点无限向外扩展错过了终点无法收敛。
是代码里的判断到达终点的条件有问题。
开始是判断当前点与终点的节点索引值相同就认为找到了终点,目前看起来是没有问题的。实际有问题,只好换一种。改为判断当前点的实际经纬度与终点经纬度的距离<避障安全距离,则认为到达了终点。
在这里插入图片描述

3. 几个小问题

(1)在循环外边加入终点sx1,sx2,别加到循环里。
在这里插入图片描述

(2) 不要写else了,否则最终a的值是对最后一个输入点判断得到的值,我想表达的是只要有跟输入点相等的a=1。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值