自己动手做一辆无人车!

大数据分析挖掘作品,转载具体要求见文末

选文|微信公众号:大数据分析挖掘

翻译|黄维中,张一飞

我刚刚帮助我的朋友Kendrick完成了一个小的项目。我们制作了一个小汽车,你可以教会它怎么行驶,让它成为一辆小型无人车。我负责了所有的硬件和arduino软件,而kendrick制作了所有的机械自如学习软件。他称之为suiron,并把他上传到了github。https://github.com/kendricktan/suiron在arduino上运行的软件被称之为汽车控制软件,我也上传到了github。https://github.com/jabelone/car-controller

现在,你已经得到了代码链接,可以去看一下,并找出他的工作原理吧~ 我将在这里简单介绍一下该软件,但我的主要重点将是硬件。另外有一点需要注意的是开源许可证,我所有的东西是隶属GPL和肯德里克的Suiron项目隶属MIT 。

这个文章主要作为一个整个小车项目的概述。如果我以后有时间,我会尽力把这篇文章变成一个自主制造小车的辅导教程。

在我们开始介绍之前,你可以看看这辆小车在行驶中的小视频。(需要翻墙)

https://www.youtube.com/watch?v=tFwCyHdAWf0

现在我们来讲讲有趣的部分,它是怎么做出来的的

硬件

以下是需要用到的主要组件

1)无线遥控小汽车

我们使用的是这个车,但同样大小的遥控车也可以。不过他必须配备一个标准的esc和转向伺服。它最初应该配备了一个遥控器,电池和充电。我建议买一个新的无线远程控制系统

2) IntenNUC –raspberry pi并没有足够的动力并且是arm驱动的。一个在NUC中x86驱动的处理器i5较容易达到机械自主学习的目的。具体使用哪一个NUC并不要紧。

3)为了NUC服务的电池-一个标准的笔记本电脑电池组用于供电。这个kogan提供的电池可以支撑约6-10小时的运行时间。

4) 罗技c920网络摄像头-从任何信誉良好的零售商购买。你也许可以使用一个更便宜的摄像头,但是我们发现c920这款更好用。

4)镜头滤镜 -如果你准备在阳光下进行任何操作,你会希望有一个两极分化和ND(中性密度)滤光片。摄像头并不能很好的在刺眼阳光和阴影下运作,于是镜头滤镜帮助得到更好的画面。一个较好的ND(中性密度)滤光片帮助你更好地调节黑暗程度。

5)无线控制系统-如果你打算用这个项目做更多的事,我推荐买一个FrSky TARANIS. 你不会对它的质量感到失望。或者一个TURNIGY 9XR款效果也不错。如果无线控制系统里不包含接收器,记得买一个。

6)你还需要一个Arduino。个人比较喜欢Arduino nano,因为他们比较便宜并具有板上usb接口。

我建议你学习的ESC(电子调速器)如何与一个电动机,接收器,伺服和电池在一起工作的原理。这是正常遥控车标准设置。一旦你明白了这些,你应该看的Arduino的教程,以及如何使用它们来做到灯光闪烁和读取输入。通读Arduino的代码和连接组件应该是相当简单的。

这些组件是如何组成在一起的

如何组合这辆小车的组件取决于你。我建议把一切东西放得越低越好,这样电池在小车行驶的时候会更加稳定。摄像头必须被安装在高处,这样它能有更好的视野来观察。我用了一块轻木把所有东西黏在一起,因为它透光性强,并把摄像头粘在上面。我决定用几张图片来解释我是怎么把他们组建在一起的。所有白色的东西是3D打印机制作的,但其实不用3D打印机制也很容易。

两极分化/ ND滤镜

偏振过滤器的重要性不能被低估,因为它减少了反射和刺目眩光。 在下图,你可以看到有多少区别。 图中的水流是个有点极端的例子,但我选择了这幅图像是为了更容易表现出差异,在现实操作里的差异不会那么明显。

中性密度滤波器比起偏振滤光器来说更为重要。这种滤镜可以说是网络摄像头的太阳眼镜。网络摄像头并不适合在刺眼的光线下使用,因此降低光线的强度但又干扰不图像。 下图为正确的中性密度滤波器如何更好地使刺眼的光线的图像。

我建议在安装的时候将这些滤镜装成方便拆卸的,因为在低光照条件下这些滤镜会使得影像过暗。 即使在光照完美的一天,黄昏前的几个小时都比中午的时候暗了很多。 所以我做了一个简单的安装——用一个鳄鱼夹来固定滤镜。 两个滤镜是黏在一起的,然后我用3D打印机给他们做了一个“小架子”。

The Arduino

下图显示了这些硬件是怎样连接的。 Arduino是“硬件大脑”。,它读取在从R / C接收机的值,然后基于所述模式信道来决定具体做什么。 大家可以通过Arduino代码(文章开头有链接),看看这究竟是怎样实现的:基本上有3种模式,手动,自动和紧急停止。

在手动模式下,Arduino在转向和电机值读出并直其传递到电动机和转向伺服。 在这种模式下,右旗启用,它也发回了UART是什么,这些价值观是每收到一个字符时间。 (每收到时间,可以防止串行缓冲器快满了,“滞后”),在自主模式Arduino的在从国统会UART读取输入。 在此模式下它接收到两个消息; 引导,x和电机,其中x是你想要将它的值设置为。 然后将它写入这些产出到转向伺服或马达。 最后,急停杀死电动机的输出和拉直转向舵机。 这急停覆盖任何形式的手动或自主控制的。

机器学习部分

我们使用了一种叫做张量流动图书馆。 这是由谷歌发布的一个开放源码机器学习库。 它是开源的,并在Apache许可证下发布。 它有一个很好的Python和一个“没有废话的”C ++ API。

收集数据

这是整个过程的一个非常简短的总结。 每个视频帧被记录Suiron(在NUC软件)时会询问车控制器(Arduino的上软件)是什么人的运营商在做什么。 请记住,在手动模式下,操作员是围绕驾驶的汽车。 车载控制器通过发送当前的转向和电机值回Suiron响应。 Suiron取这些数值和与所述框架的一个处理版本保存它们沿。

这一过程发生在30Hz左右(或每秒30次),只要你记录数据。 在最后的模型中,我们使用了约20分钟,值得培养的数据。 这是20分钟左右的轨道连续驱动。这似乎不是很多,但它非常快的重复。  在现实中,20分钟足够近的数据没有在那里。 它的工作原理是特定的轨道类似的照明条件下的很大,但如果条件改变太多可能会失败。

训练数据

再次,我不是在这一个使出,但我会尽量简要说明训练是如何工作的。 卷积神经网络(细胞神经网络)是他们的工作方式很奇怪。 这是不可能的究竟是如何或为何CNN的工作知道的。 基本上,我们给张量流框架和两个数字。 (转向和电机)然后,我们要求它制定出框架如何与这两个数字。 给它成千上万的例子(帧)后它可以尝试概括的模型。

由于计算能力的量需要花费很长的时间来培养一个很好的模式。 由于它具有进行计算的种类,张量流运行在专用GPU快得多。 只有20分钟的数据我们的模型花了半天的时间才能正常训练。 培训发生在一个桌面带着借来的GTX980,一个GPU这是对消费者的显卡的高端。

利用该模型

你可以看到它的行动在下面的GIF。 蓝线是模型认为它应该做的,绿线是当我转向它是我实际做。 注意,这个数据不包括在训练集,这是为了确保该模型适用于其它数据。

只要它经过训练,这套模式就可以被拿来用了。 基本上,发生的事情是我们从摄像头收集只是一个框架。 然后,我们把它传递给张量流,并要求它通过模型来运行它。 该模型然后吐出它认为我们两个值应该是一个转向,一个用于油门。 此刻的油门是未使用的,它以恒定的速度运行。 然而,我们认为我们会包括以防万一,我们希望在将来使用它。

(更多文章,可到微信公众号:bigdata321, 寻求报道转载,请加微信:didaomaster)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容