老司机带你造「N^2 – Buggy」小车咯 ~

嘿!嘿!嘿!还记得儿时玩的 避障小车 吗?

小车能避障是因为厂商提前编好了程序。

现在有这样一辆小车:不需要编写任何代码,不需要调试避障距离,不需要预先设计躲避策略。只需要像训练小宠物一样让它学习避障。

有没有感觉很神奇?
是不是很想了解?
(o◕∀◕o)
一起来看看这辆小车吧

小车的学名是:

SmartNode 神经网络智能避障机器人

我们亲切的呼唤它为:

N^2 – Buggy 神经(病)小车

高 ! 大 ! 上 !

是不是特别想拥有一台属于自己的小车

那就点击获得套件购买链接

立即购买

N^2 神经小车套件(2526 元/套)

购买后

老司机带你造

N^2 – Buggy 神经小车 咯~

需要的材料

N^2 神经小车套件中已包含所有材料

1.Edison 开发板

2. Edison Base Shield v2

3.电机驱动板

4. 四个红外避障传感器

5. 红外接收器

6. 11.1V 3s 航模电池

7.MultiPlo 机器人底盘套件

创造 N^2 – Buggy 的身体

STEP 1 构建机械的身体

使用包装中的塑料积木构建 Buggy 的基本结构,虽然我们的例子给出的是一个简单的双轮小车。事实上,你可以根据自己的想象力构建出各种双电机驱动的小车,比如站立的,低矮的,很长的身体,甚至可以为他设计一个霸王龙的骨架,套上一个布偶的外套,为他创造一个像生物的身体。

对了,在你发挥完伟大的创意之后,记得把电机按照下图所示安装好,并且固定。我们希望你的 Buggy 生命体有一个非常坚实的肉体承载它的智慧和灵魂,当然,还有你伟大的创意。

STEP 2 为你的 Buggy 安装大脑

将套件中的 Edison 开发板、扩展板、还有电机驱动板像下图这样叠加在一起。恩,记得排针要对齐,然后稍微用力将他们挤压在一起。

STEP 3 将肌肉与大脑相连

记得第一步里我们安装好的电机么?左侧轮子的电机的两根线连接到 M1 端口,右侧轮子的电机的两根线连接到 M2 端口,拧紧螺丝。这里不需要焊接,为了你的安全考虑,实际上整个套件里都不需要你使用危险的电烙铁。当你熟练掌握这一切之后,相信我,焊接不会花费你太多时间。

STEP 4 连接电池

我们忘了什么?哦,对,为我们的 Buggy 提供能量。为了让你的 Buggy 动力强劲,不知疲倦,我们为你提供了 11.7v 的锂电池,不过它充满电以后电压有 12v。但是不用担心,这样的电压并不会伤害你。将电池的正负极与电机驱动板的正负极准确连接,这里要稍微谨慎一点,因为如果接反了,你可能会看到一道火光冲上天空(笑)。红色代表正极,黑色代表负极,如下图连接好。

还有一个独立的 DC2.5 接头,他是为 Edison 准备的。将它插在 Edison 的 DC 输入孔上就可以了,你不会错过的。

STEP 5 为你的小车安装测距模块

昆虫拥有触角、蝙蝠拥有好嗓子和听力、动物有眼睛,为了感受距离,我们为 Buggy 准备了 4 个高精度的红外测距模块。像下图这样,将他们安装在小车的四个角,这样你的小车就能够 360 度无死角的感知周围接近它的东西了。分别连接到 A0,A1,A2,A3 引脚上。

好,如果你坚持到这一步,非常好,你已经为 Buggy 创造了属于它的肉体。但是很可怜,就如同《弗兰肯斯坦》一样,它目前什么都不会。不,我保证你的 Buggy 和弗兰肯斯坦不一样,要比他可爱的多。

现在,我们开始粗糙地体验一下一个未来的软件工程师开发他的智能设备的过程吧。

创造人工智能的灵魂

STEP 1 安装 SmartNode

请参照这个链接,为你的 Edison 模块安装 SmartNode。不过其实我们套装中的 Edison 模块大多数已经预先安装了。这个只是为了以防万一你的 Edison 版本比较早而已。

具体方法请详见(拷贝网址并黏贴到浏览器):

开始使用

安装好 SmartNode 之后,可以看到,里面成了神经网络的节点,如下图所示。

STEP 2 在 SmartNode 中导入设计“图纸

正如你看到的,在 SmartNode 环境下,我们并不需要编写代码,只需要将各种功能节点拖拽并连接在一起就好,我们把连接好的 SmartNode 设计称之为“图纸”。对,就如《黑客帝国 2》里那样。为了节省时间,请在 SmartNode 界面的右上角菜单栏,选择菜单栏-> 导入-> 剪贴板:

打开下面的文件,复制/黏贴 到刚刚打开的 SmartNode 剪贴板对话框中。

导入成功之后,你就会看到一幅交错纵横的“图纸”,描述了你的 N^2 – Buggy 小车的学习状态下的灵魂,Buggy 小车在“采集数据”和“训练”模式下的所有节点连接。

STEP 3 获得训练数据

注意到“图纸”中左侧的“前”“后”“左”“右”节点了么?每次你用这些节点操作 Buggy 做运动动作的时候,实际上就是在教小车做各种动作了。在运动的同时,距离传感器的数据和你的操作数据都会被导入神经网络中进行训练。

训练的时候可以设置一些障碍物,操作小车躲避这些障碍物,当然了,如果你想做一个凶猛的小车,可以故意让小车去撞击这些障碍物。如此反复操作几十次之后,你还可以做的更多,你带领 Buggy 做的越多,它越能够领会你的训练意图。当你每次指挥小车做动作时,一组 {前向距离,后向距离,左侧距离,右侧距离,行动方向} 的数据就会被保存下来,用于训练小车上的 SmartNode 神经网络。

训练完成后点击“保存”节点,所有的训练数据保存在文件里。

STEP 4 开始“训练”

点击“训练”节点。

这时候,Buggy 开始分析思考刚才的训练数据,用一种叫做神经网络的数学方法,对所有做过的传感器数据+你的控制指令进行学习,找到其中的规律,生成一套神经网络参数,Buggy 就具有了全新的大脑。当你将它“放生”的时候,Buggy 就会自己根据传感器提供的数据躲避障碍或者继续前行。

这个过程需要几秒钟时间,根据数据的质量和训练次数而定。

执行部分的节点构造比较简单。可以界面点击右上角“+”,新建一个工作流,然后导入图纸源码,图纸源码如下:

导入后图纸如下图,点击 来看看训练的效果怎么样吧!

小车开始自己躲避障碍物了,并且就是根据你之前训练它的那样,例如,遇到前方有障碍物的情况随机朝其他方向转向,或者朝着某个特定方向转向,向左向左,要你来教它耶。

尽管 buggy 还只是一个很简单的例子,但是通过整个过程,我们体验了一个未来的智能设备开发的基本方法:

1.定义问题 ,它适不适合采用神经网络的方法,通过训练/指导完成行为模式的定义?

2. 选择最合适的传感器 ,用最合适的传感器采集数据,不一定最先进,但是一定是最有效的。比如如果你需要采集动作数据,那么一个 10 块钱的 IMU(运动感知)传感器要比一个 100 块的摄像头来的更加有效。

3. 采集有效数据 。在你定义的场景下,使用选择的传感器(一部智能手机就包含了大多数你需要的传感器),进行数据的采集。定义要采集的数据是什么,在这个例子中,我们把 {前向距离,后向距离,左侧距离,右侧距离,行动方向} 作为一组有效数据。确定需要采集的数据的数量,是采集 10 组数据,还是 20 组数据,可以通过初步的采集和训练摸索找到合适的数量,训练的数量一般大于输入与输出组合的乘积,在这个例子中,有 4 个输入,4 个可能的输出结果,训练次数在 10 次的量级。确定数据采集的情况个数,在各种需要的情况下进行数据采集。

4. 测试与调试 。使用训练出的数学模型,使用测试数据集进行测试并对结果进行调试。

5. 反馈并持续更新 。如何区分一个智能设备和一个传统设备?未来的智能设备出厂后仍然需要通过大量用户的使用数据进一步校准原来的模型,这里不谈未来的隐私问题,但是通过用户与厂商之间的反馈互动,未来的智能设备可以自我进化。一部使用了 1 年的电话,可能性能上不如新发布的手机,但是在了解你的使用习惯上,它一定更好。当然,如果厂商利用了你之前的手机训练出的数据模型,并将它直接导入新品,那也可以创造出更棒的产品。

通篇学习下来,是不是对人工智能、SmartNode 的学习更有兴趣了呢!

为了满足你的求知欲,我们还准备了一堆 SmartNode 的知识。

→ SmartNode 工作坊@2016 Beijing Maker Faire | 全球最大 DIY 聚会,等你一起「造」!

→ SmartNode | 带你轻松开启智能硬件的创新之旅

→ SmartNode | 开源教程

→ www.smartnode.io

好好学习,让我们一起创造世界吧!

 

发布者:Cara,转载请注明出处:http://www.makercollider.com/post/5027

发表评论

登录后才能评论
QR code