写点什么

Robot OS 系统架构设计

作者:轻口味
  • 2022 年 4 月 22 日
  • 本文字数:1477 字

    阅读完需:约 5 分钟

Robot OS系统架构设计

1. 背景

目前移动机器人已得到了大范围应用,无论是在大型商场还是银行都可以看到移动机器人身影。移动机器人主要是移动加决策,移动方式主要以轮式和足式,在商场见到的主要以轮式拟人的形态出现,足式的主要以动物形象为主,前段时间还看到了上海一个小区,机器人上绑着喇叭在小区跑,提示人们注意做好个人防范等。


目前在着手负责移动机器人操作系统相关的工作,系统在 Android 基础上搭载智能语音图像的 AI 能力,运动控制能力封装以及决策引擎。Robot OS 整个架构设计围绕这些核心能力ß展开。

2. 系统设计准则

在和团队沟通出系统设计方案时,先定好设计准则,在我们上达成一致。


  1. 开放性:即整个 Robot OS 是开放的,而不是封闭的,允许安装第三方应用,所以要有以下能力:

  2. 有应用商店;

  3. 提供类似于小程序的开发平台;

  4. AI 与运动能力提供开放的接口和能力;

  5. 有平台化、生态化、商业化扩展能力。

  6. 扩展性:系统是可扩展,包括:

  7. 硬件扩展性;

  8. 软件系统扩展性;

  9. 场景扩展性;

  10. 灵活性:

  11. 配置灵活性;

  12. 场景组合灵活性;

  13. 流程可干预;

  14. 高性能:

  15. 交互延时;

  16. CPU 占用;

  17. 内存、网络、电量消耗

  18. 安全性:

  19. 防撞(日志可追溯);

  20. 防丢(远程定位、锁机);

  21. 防破解;

  22. 用户隐私保护;

  23. 高效性:

  24. 更新成本低;

  25. 开发成本低;

  26. 部署成本低;

  27. 调试成本。


目标达成共识后就开始对系统进行设计。

3. Android 系统架构介绍

Android 系统架构图:



其中我们可以看到:


  1. Android 平台的基础是 Linux 内核。例如,Android Runtime (ART) 依靠 Linux 内核来执行底层功能,例如线程和低层内存管理。使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为内核开发硬件驱动程序。

  2. Android****专用驱动:Android Ashmen、Logger、Binder、Power Management、Low Memory Killer、PMEM(物理内存驱动)、USB Gadget、Ram Console、Time Device、Android Alarm

  3. Android****设备驱动:Framebuff 显示驱动、Event 输入设备驱动、ALSA 音频驱动、OSS 音频驱动、v412 摄像头驱动、MTD 驱动、蓝牙驱动、WLAN 设备驱动

  4. 硬件抽象层 (HAL) 提供标准接口,向更高级别的 Java API 框架展示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个接口,例如相机或蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

  5. framework 和应用层我们接触的比较多,容易理解,这里不做详细介绍。


在 Android 系统架构基础上封装出我们的 Robot OS 架构:



其中 Service 与 Core 核心层对应 Androi 的 framework 层。

4. 硬件架构设计



系统开发板是运行我们 Robot OS 的主板,通过网线与控制底盘运动的主板通信,扩展 Robot OS 的基础能力。

5. 模块设计


我们要在系统 framework 层实现语音,图像,运动相关服务,以及控制信令下发的指令接收分发服务,并未这些能力封装对应的应用层 SDK,是接入 SDK 的 APP 可以与我们提供的核心能力服务通信。


这里把每个核心能力单独设计为一个独立进程的好处:


1.隔离性:一个模块崩溃不影响另外模块;


2.开放性:所有运行在我们机器上的应用都可以通过 SDK 调用这些核心算法与运动服务;


3.安全性:提供的 SDK 只是 IPC 客户端,核心算法能力在 OS 层,防止被破解;


4.高性能:多个应用使用一个能力,该能力只在系统存在一份既可,重用提高性能。

6. 业务架构设计



业务架构设计准则:


  1. 将业务平台化,相互独立;基础业务下沉,便于复用;

  2. 将核心业务和非核心业务分离

  3. 隔离不同类型业务

  4. 区分主流程和辅助流程


基于这些准则和 OS 提供的核心能力,可以快速开发基于特定场景的产品,快速迭代,快速交付。

7. 总结

本文介绍了 Robot OS 的核心能力及架构设计,包含硬件架构设计、业务架构设计,以及模块设计,并且介绍了 Android 系统整体架构分层。

发布于: 刚刚阅读数: 2
用户头像

轻口味

关注

🏆2021年InfoQ写作平台-签约作者 🏆 2017.10.17 加入

Android、音视频、AI相关领域从业者。 欢迎加我微信wodekouwei拉您进InfoQ音视频沟通群 邮箱:qingkouwei@gmail.com

评论

发布
暂无评论
Robot OS系统架构设计_android_轻口味_InfoQ写作社区