给定当前位置position:[x,y]
,给定路径点序列path:[[x1,y1];[x2,y2];...;[xn,yn]],size=n*2
,返回path
中距离position
最近的路径点索引nearest_index
与最短距离nearest_dis
。另外还有1个可选参数,index_range: [range_upper,range_lower]
,表示nearest_index
所在的范围,其存在的意义有2个,1是可以减少搜索范围,从而减少计算量,2是为了应对交叉路径,防止最近点突变,具体情况如下图所示:
黑点为历史的位置轨迹,旁边的绿点为对应的最近路径点,蓝点为当前位置,大部分情况下(例如在自动驾驶轨迹跟踪任务中),我们希望找到的蓝点的最近点为旁边的绿点,但是如果仅用最近距离来判断则会返回红点,如果我们用index_range
限制最近点的范围,则可以避免这种情况。如果不设置index_range
,则默认返回最短距离的路径点。
支持python\c++\matlab.
每种语言均提供了暴力遍历搜索和KDtree高效搜索两种搜索方式并进行了耗时对比,同时提供index_range
参数设置来限制最近点的索引范围。
https://blog.csdn.net/beiyangxiaokai/article/details/136433611?spm=1001.2014.3001.5502 感谢大家的支持,欢迎大家点赞关注,star!!!