查看原文
其他

“蚂蚁漫步”背后的定位原理思考

陆春晖 CSDN云计算 2020-12-18

作者 | 陆春晖

责编 | 李雪敬

头图 | CSDN下载自视觉中国

蚂蚁的里程表

最近看了一本很有意思的书,克利福德皮寇弗所著的《数学之书》。其中一篇《蚂蚁的里程表》,讲述蚂蚁惊人的定位导航能力,对机器人及无人车的设计者们有强烈的启示作用。笔者对此十分感兴趣,忍不住对其背后的定位原理进行了进一步研究分析。
文中所述的撒哈拉沙漠蚁,是一种长脚的沙漠蚂蚁,能够在广袤、没有地标指引的沙漠地带寻找食物,并且找到食物后能够采取直线前进的方式直接回到巢穴,不需要一步步回溯原路返回。科学家通过研究发现,蚂蚁可以通过太阳判断巢穴方位,通过步伐的大小和“计算”步数的方式判断距离,从而实现精准定位,准确返回入口直径不到1厘米的巢穴,犹如携带了微型的GPS定位器。
蚂蚁这种神奇的定位能力描述大致如下图所示。蚂蚁从巢穴B点出发,经过不规则漫步路线到达A点,通过太阳方位获取B点相对A点的位置夹角,得到巢穴B的方向;根据自己的步长和步数,进一步计算出从A点到B点的最短直线距离,沿AB间直线返回,精准到达巢穴。
图1 蚂蚁漫步示意图
如果我们自己根据已有的数学知识应该怎么计算这个问题呢?尝试将图1进一步抽象成图2。A点和B点间曲线距离可由蚂蚁“步数”和步伐大小得知,即CurveAB=step_distance*step_counts(step_distance:步伐大小,step_count:步数),A点和B点相对于A点的夹角可以由A点和B点相对于太阳的夹角计算得到,由于蚂蚁在二维平面上活动,为简化计算,将太阳的位置投影到二维平面,得到平面上A点和B点位置夹角θ,,即蚂蚁可以通过太阳位置来获得B点相对A点的方向。然而我们很快发现,即使得到曲线CurveAB和位置夹角θ,也不能直接计算得到AB间的直线距离,至少还需要知道B相对于A的垂直方向投影H。
图2 蚂蚁定位原理二维平面简化图
为了计算投影H,需要将图2进行进一步分解,即将蚂蚁走过的曲线分解成无数个短的直线段Curve’,通过每个线段的相关夹角θ’求每个线段的垂直投影h’,保留h’的方向正负号,通过累加全部h’得到总的垂直投影H,分解步骤如图3所示。
图3 蚂蚁定位原理分解图
得到H后即可通过公式计算得到AB两点间的直线距离LineAB。
蚂蚁脑海中高度精密的计算机,不但可以实时进行类似以上复杂的位置运算,甚至还可以进一步将沙丘之类的复杂地势进行水平的量化投影,在复杂的沙漠地形中进行精准定位。研究发现,一只蚂蚁甚至可以离巢漫游约50米,直到发现食物为止。这些在蚂蚁身上发现的定位导航的行为模式,就像一台能自动驾驶的汽车,但是却比当前自动驾驶的定位技术要高级的多。

自动驾驶

当前已有的自动驾驶定位技术主要包括三大流派,基于地标定位、基于信号定位和基于惯性导航定位。
基于地标定位是根据视觉或者雷达的定位,与数据库中的数据特征匹配,确定车辆本体的位置和环境,比较典型的例如基于LIDAR点云和高精地图的匹配定位;基于信号定位是采用外界的位置信号,如卫星系统等进行定位,例如Multi GNSS和GPS;基于惯性导航技术是通过航位推导计算车辆当前位置和方向,即在初始位置上累加位移矢量进行计算(参考图3),是一个信息累加的过程,例如惯性传感器。
各流派的定位技术优缺点不同,基于地标的定位坐标系的配准容易产生误差,基于信号的定位容易受到不良环境的影响,而基于惯性导航技术的定位对传感器的性能和可靠性要求很高。因此当前的研究方向是结合各流派的技术进行融合定位,例如GPS+IMU+高精度地图+激光雷达信息融合的定位方法,利用GPS结合IMU判断大概位置,使用高精度地图与激光雷达SLAM云点图像进行坐标系精细配准,这是目前最成熟,准确率最高的方法。
即使如此,自动驾驶的定位技术在精确度和可靠性上仍然不能跟蚂蚁的定位导航能力相提并论。蚂蚁的定位导航能力类似于地标定位、信号定位和惯性导航定位的结合体,却更加精准高效。当前最精确的自动驾驶定位技术仍然允许有10cm的误差,而蚂蚁却可以精确定位到直径不超过1cm的巢穴入口。此外,蚂蚁自身还可以分泌信息素,通过气味的方式协助定位导航。研究蚂蚁的定位导航模式,或许能够帮助科学家研发新的电脑计算法则,促进自动驾驶定位技术的进一步发展。
作者简介:
陆春晖  毕业于南开大学,中国农业银行研发中心高级工程师。

更多阅读推荐

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存