本人从最简单的做起,从BP神经网络学起,后面学习其它更快更新的算法,例如近几年特别火的CNN……(文章后面也会写出一些机器学习的笔记心得)BP神经网络 - 知乎专栏
BPneural_network_car-0410_土豆_高清视频在线观看 (这个是我用BP神经网络做的效果-0-)
整体框架:
1、小车:主控芯片K60,但K60运行速度有限,于是这里只用作小车的控制驱动,不涉及图像处理,神经网络等算法。(关于小车高让首,没什么要求,只要能通过某种方式控制就好,我用的是比赛时候的车模,也懒得重新组装了,就是往上加树莓派,加电源,所以导致太重了……太重了就不好控制了2333333,如果只是简单学习的话强烈建议用些简单的,轻的,好控制戚数的,什么adurino小车啊,调起来不用考虑那么多因素)
2、树莓派+camera :可以作为传输中介,将图像传给PC,通过PC进行训练预测等。也可以直接作滑棚为运算终端,直接在树莓派上进行训练,预测等。我这里是用作前者,因为用电脑开发比较快,写代码什么的都比较方便0-0:(ps:树莓派我用的是pi3,官方系统是基于debian的linux系统。刚开始用linux肯定各种陌生,然后就各种百度,谷歌的查。现在官方的桌面系统已经很好用了,但终究到底还是得通过命令行控制。摄像头用的是官方的,派上有专门接口,直接调用官方库。用usb的摄像头也行,可以通过opencv调用)
3、PC电脑:和树莓派通过wifi连接在同一个局域网内,通过socket服务传输数据。同时可以和小车主控板通过蓝牙连接,发送指令控制小车
4、手柄:通过手柄遥控小车,收集训练数据,同时记录手柄的摇杆值,即学习的标签
整个程序用python语言开发,主要python比较容易上手,而且各种库方便调用。主要用的都是opencv,opencv里有大量成熟的库,BP神经网络就是调用的是opencv的ml类,简直不能再简单了,几句话就能搭建好了一个网络…
胶带的宽度一定的话:
四个传感器一字排列的情况最简单:
按1234号传感器命名,照在胶带上状态位为A,否则为a.
直线正常行走时,23号持续为A,14号持续为a.
分析开始右转的逻辑:
2号变a,继续直线行走,直到4号变A,根据24号间的距离和小车在这段时间内行驶的距离计算出转动角度(这就是动态平面几何问题了,自己画图解一下,注意转弯时候前后中心点的轨迹,胶带宽度是关键,得到的角度不会也不必太精确。这里我只讨论逻辑),然后以比计算结果稍大(目的是确保能让2恢复滑茄状态A)的转动角度开始转弯,等到2和3都恢复状态A,小车变回直线行走,等到2号重新变a,小车再恢复到原先的转动角度……后面一直循环就行了
直线上如果车子前进方向倾斜,和转弯一样,下面以车子向右倾斜为例分析:
会出现3号变a的情况,继续保持直线行走,直到1号变A,计算出小车在这个过程中行进距离,结合胶带宽度,弯让厅1和3号间的距离,就可以算出偏离的角度然后决定转动角度。后面具体调整和过弯道一样。
然后我来吐槽为什么要用labview,你是想着拿着笔记本进行无线 *** 控么 - -,嵌入式的labview编程现在还不埋隐成熟好吧~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)