本质上,机器人领域的迭代在历史的长周期上是一个确定的事情,但是行业的短周期上是一个不可强求的事情。在回答这个问题之前,我们首先要确定,这个问题所定义的机器人,到底是机器产品,还是所谓的智能机器人。如果是前者,那么这个领域在很多方面已经非常成熟;而对于后者,其实也是有很大的进展,但是智能机器人(通用机器人),他的核心突破点,其实在于机器人对于物理世界的
“常识性认知与交互”
。这一点跟过往大家对于机器人的理解可能不太一样,但是实现通用机器人的重点,并非在焦虑中徘徊,而应该是一步一个脚印中扎实探索。
毫无疑问,最近这段时间通用机器人的崛起,其核心还是大语言模型带来的通用能力的提升。伴随着大语言模型的发展和机器人技术的快速迭代,人类社会的运作方式正经历着前所未有的变化,仿佛驶入了一条通往未知的加速轨道。这些巨变,带来了无数次看似不可思议的奇点,22年底的ChatGPT爆发,深刻改变了我们的生活与思维方式。我们熟悉的世界正在解构,再塑,一个全新而充满可能性的未来在眼前展开
。
而就在这浪潮中,
通用机器人
给我们看到了关于未来生产力的一种新的可能性,关于第五次工业革命的可能。在我们之前的预测中,技术的发展存在周期性的迭代特性,如此前我们在一篇评论中所描述中,“新一波的康波周期,势必会从信息技术中的技术瓶颈中孕育出来,并进一步带来生产力的革新”。在整套通用机器人架构中,我们经常会面临两方面的选择,基于规则和几何结构的
经典传统方案
和机遇深度学习/大模型等的
数据驱动方案
。
经典传统方案:
在传统的机器人系统中,基于物理和工程学的经典方法长期以来为机器人提供了可靠的基础架构。这些经典方案基于明确的规则和物理模型,具有高确定性和可预测性,使得机器人在特定任务中的表现高度稳定。这类方案多见于当前机器人系统中的
定位、导航、建模、规划
中。
数据驱动方案:
数据驱动的大模型,尤其是基于深度学习和强化学习的模型,能够从大量的历史数据和环境交互中学习复杂的模式和行为。这些模型擅长处理非结构化数据,并能够在面对未知或模糊环境时,通过
终身学习、自我学习
不断优化自身的表现,使得机器人在复杂和未知的情境中具备更强的适应性。
随着任务复杂度和环境不确定性的增加,单纯依赖经典的规则方法难以应对多样化和动态变化的应用场景,在这一背景下,数据驱动的通用机器人大模型方案展现出了其独特的适应性。但是另一方面,真实世界的复杂性和多样性,又使得单纯依赖于数据驱动方案的机器人系统难以在现实生活中得以应用。在我们此前的文章中,分析过这两类方法在实际中的真实价值。
如果我们把通用机器人发展的命题锁定在机器人
“常识性认知与交互”
上面,我们会发现通用机器人缺乏一套可以让其
“具备完成常规能力,又能不断根据环境进化、反思、改良”
的系统架构,这类架构有点类似于电脑的操作系统,但又不完全一致。客观的来讲,这套系统并不是单纯的软件架构,而是构建一套智能化生命体的基础,无论是家庭、实验室、工厂,还是探索宇宙的最远角落,这套系统赋予了机器人跨越不同场景和任务的能力,
以一种接近生命的方式去学习、去思考、去适应。
我们正在见证一个新的纪元,机器人不再受制于预编程的规则与狭隘的数据集,它们开始像我们一样,透过与世界的互动,逐步构建对环境的理解。它们的学习来自于多样化的数据,从人类的动作中汲取灵感,具备了理解复杂任务的能力,也能从不断的经验积累中优化自己的行为决策。
于此同时,这套系统也需要模块化的模组设计,使得系统的进化可以从多个角度(
世界模型、视觉-语言行动模型、感知、记忆和控制模块
)出发,为机器人提供了一种可以应对变化、不断进化的智能架构,打破过去机器人局限于单一任务的桎梏。为了以上这个目的,我们提出了如下的Cyber架构。
通用操作系统架构+海量数据
https://github.com/CyberOrigin2077/Cyber(欢迎star)
本文将会围绕着Cyber这套架构的设计思路,从
架构逻辑,操作系统,模块设计
三个角度展开对于这个架构的理解。这是一个庞大的工程体系,但并不代表不能实现。
架构逻辑
如何设计和开发通用机器人的操作系统,这是一个很大的Topic,这个领域目前还没有一套收敛的体系架构。相对比来,无人驾驶系统可能是目前最接近通用机器人系统的架构体系,但是其中的端到端也只占了很小的比例。同时需要考虑到,通用机器人所可能遇到的场景复杂度、多样性、动态性等问题会是无人驾驶系统的成百上千倍;此外通用机器人需要同时兼容Navigation和Manipulation,而无人驾驶仅仅需要考虑有限环境中的Navigation,因此这里面的复杂度已经不言而喻了。因此我们经常会考虑这个问题,传统的机器人方案,是否还能够满足当今通用机器人的具体需求。
逻辑背景
经典算法在通用机器人系统中的应用
如上图所示,在我们早期的工作里面(2017~2023年),我们考虑的通用机器人系统更像是无人驾驶目前架构体系,其中涵盖了常规意义上的
高精度定位、建模、感知、导航、协作和终身学习
方面的工作,这一些工作在Field Robotics和Rover Robotics系统中有着至关重要的价值。引申到无人驾驶、仓储物流、清洁巡检等领域,都是最为基本的模块。但时至今日,这一类能力也只能在室外环境和相对简单的室内环境中进行应用。如下图所示的视频中,是我们从21~24年搭建起来的跨越Long-term和Large-scale的机器人导航系统,可以看到很多我们看似简单的室内外导航,对于机器人的来说却需要动用全部资源进行处理。
这里加一个插曲,有人会问(包括很多做经典SLAM的同学),这种常规的定位导航系统不都是已经解决了吗,乃至于会考虑SLAM这类技术在具身智能的背景下,是否还有继续推进的必要性。但是客观来讲,很多经典的问题,其实都是在相对稳定的环境中进行,但很少有方法可以适配于复杂多变的真实场景,为此我们之前还专门写了一篇文章来论述这件事(篇幅问题,在这里就不过多赘述了,详情请看下面附着的文章)。而很多传统且经典的领域,实际上都在迎来自己的“第二春”。
以SLAM技术为例,很多新的“端到端”或者“Data-Driven”的方法,确实可以实实在在的提供系统定位导航的能力;以Control领域为例,MPC+RL等方法的结合,确实可以给足式机器人的Locomotion提供本质上的性能提升;以Navigation为例,Visual-Language-Navigation也确实可以让机器人的导航更具有“共识”性;最后以Manipulation为例,Visual-Language-Action也确实可以给机械臂的运动规划和复杂场景中的抓取任务提供更鲁棒能力。但这里面中,我们其实发现有两个核心的点:
1. 都需要传统方法和端到端方法的结合,2. 都需要大量数据
。关于这种思维链路的集中体现,还是举我最为熟悉的SLAM领域说明。
核心思想
因此在我们在设计构思
Cyber
整个架构的时候,就在考虑以下几个核心的设计要素:
模块化:
模块化设计意味着系统由多个相对独立的模块组成,能够根据不同任务或应用场景进行灵活组合和替换。通用机器人所面临的环境非常多样化,模块化架构允许系统在不改变核心部分的前提下,快速适应各种场景,例如从工业制造到家庭服务等应用。每个模块可以是导航、感知、操控等不同功能的单元,用户可以根据需求选择合适的模块,甚至针对特定需求开发新的模块。这种设计大大提升了系统的可维护性和灵活性,降低了开发成本和复杂度。一个好的机器人系统,不会是单一的Navigation系统或者Manipulation的系统可以完成的,是一个多元复合体。
数据驱动:
随着机器人技术的进步,我们越来越发现,机器人的通用能力并不只是取决于硬件或者与之对应的算法,而是更多取决于整套系统中渗透着的物理世界数据。如果把操作系统比做
发动机
,那么数据就如同流淌其中的
石油
。这一点,也刚好呼应为什么模块化不能完全隔离,因为整个系统的各个模块是紧密耦合且联动的,无法完全隔离。现实一点的例子,我们之前做机器人导航决策等,但是越来越觉得类似于SLAM技术已经不在只是定位导航这种单一的任务模块,而是如同人类的海马会一样,跟机器人的记忆、行为甚至决策紧密耦合。
跨平台性:
通用机器人系统必须具备跨平台的能力,即能够在不同的机器人硬件上运行。由于机器人硬件的种类繁多,包括不同设置的机械臂、机械手、移动地盘等,系统需要能够在不同硬件架构和操作环境中轻松移植和适应。但是这个问题的难度在于,差异化的平台会给模块化设计和数据驱动的端到端训练带来难题。因此,跨模态的系统迁移和对应的模型迁移,都会是其中的难题。今朝就好比Windows系统或者Linux系统,如果只能在单一形态的计算机上应用,那他们的价值还是非常有限的。因此通用的一个核心考量之一,就是是否可以支持跨平台支持。
可定制化:
可定制性是通用机器人操作系统的一个关键特点。不同应用领域对机器人的要求各不相同,例如工业机器人可能需要高精度和高负载的操作,而服务机器人则需要更多的交互和移动能力。因此,Cyber这套系统允许任何研究人员对其进行特定需求下的定制要求,包括对于传感器的适配和功能性的适配。这一点也是我们过去几年对于通用机器人系统在实际应用中的开发思考,也就是任何功能性的软件系统,应该如同水一样自由的渗透到任何形态中。
可扩展性:
可扩展性使得系统可以通过添加新功能和模块来增强其能力,适应未来需求。这种设计思路不仅能满足现有的功能需求,还能通过不断扩展支持未来的技术创新和新应用。举例来说,机器人系统可以通过增加新的感知模块(如LiDAR或高分辨率摄像头)来提升环境感知能力,或通过集成新的操控算法来应对更复杂的操作任务。可扩展性还鼓励第三方开发者为系统贡献模块和功能,促进整个生态系统的发展和技术进步。
开源社区:
在说完以上几点后,我们意识到通用机器人系统不太可能是一个闭源环境下可以完成的,它需要一个开放的社区环境。开源意味着该系统的源代码向公众开放,任何人都可以获取、使用、修改和分发,同时也意味着这套系统可以进一步激发AGI领域的“最强大脑”们以自己的思考进一步推进通用人工智能生态的进步。
以上这些基本原则,在过去我们几年在MetaSLAM的研发中被验证可以更大程度上加速AGI的进展,因此我们计划在未来的几年中,按照这种架构逻辑继续推进通用机器人操作系统的研发。
https://github.com/MetaSLAM
(欢迎star)
操作系统
CYBER系统采用模块化架构设计,具备高度的灵活性和定制能力。以下是其关键组成部分的详细解释:
世界模型 (World Model)
这个模块能够为机器人提供有关物体形状、位置、物理属性及其相互关系的信息,是机器人进行有效操作的基础。世界模型不仅使得机器人具备适应不同环境的能力,还能够预见未来可能的变化,从而制定更合理的行动计划。这种对环境的深刻理解,使得机器人在复杂情境中拥有了高度的自适应性和灵活性。目前,
世界模型
已对外开放。
行动模型 (Action Model)
行动模型负责从机器人与环境的交互中学习如何执行任务并导航。它能够根据任务需求将不同的动作组合起来,以完成特定的操作。行动模型的学习不仅基于机器人自身的运动数据,还结合了来自人类演示的数据,这使得它能够在任务执行中展现出类似人类的直觉和灵活性,尤其是在多样化的任务中表现出色。
感知模型 (Perception Model)
感知模型处理来自各种传感器的数据,帮助机器人实时“看到”并“感知”周围环境。感知不仅包括对物体的识别,还涉及对动态变化、物体之间的空间关系的理解。通过感知模型,机器人能够对环境进行准确的解释,使得它们可以在快速变化的环境中做出实时反应,保持稳定的任务执行能力。
记忆模型 (Memory Model)
记忆模型为机器人提供了经验积累与利用的能力。它记录并管理机器人在执行任务过程中的关键信息,将这些经验用于未来的类似情境中,以帮助机器人做出更为明智的决策。通过记忆模型,机器人能够总结过去的成功和失败,从而不断优化自己的行动策略。这种自我学习和不断积累的能力,使得机器人能够在执行任务时不断提升效率和表现。
控制模型 (Control Model)
控制模型负责管理机器人与外部环境的交互,是实现动作执行的关键模块。它接收来自其他模块的输入,计算具体的控制指令,并通过驱动电机、机械臂等执行器来完成动作。控制模型通过不断接收和处理来自传感器的反馈信息,确保机器人能够精准执行任务指令,同时根据环境的变化进行动态调整,以实现更高的控制精度和适应性。