大家好,我是小王,是一名刚刚加入机器人队的大学生。

有人说搞机器人特别简单,只要画画图,拧拧螺丝,敲敲代码就可以了。

He tui!要这么容易,每年能有上百支机器人队伍,花十几万挤破了头都抢不到30万奖金吗?

不过,团队有了我这种天才,一定能突破技术、碾压对手、改变历史、创造奇迹,赢走冠军奖杯!

嘿嘿,光是想想就有点小激动呢!

不管了,先设计一台机器人让队友们刮目相看吧!

做一台机器人需要什么呢?其实机器人跟人一样,人有四肢、神经和大脑,机器人有机械结构、电控和算法。

 机械方向 

# 画图

首先得会画图。图纸是机械的语言,机械工程师靠图纸传达想法。

而告别“扛着直角尺,卷着A0纸,一根铅笔画一天”的艰苦时代,现在有高效的绘图软件。

比如SolidWorks绘制三维图纸,用3D视图表达机械结构:

SolidWorks界面

还有CAXA绘制二维图纸,平面视角设定尺寸,规划功能模块。承包加工的工人(也有可能是队员)看的也是二维图纸:

CAXA图纸

画完就加工,必须得返工。

以我们队伍贫穷的现状,返工导致费时间且不说,加工的钱烧没了,要怎么向学校交代啊!

机智的我打开了仿真软件,在电脑上模拟运动,看机器人会不会出现摔倒、机械结构打架、零件被压弯、越走越歪等情况。

正在上传…重新上传取消正在上传…重新上传取消

一个模糊的仿真

推荐软件有matlab、ansys和adams。

跑完后,一切顺畅无比,我简直是个天才!看来,离队伍登上领奖台,抱走金奖杯指日可待了!

# 加工实物

为了动手实践(为了省钱),我会自己加工一些零件。

人和动物最大的区别就是人会使用工具,加工也离不开工具。

比如雕刻平面的的板材用雕刻机,做强度较低的零件用3D打印机,坚硬的零件还能用车床铣床加工。

雕刻机和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更不需要,学好技术之后,和队友一起创造奇迹吧!

ps. 本文由东北大学 T-DT战队撰写,特此感谢!

pps. 我还囤了大量机器人干货,后台回复干货获取

ppps. 文中部分图片来源于网络。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐