热度 22
2016-3-30 09:38
2336 次阅读|
2 个评论
机器人是一门高度交叉的前沿学科,涉及的核心技术非常多,不要说想自学成才,就是在校学生都不知道要学些什么。最近有个机械专业机器人方向的研究生在知乎上吐槽说,读研已经两年了,然而在这两年间,仔细想想,他似乎真的什么都没做。 他说,“这两年间,我一直想做一点算法、理论等方面的东西。对于人工智能的大厦,哪怕添一片砖、一片瓦,我也知足了。然而,过去的两年里,我仅仅是学会了用ROS进 行一些简单的应用层面的开发。随着时间的流逝,我越来越感觉到自己的无力。论编程,我比不过软件学院的学生,对于几门编程语言的理解,我估计我连入门都算 不上。论算法,我连算法导论都没学过,看着论文中的各种算法,我时常看得一头雾水,常常是看到一篇论文,然后我发现我不能理解其中的算法,而再去看那算 法,我发现我对这算法的数学基础都无法理解,然后,转而又得对这些数学基础进行学习。有些时候,我花了很大的力气,把一篇论文搞懂了,但我完全不知道该怎 么去改进它,或者说,如何在它的基础上进行一些新的研究。而至于做电路,我也只能简单地把一些功能堆砌,然后通过各个芯片厂家的参考电路,把这些功能实 现、连接起来,而至于PCB,我也只能把线布得整齐、美观些。而至于高频电路,我知道,我还做不了高频电路。而至于运动控制,我最多也就只能做做六自由度 的机械手的正逆运动学求解,然后在用PID控制一下罢了,至于模糊控制、神经网络之类的,我也就知道个概念罢了,而至于怎么用,却是完全不知道。而至于动 力学,我想,我慢慢算,或许能把普通关节型机器人的动力学算对,但是,这又有什么用呢?动力学难的是动力学补偿、系统辨识,而我对此一窍不通。而至于机械 设计,在机械发展的百年里,优秀的设计灿若繁星,而我,依然不知道能有什么创新。 “我发现,我所做的事,所有的一切,没有一样是不可替代的,都是非常浅显的,而一旦深入,我就觉得举步维艰。我越来越怀疑,我自己的优势究竟在哪?怎样才算是做科研? 当然,我知道,或许我太浮躁了,我应该踏踏实实地把理论知识学好,然后再做科研。但问题是,没有人会等我,而且,如果我不能在现在证明我自己的价值的话,我又如何证明我将来是有价值的呢?” 知乎网友@冷哲认为,机器人是一个很庞大的体系。你不可能什么都精通,你甚至很难做到什么都懂。 他说,“题主的这个经历和我博士以前的经历比较像。我目前觉得这种经历的学生比较适合做机器人的控制算法的编写和一些略低层级的探测算法的编写。机器人的具体任务千变万化,需要的技术也各自不同。需要的是针对具体问题学习相关的技术,然后开发解决方案。题主所需要的可能就是一个具体的问题。 “要做比较有意思的东西,恐怕还是要去找个好导师读博。 “当然,近几年国内一些机器人公司正在逐渐崛起,这类工作职位也会逐渐多起来。 “其实自动控制毕业的学生很适合做机器人产业里的产品经理——什么都懂一点。但这对个人阅历什么的都有些要求,还是得要做一段时间的一线研发才有可能。 “说到最后嘛,其实我真正想说的是……我这边正好缺这样一个做机器人控制的人……公司在深圳……有兴趣最近找工作的可以联系我……” 知乎网友@爱喝百事的弗兰奇则给出了更实际的建议: 有和题主相似的经历,试着回答一下。本科是精密仪器与机械学系的机械工程与自动化专业,基本上以机械相关的为主,电路软件也都学学,本科非常能折腾,做了不少机器人的项目和比赛。硕士在CMU的机械系读的,基本在CS那边上课和做项目,现在PhD是在WPI的Robotics Engineering Program,主要做人机协作。大概背景是这样。 首先我觉得题主应该有自信,因为这种背景的好处是你已经接触到了机器人各个领域,虽然没有深入了解。可以试着画一个框图,来整理一下做机器人需要哪些部分。你会发现自己每一个部分都干过一些,如果有一个小的project,需要的技术都是成型的技术的话,你会很清楚的知道自己怎么实现它,虽然不见得做的最好,但是每一步都清楚,都知道该去搜什么,怎么弄起来。这是你的infrastructure,非常的重要。 其次,要弄清楚自己到底想做什么。是一个工程师,or 科学家。这个非常重要。国内的本科教育因为比较缺乏动手能力的培养,实际的project真的太少了,所以会给人一种错觉,把工程和科研弄混,把工程实践当成了搞科研。但是这一关我们必须要过,所以就只能多花时间一点点学。这也就是为什么题主会觉得研究生两年了什么都没学到了。因为在这两年过程中,我相信题主还是挺快乐的,因为一直在学“技术”,也就是锻炼工程能力,虽然很可惜,这本应该是本科干的。题主现在的困扰主要是在得到了这些工程能力之后,意识到自己并没有学到什么东西,这里的东西应该就是科研了。所以题主现在应该想清楚自己到底要做一个工程师还是做一个科学家。如果要做科学家,需要读PhD,然后选择一个方面去研究,如果是工程师,要考虑成为什么工程师,针对具体问题去学习了。举一个具体的例子,如果是做研究的话,同样是写代码,可能不需要考虑自己的代码有多么鲁棒,扩展性要多好,重点是能用,能展示你的算法的能力,展示你的想法就可以了。然后作为工程师,你要考虑的更多是如何实现一个产品级的功能。侧重完全不同。 对于选择什么去学习也非常简单。之前画好的框图可以拿出来了。里面应该有机械设计啊,控制啊,电路,perception啊,AI啊,甚至是材料,驱动器等等。然后自己根据自己的了解以及可能有的条件,选一个更加合适的。我当年虽然是机械出身,但是对AI方面更加感兴趣,硕士期间主要就去上那方面的课程,做相关的研究。转专业过程确实很痛苦,需要投入的经历非常大,多教教相关专业的朋友,多聊聊,会有帮助的。 不知道你是不是跟前面那位学生有同样的困惑,看了后面两位网友的回答,你是否已经明白自己要做什么了呢?