转自:帐号已迁移
大家好,我是小王,是一名刚刚加入机器人队的大学生。
有人说搞机器人特别简单,只要画画图,拧拧螺丝,敲敲代码就可以了。
He tui!要这么容易,每年能有上百支机器人队伍,花十几万挤破了头都抢不到30万奖金吗?
不过,团队有了我这种天才,一定能突破技术、碾压对手、改变历史、创造奇迹,赢走冠军奖杯!
嘿嘿,光是想想就有点小激动呢!
不管了,先设计一台机器人让队友们刮目相看吧!
机器人跟人一样,人有四肢、神经和大脑,机器人有机械结构、电控和算法。
首先得会画图。图纸是机械的语言,机械工程师靠图纸传达想法。
而告别“扛着直角尺,卷着A0纸,一根铅笔画一天”的艰苦时代,现在有高效的绘图软件。
比如SolidWorks绘制三维图纸,用3D视图表达机械结构:
SolidWorks界面
还有CAXA绘制二维图纸,平面视角设定尺寸,规划功能模块。承包加工的工人(也有可能是队员)看的也是二维图纸:
CAXA图纸
画完就加工,必须得返工。以我们队伍贫穷的现状,返工导致费时间且不说,加工的钱烧没了,要怎么向学校交代啊!
机智的我打开了仿真软件,在电脑上模拟运动,看机器人会不会出现摔倒、机械结构打架、零件被压弯、越走越歪等情况。
一个模糊的仿真
推荐软件有matlab、ansys和adams。
跑完后,一切顺畅无比,我简直是个天才!看来,离队伍登上领奖台,抱走金奖杯指日可待了!
为了动手实践(为了省钱),我会自己加工一些零件。
人和动物最大的区别就是人会使用工具,加工也离不开工具。
比如雕刻平面的的板材用雕刻机,做强度较低的零件用3D打印机,坚硬的零件还能用车床铣床加工。
如果你的队伍比较富裕,也可以尝试动手实践,因为加工过程中会发现:“我是脑子被门夹了才会这么设计吧?”,正所谓一举两得,既省了钱,也认识了自身不足。
加工过程中一定要注意安全。选择零件材料也很重要,板子和板子是不一样的,棒子和棒子也是不一样的。
曾经有队伍为了“炫富”,整台机器人都用了碳板,又黑又酷。结果因为太烧钱,全拆了……
还有人仗着学校免费提供3D打印,就打印出一台机器人,结果一撞墙上全碎了……
你说这是何必呢?
听着,不主要承重且精度要求不高的零件,选择PLA材料,主要承重且可能会受到很大的冲击的板状零件,选择碳板。还有很多材料要慢慢学习,举一反三。
PLA材料和碳板
用高压锅煎鸡蛋,用平底锅煮佛跳墙,是没有前途的。
以上技能都是双手的功劳,做机械还得靠脑子,不然只能像我一样靠脸吃饭了。
机械原理告诉你怎么想,机械设计告诉你怎么画,机械制造告诉你怎么做,一样不能少。
假设要做连杆机构,机械原理帮你设计机构简图,布置杆件实现运动;机械设计帮你细化机构;最后机械制造指导你加工、拼装起来。
普通人看到这就结束了,而优秀的人还有隐藏分。
能搬设备搬物资搬机器人、锯木板砸钉子做道具……统统加100分!
设计简单易加工的结构、加工后无须返工、能逛淘宝会讲价……什么都别说了,你就是机械的天选之子!
外壳搭好,就要给它埋线,让机器人会走会跳,简称电控(电子控制)。
焊电路板不是艺术创作,拿起板子就一顿爆焊,而要先设计。
第一步,打开Altium Designer软件;
第二步,在图上放置电阻和电容等元件,再用线连起来;
第三步,把图丢给工厂加工。
某开源开发板的PCB图
负责硬件的同学,经常拿着绿油油或黑漆漆的电路板,就是用Altium Designer做的。
和机械一样,电路板画完就加工,你不返工谁返工?
电路也可以仿真,一般用Multisim,可以减少原理性错误,节省时间和经费,提高开发速度。
电路仿真
电烙铁、热风枪和拆焊台可以说是电控安身立命的必备技能。当电路板出现损坏的时候,可以直接换块新的用它们更换元件。
电烙铁
需要熟练掌握嵌入式与硬件系统开发、电路板设计与布局、开关电源的设计与制作等。
焊电路板不虚焊,编写程序不手抖,紧要关头不乱阵,只要一出手,bug全没有。
焊接细小贴片元器件,用镊子精细布线,把机器人当女朋友服侍。
通上电后,想让机器人乖乖听话,还要让单片机传话。
但是单片机并不能听懂我们的碎碎念,只能听得懂二进制的机器码。
所以,要用Keil软件编写C语言程序,再由他“翻译”成机器码,再下载到单片机里,单片机就会乖乖听话啦。
keil5的开发界面
代码写到一半丢了怎么办?改到一半,队长说用回上一版怎么办?觉得队友太菜,想偷偷删掉他的代码怎么办?
Git Kraken能帮到你!
某开源项目的版本控制
它是一个专门存代码的云盘,可以把代码回滚到上一个版本,或是与别人的代码融合起来。
以后你是我,我是你,出了bug一起de。
从前,负责嵌入式的队员只能对底层代码一行行地手动配置,等配置完,别的队伍已经比完赛了。
自从CubeMX出现,我就抱着试一试的心态,下载了一个。
没想到,只需要在界面上点来点去,设置参数,就能生成底层的代码。同时还会生成工程文件,非常便利。
CubeMX
现在,我一口气配置十版程序也不喘气,CubeMX改变了我的码农生活。
写完bug程序后,机器人不一定会完全听话,我们还要甩锅给机械调试机器,就用到调试器、示波器和逻辑分析仪。
示波器
要掌握PID控制等控制理论、C/C++编程基础、通讯协议(串口,I2C,SPI,CAN)、ADC与DAC、滤波算法和基本调试方法等。
只能动、不会思考的机器人,是没有灵魂的。
算法,就是给机器人加上大脑,让它能识别会动脑。
而算法组,产出内容就是代码(bug),他们不是在写bug,就是在解决写出来的bug。
当你看到他们一脸狰狞盯着屏幕时,不要担心,他们只是被自己的bug气到自闭。
他们要学三种编程语言 :C/C++,Python。
但是最终的程序只有C++。因为训练模型用python更方便,而C和C++很相似,从C转入C++的周期更短。
机器人是一个前人很多行业,他们写了很多封装好的函数在OpenCV(计算机视觉开源函数库),我们直接用就行。
那我不用行不行?人家写好了,你就老老实实用吧!为自己留些时间和金钱,毕竟后面还有大把坑要踩。
写好代码就到了编译,也就是把人能看懂的代码,翻译成机器能看得懂的乱码。
一般用CLion和PyCharm,聪明的同学可以试下MATLAB,或许会有新发现。(试玩留言告诉我好不好用)
编译界面
痛恨数学的同学可以先告辞,因为算法需要掌握高等数学、概率论、线性代数、编程基础……
“数学是理工科的根基”,在算法上表现得淋漓尽致,痛彻心扉。
可戳这门课让数百万理科生流泪,可我只想为它鼓掌!感受数学的力量。
了解卡尔曼滤波,最小二乘法并可以用程序实现,数据结构。这些内容已经远超入门小白,这样的人谁不想要呢?(来了就能马上干活谁不喜欢呢?)
卡尔曼滤波
了解机器学习,深度学习原理。这种人简直是大腿中的大腿!大佬中的巨佬!如果出现在我校,必然要上演一场激烈的抢人大战!
“来我们组!我有包含32万张样本的训练集、各种高性能的计算平台!无论GPU还是CPU统统都能满足你!尽情释放人类的天性!”
一头浓密的头发,一颗坚挺的肝,还有强如柯南般的大脑,分分钟疏通逻辑解决bug。
不被如洪水般的bug整崩溃,如果崩溃了,也能忍住不砸电脑。
我是小王,我终于学会了所有的机器人技术,但我还是没有做好机器人。
因为,一个团队光靠研发是不够的。只有学会管理、互相配合、齐头并进,才能打造最强的机器人战队!
科技界不需要英雄主义,RoboMaster更不需要,学好技术之后,和队友一起创造奇迹吧!
本文由东北大学 T-DT战队撰写,特此感谢!