当今机器人技术面临的挑战,以及 ChatGPT 能提供的帮助
目前机器人的操作流是从工程师或技术用户开始,需要他们将任务需求转换为系统代码。工程师会处于工作流程的回路中,他们需要不断编写新的代码和规范来纠正机器人的行为。总得来说,这个过程是缓慢的(用户需要编写低级代码)、昂贵的(需要对机器人技术有深入了解的高技能用户)且低效的(需要多次交互才能正常运转)。
但 ChatGPT 开启了一种新的机器人范式,并允许潜在的非技术型用户参与到回路之中,在监视机器人性能的同时向大型语言模型(LLM)提供高级反馈。通过遵循研究的设计原则,ChatGPT 可以为机器人场景生成代码。在没有任何微调的情况下,研究利用 LLM 的知识来控制不同的机器人形状,以完成各种任务。工作中,研究人员展示了多个 ChatGPT 解决机器人难题的示例,以及在操作、空中和导航领域的复杂机器人部署。
机器人与 ChatGPT:设计原则
Prompting LLM 是一门高度实证的科学。研究通过反复试验建立了一套为机器人任务编写 prompt 的方法和设计原则:
首先,研究定义了一组高级机器人 API 或函数库。这个库可以特定于特定的机器人,并且可以映射到机器人的控制堆栈或感知库中现有的低级实现。对高级 API 使用描述性名称非常重要,这样 ChatGPT 就可以推断它们的行为;
接下来,研究人员为 ChatGPT 编写一个文本 prompt,它描述了任务目标,同时明确说明来自高级库的哪些函数是可用的。Prompt 还可以囊括关于任务约束的信息,或者 ChatGPT 应该如何形成其答案(特定的编码语言,使用辅助解析元素);
用户在回路中评估 ChatGPT 的代码输出,要么通过直接检查,要么使用模拟器。如果需要,用户可以使用自然语言向 ChatGPT 反馈答案的质量和安全性。
用户满意解决方案的话,代码就可以最终部署到机器人上。
理论已经够多了,ChatGPT 到底能做什么?
如同大脑之于人一样,控制器也是机器人最重要的元部件,它定义了机器人的功能和行为。很多学者都对其进行了研究或给出了设计方案[ 1 , 2 , 3 ] ^{[1,2,3]}
[1,2,3]
,但是针对控制器总体架构和具体实现的讨论较少,而且与工业生产一线严重脱节,早已过时。本文比较了机械臂和移动机器人两种工业机器人的控制器方案,对其功能需求和特点进行了分析,并探讨开放式控制器的实现方案。
机械臂控制器 移动机器人控制器
以上分类的依据是机器人类型。目前市面上更多的控制器产品是通用型运动控制器或运动控制卡,即控制各种非标设备运动的,例如数控机床、激光切割机等自动化设备。当然这些产品也可以通过二次开发用于控制机器人。
通用运动控制器产品
1 软硬件方案
我们首先考察常见工业机器人控制器的软硬件方案。
1.1 机械臂
机械臂控制器的发展较早,产品相对成熟,其实现方案见下表。国际一线品牌大多采用X86芯片,并采用实时操作系统构造底层软件。
1.2 移动机器人
移动机器人的控制器属于较新的方向,AGV、无人机、工程机械等都可归于此类,最近比较火的无人驾驶也可以认为是一种移动机器人,其控制系统底层方案见下表。
1.3 对比
机械臂的功能要求多,自由度多,而且对运动精度和响应速度的要求较高,比移动机器人一般要高1到2个数量级,因此控制器的计算量大、周期短;移动机器人一般对响应速度要求不高,功能相对简单,其配置相对较低,而且移动机器人通常采用电池供电,控制器内置,因此对功耗和散热有要求,其控制器多采用嵌入式芯片。
机械臂一般工作于固定的区域,其控制器通常放置于机箱内,因此防护等级不高,一般是IP20;移动机器人由于需要经常运动,尤其是室外工程机械,要考虑防水防尘,其防护等级较高,一般是IP65。
2 商业控制器
介绍几种有代表性的商业控制器方案。
2.1 CoDeSys
很多机器人控制软件都是借助CoDeSys实现的,那么CoDeSys是什么呢?
CoDeSys是德国3S公司推出的一款付费的软PLC开发软件,简单来说,它包括两部分:Development System和Runtime System。Development System就是用来编程的软件界面(就像Visual Studio、Eclipse等软件,也可以称为IDE),设计、调试、编译PLC程序都在IDE中进行,这部分是用户经常打交道的;程序写好了以后,就要把它转移到硬件设备中执行。可是这时生成的PLC程序自己是无法运行的,它还要在一定的软件环境中才能工作,这个环境就是Runtime System(也叫运行核),这部分是用户看不到的。二者安装的位置通常不同,IDE一般安装在用户的开发计算机上,Runtime System则位于起控制作用的硬件设备上,程序通过网线或串口线下载到Runtime中运行。
CoDeSys为什么要分成两部分?最主要的原因是CoDeSys主要运行在嵌入式系统中,例如ARM或者DSP芯片。这样的系统资源有限,不可能在其上建立庞大、复杂的开发环境,因而其开发环境和运行环境相互分离。因此,嵌入式软件的开发方式一般是,在宿主机(Host)上建立开发环境,进行应用程序代码的编写和交叉编译,然后宿主机与目标机(Target)建立连接,将应用程序下载到目标机上进行交叉调试,经过调试和优化,最后将应用程序固化到目标机中实际运行。当然,随着芯片的性能越来越强大,如果选择资源丰富的芯片,那么CoDeSys的开发环境和运行环境放在一起也没什么问题。我们自己的个人电脑不就是编译和运行程序都能完成吗。
CoDeSys在工业控制领域的应用非常广泛,上面提到的很多机器人公司都使用了它的产品,例如KEBA、倍福、固高、台达、广州启帆机器人、新时达机器人。3S公司只卖底层软件,不卖硬件和上层应用程序,应用程序和硬件电路需要由用户自己设计,3S公司负责将Runtime System移植到客户的硬件上。Runtime System可以裸跑在硬件上,但一般是运行在操作系统上,配置操作系统也是客户的工作。如果客户要求,CoDeSys的IDE可以定制,换成客户的logo和外观,这就是为什么你会发现不同厂家的开发平台长得不一样,但风格又比较相似。当然,用户也可以使用其它IDE,例如倍福就使用了Visual Studio,而背后的编译器等内核功能以及函数库仍然采用CoDeSys的方案。CoDeSys的Runtime具有强大的适应性,支持绝大多数的操作系统和芯片类型。
信迈提供chatgpt+机器人控制器+底盘一体化方案。