全胜娱乐网 >> 刘纯如

管理大型机器人软件团队李风持

2022-08-03

管理大型机器人软件团队

开发机器人软件的团队必须在自己的团队中很好地协调,同时还要与许多其他工程学科的开发团队并行工作。构建机器人需要软件工程师,系统工程师,电气工程师,控制工程师和机械工程师的共同努力。

在开发周期中,由于测试机器人的成本和复杂性,它们是有限的资源所有工程学科都必须共享少数可用的机器人。最重要的是,机器人易碎且危险,因此安全是重中之重。

机器人由许多类型的处理器,执行器和传感器组成。因此,机器人软件工程师必须不断学习新的API,工具和技术,才能与广泛的组件一起使用。

如果该机器人用于医疗应用,则还需要解决法规考虑方面的其他问题。例如,用于医疗应用的所有软件都必须经过测试,以消除对使用机器人的患者和员工造成风险的水平。不断发展的安全和性能标准,再加上法规要求,可能给软件工程团队开发医疗机器人带来巨大负担。

在这里,我们分享了六个重要的经验教训,以帮助软件工程师的主管及其经理有效地解决机器人软件开发项目中固有的各种挑战,同时确保软件工程师的安全并避免炸毁他们的机器人。

1,沟通与协调至关重要

与庞大的跨学科工程师团队合作时,有效的沟通至关重要,尤其是在团队分散的情况下。

每日Scrum会议是跨工程学科共享信息的最佳实践。软件工程团队期望采用这种标准做法,但是对于项目中的系统,电气和机械工程师而言,召开Scrum会议可能是新的。

作为软件经理,请考虑邀请其他学科的工程师。他们并不需要每天都来,但是如果您发出邀请,则可以为扩展团队的团队成员提供一个论坛,他们可以在他们需要软件团队的帮助时参加。

以下是各种工程学科,它们的职责范围以及它们之间的交互方式的详细信息:

系统工程负责定义系统需求,并将其分配给其他工程学科。他们通常代表产品所有者进行印后演示。系统测试负责人负责验证机器人的工作,并区分软件错误和硬件错误。

我们发现,当系统工程负责人和系统测试负责人定期参加会议时,与软件测试团队分担系统测试负担是合力的。系统工程负责人通常拥有机器人硬件,对于确保将机器人配置为测试软件至关重要。

如果使用诸如机器人操作系统之类的框架,则控制工程可以与软件团队紧密联系。如果要使用Simulink或其他高级设计工具中的代码生成来创建控件软件,则需要软件工程师将控件系统代码与系统中的其他组件集成在一起。

机械工程通常拥有产品生命周期管理工具,并与软件团队合作为存储在机器人上的软件映像计划零件编号。软件经理应尽早与机械工程部门合作,以建立将完成的软件加载到系统的过程。否则,在工厂启动您的机器人产品线可能会变得混乱,因为工作人员试图找到要安装的正确软件版本,尤其是在最新的错误修复中。

电气工程部门拥有运行软件的电路板。为了验证硬件和固件是否在新板上能够正常工作并确保顺利进行板上启动,请分配一些软件工程师在开发周期的早期开始与电气工程师合作。

软件工程师可以通过推荐有助于软件测试的功能来影响原理图,例如,包括LED在内的功能以及暴露可以用示波器或逻辑分析仪探测的测试点。易于调试和测试的电路板可以提高您达到上市时间窗口的能力,并避免进行昂贵的返工。

2.机器人是稀缺资源

每个人的办公桌上摆着机器人的日子都很少,而且相去甚远。由于许多团队在远程工作环境中操作,一些较小的机器人可以带人回家,但这仍然很少见。手术机器人工程单元的成本通常约为50万美元,并且需要叉车和举升车才能移动。

大型软件团队通常只有几个可用于开发工作的机器人。即使拥有庞大的分布式开发团队,也可以成功地容纳每个人而很少有抱怨。这是我们确保大型软件团队在需要时可以访问机器人的方式。

的首席软件测试工程师已经在核心营业时间专用机器人。想要访问机器人的任何人都直接与他们协调。首席软件测试工程师与软件工程师一起在测试之间测试其内部版本,这对分布式团队很有帮助,因为所有通信都可以通过电子邮件和即时消息进行。

该系统测试铅也有一个专门的机器人坐标与软件团队。他们专注于解决面向客户的错误修复,并投入一部分时间和机器人来解决上午站立会议上讨论的问题。

该软件团队共用两个具有最全面的功能完整的机器人和两个机器人“道路杀死。” 道路杀伤装置由连接在一起的整个机器人的相同处理器,传感器和致动器组成,但致动器或电机未物理连接至手臂或底盘。电动机旋转时,没有任何物理运动,这有助于确保操作员安全。

该团队拥有一组日历,他们在一周内预留时隙。通常,此方法可解决80%的调度冲突。其余20%的冲突在每日起立时处理。有效的计划协调是确保“无权使用机器人”永远不会成为完成分配工作的障碍的关键。

3.机器人是 睿捷

所有的电子系统都可能是脆弱的,包括机器人。例如,如果向后插入一块价格不正确的昂贵工程板,可能会炸毁它。早期的机器人原型可能特别脆弱,因为可能无法在原型中实施所有防护措施。

原型对于测试硬件和软件以及解决开发周期中的技术挑战至关重要。工程师需要仔细处理这些原型。暂时的粗心行为不仅会破坏硬件,而且会阻碍需要使用该硬件的整个软件团队。

机器人在机械上也可能很脆弱。关节有限制,可以过度伸展和折断。此外,除非对其进行编程,否则机器人不会意识到附件的相对位置,并且会自行碰撞。在测试机器人的自动运动之前,很容易超过关节极限或忘记从先前的测试中删除当前碰撞模型中没有的附加项。

在开始使用物理机器人之前,软件工程师应该“了解他们的机器人”。这是通过不同类型的培训来完成的。如果您有幸与创建该团队的团队合作,则培训应从软件工程师阅读机器人操作员手册开始。如果您不那么幸运,那么值得花时间与系统工程师一起创建操作手册,以便您的团队了解机器人的功能和局限性。考虑在积压工作中添加需求或培训事件,以便软件工程师在动手操作机器人之前先阅读操作员手册。

接下来的培训步骤是由经验丰富的团队成员将新工程师介绍给机器人并演示其典型操作。这包括安装电池,为机器人通电以及从控制器连接到机器人。首席工程师应向新工程师展示紧急停止的位置,讨论可以安全使用控制器上的哪些操作,并演示如何关闭机器人以及如何断开电池。

紧急停止是关键。测试新代码或执行任何导致机器人移动的操作时,新工程师必须准备好按下该按钮。确实发生事故。但是,通过适当的培训,可以大大减少或完全避免对测试实验室中的机器人和人员的任何负面影响。

4.机器人很危险

装有未经测试的软件的机器人可能会以无法预测的方式移动。如果速度限制不受控制,则机器人很容易加速并伤害或杀死某人。可以在人旁边安全地操作的机器人被称为协作机器人。

手术机器人需要在手术人员周围进行操作,并且必须能够与人安全碰撞。软件工程师可能会与没有功能碰撞传感器的工程部门合作。在这种状态下,机器人无法发现周围的人,这可能非常危险。

软件经理还应确保机器人与公司网络隔离。出于偶然或方便的目的,机器人可以很容易地连接到网络。一旦进入网络,正在测试控制器软件的工程师可能会意外地连接到真实的机器人,而不是仿真器。看到一个重达500磅的机器人突然复活并试图驶离它的电梯,这既可怕又危险。您应将所有本地测试隔离在无法连接到公司网络的容器后面。

5.机器人软件开发需要很多技能

因为软件工程师开发了整个机器人软件堆栈,所以他们需要千篇一律。软件工程师还必须精通其主要的编程语言,无论是C ++,Python还是Simulink和MATLAB。这包括固件,板级支持软件包,嵌入式OS,设备驱动程序和应用程序代码。另外,如果您使用像ROS或ROS2这样的专用框架,您的团队将需要非常精通该软件框架和工具。

有效管理大型机器人软件开发项目的复杂性的关键是可以提高整个软件堆栈一致性的软件体系结构。您必须经常问自己: 您的软件体系结构是否可以覆盖机器人中的处理器,传感器和执行器?

带有软件程序的笔记本电脑

得到教训

与非机器人软件开发相比,机器人软件开发项目需要不同的考虑。软件经理必须应对以下挑战:协调多学科团队,共享稀缺资源,处理易碎和危险的机器人,复杂的软件体系结构以及法规要求。知识差距,捷径和经验不足会加剧这些挑战。

机器人开发仍然像是狂野的西部,因为这些努力中的许多都是新颖而独特的。与任何新兴技术一样,在开发医疗机器人时,最大的风险就是您不知道自己不知道的东西。无论您的机器人软件开发项目是否为医学项目,都应遵循我们在此处概述的六种最佳实践,以避免犯可能造成危险,代价高昂并延误项目进度的错误。

6.医疗机器人的发展需要更多的考虑

医疗设备的独特法规要求会影响整个机器人软件开发生命周期。生命周期中使用的所有工具都需要进行验证。根据机器人的医疗设备类别,该软件将需要记录在严格管理的质量管理系统中。

例如,ROS和ROS2被认为是来源不明的软件,需要对机器人的预期用途进行自己的验证。存在医疗设备标准以及与手术机器人有关的标准。在计划项目时,必须充分了解软件工程经理的这些标准。

许多从事医疗机器人技术工作的工程师都具有机器人专业知识,但缺乏如何驾驭法规制定流程的知识。在这种情况下,尽早与专家合作以帮助团队适应其开发过程以有效满足医疗机器人开发的法规要求是很有意义的。这比在将产品推向市场时尝试遵守法规要求要好得多。

铝合金油罐车厂家直销

缅甸柚木

空气压缩机出租

凯士比KSB

悬浮拼装地板厂家

友情链接