SmartNode/AI 小车

未来的智能设备应该如何开发?是全世界每个人都学会基本的编程,然后夜以继日的编写代码去开发自己的设备?还是训练机器,指导机器,使得它们能够如我们预想一般工作?

前者将世界变成了一个开发公司,而后者将机器纳入了我们的社会,如果我们蹑手蹑脚地掀开未来的一角,后者也许才是未来更加可能的模样。个性化定制的硬件设备,以及根据每个人的习惯运行的独一无二的软件系统。

如何开启这样的未来?如何让人们现在就能从身边开始创造这样的世界?

这是我们的设想:它能够完成简单的任务,但是这个任务是我们“教给”它的,并不是由代码编写的if与else的组合。

这就是我们创造的神奇装置:

看上去它和传统避障小车很相似,实际上的确是一模一样的硬件(衰)。通过在其上使用SmartNode神经网络节点(没想到吧,一摸一样的硬件上运行了全新的神经网络),它能够自己学习躲避障碍,也就是说,当前方发现障碍物的时候,它是自己“学会”了如何“优雅转身”防止碰撞的。

不需要编写代码,不需要调试避障距离,不需要预先设计躲避策略,通过“你教它”这样的自然学习方式,用户按照希望的方式操作小车几次,通过SmartNode神经网络节点的训练,小车就能够自动躲避障碍物。当然,如果你一定想制作一只有自毁倾向的小车,比如让它看到障碍物就撞过去,也可以,只要改变训练方法就行了,哈哈。这个过程,我们称之为“神经网络的训练”。

经过几次测试之后,如果小车已经可以安全躲开各种障碍物(或者每次都能冲向障碍物,根据你的爱好而定),我们判定这个小车可以“毕业”了。我们将SmartNode神经网络节点切换成执行模式,一个具有AI人工智能的小生命就大摇大摆的开始它的“人生”了。这个过程,我们称之为“神经网络的执行”。

OK,为了让这个N-Buggy的秘密广为人知,下面告诉你如何制作一个这样的神经元生命体。

二.需要材料

N^2 SmartNode/AI 套件,微商链接,定价:2526元

1.Edison开发板

image001

  • 2. Edison Base Shield v2

image002

3.电机驱动板

image004

3.四个红外避障传感器

image005

4. 红外无线遥控套件

2B99.tmp

5. 11.1V 3s航模电池

image006

6.MultiPlo机器人底盘套件

image007

三,创造N-Buggy的身体

Step1. 构建机械的身体。

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

image008

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

image009

Step2. 为你的Buggy安装大脑。

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

image010

image011

Step3. 将肌肉与大脑相连。

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

image012

Step4.连接电池。

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

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

Step5. 为你的小车安装测距模块。

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

image013

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

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

四 为buggy创造人工智能的灵魂

Step1. 安装SmartNode

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

具体方法请详见:http://www.smartnode.io/getstarted

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

431698388091097904

Step2 在SmartNode中导入设计“图纸

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

image014

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

[JSON附件]点击打开

image015

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

image016

Step3 获得训练数据

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

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

image017

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

Step4. 开始“训练”

点击“训练”节点。

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

image018

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

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

image019

图纸源码如下:

[Json源码]  点击打开

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

image021

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

 

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

  1. 定义问题,它适不适合采用神经网络的方法,通过训练/指导完成行为模式的定义?
  2. 选择最合适的传感器,用最合适的传感器采集数据,不一定最先进,但是一定是最有效的。比如如果你需要采集动作数据,那么一个10块钱的IMU(运动感知)传感器要比一个100块的摄像头来的更加有效。
  3. 采集有效数据。在你定义的场景下,使用选择的传感器(一部智能手机就包含了大多数你需要的传感器),进行数据的采集。定义要采集的数据是什么,在这个例子中,我们把{前向距离,后向距离,左侧距离,右侧距离,行动方向}作为一组有效数据。确定需要采集的数据的数量,是采集10组数据,还是20组数据,可以通过初步的采集和训练摸索找到合适的数量,训练的数量一般大于输入与输出组合的乘积,在这个例子中,有4个输入,4个可能的输出结果,训练次数在10次的量级。确定数据采集的情况个数,在各种需要的情况下进行数据采集。
  4. 测试与调试。使用训练出的数学模型,使用测试数据集进行测试并对结果进行调试。
  5. 反馈并持续更新。如何区分一个智能设备和一个传统设备?未来的智能设备出厂后仍然需要通过大量用户的使用数据进一步校准原来的模型,这里不谈未来的隐私问题,但是通过用户与厂商之间的反馈互动,未来的智能设备可以自我进化。一部使用了1年的电话,可能性能上不如新发布的手机,但是在了解你的使用习惯上,它一定更好。当然,如果厂商利用了你之前的手机训练出的数据模型,并将它直接导入新品,那也可以创造出更棒的产品。
跳至工具栏