今天用A*算法跑了一张1080*1920的地图,发现程序直接卡死了。
网上查到的结果做一总结
从00 到 1000复杂地形,竟然需要数分钟。精度越高,越费时间。
1000*1000的地图
首先得到开放表的8个点运算 10次
判断此8个点是否可移动 10 次
判断此8个点是否在封闭列表 N次
判断次8个点是否有人 8次
如果全部历遍所有点,需要历遍100万个点,也就是100万*10+10+N+8次,该数字还不算添加到封闭列表后,开放列表的数据移动和添加开放列表的次数。
网上有人改进了算法:通过学习二叉数优化算法,和使用临时地图,组合优化部分代码,速度自我感觉提高了100倍。高兴,今天的一天没有白过。很辛苦但也很充实。我喜欢这样的生活。
师兄的解决方案(matlab中):
机器人路径规划不需要那么高的精确地图,因此将得到的大地图 缩小到 200*200 在进行路径规划就行。
缩放地图的想法:把几个点合并成一个点即可。
我的想法:
利用opencv的resize ( ) 函数对地图进行缩放,然后在路径规划即可。