浅谈机器人比赛中的系统工程和组织管理_机器人比赛如何发现运行中的问题(1)

在中国高等院校的工科教育里,学生主要学习各种细分工科类别的知识,比较少接触系统工程方面的知识。对于航空航天、土木、化工方向的工科学生,大学里面不学无所谓,因为这些行业已经有了几十年发展的经验,有很多成熟的企业和公司,学生毕业后进入这些企业和公司就能开始学习;而电子、计算机、互联网和机器人行业由于是新兴产业,成熟的公司和企业也比较少有做大型复杂项目的经验,学生不仅在大学里学不到,到了企业和公司里也没有太多这方面的经验积累。而且话又说回来,就算学生到了企业、公司里会学到组织大型项目以及组织管理的能力,在大学里就能够提前接触这方面的知识和实践机会,肯定是更好的。

那么如何让大学工科学生在学校内就有机会实践系统工程和组织管理呢?答案基本只有一个:组织三十人以上的团队做机器人比赛。为什么只有机器人比赛合适,有以下几点原因:

\1. 复杂度适中。首先肯定要做涉及硬件、软件、机械的复杂系统才锻炼人的能力,那么肯定是一个大型的工程项目。做火箭、飞机、水利工程和电网是很大型、复杂,但是太危险,而流行的互联网项目一般不涉及硬件和机械,在复杂度上又太小。机器人系统尺寸比人小,危险性相对低,需要的场地也比较合适。

\2. 参赛学生背景比较多样。机器人上的控制系统需要自动化、机电等专业的学生;视觉识别、人工智能的算法需要计算机、信息科学等专业的学生;嵌入式系统设计需要电子工程、通信工程等专业的学生;机械设计需要机械、精密仪器等专业的学生;比赛的项目管理需要工业工程和工商管理等专业的学生……

\3. 消耗费用适中。参加一年机器人比赛的花费通常在10万-50万人民币左右,这么多的资金就有了财务管理的需求。但又没有高得太离谱,来自学院的支持、外界的赞助,基本能够支撑这个费用。

\4. 能为学校和老师争得荣誉及奖励。比如RoboMaster对抗赛,关注度极高,能给队伍和学校带来很好的宣传作用。RoboMaster AI挑战赛则能够激发学术研究的想法,带来科研成果。

\5. 因为有一定的复杂度,参加的成员背景多样,所以有很多组织管理的实践需要去做。这也是这篇文章想要主要探讨的话题。

所以我非常建议大学学生,不管是工科还是非工科的同学,在大学里有机会都用不同方式参与一下机器人比赛。

我在以前的文章

YY硕:机器人工程师学习计划8620 赞同 · 696 评论文章

里介绍过学生成为机器人工程师要学习的技术知识,这篇文章想用一届RoboMaster比赛的团队需要做的管理方面的事情,谈谈机器人工程师应该具备的系统工程思维和组织管理知识。

3

9月开学,上一年比赛的老队员要开始准备招新的工作了。这个时候要做一系列的宣传资料、把机器人调试好、申请学校的社团招新活动场地等等,这些东西我想每个团队都会去做,就不多说了。在招新前后这个阶段需要重视三个问题:

第一个是老队员的经验总结。把上一年参加比赛的老队员都叫回来,大家一起总结,去年花了多少钱?去年的团队管理有什么问题?比赛中出了什么问题?有多少老队员可以留下来指导新人?这种总结讨论重要,这是最简单有效为团队积累经验和技术的方式。大部分的机器人队都极度依靠个人能力而不是经验的传承,但是我们可以看出,在比赛中长期保持优秀的队伍,都有很良好的经验传承和老队员帮扶的制度。为了鼓励机器人队的经验传承,今年在大疆赞助的RoboMaster和Robocon两项赛事里,我们都增设了优秀队长和长期表现奖,对那些多次参加比赛并且作为队长提升团队能力的同学,或者那些常年成绩属于前列的学校,会有额外的奖金和证书。

第二个是确定新队员的招募方向和人数。一般来说,机器人队在招新的时候只面向工科专业,只区分机械、电控、算法三个方向。这个粗略的分类对于几个人的团队来说是没问题的,但是像RoboMaster这样复杂的比赛,需要专门划分出项目管理和测试工程师的角色负责做机器人之外的行政类事务。如果历史上招聘情况好,可以分出预备队员和正式队员,预备队员主要做测试的工作,正式队员做开发。项目管理的重要性需要特别强调一下,任何一个团队,必须有人提前列出切实可行的项目计划,并且放在团队最显眼醒目的地方,时时鞭策开发的工程师。很少有团队能够仅靠成员的自驱力来做事情。各个方向怎么定,各招多少人,需要提前做计划出来,并且针对性地进行面试。对于项目管理方面的面试,老队员们可以根据自己备赛的经历,参考网上的项目管理资料,做一些有队伍特色的面试方案出来。项目管理和队伍的宣传经理,都可以尽量吸收一些非工科背景但是对机器人有兴趣的同学。

第三个,建立团队的目标和使命感。老队员需要在赛季开始之初,就给团队设定目标、建立使命感。大部分同学加入机器人队肯定是抱着学一些牛逼技术的心态来的,另外也想获得比赛的奖项以获得考研加分等学校的奖励。团队需要平衡这两方面的需求,要在新队员入队的时候就得到充足的训练和指导,然后在新队员成长起来之后,让他们齐心为整个团队的目标努力。队长要根据队伍里成员的能力、经验、资金状况设定合适的目标,比如进入分区赛8强还是进入全国赛8强,要说服队伍成员为实现这个目标做一些自己原来没有期望会做的事情。

2017年5月,Facebook的创始人马克-扎克伯格在哈佛的毕业典礼演讲上讲了这样一个故事:

约翰·肯尼迪去参观NASA太空中心时遇到一个清洁工拿着扫把。肯尼迪问清洁工,您这是在干嘛呢?清洁工回答说:我在帮忙把人送上月球。
当时的NASA正在肯尼迪的倡导之下研究登月,那个清洁工不觉得自己只是在扫厕所,他相信自己的工作也是确保登月计划成功的一部分。

马克-扎克伯格认为这是使命感。使命感让我们重视团队的力量,重视团队每一个人的付出。大家自然而然地会认为,要做好机器人比赛,只要有强力的机械、电控、算法工程师就够了,但是团队里也有很多其他的工作可能会帮助或者阻碍团队做出优秀的机器人。比如打扫实验室的加工区和测试场地、整理工具,团队成员不需要浪费时间在找工具上面,能够让机器人的开发更顺利,比如报销账目保证团队有足够的资金,比如整理项目进度记录、会议记录、文档和参考资料。这些工作潜移默化地提高了团队的效率和战斗力,但是需要透过现象才能看到它们的本质。一个有使命感的团队应该要重视这些工作,把做这些工作的同学也当做团队重要的一部分。做项目管理和测试的同学不能觉得自己低其他人一等,其他那些做机械、电控、算法的同学也不能用不同的眼光看待项目管理和测试的同学。

4

招新结束之后就是新队员的训练。在这个阶段团队一定要掌握合适的训练方法,避免透支老队员的情怀、让新队员和老队员不能形成正确的合作关系。一般来说,新队员训练需要制作一些简单的入门项目,掌握基本的技术知识。有的机器人队里老队员会事无巨细地指导新队员的学习过程,让新队员变得依赖老队员;有的机器人队里老队员会设计一些过于复杂或者不合理的训练项目,并且很少指导,让新队员失去继续学习的动力。团队一定要对新队员的培训形成制度化的方式,比如嵌入式的新队员要先自学一套STM32开发板的学习资料、然后再制作一辆4轮小车或者其他项目等等,这些过程要形成书面性的文档,放在团队的公共网盘里,老队员也要把新队员提出的问题整理成FAQ,改进文档或者附在文档后面。积累一两年之后能够形成有队伍特色的训练方式,提前准备好训练所需的物资和文档,将会极大提高新队员的战斗力、减少老队员指导新队员的带宽。

有些参加RoboMaster的学校会和RoboMaster组委会合作开展校内赛,抽取当年的RoboMaster对抗赛题目出来作为小型的比赛题目,让新队员做这样一个项目,也能够很好地训练、选拔新队员。

5

新队员融入团队之后,就是备赛阶段。在制作RoboMaster机器人的过程当中,大多数队伍分配人力都是每个机器人的每个方向定好几个人,一个机器人的设计开发方向由队长或者较为强势的队员把控。这种做法导致不同机器人之间做相同技术方向的同学技术交流较少,资源调动僵硬,队长无法从宏观层面去把握各个机器人之间的配合,很多风险无法暴露出来。

从系统工程的角度来说,RoboMaster机器人队组建起来的第一件事是进行整体设计和任务拆解。整体设计包括设计组织的架构和设计项目推进的方式两部分。

6

设计组织的架构非常重要,合理的组织架构能够让成员互相督促、互相发现和解决问题,共同提高团队的效率。大部分机器人队的工科同学都比较内敛,不太好意思主动站出来承担领导责任,也不好意思指出其他队伍里同学的问题,这种态度其实是非常有害的,因为发现问题视而不见或者对组织架构的问题听之任之,最后整个团队效率无法提升、在比赛中拿不到好成绩,同学们的心血和努力会被浪费。

对一个30人左右的机器人队,我们推荐下面这样的构架:

img

纵向黄色的图例为技术方向,分为四个组,每个组包含负责这个方向工作的所有同学,并各组有一名技术负责人,这个人需要有较强的协调能力和专业技术能力,也应该是组里面公认技术最强的人。每个小组内技术负责人要保证小组成员得到足够的个人能力的发展。测试组需要重点介绍一下,测试组平时进行模块级测试、整机功能测试、机器人之间对战的测试,测试组应该对一个开发任务是否完成有最终决定权,测试组的成员最后选拔成比赛操作手

横向蓝色的图例按照兵种分为项目组,每个项目组安排一个产品经理,这个人优先让老队员担任,需要知识面宽广,对机械、硬件、软件的工作都非常熟悉,对机器人的需求有洞察力,能分清优先级,可以不承担太多的技术开发工作。队长和每个产品经理一起商讨好每个兵种的定位和功能作为项目需求,然后产品经理需要和项目组内部的人员商讨写好项目需求,产品经理需要和各组的技术负责人商讨人力需求,然后大家按需求制定项目计划开始执行,由项目管理同学进行进度监督。在每年的RoboMaster比赛中,步兵机器人会是一个定位和功能基本不变、主要需要优化细节的兵种,而英雄机器人每年的形态和定位都会稍有改变,因此两个项目组在不同时间点的人力需求会不同,两个负责的产品经理就需要讨论自己项目需要的人力该如何安排。产品经理还需要保证自己的项目组内的成员能够融洽地工作,可以通过聚餐、一起出游的方法增加彼此之间的默契。

指导老师、队长和项目管理负责整个组织的管理以及资源协调。技术小组的负责人、产品经理、队长、项目管理这些职位可以由一个人同时担当,能者多劳。但是不能把工作全部压在少数人身上。

需要明白的是组织架构不是僵化、一成不变的,当某个兵种的项目遇到困难的时候,技术负责人和产品经理需要根据项目的需求、队长定的优先级,合理的调动资源去解决问题,不要每个人做的任务分好之后一成不变。另外队长有权去确定项目管理、技术负责人和产品经理的人选,但是项目管理、技术负责人和产品经理也能够罢免不作为的队长。同学们在机器人队里为了实现整个团队的目标和使命感,就要秉承着对事不对人的态度解决人事问题,也不能把罢免队长或者负责人的角色看作是丢人的事情。同学们需要明白每个人都有自己的长处和不足之处,一个人做不了队长,但还是可以作为团队的主力,只是调整自己在团队中的定位而已。

对于人数较少的团队,上述组织架构也是一个组织机器人队的参考。而且机器人队应该总是要为新的一年做准备,即使今年没有完善的组织架构,也要争取在下一年建立起来,让机器人队能够成为学校里知名的社团。毕竟人在大学里待四年就走,还是要在江湖上留下自己的传说的。

7

设计项目推进的方式是第二个关键。合理的组织架构是基础,而如何驱动各项目组、各技术小组的成员按时将机器人制作出来才是机器人队的任务核心。推进项目,一般有如下几个方式(各队伍可以根据自己团队的实际情况灵活采用,不需要教条式地机械执行):

\1. 开会。队长和项目管理要每周定期和技术组负责人、产品经理开例会;技术负责人要定期和小组成员开例会;产品经理要定期和项目组成员开例会。定期的例会不能长,按照参加会议的人数乘以5分钟为宜,不用讨论技术细节,只是为了同步进度以及发现风险,如果有人进度不达标,就要换人或者拆解他手头的工作。例会一定要形成会议记录,例会上发现的问题一定要形成执行计划。讨论技术细节的会议,由产品经理组织实际从事对应技术细节开发的同学进行。涉及越多技术细节的会议,参与的人越不能多,否则就会增加很多无意义的讨论,带来焦虑感。如果技术细节参与的人不多,怎么保证想出来的想法靠谱呢?就还要有评审会来保证。一个技术方案敲定并初步验证之后,必须引起其他机器人项目组或者其他技术小组里的骨干来评审、提问题,评审会上最需要各抒己见,所以参与的人越多越好,但是最终队长或者技术负责人必须对评审会上产生的新想法和意见拍板。所以队伍要学会开这三种会:例会,讨论会,评审会。

举个例子来说明几个会议的关系。在RoboMaster比赛中,17mm子弹一贯是通过摩擦轮机构进行发射的。在备赛期中,某次例会上某个机器的产品经理提出想通过气动装置发射17mm子弹,队长和其他技术负责人也觉得有必要做。经过队长同意后,产品经理召集了几个人进行气动发射机构的技术细节讨论,最后安排给某两个同学来制作。一个月后,同学把机构做了出来,这时候产品经理组织很多同事进行评审,给他们的设计提出意见和改进方向,最后大家在这个机构可不可用上产生了疑问,队长应该拍板说这个机构我们继续改进,或者放弃掉,或者作为技术储备今年先不用。

\2. 项目进度记录。机器人队工作室的墙上、微信QQ群或者任何公共区域,必须时时刻刻有提醒全队成员项目进度的公告和记录。赛季重要事项(分区赛时间、技术报告和评审的时间)的时间表、整个团队的成员以及分工、各机器人的进度,最近重要的会议记录等等。淘宝买一些贴墙的白板以及白板笔只要十几块钱。另外,用公共服务器存机械图和硬件图、用代码版本管理工具存程序代码,这都是基础设施的建设,一定要完成。

\3. 重视项目的关键节点。RoboMaster组委会在备赛期设置了提交技术报告、上传进度视频等时间节点。参赛队可以将这些时间节点看作是自己项目进展的关键节点,针对性地做计划。另外,队长和指导老师也应该设置一些机器人队内部的时间节点,比如内部进度报告演讲、内部对抗赛、给校领导做展示(问领导要钱)、给赞助商做展示(问赞助商要钱)等等,并且说明这些时间节点的意义,积极庆祝关键节点的达成,从而强化机器人队的使命感和凝聚力。知名的创业导师,香港科技大学的李泽湘教授,在学校指导机器人的队的时候就非常强调做进度报告PPT演讲的重要性,他认为这不仅是推动项目进展的关键,同时对于机器人队成员个人工程能力的提高也很有好处,毕竟能做好一个技术是一个层次,能做好而且能给别人介绍好则是更高的一个层次。

8

任务拆解。RoboMaster是一个庞大的系统工程,不仅仅是做出几个机器人打打子弹那么简单。

对机器人来说,除了完成基本的移动、射击、变形等功能外,机器人本身的机械机构必须还能够经受大概10个g的撞击、底盘和动力系统具备500分钟连续工作的耐久性,发弹机构连续发射上万发子弹不出故障……所以备赛期不仅仅要完成功能的实现,**还需要借鉴工业产品中的测试流程,对机器人耐久性和可维护性进行评估,确保机器人大部分模块寿命长、故障率低,小部分模块易于更换、维修方便快速。队长和项目管理在制定项目进度的时候,要为上述测试任务留出足够的时间。**在评审会上,大家都要不停地问自己或者其他人这些问题:你这个东西这么设计,坏了怎么修;你这个代码这么写,如果传感器坏了有什么提示。

对制作机器人的团队来说,临场比赛需要把全部家当带到一个陌生的环境(分区赛或者总决赛的备场),然后选出12名场地队员。团队要在比赛间维修机器人,场地队员需要在赛前和赛中初始化、检修机器人,所以在备场和赛场,每一个人应该做什么,都应该在出发去比赛之前制定好计划。RoboMaster过去两年的比赛视频都放在网上,比赛规则手册中也描述了从备场到候场、赛场的流程,以前参赛过的老队员也都有一些进场的经验。机器人队应该根据这些信息,定好到备场后物资的负责人、机器人的负责人、团队休息和值班的方式等等,12名场地队员更是要在备赛期后半程深入参与测试组的工作,熟悉机器人的性能,学会维护和修理机器人,甚至演练进场退场的流程。所有流程化的工作,包括机器人开机以后应该执行哪些检查、各个场地队员的分工,都要写成书面的文档进行记录。

近年来机器人学中有一个比较热门的研究方向叫做人和机器人交互(Human Robot Interaction,HRI),研究的目的是如何设计机器人能使得人更好地理解机器人的行为。**2015年著名的DARPA robotic challenge的一个重要结论就是要增强人和机器人之间的交互,而不仅仅是提高机器人的自主性。**在RoboMaster的赛场上,HRI也是一个重要课题。机器人团队应该在设计机器人的时候就考虑如何更好地让队员、场地队员、操作手和机器人更好地协作。例如机电系统设置紧急停止按钮,出意外的时候能很快关停机器人;程序设置比赛模式和调试模式,在调试模式下底盘速度受到限制,这些措施防止机器人在意外情况下伤害队员。例如机器人上要装足够的显示屏和按钮,方便在不重新烧程序固件的情况下调试和切换程序;机器人应该有模块自检功能以及开机之后活动一些机构的功能,如果有机构或者模块出问题要在显示屏上做提示,这样能够方便场地队员在赛场上排查问题。其他的问题,比如如何用好组委会裁判系统提供的数据接口给操作手显示一些数据,如何在机器人上添加辅助的传感器提高自动化操控性,这都涉及各参赛队的机密就不细说了。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

备注Go)**
[外链图片转存中…(img-hYW5Qr6G-1713040392485)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值