美文网首页
Robot OS系统架构设计

Robot OS系统架构设计

作者: _Jun | 来源:发表于2022-09-01 14:35 被阅读0次

    1. 背景

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

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

    2. 系统设计准则

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

    1. 开放性:即整个Robot OS是开放的,而不是封闭的,允许安装第三方应用,所以要有以下能力:
      1. 有应用商店;
      2. 提供类似于小程序的开发平台;
      3. AI与运动能力提供开放的接口和能力;
      4. 有平台化、生态化、商业化扩展能力。
    2. 扩展性:系统是可扩展,包括:
      1. 硬件扩展性;
      2. 软件系统扩展性;
      3. 场景扩展性;
    3. 灵活性:
      1. 配置灵活性;
      2. 场景组合灵活性;
      3. 流程可干预;
    4. 高性能:
      1. 交互延时;
      2. CPU占用;
      3. 内存、网络、电量消耗
    5. 安全性:
      1. 防撞(日志可追溯);
      2. 防丢(远程定位、锁机);
      3. 防破解;
      4. 用户隐私保护;
    6. 高效性:
      1. 更新成本低;
      2. 开发成本低;
      3. 部署成本低;
      4. 调试成本。

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

    3. Android系统架构介绍

    Android系统架构图:

    其中我们可以看到:

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

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

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

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

    3. 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系统整体架构分层。

    作者:轻口味
    链接:https://juejin.cn/post/7089435441786683429

    相关文章

      网友评论

          本文标题:Robot OS系统架构设计

          本文链接:https://www.haomeiwen.com/subject/jmhsnrtx.html