不过,随着这些小车纷纷遇到障碍物,这个机制就开始变得混乱起来,八两小车完全丧失了方向感,开始在场地中乱转,其中有一辆甚至直接掉了个头,朝原来来的路回来了,不过走到一半的时候,没有感应到其他小车持续的信号,于是它立刻又掉头,朝相反的方向行驶。
这也是一个简单的判断机制。
林鸿看过这些小车的核心代码,并没有什么高深的东西,无非就是三条很简单的条件架设。
如果遇到障碍物,那么通知其他小车转弯。
如果在一定时间内没有收到其他小车的同步连接信号,那么掉头行驶。
如果接收到别的小车传来的障碍信号,那么转弯之后,再调整姿态行驶。
这只是三条很简单的f-e语句,在程序设计里面是最常见的句型,并没有什么特别的。
奥兰多的“漫步者”显得就很从容了,只见他缓缓向前推进,快要接近第一个障碍物的时候,顿时停了下来,它的头部开始转动。
“爸爸,它在干什么?”一直跟在它身后的亚瑟奇怪道。
“它在扫描地形。”奥兰多笑道,“在它的双眼处,有一个2d激光雷达扫描仪,可以将它所看到的地形扫描到计算机中,然后在计算机里面建立对应的模型,计算出下一步该要走的路径。”
“太酷了!”
亚瑟走到“漫步者”的旁边,侧着脑袋看着它手中捧着的笔记本显示器,果然看到显示器中,它面前的铁桶的3d模型出现在上面,除此之外,其他障碍物的模型也一步步从左至右浮现出来。
“好强大啊!”亚瑟惊叫道。
林鸿闻言走过去一看,顿时也被上面的画面给镇住了。
竟然可以直接使用激光器就将它面前的东西在计算器中建立了3d模型,这也太强大了吧!
这其中的原理是什么?
林鸿的大脑急速运转,思考着可能地实现方式。
想了一会儿之后,林鸿问了第一个问题:
“cle(大叔),激光器一般都是点状的吧,这样旋转,最多只能扫描一个截面,怎么能将垂直方向的画面也扫描出来?”
奥兰多有些惊异地看了林鸿一眼,心中有些惊异,没想到他这么快就问了一个相当有水平的问题。
他解释道:“那个激光雷达激光器的输出模式被改造了,由单束点状激光改为了线状激光,这样就可以通过旋转扫描3d画面。扫描仪通过测量这束线型光在待测目标物体上的反射从而一次性获得一个扫描截面的数据。这样做的好处是扫描速度可以很快,精度也比较高。缺点是由于激光变成了一条线段,其强度将随着距离大幅衰减,因此测距范围很有限。对于近距离,如小于十米,的测距扫描而言,已经足够满足需求了。”
之前听到亚瑟的惊叫声之后就立刻跑了过来的马克听到他的话,脸上也露出震惊之色。
“没想到你们学校人工智能实验室还真的做出了一些比较有意思的东西。”他说道。
“它是通过什么原理对距离进行测量的?”林鸿问出了第二个问题,“是通过激光的反射吗?”
“是的。”奥兰得点点头,“soe,你是一个善于思考的孩子。”
夸奖了一下林鸿之后,他继续说道:
“这是基于激光的三角测距原理。漫步者的另外一只眼睛是摄像头,负责捕捉被反射回来的激光,根据反射原理,这样激光器、摄像头和物体三者之间就组成了一个等腰三角形,这个等腰三角形的高就是物体和漫步者的距离,通过三角函数公式就可以非常容易地计算出来。”
在他解释的时候,林鸿的脑海中逐渐浮现出一幅画面,三个组成部分抽象成了三个点,组成了一个三角形。他很容易就理解了其中的原理。
“当然,这是最理想的情况。”奥兰多继续解释道,“现在我们并不是在一个完全黑暗的环境中,周围有很多干扰光源,例如头顶上的白炽灯,会对摄像头造成干扰,所以其中还涉及到了光源过滤和激光提取算法,其中的原理就比较复杂了……”
“嘿嘿,别高兴得太早,你的漫步者虽然听上去很厉害,但是速度似乎慢了一点,等它将所有障碍物都建立模型,说不定我的孩子们已经到达了目的地!”
马克依然很乐观,因为他的玩具小车群虽然一直处于混乱不堪的状态中,但好歹一步步地再向前推动着,而反观“漫步者”,不停地给环境建模,计算出路劲之后,它向前移动几米,接近新的障碍物之后,又会重新停住进行扫描。