魔方机器人的心路历程连载(Part6-小结)
大家还记得刚开始的时候,作者指定的目标是15秒内完成,但随着对各方面深入的研究,成绩也逐步提高,逐渐看到希望能达到 3秒可以还原魔方的世界纪录级别速度。也促使下定决心,再大的投资和工作量,必须把机器做出来,树立在国内至少2年内的标杆产品。
我们综合小结一下前面的努力,让读者们有个比较全面的认识。设计过程中遇到很多艰难的了抉择,就像前面二叉树所述,每个抉择都会对后面的工作产生影响。有的决定解决了一个问题,但同时冒出两个新问题需要解决;而如果做另外一种决定,可能一箭双雕,甚至一次性解决好几个问题;我们分别称其为恶性循环与良性循环。我们设计过程中,尽可能让良性循环跑起来,可以达到事半功倍的效果。
连载文章的顺序是按每个组成部分拆分的,并不是按时间线铺叙的,所以有些部分看起来可能有疑惑,这回来给大家串一下时间线。
2015.12

预研滚珠丝杆滑台及电机,也同时购入舵机进行执行速度测量。
评估滚珠丝杆及滑台的体积,重量,装配方式等。(假如当时选择这个方案,那将是噩梦的开始)
2016.1

设计出第一个舵机架及装配滑台。
更新 Thistlethwaite 还原算法,缩短至30步还原。
2016.2

推翻伸缩方式,决定改为夹持式。
(一切良性循环的开端)
2016.3-4

完成机械爪3D转动显示原型。
完成机械控制算法的神经网络训练器构建。
2016.5-8
人工解魔方步骤实录,训练神经网络。
(雷军说过:有多少人工,就有多少智能)
2016.9-10

设计舵机控制电路,焊接,调试PID。
完成人脑版本机械控制算法的神经网络框架搭建。

机械结构雏形CNC加工打样测试。
推翻通过舵机实现伸缩,改为线性电机驱动。
(良性循环首次见效,夹持速度提升300%)
2016.11-12
完成机械控制算法的神经网络模型重构调优。
(良性循环再次见效,基于夹持设计更容易实现路径优化)
完成kociemba算法移植及多线程优化,步骤从30步降至20步。
至此已经作出估算,机械平均还原时间大约可以控制在2.8秒。

2.8秒与作者之初预计的15秒已经完成质的飞跃,也就是这个时候,作者决定无论如何都要把机器做出来,树立年轻人的榜样,争创国内乃至全球顶峰记录。

勤奋的我在KTV还在写代码
2017.2
程序都已经蓄势待发了,想着过个春节就能完工了。
现实是残酷的,装原型机时发现加工误差问题,多轮返工整改。
打垮程序员的往往不是逻辑Bug。。。
2017.3-2018.6

机械结构整改--没想到这一整就是一年多。。
完成摄像头驱动及图形滤波算法
摄像头两边侧置 -- 充分利用爪子设计中空特性
(爪子设计良性循环再次见效)
2018.4-5

设计线性电机驱动电路

完成3D魔方及机械结构演示

完成起落架结构设计
2018.7

首次实现整机装配
完成UI界面描绘等工作

完成初始化魔方翻转及色块识别功能
2018.8.7

首次实现完整全流程运行,第一次试运行就把魔方还原,这种畅快淋漓的感觉,实在是难以言表,因为中间任何一个细小的环节遇到问题,都会导致失败。
在此之前,因为各个部分没有完整实现,因此调试过程从来没有把整个流程串起来;都只能在仅有的资源情况下实现各个部分的单元测试,以及接口测试。只有确保所有软硬件接口及机械部分都不能出丝毫差错,才可能一次运行即成功。
这感觉就像是NASA的火星探索计划。

由于地球大气层太稠密,无法直接在地球上演习整个登陆过程,所有扰流板,超音速降落伞等设备都只能在JPL的风洞实验室里模拟火星稀疏的大气层来实验

由于火星大气层太稀疏,从火星轨道切入大气层的夹角一定要精准控制,夹角太大可能导致速度过快,距离太短,靠大气层来不及减速就坠毁;夹角太小,可能导致被大气层弹出来,与火星的邂逅擦肩而过,然后就出轨了。整个过程都需要精确计算且精确地自动执行,因为火星距离地球太远,信号来回需要10多分钟,而降落整个过程只要7分钟,我们不可能实时遥控整个着陆过程。等到火星车已经着陆,我们还没收到开始进入大气层的信号。

整个着陆装置只有一次自动执行完整流程的机会,而这次机会是在火星上。这也是为什么火星着陆过程让人握紧拳头,屏气敛息,捏一把汗。因为没有人敢100%保证这个过程一定能成功,只要丝毫计算误差,都可能带来灾难性的后果。
作者在做第一台机器人上吃过亏,因为不了解仿真手段,每次验证算法都只能上真机实测,魔方已经被彻底扭散无数次,舵机也已全数烧毁。演示时还因为光照环境与实验室有所差异,导致颜色识别失败。因此非常欣赏NASA勇气的我,学着做好每个阶段的仿真,以及细细拆分每个组成模块,并严格执行亿级单元测试,决不允许关键模块出任何一次差错。
结果是喜人的,这回虽然结构上花费大量资金,但从来没有因为器件或者电机烧毁导致更换备料的情况,节省了一大笔开销。最重要的是节省了大量排查和更换备料的时间成本。
很多放在网上的视频,往往是试10次只能成功两三次的,终究只是实验室作品。真正要做产品时,必须保证至少十万甚至百万次,不能轻易出现一次差错。因此在保证稳定性的同时,缩减执行时间,这两个矛盾体需要找到一个平衡点,难度就体现在这里了。制作过程需要做大量的决策,有些决策可能会顾此失彼,需要全盘考虑,才能做出最优判断。所以,作者也从这次经历中,学会了很多机械,硬件,与软件之间结合时,需要考虑的因素以及各自的瓶颈和极限所在,对日后的工作也受益匪浅。
有同学私信问到,到底是什么机缘巧合让作者加入魔方机器人的队伍当中,下期开始,给大家介绍一下这一切的起源~~





