Robot OS系统架构设计

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

image.png


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系统架构图:


image.png


其中我们可以看到:


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架构:


image.png


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


4. 硬件架构设计


image.png


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


5. 模块设计


image.png


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


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


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


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


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


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


6. 业务架构设计


image.png


业务架构设计准则:


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


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


3.隔离不同类型业务


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


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


7. 总结


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

目录
相关文章
|
1月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
2月前
|
存储 安全 物联网
操作系统的心脏:深入理解现代操作系统架构与核心技术
本文旨在为读者提供一个关于现代操作系统(OS)架构和核心技术的全面概述。通过分析OS的主要组件、功能以及它们如何协同工作,本文揭示了操作系统在计算机系统中的核心地位及其复杂性。我们将探讨进程管理、内存管理、文件系统和输入/输出(I/O)等关键技术,并讨论它们对系统性能的影响。此外,本文还将涵盖一些最新的操作系统趋势和技术,如云计算、虚拟化和物联网(IoT)。通过阅读本文,读者将获得对操作系统内部运作方式的深刻理解,这对于软件开发人员、IT专业人士以及对计算机科学感兴趣的任何人来说都是宝贵的知识。
|
2月前
|
安全 调度 开发者
探索操作系统的心脏:现代内核架构与挑战
【10月更文挑战第7天】 本文深入探讨了现代操作系统内核的复杂性和功能性,从微观角度剖析了内核在系统运行中的核心作用及其面临的主要技术挑战。通过浅显易懂的语言解释专业概念,旨在为读者提供一个关于操作系统内核的全面视角。
48 2
|
3月前
|
算法 安全 Linux
操作系统的心脏:深入理解现代操作系统架构
本文旨在探讨现代操作系统的核心概念、架构以及关键技术。我们将从操作系统的基本定义开始,逐步解析其功能模块,包括进程管理、内存管理和文件系统等,最后讨论操作系统在现实世界中的应用和未来发展趋势。通过深入浅出的方式,帮助读者全面理解操作系统的工作原理及其重要性。
74 1
|
2月前
|
存储 人工智能 物联网
探索现代操作系统的架构与演进
【10月更文挑战第5天】 本文旨在深入探讨现代操作系统的核心架构及其在技术演进中的变革。通过对操作系统的基本概念、关键组成部分以及它们如何相互协作的分析,为读者提供一个全面且易于理解的视角。同时,本文还将回顾操作系统从单任务到多任务、从单用户到多用户的发展过程,并展望未来可能的技术趋势。
|
20天前
|
IDE 安全 Android开发
深入探索Android与iOS操作系统的架构差异
本文旨在对比分析Android和iOS两大主流移动操作系统在架构设计上的根本差异。通过详细解读两者的系统架构、开发环境、以及安全性等方面,揭示它们各自的特点及优势,为开发者选择合适的平台提供参考。
|
1月前
|
缓存 运维 网络协议
深入Linux内核架构:操作系统的核心奥秘
深入Linux内核架构:操作系统的核心奥秘
52 2
|
2月前
|
存储 资源调度 算法
操作系统的心脏:深入理解内核架构与机制####
【10月更文挑战第16天】 本文旨在揭开操作系统最神秘的面纱——内核,通过剖析其架构设计与关键机制,引领读者一窥究竟。在这篇探索之旅中,我们将深入浅出地讨论内核的基本构成、进程管理的智慧、内存分配的策略,以及那至关重要的系统调用接口,揭示它们是如何协同工作,支撑起现代计算机系统的高效运行。这既是一次技术的深潜,也是对“看不见的手”调控数字世界的深刻理解。 ####
51 3
|
2月前
|
存储 算法 安全
操作系统的心脏:深入理解现代操作系统架构与调度机制
本文将探讨现代操作系统的核心概念,包括进程管理、内存管理和 I/O 系统。通过分析这些组件如何协作以提供稳定和高效的计算环境,帮助读者更好地理解操作系统在现代计算中的重要性。我们将从宏观角度出发,逐步深入到微观细节,为读者提供全面而详细的技术解析。
|
2月前
|
安全 调度 虚拟化
探索现代操作系统的架构与优化
本文将深入探讨现代操作系统的核心架构和优化技术。从操作系统的基本定义入手,逐步解析其内核结构、进程管理、内存管理和I/O系统。同时,还将讨论现代操作系统在多核处理器支持、虚拟化技术和安全性方面的创新与优化措施。通过这些内容,读者可以全面了解操作系统的工作原理及其在实际应用中的表现与改进。