等我们的孩子长大,可能已经满大街的无人车了。这些看似非常高级的技术也是基于一些基本的原理实现的。让我们用 Lego Boost 来帮助小朋友感受一下无人驾驶的另一个关键技术——避障。
还是按照惯例,先来看看效果。
真正的无人车会用各种传感器来感知周围的环境,比较常见的有:
视觉系统
毫米波雷达
激光雷达
下图是谷歌无人车Waymo的传感器示意图
虽然没有那么多高大上的传感器,但通过 Lego Boost 自带的距离传感器就可以实现如前面视频展示的效果。下面就来看看是怎么做的吧。
【积木搭建】
由于距离传感器只能感知一个方向。要实现避障需要让它转起来。简单起见,我们还是基于Boost自带的MTR全地形车的底盘。
拆掉上面不必要的一些装饰。
把距离传感器和单轴电机从下面拆出来。
把电机立在最前面。传感器固定在电机轴上。
【软件编写】
基本思路就是:
判断前方是否有障碍物
如果有就转动传感器扫描
当发现某个方向没有障碍,转到该方向前进
主程序如下
主程序很简单,一个 while 循环里面一个 if 条件结构。为了程序结构清晰,这里把扫描障碍物的部分做成了一个子程序。(你没有看错,LEGO Boost编程也支持调用子程序的哦)
子程序里面写了一段扫描障碍物的代码,相对比较复杂,我先贴在下面。大家如果感兴趣,可以给我留言讨论。
这个子程序中还用到了变量和一些调试的方法。如果大家感兴趣,工科爸爸以后可能要专门开篇来详细讲讲了。
领取专属 10元无门槛券
私享最新 技术干货