如何成为一名很酷的机器人工程师

本文详细介绍了如何从大一开始逐步成长为一名机器人工程师,涵盖前言、大一到大四的学习路径,包括核心技能、数学基础、编程语言、硬件知识、项目实践和竞赛经历。强调了英语、线性代数、编程、机械设计、电路知识、嵌入式系统和传感器等基础知识的重要性,并推荐了相关资源和学习资料。作者提醒,机器人学是一条充满挑战的道路,需要不断积累和实践,同时培养良好的文档管理和团队协作能力。
摘要由CSDN通过智能技术生成

观文有感 之 如何成为一名很酷的机器人工程师

闲来垂钓碧溪上。今天来钓一波职业规划,记录一下笔记(特别注意:本文中大部分内容是复制粘贴的,只有少数位置的删改和整理,目的是分享一下大佬的讲解):

1.前言

(1)机器人学的公认难题是:在物理世界中实现类人的活动能力

(2)机器人学的核心问题是:做好与物理世界的交互,在主流的机器人学分支中分为三类:传感器和处理算法(激光雷达、多目视觉、融合算法),多刚体系统动力学控制(工业机器人动力学控制和接触力控制)和机器人自主移动(轮式、足式、飞行等移动机器人的研究)

(3)机器人学有四大核心领域:

​ ① 感知:视觉传感器、图像传感器、触觉和力传感器、惯导等

​ ② 认知:人工智能、知识表达、规划、任务调度、机器学习等

​ ③ 行为:运动学、动力学、控制、manipulation和locomotion等

​ ④ 数学基础:最优估计、微分几何、计算几何、运筹学等

(4)机器人学富有争议性的观点:

​ ① 机器人学是富人的活动,好的开发板、电机和书籍都很贵

​ ② 机器人学是屠龙之术,虽然最近几年,平衡车、扫地机器人、多旋翼飞行器让机器人学开始进入人们的生活,但是可行的商业应用还是很少,而且已有的机器人和理论都还很难解决好与物理世界交互这件事情。所以一定要确保自己在机器人学这个道路上同时练好了能去其他行当吃饭的技能,比如编程、机械设计和硬件设计。也要做好心理准备,接受自己有可能在学会屠龙之术以后几年都造不出对社会有用的东西的事实

机器人工程师在大型项目里的定位类似于飞机系统里的总体设计师。和机械工程师、硬件工程师、软件工程师、算法工程师、控制工程师比起来,机器人工程师参与某个具体技术的时间较少,但是能够听得懂所有工程师说的话,能够作为不同模块间的协调人,带领整个团队去攻坚。当然如果机器人工程师能够在一个领域达到那个领域的工程师的优秀水平,肯定更好。

接下来介绍原文作者计划介绍的一个电子工程、机械工程和计算机专业学生从大学一年级到研究生二年级的机器人学习计划,基本是他对自己过去学习方式的一个总结。按照这个方法来学习,能够成为一个能力全面,但是稍微偏软件一点的机器人工程师。这个六年的学习计划,估算下来,全年中每天在上课和完成课程要求之外要投入学习时间6-8个小时,这些时间一方面用于阅读课程知识的英文教材,一方面用于阅读其他学科的教材,一方面用于实践项目。

2.大一

刚上大一,你的机器人生涯开始了。先看看学校的校园网能不能翻墙,不能的话自己去买个一年一百多块钱的VPN,先确保自己能上Google,不要心疼VPN的钱,这能让你在之后的职业生涯里节省上万块钱。然后去注册一个gmail账号,再注册stackoverflow账号,再注册github的账号,再注册CSDN账号,注册完登录上去逛逛,暂时先不要问为什么。

英语水平一定程度上会是机器人工程师水平的限制因素,英语是同学们在大学最该努力学的一门课,而且不止要把它当成课,要当成一种技能,当成生活的一部分。当你开始努力学习一些高级的机器人知识以后,有可能会非常难以找到中文的参考资料,这个时候如果啃不下英文的资料,进步速度和眼界就会受到很大影响。因此大一的时候要多看看红宝书,看看美剧。

不管是什么专业背景的同学,大学一年级一定要上好的课是微积分和线性代数。线性代数的重要性需要特别强调。一般来说,优秀的工程师和科学家在职业生涯中要学至少五次线性代数,大一学一遍、学凸优化的时候学一遍、学线性系统的时候学一遍、学机器学习的时候学一遍……如果在第一遍学的时候就看到对的书,刷到对的题,那么以后的学习会轻松很多。

网上有很多对于如何学好线性代数的讨论,比如知乎问题如何理解线性代数? - 数学学习。Matrix67大神的文章随记:我们需要怎样的数学教育?也很有启发。我个人对学习线性代数的建议是两本书,一本叫做《Linear Algebra Done Right》,另一本叫做《Linear Algebra Done Wrong》,我比较喜欢的是Done Wrong这本书,第一它是免费的,第二只需要读前6章两百页就够了,第三它页边距很大,打印出来有很多空白做练习题。另外一个较好的教材是麻省理工公开课:线性代数。不论如何,学线性代数一定要用国外的教材,千万不要用国内的教材。啃英文书很累,但是考虑到之后还要啃更多的英文书,线性代数已经算是很入门的了,一定要啃下来,同时还要刷足够多的课后题。

学完线性代数以后,一个自然而然的问题就是怎么能用计算机计算矩阵的乘法、向量的乘法、向量的内积。因此引入了编程的学习。

不管同学的专业是什么,一定要在大学一年级尽早开始学编程。至于用哪种语言开始学习编程,我推荐Python,比较好的教材是麻省理工学院公开课:计算机科学及编程导论,比较好的Python开发学习环境是Anacoda 。熟悉Python以后,同学就可以开始玩玩Python的数值计算包Numpy,这个时候线性代数题基本上也刷的差不多,可以通过Numpy帮助自己解决线性代数问题了。

对任何人来说,Python是一把瑞士军刀,你可以用他干很多东西,比如自动回复邮件、自动收集信息。但是真要去造机器人,合适的工具并不是瑞士军刀,而是C/C++这样简单粗暴的锤子和螺丝刀般的工具。在学习Python学到一定程度的时候(比如你听说有一种叫做cython的东西),最好开始学习C,而且要强迫自己练习用C的一维数组和指针来实现矩阵的加法、乘法、求逆等操作。之所以有高级的Python或者Java(不要问我Java哪里高级了)这些语言以后我们还需要去学C,是因为机器人上常用的不是完整的电脑,而是计算量有局限的嵌入式系统,嵌入式系统开发基本只能用C或者更低级的语言。

学习C,我个人入门用的是清华大学出版的《C++语言程序设计》。虽然这个书标题是C++,但其实没什么太大问题。不过国内的C语言教材都有个巨大的问题是不引导学生去用Linux。

IT行业的程序员都会争论高级语言和低级语言哪个好,Linux和Windows哪个好,而对于机器人工程师来说,从现在到可预见的未来里,C是最好的语言,Linux是最好的操作系统,这都毋庸置疑。甚至对于Linux的发行版该选哪个,我们都是很少有质疑的:Ubuntu。原因是机器人操作系统ROS是基于Ubuntu开发的,因此在Ubuntu上运行最稳定。

当你把C学得差不多,开始要学写包含多个头文件的程序时,一定要同时学习makefile的知识。

我自己在大学一年级的时候还学习了HTML和Javascript,到大一结束的时候已经能够熟练用Javascript手写一些动态页面。我个人觉得HTML和Javascript也是机器人工程师必备的技术,而不只是软

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值