基于树莓派搭建自动驾驶小车;Donkey Car组装硬件DIY

还是想朝着人工智能方向靠一靠,之前研究图像有关的分类、识别,还是觉得太枯燥了。后来结合自己接触较多的Unity引擎,发现有自动驾驶用Unreal或者Unity之类的游戏引擎进行虚拟训练。接着发现了微软的AirSim,稍微研究了下,记录了一篇博客。然后就想虚拟训练虽好,但是既然是自动驾驶,自己能DIY一个小车那就有趣多了,这样就发现了Donkey Car这个项目。它就是基于树莓派,用Tensorflow进行训练,得到一些模型,让小车自动巡线,实现简单的自动驾驶。AirSim中初步看好像很多是C++代码,我还是喜欢用python的,暂时就转到树莓派自动驾驶上研究,AirSim以后再看。

网上能够买到的自动驾驶小车不多,Donkey Car有自己的商店,不过国内购买也不方便。淘宝上有小R科技的自动驾驶小车,不过价格有些贵,而且不像自己组装那样能更好挑选各个配件。因此我还是选择DIY,主要担心的是底座的问题,就是承载树莓派和摄像头等组件的支架。因为这个要和小车适配,Donkey Car关键字配合3D Print搜索就能找到它的stl模型文件,不过想要打印出来,据我问的淘宝的价格都在300左右,还是不好打钉子的树脂材料。想要用优质尼龙可能要五百以上了。

最终在淘宝找到了直接卖这个底座的,要价一百出头,可以接受,那么就可以开展工作了。为了方便购买,我会放上链接。不过需要说明的是,这里不是打广告,是否合适自行斟酌。

小车选择的是HSP 1/16 无限94186遥控越野大脚车(小时候没有遥控玩具车,工作了居然买个这玩意):

基于树莓派搭建自动驾驶小车;Donkey Car组装硬件DIY_第1张图片

地址是:

https://item.taobao.com/item.htm?spm=a1z1r.7974869.0.0.269c3ad41ri0xZ&id=548208111638

这里选择了有刷高配的,两个电池方便用的时候有另一个还能充电备用,因为这玩意太费电,好像一次就能玩十几分钟。选择有刷主要是因为我需要用舵机控制小车速度转向,无刷的太快不好控制,Donkey Car官方介绍也是说用有刷的。小车是大头,差不多要花五百块。

接着是树莓派,这个网上很多售卖的,就不贴链接了,我选择的是英国版3B+型号。SD卡可以买个好一些的,因为自动驾驶采集数据存储图片还是挺多的,但是受限于树莓派自身较差的性能,就买个读写三四十M/s的就能满足了。倒是读卡器推荐买个USB3.0的,以前遇到过劣质读卡器,1M/s的速度让我差点把卡扔了,因为我觉得是卡用的久了坏了呢。实际上,六七年的Class4的SD卡还是基本原来的速度,写入在5M/s,基本没降低。

接着是车架:

基于树莓派搭建自动驾驶小车;Donkey Car组装硬件DIY_第2张图片

链接为:

https://item.taobao.com/item.htm?spm=a1z1r.7974869.0.0.269c3ad41ri0xZ&id=592169467343

底座上放树莓派,上面的支架放摄像头。这个是和官方模型一样的,匹配前面型号的小车。

接着是舵机了:

基于树莓派搭建自动驾驶小车;Donkey Car组装硬件DIY_第3张图片

用的是16路PWM,型号是PCA9685,这个也就十块钱,到处能买到,不放链接了。记着买些杜邦线,以便和树莓派连接。

接着还差摄像头,我买的是树莓派官方的:

基于树莓派搭建自动驾驶小车;Donkey Car组装硬件DIY_第4张图片

这个需要一百出头,选择可见光8MP,而不是NoIR。后者没有红外滤波,那么拍摄的图片中有红外信息,拍出来照片看上去比较奇怪。我暂时不考虑夜间情况,所以不选择它。

这样硬件基本齐了,接下来是组装。在此之前,先验证车子能否正常运转:

基于树莓派搭建自动驾驶小车;Donkey Car组装硬件DIY_第5张图片

由于以前没接触过遥控车,所以一开始将小车开起来还研究了一番。上图是店家标识的遥控器操作说明,ST就是Steering,表示控制方向,TH就是Throttle,表示阀门,也就是油门。NOR就是Normal了,表示正常前进方向,REV就是Reverse,表示反向。左手拿着,右手控制,靠右边侧的大轮旋转控制小车方向,下面的扳机控制油门大小,反向推动则能倒车。在收到小车后,需要将其盖子打开,车子上的电池和小车连接,然后打开车子上的电源开关,即可接收控制信号开动小车了。

接着是树莓派,把它的摄像头接到主板上,注意摄像头揭掉镜头薄膜,主板上卡槽卡紧,这个网上又很多教程,这里不放图片了。

再接着就是树莓派和小车的连接了,本来想着也是硬件操作,写在这里合适。但是要先让树莓派工作起来,还要有软件配置以及摄像头功能验证,之后才能安装到小车上让树莓派通过PCA9685控制舵机让小车运行。所以这篇就先到这里,下一篇软件环境做好最后再将二者组装到一起。

你可能感兴趣的:(自动驾驶)