跳到主要内容

· 阅读需 10 分钟

ChenJacker

本科19级机器人工程专业,硕士23级智能制造与机器人专业

我从大二上进实验室至今己有2年多,之前一直从事人机交互方向的研究,现已本校保研,转向做机器人自主感知研究。很荣幸在上一段科研中收获了很多科研方面的知识和经验并最终成功在IEEE Robotics and Automation Letters (RA-L)发表了一篇文章。文章链接:

https://ieeexplore.ieee.org/document/10080982

在此,我想分享我个人对机器人研究的看法,比较零碎,能启发大家就好。此文章也可以在我的知乎主页看到,以下为观点速览:

(1) 绝大部分机器人研究要做出实物。

(2) 研究价值=问题大小创新性有效性。

(3) 理论和工程服务于问题,不应该被割裂。

(4) 机器人创新可以是问题创新或者方法创新。

(5) 机器人研究需要有意义的指标和对比来证明。

正文开始:

(1)与数学、物理的研究不同,机器人研究是属于偏应用的研究,这就意味着绝大部分的机器人研究必须要包含工程成分,不能纸上谈兵。这里的工程成分一般不要求工程细节完成的有多好(那种属于商业产品),做出了效果不错的实物Demo即可。机器人顶会ICRA和IROS基本都有真实实验。优质机器人期刊TRO,IJRR,RA-L和JFR等更不用说。当然纯理论的工作也有[1],但是很少。在此分享刘锐[2]对发表ICRA的要求的回答[3]。因此,绝大部分机器人研究要做出实物。

(2)机器人研究的价值并不仅由工程来体现,做出实物只是不可缺少的验证过程。那么如何衡量一个机器人工作的价值呢?对此,我认为可以参考李沐对工程研究价值的看法[4](强推大家看)。他认为,研究价值=问题大小创新性有效性。在此个人认为:问题大小、创新性和有效性缺一不可,因为只要有一个等于0,不管其余两者有多大,价值就会等于0。

(3)在机器人研究中,理论和工程都是为了解决问题服务的,不应该被割裂开。在此有一个误区:搞理论的人总是提出一些不存在的或者没有实际意义的问题,然后一阵数学推导来证明自己提出的方法满足某些没有实际意义的理论指标。在此以对控制理论研究的“瓶颈”的讨论为例[5]并推荐看高登巍[6]的回答。我认为机器人研究过程应该是首先提出一个具有实际意义且新的问题,在解决该问题的过程中如果主要涉及理论问题就解决理论问题,主要涉及工程问题就解决工程问题,或者两个都涉及就一并解决。理论为主的研究例子是黄老师对拓展卡尔尔曼滤波的收敛性和一致性的理论分析的工作[7]。工程为主的是Rosen等人[8]提出的基于混合现实的人机交互新范式或者是ORB-SLAM,一个实时有效的视觉SLAM框架[9]。理论和工程各占一半(不一定是严格的一半)的工作是高飞老师组的基于几何约束的无人机轨迹规划的工作[10]

(4)机器人研究的创新点可以是问题创新也可以是方法创新。重大的创新会提出新的大问题,不过那种非常少。一般的问题创新是在已有的大问题框架下提出新的有意义的小问题并解决它。例如:2021年RA-L最佳论文[11]就是在无人机部分电机失效的飞行控制问题下提出新问题:当GPS无法使用时是否仅用无人机搭载的传感器就可以实现部分电机失效飞控?一般而言,提出了新问题很可能意味着你需要提出一套新方法解决。方法创新可以是基于另一套数学理论构建的新方法,比如:针对SLAM问题我不用迭代滤波法(EKF-SLAM)而是基于优化的方法(Graph-SLAM)。当然,这也可以是多种旧方法的组合。后者的创新之处在于如何组合来更好的解决问题。例如:现在计算机视觉领域一些顶会(CVPR/ECCV/ICCV…)的工作会将各种网络模块组合成新网络来更好的解决他们提出的问题。此外,机器人研究的方法创新可以是基于新的仿生结构的启发,例如:Nature封面论文提出形态自适应的仿生两栖海龟机器人[12]

(5)机器人研究的有效性需要有意义的指标和对比来证明。不同研究领域的评价指标是不一样的。比如:在图像分类领域,有意义的指标是分类准确率和混淆矩阵等;在机器人控制领域,指标是控制器抗扰动性和收敛速度等;在人机交互领域,指标是机器人对人的指令识别准确率、识别速度和人机交互方法是否简单易用等。有意义是指大家公认的、不可或缺的且适合体现你工作贡献的指标。重要和合适,两者缺一不可。比如:你的状态估计算法和其他工作相比速度快很多,但是如果你的准确率差别人一大截那是不可忍受的。速度是体现你优势的指标,准确率是你不得不对比的指标。当然,如果精度差不多,但是你的速度比他们要快很多,那么你的工作也可以被视为是好的。如果有其他人的工作尝试解决和你同样的问题,那么对比不可避免。对比的过程就是在一些有意义的指标下比较你的工作比其他人的工作要好。对比可以是复现其他人的方法,但是有时候复现很困难或者别人文章解决的问题和你相似又或者别人的局限性显而易见,那么你可以列出对比表格并撰写对比分析即可。在此,我自己发表的文章[13]的对比过程可以作为参考。

[1] Barfoot TD, Forbes JR, Yoon DJ. Exactly sparse Gaussian variational inference with application to derivative-free batch nonlinear state estimation. The International Journal of Robotics Research. 2020;39(13):1473-1502. doi:10.1177/0278364920937608

[2] https://www.zhihu.com/people/ruiliu2017

[3] https://www.zhihu.com/question/29070983/answer/135621798

[4] https://www.bilibili.com/video/BV1oL411c7Us?share_source=copy_web

[5] https://www.zhihu.com/question/500041201

[6] https://www.zhihu.com/people/gao-deng-wei-80

[7] S. Huang and G. Dissanayake, "Convergence and Consistency Analysis for Extended Kalman Filter Based SLAM," in IEEE Transactions on Robotics, vol. 23, no. 5, pp. 1036-1049, Oct. 2007, doi: 10.1109/TRO.2007.903811.

[8] Rosen E, Whitney D, Phillips E, et al. Communicating and controlling robot arm motion intent through mixed-reality head-mounted displays. The International Journal of Robotics Research. 2019;38(12-13):1513-1526. doi:10.1177/0278364919842925

[9] R. Mur-Artal, J. M. M. Montiel and J. D. Tardós, "ORB-SLAM: A Versatile and Accurate Monocular SLAM System," in IEEE Transactions on Robotics, vol. 31, no. 5, pp. 1147-1163, Oct. 2015, doi: 10.1109/TRO.2015.2463671.

[10] Z. Wang, X. Zhou, C. Xu and F. Gao, "Geometrically Constrained Trajectory Optimization for Multicopters," in IEEE Transactions on Robotics, vol. 38, no. 5, pp. 3259-3278, Oct. 2022, doi: 10.1109/TRO.2022.3160022.

[11] S. Sun, G. Cioffi, C. de Visser and D. Scaramuzza, "Autonomous Quadrotor Flight Despite Rotor Failure With Onboard Vision Sensors: Frames vs. Events," in IEEE Robotics and Automation Letters, vol. 6, no. 2, pp. 580-587, April 2021, doi: 10.1109/LRA.2020.3048875.

[12] Baines, R., Patiballa, S.K., Booth, J. et al. Multi-environment robotic transitions through adaptive morphogenesis. Nature 610, 283–289 (2022). Multi-environment robotic transitions through adaptive morphogenesis | Nature

[13] C. Zhang, C. Lin, Y. Leng, Z. Fu, Y. Cheng and C. Fu, "An Effective Head-Based HRI for 6D Robotic Grasping Using Mixed Reality," in IEEE Robotics and Automation Letters, doi: 10.1109/LRA.2023.3261701.

· 阅读需 27 分钟

序的序

写这篇东西时,笔者是一名南科大机器人工程本科在读的大三小朋友。笔者有较长时间的机器人比赛经验,参加过First系列比赛和RoboMaster比赛,主要负责的都是机器人的机械结构设计,因此与同级的朋友们相比,笔者应该算有较多的实际结构设计和动手装配的经验。但也仅限于此,本科期间其实没有特别专一的只学习机械设计相关的知识,也没有去科研类的实验室打工(因为在RM战队继续长期工作),也没有出国交流的经历。很荣幸能受玺子哥的肯定和邀请来写点东西,本人学艺不精且不善言辞,以下内容如有错误或冒犯,欢迎指出和批评。

这可能是一份给机器人工程专业的喜欢机械方向的小朋友的学习计划建议。

笔者刚进大学时读到了硕哥的这篇文章:机器人工程师学习计划 - 知乎 (zhihu.com),此后每过半年,都会掏出来再看一看;笔者也不是能按照这个学习计划走下来的神仙(不如说完全做不到ww),经常看这篇文章的目的是为了提醒自己:

人外有人,天外有天。切勿急躁。以及学无止境。

笔者总结了一下自己和周围相关方向同学的一些学习情况,写了这样一份参考的学习路线,以供想学习机械方向的同学参考。其中可能有一些暴论和偏见,但是全是真情实感(笑)。笔者把对自己有追求当作学习任何东西的一个前提,所以这份学习路线的难度可能不小(因人天赋而异);通过阅读这篇文章和自己实践,你会发现理论和实践是有区别的(笑),但是学习这种东西,过程比结果更重要,只要你真的付出时间学,一定能够收获自我的成长。

笔者抱有学习的目的是学习本身的观点,去打比赛,做科研,实习以及拿GPA是你学习的检验和成果,而不是你的目的,更不是用来炫耀的成本。这一点非常重要,所以在此重申一遍:知识和成就不是用来炫耀的成本。

(可能再编一点)

学习路线

笔者从中学开始参加机器人比赛,那时我还没有任何设计的理论知识基础,但也能在搭积木似的造车过程中学到很多实际的装配知识。当我后来学到真正的理论知识时,过去的经验和记忆如同潮水一般的开始攻击我,因此在学习时会产生终于集齐七颗龙珠的快乐感。基于笔者的个人经验,我也比较推荐这种“先学会动手,在学会动脑子”的学习路线(或者说的好听点,叫基于项目的学习w)。

但是学习路线这种东西比较玄乎,个人认为没有一个所谓的正确答案。以下是一些参考。

基于设计流程的学习路线:

设计->画图->加工->装配---->测试

笔者觉得阳间的新手学习路线:

装配->加工->画图->设计

机器人工程课表的学习路线:

画图->加工->设计->??

课表的顺序和内容似乎怪怪的,但也正常,因为机器人工程也有很多机械方向以外的课,课程只负责把相应的知识交给你,怎么去有逻辑思考,形成一个知识体系是你自己该干的事。

因此,写这一部分的主要目的不是推荐你用什么顺序去上课,而是希望你在学完一些东西后,能够反过来思考,重新组织自己的知识体系,以及顺便想想是否有什么缺的东西

核心课程

以下修读学期仅供参考,有目的的延后也可以;笔者本人机械设计基础就学得比较晚。

【后来补充:在笔者写这篇稿子时,得知22级以后的培养方案已经改掉了,一些课(如机械设计基础)已经成为了历史的眼泪,所以这部分内容只能说做个参考图一乐了】

大一高等数学(上)/(下)
线性代数
CAD与工程制图
制造工程认知实践
大二理论力学
材料力学
机械设计基础
大三/大四(凭喜好修读)机械制造基础
高等机构动力学
动力学与机械振动
有限元理论与工程实践
其他任选课工程流体力学
工程热力学
先进制造实践
精密加工技术
(以及其他机械工程专业的课……)

学习建议

大一

大一进来,如果对自己的方向不确定,建议多去体验下不同专业的课(去实际上课绝对会比你听宣讲会和导师给你吹更好)。另外,如果不是大一一上来就确定了自己的方向,可以考虑2+2,不用强行1+3,因为大多数人大一上的都是通识课,没上过几门专业课,大一结束的那个时间点你对这个专业的实际了解理论上跟刚进来差不多,但很多人会被宣讲会洗脑或者被没专业的焦虑打倒,导致做出草率的选择。

笔者本人是2+2进机器人工程,在大二的时候没选定专业,上了很多不同的电子系,机械系和计算机系的课,目前有很多多余的学分,仍然能够阳间的毕业(没有出去交流过的情况下)。

大一进来,如果已经对自己的方向比较确定,基本锁定机械工程或者机器人工程,那么建议大一时不要上过多的通识必修课(基物,大化,思修等),而是尽量在大一先学习以下课程:

大一
CAD与工程制图
制工程认知实践(建议大一春或者夏)

CAD会教2D和3建模软件的使用,在大一上掉即可;制造认知实践(俗称金工实习)会涉及加工的理论知识和实际工具及车床的实操,建议在已经有一定设计和装配经验后再上,推荐大一春,因为夏季学期适合拿来干点别的事。

学完CAD,你应该掌握了AutoCAD和Solidworks的基本使用,其中Solidworks比较重要,希望你能自行进行一些练习来提高软件使用的熟练度,以及理解一下软件的画图逻辑。同时,你应该了解到出工程图(加工用的2d图纸)具有一些规范,尽管可能不太能完全背诵,但你知道有这个东西,也知道应该去哪查。

熟练掌握软件后,你应该强迫自己更规范的使用软件,包括但不限于:规范命名,规范使用坐标原点,规范使用装配体和子装配体,规范使用线层……

上金工实习时你会接触到手动和自动的加工工具,上完这门课后你会对眼前一个零件是怎么加工出来的有一个大致的猜想,比如一个零件应该先铣正面再铣背面,其中要夹装几次,怎么夹装,换几把刀等。

学校的课程中比较缺少对零件的一些后处理步骤(公差测量,返工,表面处理等),这一部分内容需要自己去拓展了解;想想你在上CAD时画的工程图,当你了解了零件的工序之后,你会对工程图的意义及标注法有更深的理解。

同时,如果你对加工特别感兴趣(或者以后想做产品而不是科研),应该自己去了解更多的加工方法,因为加工方式会限制你以后设计的思路。

同时,大一一定要好好学习(指课后付出很多时间理解和拓展)的课程有:

大一
高等数学(上)/(下)
线性代数

有一种说法是一个工程师的数学能力决定了他的上限。高等数学(微积分)和线性代数是非常重要和基础的课程。

其中微积分需要重点理解微积分的本质含义,以及一些复杂概念的物理意义(多重积分,梯度……)。

线性代数需要理解线性组合和线性变换的本质(定义,几何含义,特征值,基变换……),对一些特殊的矩阵有一些基本认识(反对称,投影,正交……)。硕哥曾经说过,优秀的工程师至少要学5遍线性代数;在大一的这个阶段,应该先着重对本质的理解和进行一些广泛但浅的认识。

顺便,个人觉得工科的学生对于数学学科的学习,可以不那么死板,不用过多的纠结定义和完备的证明,也不用纠结过分花哨的解题技术,但是一定要重视对本质的理解。

推荐3blue1brown的关于微积分和线性代数的系列视频:3Blue1Brown的个人空间_哔哩哔哩_bilibili

线性代数实在学不懂的也可以看下面这位up主的视频:有头发的小明的个人空间_哔哩哔哩_bilibili

(顺便上点私货XD)

大一也可以去加入学校的Robomaster机器人战队(ARTINX战队),机器人战队的学习路线比较贴近阳间的上手流程:先从实践环节出发,有一定经验认知后再回到理论学习和实践。战队里有非常多的前人留下的图纸和文档资源,也有加工环境和装配测试环境,愿意主动花时间学习的人能在这里突飞猛进。

你能学到的东西和你付出的时间成正比,大一比较忙又很想参加队里的工作的话建议少选几个学分。选一大堆课,在队里挂个名摸鱼的话那还不如退队乖乖上课。

在队里完成培训后,你可能会领到自己负责的任务,以下技能是你一定要学会的:

  • 熟练掌握基本工具的使用,以及了解一些标准件(螺丝,轴承……)的装配规范和顺序;
  • 看到一个机构,能够自己思考出阳间的装配顺序;
  • 对板材和管材的加工了如指掌,知道容易出现公差的地方在哪;
  • 对机构强度有大概的认识(看到/摸到一个机构能判断出它的强度问题);
  • 对从需求分析到测试跌倒的整体设计流程很熟悉,知道这个项目目前在哪一步;
  • 对一些常用驱动器和常用结构的设计规范有一定认识。

加入战队的同学大一的暑假会去打比赛,如果打完比赛后准备留队,那么暑假应该总结反思自己过去一年的学习成果,以及准备队里明年的一些工作;如果不留队,剩下的暑假可以回顾一下数学,以及思考一下自己明年该干什么。

大二

你已经学会了基本的工程基础技能,并且初步的为自己的技能感到沾沾自喜。

龙抄手稿件.001

刚升上大二(或者升上大二前),你应该对自己的工程方向有初步的判断:做工程还是做科研(这时你应该已经了解到这两个有什么区别);在此之后,你应该对自己大二干什么有一个规划:

继续留在(对于另外的一些人:加入)机器人战队:非常工程,跟科研几乎完全不沾边

进实验室做科研:视课题组而定,这部分我不熟,我的朋友称实验室的负担比战队轻,但希望你不要只满足于打杂的工作

找个实习:视岗位而定,基本都是工程,几乎没有科研

好好学习:专心学一点理论知识(tips:其实我觉得哪也不去好好学习反而是一条很阳间的路(不管你最终要走哪个方向),铁了心做科研又遇不到阳间课题组的人可以不用强迫自己一定要找项目干,不如好好学习)

大二如果已经进专业,你会开始接触到以下核心课程:

大二
理论力学
材料力学
机械设计基础

这三门课程都非常的理论(完全没有实践环节(从笔者学机设这一年开始连机设的实践环节都没了)),恰好此时如果你有一些实践经验,理论知识欠缺,所以一定要认真对待这几门课。同时,你的项目经验此时会对你对这几门课的理解有很大的帮助作用。

理论力学得好好学,上理论力学时可以试着分析下你在过去的项目中做过的机构。

材料力学可以不用强迫自己去记住所有的公式,但是一定要对不同负载的分类和分析方法了如指掌,日后有用到相关知识知道回来找就行。

我们学校的机械设计基础讲的比较快,建议课后多读读教材,同时现在的这门课已经去掉了实践环节,所以有追求的同学可以自己再去找一个项目来实践设计一下。在这门课中你应该了解了各种常见机构的优缺点和标准设计方法;上完这门课后,你会意识到机械设计本身的局限性(?):它已经有一套完整规范的标准和流程,并且有一套泛用的参数(机械设计手册);因此你可能会觉得机械设计本身是一门技艺,但缺少创新和研究的空间。

如果是做工程的同学,此时你应该给自己找一个难度稍微高一点的项目,并尝试把你学到的标准规范的流程应用上去(你会发现非常难),在这个过程中你会感到实践和理论的差别,并且逐渐形成一些你自己的规范。

如果是想做科研的同学,学完机械设计基础你的工程之路应该及时暂停,机械设计的流程和经验不是你此时该研究的东西了,此时应该试着去接触一些更前沿的理论知识,包括但不限于:机构学,各种数学建模,力学和分析,仿真……

(继续私货)

对于想继续做工程的人,可以考虑继续留在机器人战队,此时你应该会独立负责一个项目组(或者是某个组的主力成员之一),这时你在设计的每一步都应该多想一想,避免想以前那样纯模仿或是纯经验式的设计,这一年你应该学会的技能有:

  • 阳间的项目定位和早期项目规划;
  • 对机器人的整个机电系统也有了解,知道如何与电控,算法的队员合作;
  • 进行完整的2次以上的设计+迭代过程,最终得到一个比较符合预期功能的机器人;
  • 熟练掌握标准件的使用,熟练使用机械设计手册;
  • 熟练了解出工图相关规范,有多次发加工和验收的经验;
  • 对常用材料特性了如指掌,设计出来的东西没有强度问题;
  • 熟练掌握各种突发情况的维修方法。

大三/大四

你已经基本上可以自称一位结构工程师了,已经完全有能力出去接一些小公司的实习。此时你也该为自己的前途感到迷茫了:继续做机械or not?

机器人学是屠龙之术,但纯机械结构设计只是带专的技术(暴论,叠个甲先);你可以想想什么是本科的带学生该做的事。

对于想要机械方向一条路走到黑的人:

大三大四可以上的课有以下,根据自己的喜好随便上:(其实我只是把相关的课列在这里,大部分我也没上过,推荐不出来捏XD)

大三/大四(选修课)
机械制造基础
高等机构动力学
动力学与机械振动
有限元理论与工程实践

以及这些是机械工程的课,也可以学:

任选课
工程流体力学
工程热力学
先进制造实践
精密加工技术
(以及其他机械工程专业的课……)

这时你已经养成了自己的学习方式,也会自己补足一些不足的知识了。学习这些课时你会重新接触到数学(主要是线性代数和常微分方程等),对自己有追求的同学可以尝试开始用更数学的眼光来复习这些东西:比如再重学线性代数时稍微关注一下各个概念的数学定义,手推一下一些经典引理的推导(重学线代推荐教材:线性代数应该这样学(linear algebra done right))。

对于要做工程的人,之后就是不断地学习工业上实用的,前沿的理论,并且最重要的是找机会动手实践——面向工程的机械设计某种意义上其实是纯纯的经验学。

对于要做科研的人,更要重视数学的学习(数学基础不好的人建议戒骄戒躁,重学数学),可以不用花太多时间在一些实践上,但是要对各种原理性知识有广泛的认识。

对于想学点别的东西的人:

机器人工程本身不是一个纯机械的专业,学到现在你可能已经学了很多其他知识,比如控制(信号,控工……),比如一些算法(机器学习,计算机视觉……);如果你不打算机械一条路走到黑,此时是你转行的好时机,你已有的机械和物理的知识也有时会在奇怪的地方为其他学科的学习提供帮助。课表的选择比较自由,主要看个人意愿,这里也没必要推荐了。

(继续私货时间=_=)

如果你大三选择继续留在队里,此时应该已经是核心管理层或者机械组负责人了。此时最忌的事情是打比赛打嗨了,机器人比赛本身水平和平台有限,大家使用的工艺和可能的机构都很有限,不要以为自己能造一辆优雅的车就很厉害了,也不要花时间一直重复这种“自嗨”的行为;一边进行队里的研发工作,你应该一边思考比赛以外的事:如果没有经费和性能上的限制,可能采用哪些别的工艺和设计?如果可以长期开发应该着重哪些地方的设计和仿真?如果面向大批量生产或者装配的需求应该如何设计?

一些重复性的工作可以没良心的丢给队里的新人去做,你应该关注核心的设计任务,以及进行一些以往没做过的思考。

如果你想转行,留在队里也是一个很好的选择,队里有方便上手的新人培训和知识库;此时电控或者算法组的负责人大概率也跟你同级,遇到不懂的直接把大哥拉过来问就好了。

大四的时间安排跟每个人的进路有关,这里没啥可写的了(对不起,笔者也才大三=_=)。笔者认为如果能完整的把这套路线学下来,你应该是一个有能力和有想法的人,这时也不需要别人再给你建议了。

· 阅读需 81 分钟
YY硕

前言

很多朋友私信问我对机器人和人工智能感兴趣,该怎么展开学习。最近稍微有点空,我写写我的看法。

· 阅读需 20 分钟

各位同学好,我是南科大2018级机器人工程系的毕业生,目前机械系硕士在读。本科四年,我也还是走了不少弯路,应戴同学的邀请,我在这里给大家以文字形式对四年的本科生活做一个分享。写在前面,我这里绝对不是一个优秀的分享,可以说是一个很普通学生的毕业struggle。

大一的时间,我相信大家都还是比较相似的,每天被高数和大物折磨。我那个时候,军训时作死去考了数学的分级考试,然后误打误撞进了A班,学了数分。当然,数分是个很好的课程,马富明老师的课程讲解也很优秀,而且据我了解,也有不少机器人的同学上了数分的课程。但是在当时那个情景下,课程上有许多的可能高中参与过数学竞赛等提前或拔高教育的同学,在课堂上与老师高频互动,我就只能傻眼听着他们讲一些令我云里雾里的内容不知所措;同时数分的学习和高中数学的学习完全就是两码事,需要很多额外的effort。在第一学期数分总评77后,我选择放弃数分去上高数。由于直接上了高数下,高数上的很多内容,数分都还没有上到,这也导致了在高数的一开始,我又落后了。我还记得高数下的期中考试,我考了44分,最后期末考试的时候,费了大把精力去准备考试,最后总评还是过了60。

在大一下期间,我还上了java。当时听说java b的何老师能把b教成x,在舍友的撺掇下,去上了a。java对我也是一个非常痛苦的过程,我记得有一次的作业,是写一个什么计算器的内容,然后需要用到的工具好像是字符串分割,反正当时就是完全不会写,课堂内容也不能掌握,实验课内容也完成不了,最后proj做一个什么点线棋,最后全靠队友带着才通过了考核,期末考试更是全傻眼。Java最后拿了62,给我之后所有需要编程的内容带来了巨大的阴影,这里先不再细说。

当然除了数学和coding,大一还是有一些不错的部分的。我的线代和大物学的还是相对不错的,虽说也不是能拿到a的那种不错,至少还是能总评来个85以上,这对于后面学习材料力学和理论力学的内容树立了较好的信心。大一的时候,我加入了南山车队,很多人现在应该已经不知道这个组织了,这是一个造车的组织,参加全国大学生电动方程式大赛,有兴趣的同学可以去了解一下http://www.formulastudent.com.cn/。在车队的经历,给我打下了相对其他同学更为完整的工程实战经验,比如零件的设计思路与流程、零件从图纸到实物流程、成本控制与规划,还有更为实用的,各种设计辅助软件的使用。这些经历与经验我一直受用至今。

进入大二后,受到在车队的经历的影响,我加入了机械系。在专业方向的抉择上,因为我的表哥就是合工大机械工程毕业,他大力劝阻我学机械工程,同时也在b站上一堆劝退机械和土木的视频的合集的一起作用下,再加上计算机的高薪,机器人也和计算机沾点边,我本身很喜欢做一些机构、结构设计,想着在机器人工程还可以做一些机构设计,我就加入了机器人工程。其实说到底,我一直觉得所谓的机器人,我一直觉得做人形机器人没有什么意义,在我看来人体的结构,在目前的执行器下(电机、液压等),做仿人型,无论从能耗、行进效率等方面,相当低效。在车队的比赛中,其中有一项是无人车比赛,比赛内容长话短说就是使用电动方程式赛车为基础,安装视觉系统,完成循迹、绕桩、高速避障任务。轮式车辆在移动速度、工作效率上都具有极大优势。机器人嘛,又不一定非得是人形的,能够按照指令执行一定任务就是so called “robot”,再加上车队经历,我自然对轮式移动平台抱有很大兴趣,因此加入了贾振中教授的实验室。

大二初开始,我还和几位机器人工程的同学以及物理和数学系的同学参加了一个省级比赛,我主要做了机械装置的设计,做的还行,去到比赛现场之后其实在装置上效果还是很好的,拿了个省二回来,但是由于做这个东西花了很多的时间和精力,直接导致的问题就是我的概统几乎没有怎么听,而且还是个德国老师的课,虽然最后低分通过了,但是也给后面的课程带来了极大的障碍,我们后面再说。

接下来的一个学期就是疫情爆发了,在家里上了半年的网课,返校后期末考试。有一说一,我觉得我自己一个人上课的时候,效率和效果都不错,我觉得大家也可以试一试,不跟自己熟悉的人坐在一块上课。回来之后的考试,老师卷子出的很简单,也是我整个四年八个学期最高gpa3.85,拿了两个A一个A+,材料力学甚至期末考了个满分(强力推荐洪伟老师的材料力学,讲的很清晰透彻,碰到他上课一定要选)。

进入大三,开始正式学习机器人相关的课程,比如机器人建模与控制、传感技术、行走机器人等等,开始感受到机械系期末死亡proj周的痛苦。Proj大部分和我的好兄弟们一块做,基本上属于是被带飞的状态,在这里也感谢赵院士和Tsinghua MIT陈在proj上的带飞,熬夜通宵做proj属实是记忆深刻。大三这一年,车队由于一些不可抗问题解散了,这几年一直没有完整参加过全国比赛,也成为了我的一个执念。虽然我一个人做不出来一台完整的载人的车辆,但是我可以做一个小的缩比车辆来完成我的执念。贾老师支持了我的想法,并且也提供了小车平台更为深层的学术背景与目的。也是在20年,我们申请了小车的大创,开始做小车。

大三上学期的gpa还是不温不火,差不多3.5多,距离保研还需要临门一脚,因此20年寒假我下定决心要好好刷一下gpa,然后我做出了我至今依然后悔的决定,报了第一年开课的机器学习,应该是叫工程机器学习,从一开始,由于概统和coding都没有做好,也存在着畏难情绪(其实也不算是畏难吧,尝试去好好听课但是实在是学不懂,还有好几门别的课程也要做),第八周的时候,被一个同学劝“诶呀,反正现在退课之后还是要继续上的”没有及时退课,这门机器学习一下子拖了我巨大的后腿。冲刺绩点失败,不过好在没有挂科,暑假我就开始准备考研了。申请学校也不是没有考虑过,不过综合多方面因素,最后还是选择了考研,并继续留在南科大。当时听说考本校只要过了初试就行,复试基本上都是稳稳过,我也很放松的去准备考研,反正也不求什么特别高的分数。暑假回家过了一个完整的暑假,也没有好好的去准备复习。

开学回来便是保不保研的问题了。很遗憾,我在机器人工程的排名距离最后的排名差了两名。当时我听说生物系秘书为生物的同学争取了额外的保研名额,但是机械系并没有,于是我还去尝试了统计全校各个系的保研率,最后得出了机械系保研率倒数第一的结论,我去找了系秘书,系秘书没有什么帮助;最后还找到了系主任。融老师给了我一个不能拒绝的理由,最后我也死了去争取额外名额的心,开始好好准备考研。那一个学期基本上我没有上课,哦,上了一个柯老师的嵌入式,实验课内容基本靠正点原子的源码,期末靠队友。整整一个学期,我上午看专业课、下午学数学,晚上做政治选择题背单词,感觉从保研死刑的那一天开始,我又回到了高三。我在学校有一块不为人知的小地方,每天我都窝在那里,左看右看,不少当时也要考研的同学,最后捡漏或者被增加名额,也脱离苦海了,高中同学们都在分享自己的意向确认书。那段时间我整个人都很down,感觉自己非常的失败,仿佛全世界都保研了就剩我一个倒霉蛋还要苦逼地受刑四个月。这段时间真的非常要感谢我的女朋友,没有她这段时间的陪伴,对我负面情绪的疏导和信心的给予。 大四上学期在圣诞节当天的研究生考试后结束了,嵌入式的proj也顺利结束了,在校的后面几周我便投入了我的毕设,然后回家度过了我最后一个长长的完整的寒假。

大四刚开始时,由于疫情原因,大家都没法返校。考虑到我的毕设是做一个实物,遥不可期的返校时间下,做实物迟早会变成一个仿真实验。既然说到仿真实验,就逃不开coding的内容。前面也提到了我的coding issue,这样的毕设显然是我无法接受并且也是无法很好完成的。做出一个实车也是我的执念之一,同时也是想见我女朋友了,于是我们从系里打了呈批返校,也顺利的完成了我的毕设,甚至最后还是一个优秀毕业设计,anyway。大四下的课程自然全是摆了,反正大家都完全不再需要gpa,只要能通过就行,于是和几个自己认识的同学一起快乐划水摆烂完成了大四最后的课程。

我这显然不是一个大家定义中的一个优秀学生,很普通甚至我觉得还是比较差的机器人工程的本科毕业生。不过哪里有那么多的优秀的同学呢,我觉得普通的同学也可以给大家做一些分享,提供一些普通人的路给大家参考,如果读者希望比我做的好,或者已经做的比我好呢,就当给大家提供一些反面案例,有则改之吧;如果您跟我差不多呢,我的路可能就是将来您的路,前面的艰难险阻也希望您已经做好准备。

最后给大家一些建议:

  1. 如果你还没有进专业,希望你慎重考虑自己的专业方向,不要盲从,也不要随心所欲。可以先从自己的兴趣出发,去看看真实的实验室和科研是什么样的再做决定。如果是希望以后挣大钱的,也希望你能提前考察各个专业的毕业去向;
  2. 如果你已经进了专业,这个学期大二,可以去学习一下机器人或者机械方面的课程,如果这些让你很痛苦,请立即使用作为南科大学生的权力,更换自己的专业。虽然不一定换了专业你就喜欢了,但是至少能躲开一个自己不喜欢的专业;
  3. 代码能力在机器人工程很重要。以我为例,我的代码能力很弱,虽然相对来说做机械和设计我的能力还算能看,但是机器人是永远躲不开代码来控制他们的。如果你对于代码仍然十分恐惧,我的建议是两条路,要么去找个时间直面coding,如果能解决,或者至少能够能不那么怕,那你继续走机器人的路还是能走下去的;如果上面一条解决不了,或者就是不能解决,请速选择不需要什么coding的专业,例如学医;
  4. 控制和算法也很重要,不过在本科没有那么重要。如果是做硬件的,去了解一下机构和常见的一些设计结构,不要自己瞎琢磨;如果是搞控制的,围绕着如何让一个机器人动起来展开,当你发现现有知识不能满足需求了,新的知识的需求自然会来;
  5. 如果你在保研名单边缘,请你务必大三下好好冲一下绩点,难的课程丢到大四上都行,没有问题的,就差这临门一脚了,请务必抓住机会;
  6. 如果你要考研了,请你沉下心,排开身外之物好好准备考研。玩的东西可以先放到一边,每天娱乐当然可以有,但是不要太长。提升复习的效率,不要做一些无意义的无用功;
  7. 如果你正在发愁毕设内容,我的建议是扬长避短,做自己掌握的相对更好的知识,合理运用自己的能力和自己能够撬动的资源(比如找一个大腿或者找一个苦力(不是)),尽自己所能的去完成毕设。虽然老师们都不会去卡本科生的毕设,基本上都会放大家过,但是当你站到答辩讲台的时候,把自己的心血介绍给别人,也是一件令自己自豪的事情。

这次的废话就这么多吧,希望可以对机器人工程的同学们可以有一些帮助。如果你对我的经历,或者对我的车感兴趣,可以联系我,我的邮箱是:gcy15256266892@163.com

· 阅读需 10 分钟

笔者来自南科大18级机器人工程专业,今年7月毕业,9月开始在ETH Zurich修读RSC(Robotics, Systems & Control)硕士项目。鉴于ETH考试艰深广博的风格和高筛选度的特点,笔者在项目第一学期还没开始便发怵,只得先拉低自我期许:Just survive first! 深知本科并未打下足够扎实的数理和工程基础,是靠“刷分”拿到了还不错的绩点排名,以至有幸受到ETH的青睐(在我看来,ETH至少在我这届跟上届是几乎只看绩点排名录取的)。当然,这里不要误会,觉得我本科四年没用功学习,是纯靠选水课把分拉上去的。相反,我觉得我本科四年学得挺累的,该放的假只少不多,不该熬的夜只多不少;也没故意走什么歪门邪道,用学弟的话说,“一直很努力向最主流、最正确的路子靠拢”。最后效果怎么样,我只能说,算不上差强人意吧。如果看我的本科成绩单,会发现:凡是容易拿高分的课,我都拿了高分;而凡是不容易拿高分的课,我一定没拿高分。总结来,两点原因:1)自己实在没太多理工科天赋;2)自己的学习方法实在太低效。谋事在人,成事在天(或者反过来)。天不可逆,那就好好做人吧。怎么个低效法,给诸位看篇知乎文章:

理科学习之癌——夹生饭

提取一下这篇虽营销味重但不失在理的文章的观点:

  1. 如果发现自己怎么学都没进步,可能是因为学成了“夹生饭”;
  2. 理工科学习需要做到真正理解、忘记了还能推导出来,一点也不能死记硬背; 3.(稍改)理工科“夹生饭”影响学科的学习,长期坚持这样的不良习惯,只会付出许多而回报甚少。

此文深刻揭发了我大一时的拙劣的学习之道。还记得那个寒假,我几乎哪也没去,整天关在屋子里,反复翻阅下学期的教材,以快速、多遍作为自己引以为傲的指标......当时老是以“预习”去粉饰,不断幻想下学期学这些知识点的时候,我都会了,是多么爽的体验。每次学习都抱着“走马观花、蜻蜓点水”的心态,那些重要的、该吃透的东西,从来不会主动推导:推导多累啊!看PPT那不轻松吗!那么,最终呢,这些课,我都是考得一塌糊涂。

而有意思的事在于,上了大二,我本打算一改前非,却惊诧发现:哪怕是坚持以往的死记硬背,一样能考好。在我看来,考试之深刻入里、灵活多变最接近高中考试的,一定是大一的数理基础课。反而到了高年级,考试愈发显现纯套基础公式、考上课划的重点、作业题做了考试就没问题的特征。

于是乎,我抱着“应付考试尽快过、多花时间在科研”的心态,应付了机械系的很多门课,虽都取得了不错成绩,但后患无穷。举两个印象深刻的例子。大四下的暑假,我在UC Berkeley的Prof. Koushil的Lab做过一段时间科研。还记得当时连推一个四足机器人腿部关节的PID都推错了,还是和队友argue了好久,才发现是对PID的理解有误。我还记得,南科大机械系教PID的课,控制工程基础,我拿了A+。PID可谓是控工最简单、最基础的内容了(控工中的如何formulate一个PID,就好比在高数中的如何求导,线代中的如何算矩阵乘法)然而,抱着走马观花看PPT的方法去学,依旧出现了很大的理解偏差,只不过考试没暴露出来罢了。我们当时这们课的考试,只需要会套公式即可,所以对很多内容也没有深究。另一个例子是关于ROS(Robotic Operating System)的。ROS可以理解为机器人领域里的一套统一接口和架构。在我们那届,ROS是大二的必修课。然而,上课就是过ROS Wiki(一个用来自学ROS的网站)里最为新手的部分。学完这门课,除会用ROS最基础的语法和工具外,我并未对其有半点深入的认识。在Berkeley科研期间,本打算把项目的各个部分拿ROS整合起来,却发现:我不知道该怎么去搭建ROS框架,才能使实现效果真正优秀(要知道,工程项目只做到能“work”是远远不够的,像我们的项目,除了能work外,实时性、低延迟、检测准确度等,都是重要指标)。我只得四处去搜寻ROS的规范、习惯,以及去学一些ROS更底层的东西。遗憾的是,到最后我的框架也没被采用,这个任务被移交给了我的在ROS方面经验更足的队友。

讲一下我的个人建议。学一门课最重要的,是要多加以深化理解为目的的练习。拿我在UC Berkeley学CS 188 Introduction to Artificial Intelligence时的经历举例。这门课的大课虽然是走马观花形式,但习题课上我跟着助教推导和应用课上讲的知识点,把东西弄得很透。此外,这门课的作业和考试,几乎没有靠背公式就能解决的问题。它们会让你置身多变的实际场景,做完一道题,感受更侧重于“我对这个知识点又有了更深刻、更正确的理解”,而并非“我对解决这种问题的流程更加熟练了”。当然,很多时候,外部因素起主要作用,并不是靠反求诸己就能避坑的。因此,对于作业练习过少、过于基础、练习无法匹配上课内容的课,要慎重选择,要知道这种课大概率会浪费你的时间,因为学完后并不能将知识内化,很快就忘。当然,本就是普及知识性质的课程另当别论。说句实话,在我那一届,我上过的机械系开的课,除了现代控制与最优估计这门好课外,别的课我都很难谈得上喜欢。如果像我前面说的,普及知识性的课程,理所应当浅尝辄止,那我所在那届的机械系的课,包括很多专业核心课,都可以一起纳入“普及知识”的范畴了。当然也不是一味批评机械系,感觉国内很多高校都是这样,尤其是现行制度下,重科研轻教学的风向在所难免,很多老师不花大时间备课也无可厚非。因此,一旦有很好的课,诸位可以多加留意。另外自己的主动性也很重要。

说了这么多,似乎也没想出什么很好的解决办法,那就未完待续吧。好了,笔者真的得开始一改前非了,不然在ETH这种以考试艰深闻名的地方,估计是日子不好过了。等以后有什么新的体会了再来完善。诸位有任何问题都欢迎联系我,或者只是想加个微信也行。一起加油!

联系笔者:

WeChat: wxid_z928h2n33o3l32

Email: xyz000327@gmail.com

· 阅读需 36 分钟

转载于:https://zhuanlan.zhihu.com/p/569160065

绪言

  经过2020到2022三个赛季在创梦之翼战队电控组的工作,我从正式队员退役成了顾问。本文将通过总结我自己的生涯经历,并结合一些具体的例子,阐述我对包括但不仅限于RoboMaster的机器人竞赛电控组基本思路的理解与认识,希望能对现役队员的工作起到一点启发作用。

· 阅读需 14 分钟

笔者来自18级机械系机器人工程专业。大学四年期间,对机器人专业的学习路线逐步形成了自己的见解。笔者曾受知乎大V yy硕 所著的机器人工程师学习计划启发。参考这篇文章,笔者也在此分享个人成长心得,或许于更贴近南科大机械系同学的实际情况。笔者自认为没有什么数理和工程天赋,上大学前也未曾接触机器人及相关领域,但在这四年的探索中也找到了机器人方面的兴趣和热爱。希望能给有类似背景的同学参考。个人刍议,如有不当之处,敬请批评指正。

· 阅读需 27 分钟

0 前言

本文主要为有意向学习机器人控制的低年级本科生提供一些学习材料和学习思路,高年级本科生根据目前自己的学习进度和研究方向酌情参考即可。

特别说明:本文中提到的机器人控制,均指的是足式机器人、工业机械臂、无人机等的控制,软体机器人、微纳机器人等的控制不在本文讨论范围内。

· 阅读需 19 分钟

如果你很清楚自己需要什么,也很清楚如何达成自己的目标,那么恭喜你,你可以不需要花时间阅读这篇文章,但这篇文章也许也能给你带来一些新的想法。如果你没有目标,或者只有一个大目标,那么欢迎将这篇文章读完,希望这能给你在南科大学习机器人的过程中添加更多的启示,帮助你在规划过程提供一些参考。

· 阅读需 9 分钟

笔者来自18级机械系机器人工程专业。大学的第二年加入Artinx机器人战队(Artinx战队是我校的Robomaster机甲大师战队),在此分享个人在战队中的成长经历与心得,希望个人对于未知领域的探索过程能够给予有需要的同学作为参考。