RGMP 是一个利用多核架构实现的实时与非实时操作d立运行的混合操作 系统框架,如图2-3所示。通用操作系统(Linux) 和实时操作系统(RTOS) 在 各自的 CPU 上d立执行。I/O 设备被分成实时设备和非实时设备,分别被实时 操作系统和非实时操作系统控制。中断控制器被用作中断路由器,将两种设备 的中断信号路由到相应的操作系统。其中, RTOS 接受实时中断,如电机驱动、 传感器等产生的中断信号;Linux 接受非实时中断,如人机交互、显示等中断信 息。实时操作系统和通用操作系统都完全控制自己的 CPU, 所以没有多余的软 件层需要介入到操作系统和硬件之间。硬件中断被每个操作系统直接处理。同 时各个操作系统d立运行在各自的CPU 上不仅解决了CPU 共享问题,还能确保 操作系统之间不会相互影响。
Nuttx 是一个实时嵌入式操作系统,它小巧灵活,适合在微控制器的环境中使 用,并且具有较好的可扩展性,能够支持从小型(8位)至中型(32位)嵌入式系 统 。Nuttx 以完全符合标准、完全实时和完全开放为发展目标,提供了机器人操作 系统所需的常用功能:UIP 协议栈、Shell、基本C 库、简单的几个C++库等。为了 解决ROS 实时性能不足的问题,基于上述技术要点,利用RGMP 本身混合操作系 统架构的优点,通过将Nuttx 实时操作系统移植到RGMP 的实时部分,实现了基本 混合操作系统的构建,创造了一个满足实时性需要的 ROS 混合机器人操作系统 RGMP-ROS。
RGMP-ROS的系统框图如图2-4所示,整个机器人混合操作系统由两个部分组 成:一个是安装在Linux 上的标准ROS 系统,另一个是运行在实时操作系统Nuttx 上的实时ROS 系统。摩登7将运行在Linux 上的ROS 功能节点称为非实时ROS 节点, 运行在实时系统上的ROS 节点称为ROS 实时节点,它们运行在各自的操作系统之 上。实时与非实时节点之间通过RGMP 提供的VNET 管道进行通信。实时ROS 节 点运行在Nuttx 之上,能够通过标准的ROS 通信协议实现实时节点与实时节点、实 时节点与非实时节点之间的通信,并且传递符合ROS 协议规范的消息。实时节点 通过Nuttx 驱动与Nuttx 系统内核和实时系统挂载的外部设备进行交互,以达到控 制实时设备的目的。为了保证实时性,GPOS 与 RTOS 各自拥有d立的外设。
![]() |
| 机器人底盘 Disinfection Robot 消毒机器人 讲解机器人 迎宾机器人 移动机器人底盘 商用机器人 智能垃圾站 智能服务机器人 大屏机器人 雾化消毒机器人 展厅机器人 服务机器人底盘 具身智能教育机器人 智能配送机器人 导览机器人 |