导航中路径规划模块与算法

路径规划在导航系统中至关重要,涉及经典算法如A*和Dijkstra。A*算法因估算函数在资源受限环境下常被优化,如地图数据分层、方向性扩展和历史路径记录。路径规划考虑因素包括最短路径、最快路径或两者兼顾。本文以Dijkstra算法为例,展示室内导航路径规划试验,探讨满足不同需求的路径规划策略。
摘要由CSDN通过智能技术生成

路径规划是导航系统的基本能力之一。


熟悉这个模块的目标:

1. 熟悉导航常用的路径规划经典算法,这个在导航系统开发比较成熟后,使用哪种算法并不是最重要的,关键是能满足性能需求

2. 熟悉有哪些路径规划的衡量指标,是最近,最省时间,最省油... 度量指标要根据实际需求来开发,哪些指标最常用?

3. 与地图数据的关系,分层思想

4. 使用者对路径规划的偏好,机器学习能力


导航引擎在得到目的地与自身位置信息后,就需要根据地图,计算出最优的路径。

输入:目的地、当前位置

输出:最优路径,或多条备选路径


路径规划的算法有哪些?

路径规划有很多算法,在导航中,经常提到的就是A*和Dijkstra算法。

A*算法是导航路径计算中的标准算法。它比Dijkstra算法多了一个估算函数,若估算函数为0,A*算法也就退化为Dijkstra算法。

但在一般的嵌入式硬件上,基于性能和内存的限制与要求,不能直接使用A*算法计算路径。所以,也有很多改进的方法。

例如:

1. 应用地图数据分层的思想,简化地图中道路的网络结构,也能提高路径规划的性能。

2. 起始点与目的地的方向考虑进去,扩展时,有方向性进行扩展,可以大大减少计算量和存储空间。

3. 保存曾经的规划记录,也能达到快速检索的能力。Google的地图规划好像就采用的这种思想。


路径规划的估计函数或考虑因素有哪些?

最短路径:只考虑时间,不考虑距离或其他因素

最快路径:只考虑距离,不考虑时间或其他因素

同时考虑时间和距离因素:50/50的路径规划方法。


路径规划算法仅仅是路径规划的一小部分,找到能满足需求的算法就可以了。


以下代码是我在做一个室内导航时,利用Dijkstra算法,做一个路径规划的试验。

当时对Java不熟悉,代码不规范,不过能运行,凑合着看看试验结果。

在代码里通过

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值