机器人操作系统里有个老问题:既想让机器人反应快如条件反射,又想让它能跑复杂的 AI 应用——这两个需求天然打架。

传统思路是在一块主控上跑一个通用 Linux,上面再叠 ROS 做感知、规划和控制。Linux 调度周期通常是毫秒级,对于机械臂伺服、电机闭环、激光雷达同步这类任务,抖动一旦超过几百微秒,就可能让机器人「手抖」或者「误判」。于是行业里常见做法是再加一块 MCU 或者实时控制板,用 CAN/EtherCAT 与主控通信。问题是:双板成本高、软件栈割裂、调试定位困难,开发者得在「实时域」和「智能域」之间来回横跳。

M-Robots OS 3.0 Beta 给出的方案是单芯多内核混合部署。用一颗芯片同时跑多个操作系统内核,把硬实时任务和通用智能任务隔离在不同执行域里。官方给出的数据是:中断响应时延 ≤1μs,任务切换时延 ≤1μs。这个数字意味着什么?本文试着从架构、机制和落地价值三个层面拆开聊聊。

一、为什么要做混合部署?先看机器人软件的「不可能三角」

机器人软件栈通常面临三类负载:

  1. 硬实时控制负载:电机电流环、伺服位置环、IMU 数据采集,要求确定性响应,抖动容忍度在微秒到几十微秒级。
  2. 软实时/中间件负载:多机通信、传感器融合、任务调度,允许毫秒级抖动,但不能丢包或乱序。
  3. AI 与业务负载:SLAM、视觉推理、LLM 交互、路径规划,计算密集,对实时性要求相对宽松,但需要完整生态。

如果全部塞进一个通用操作系统,前两类负载会被第三类「挤占」;如果分两颗芯片,系统复杂度、功耗、成本都会上升。混合部署的出发点,就是在一块 SoC 内部划出两个世界

这种思路不是 M-Robots 独创。工业界早有 AMP(Asymmetric Multi-Processing)和混合关键性系统(Mixed-Criticality System)的实践,比如 Xen/Zephyr 在车载领域的组合。但把这套架构和开源鸿蒙的分布式软总线、元能力框架结合起来,面向机器人场景做端到端打通,M-Robots 算是走出了自己的路径。

二、单芯多内核:两个执行域怎么共处一室?

M-Robots OS 的混合部署架构,简单说就是一颗芯片上同时运行两个或多个内核实例,分别承担不同关键等级的任务

根据深开鸿在 2026 数博会上的发布资料,这套架构的核心设计有几个特点:

1. 硬实时域:轻量内核 + 裸金属级调度

在实时域里,M-Robots OS 跑的是一个面向硬实时裁剪过的内核,调度策略以优先级抢占为主,中断路径被尽量缩短。配合 CPU 亲和性绑定、锁中断时间优化、滴答less 模式等手段,把中断响应和任务切换压到微秒级。

≤1μs 是什么概念?

  • 1μs = 1000ns,大约只够 CPU 跑几千条指令。
  • 工业伺服一般要求位置环周期 125μs~1ms,电流环更快。
  • 如果用通用 Linux,调度抖动常常在几十到上百微秒,遇到高负载时可能冲到毫秒级。

所以 ≤1μs 不只是「更快」,而是让机器人控制任务获得可预期的确定性边界,这对于机械臂力控、四足平衡、多机同步等场景非常关键。

2. 智能域:完整 OpenHarmony 生态

在非实时域,M-Robots OS 保留了基于 OpenHarmony 的完整系统能力:ArkUI、元服务、分布式软总线、NPU/GPU 加速、多媒体、网络协议栈等。开发者可以像开发普通鸿蒙应用一样,开发机器人上的 AI 应用和人机交互界面。

两个域之间通过共享内存 + 核间通信机制交换数据。得益于同一片 SoC,跨域通信的时延和带宽远高于板间总线。深开鸿在数博会现场演示的无人零售、园区巡检、水质检测等场景,本质上就是控制域和智能域在同一硬件底座上协同工作的结果。

3. 混合部署 ≠ 简单的双系统

这里容易有一个误解:以为混合部署就是在一块板子上跑两个独立 OS,类似 Windows + Linux 双启动。实际上差别很大。

M-Robots OS 的混合部署强调:

  • 同构/异构核都可以隔离:既可以是同构多核之间的分区,也可以是大核跑智能域、小核/MCU 核跑实时域。
  • 资源静态划分:CPU、内存、外设、中断按关键性提前分配,避免 AI 任务抢占控制资源。
  • 统一开发与部署工具链:开发者不需要为两个域分别写两套构建、烧录、调试流程。

这才是它区别于「双板方案」的关键——不是把问题搬到硬件上,而是在操作系统层面把问题解掉。

三、≤1μs 是怎么炼成的?三个关键技术点

光说架构不够,具体到这个微秒级数字,背后是几条硬核优化路径。

1. 中断路径裁剪

通用 OS 收到硬件中断后,要经过一长串公共代码:上下文保存、调度器判断、锁处理、虚拟化开销等。M-Robots OS 在实时域里做了「快速中断处理」机制,把关键中断直接路由到用户态线程或内核极简处理路径,减少不必要的中断嵌套和锁竞争。

2. 任务切换极简调度器

实时域的调度器不需要支持几百个线程、复杂的公平调度策略。它只需要支持少量高优先级任务,抢占式调度,切换时只保存必要寄存器。上下文切换路径越短,时延越低。

3. 资源隔离与确定性调度

混合部署通过硬件虚拟化/分区机制,把实时核的缓存、内存带宽与外设中断做隔离,避免被非实时任务「污染」。这种隔离加上静态资源分配,才能把最坏情况执行时间(WCET)控制在可证明的范围内。

当然,≤1μs 这个指标通常是特定测试条件下的最优值(典型场景、关闭部分调试功能、绑定 CPU 等)。实际部署中,开发者需要根据自家中断负载和任务数量做验证。但它至少说明:M-Robots OS 已经把硬实时的天花板抬到了国产机器人操作系统里少见的水平。

四、不止于快:混合部署的隐藏价值

微秒级时延是个漂亮的数字,但混合部署的价值远不止于此。

第一,它让「一个硬件平台」成为可能。

以前做机器人,上层算法工程师用 ROS/Linux,底层控制工程师用 MCU/FreeRTOS,中间还要写一堆通信桥接代码。M-Robots OS 的混合部署让两套软件栈跑在同一芯片上,通信从「走总线」变成「走共享内存」,系统 BOM 成本和集成难度都大幅下降。

第二,它为群体智能提供了确定性底座。

群体智能对时钟同步、动作协同、任务调度的确定性要求很高。如果一个机器人群里,某台设备的中断响应不稳,整个编队节拍就会被拖慢。M-DDS 把 200K 数据包时延从 30ms 压到 4.4ms,再叠加底层 ≤1μs 的调度确定性,才能让「多机自组网、动态任务分配」从 Demo 走向产线。

第三,它降低了国产机器人主控的替代门槛。

M-Robots OS 3.0 Beta 的底座已经支持 ARM、RISC-V、LoongArch、x86 四大架构。混合部署架构不绑定特定芯片,意味着国产芯片厂商可以用自己的 SoC 跑同一套系统,不必在软件生态上从零开始。

五、第三方观察:还需要验证什么?

作为旁观者,我认为混合部署是 M-Robots OS 3.0 Beta 里最有技术看点的一项能力,但也还有几个问题值得社区持续验证:

  1. 最坏情况时延(WCET):典型值 ≤1μs 很棒,但实际产线中的 99.9% 分位延迟、峰值抖动更关键。
  2. 多核干扰:大核跑 AI 时,小核/实时核的缓存和内存带宽是否会被污染?需要公开的 benchmark。
  3. 工具链成熟度:双域调试、崩溃定位、性能分析是否足够好用,会直接影响开发者采纳意愿。
  4. 芯片适配广度:当前支持了哪些具体 SoC?实时域能否在厂商自定义核上跑通?

这些问题没有标准答案,也正是开源社区可以发力的地方。

六、写在最后

M-Robots OS 3.0 Beta 把产品重心从「单机能力」转向「群体智能」,但群体智能不能建立在摇晃的地基上。≤1μs 的硬实时能力,就是这块地基里最重要的一块砖。

单芯多内核混合部署的厉害之处,不在于它让机器人「更快」,而在于它让机器人系统同时具备高确定性和高智能性——并且是在同一块芯片、同一套工具链、同一个开源社区里完成。

如果你也在做机器人主控、运动控制、或者多机协同,建议去 M-Robots 社区站看看相关的实时域源码和 benchmark 数据。一个国产机器人操作系统能把硬实时做到这个水平,值得开发者认真关注。

参考来源:

  • 深开鸿高级副总裁、研发体系总裁王皓,2026 中国国际大数据产业博览会 M-Robots OS 3.0 Beta 发布演讲(贵阳日报/搜狐/新浪财经等公开报道)
  • M-Robots 官方社区公告与项目数据:M-Robots 官方社区 - 开源代码托管,代码协作 - AtomGit
  • 如果你也在关注机器人操作系统,可以去社区站下载开源代码,我们一起玩儿起来✌

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐