这,就是无人驾驶(二)

等我们的孩子长大,可能已经满大街的无人车了。这些看似非常高级的技术也是基于一些基本的原理实现的。让我们用 Lego Boost 来帮助小朋友感受一下无人驾驶的另一个关键技术——避障。

还是按照惯例,先来看看效果。

真正的无人车会用各种传感器来感知周围的环境,比较常见的有:

视觉系统

毫米波雷达

激光雷达

下图是谷歌无人车Waymo的传感器示意图

虽然没有那么多高大上的传感器,但通过 Lego Boost 自带的距离传感器就可以实现如前面视频展示的效果。下面就来看看是怎么做的吧。

【积木搭建】

由于距离传感器只能感知一个方向。要实现避障需要让它转起来。简单起见,我们还是基于Boost自带的MTR全地形车的底盘。

拆掉上面不必要的一些装饰。

把距离传感器和单轴电机从下面拆出来。

把电机立在最前面。传感器固定在电机轴上。

【软件编写】

基本思路就是:

判断前方是否有障碍物

如果有就转动传感器扫描

当发现某个方向没有障碍,转到该方向前进

主程序如下

主程序很简单,一个 while 循环里面一个 if 条件结构。为了程序结构清晰,这里把扫描障碍物的部分做成了一个子程序。(你没有看错,LEGO Boost编程也支持调用子程序的哦)

子程序里面写了一段扫描障碍物的代码,相对比较复杂,我先贴在下面。大家如果感兴趣,可以给我留言讨论。

这个子程序中还用到了变量和一些调试的方法。如果大家感兴趣,工科爸爸以后可能要专门开篇来详细讲讲了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180804G0ZJRS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动