基本概念

表1 基本概念

概念

描述

确定性调度框架

机器人业务场景下,为满足传感器从输入处理到规控输出整个端到端时延的确定性而设计的调度框架,主要包括事件调度、共享内存管理、队列管理、队列调度。

AscendCL

昇腾编程语言(Ascend Computing Language),是一套用于在昇腾平台上开发深度神经网络推理应用的C语言API库,提供了Device管理、Context管理、Stream管理、内存管理、模型/算子加载与执行、媒体数据处理等API,以实现目标识别、图像分类等功能。

ROS

机器人操作系统(Robot Operating System,ROS),一套专为机器人软件开发设计的开源操作系统架构,目前已发展到第二代ROS2。它提供了很多类似操作系统的服务,包括硬件抽象描述、底层驱动程序管理、程序间消息传递、程序发行包管理等,还提供一些工具和库用于获取、建立、编写和执行多机融合的程序。

OpenHiva

OpenHiva是一套面向机器人应用开发的编程框架,封装了确定性调度框架接口、AscendCL接口等,提供类ROS的编程接口,包括消息发布/订阅接口、NN(Neural Network)推理接口、IO(Input/Output)处理接口,便于开发者使用。

  • OpenHiva支持基于话题(Topic)的通信方式(Pub/Sub通信机制),包括以下几类:
    • 普通消息:基于标准Topic进行消息的订阅、发布。消息内存由OpenHiva申请和释放,用户只需关注业务逻辑,代码逻辑相对简单。
    • BufferMessage:基于HivaBuffer进行消息的订阅、发布。通常用于图像消息传递,尤其是从Lidar、Camera等传感器获取的数据,数据量庞大且非结构化。在传输过程中,为了提高性能采用免拷贝方案,消息内存不是由OpenHiva申请,而是直接使用传感器驱动申请共享内存进行传递。
    说明:

    NN Engine实际上是节点内部的实现,首先在APP里面加载推理模型,输入原始Camera数据后,推理的结果支持以Topic形式和BufferMessage的数据格式发布出去。

  • OpenHiva支持基于服务(Service)的通信方式(RPC远程调用机制):

    服务通信允许Client端发送一个请求(request)到Server端,并获得一个对应的响应(response)。服务通信与Topic通信最大的区别在于,前者属于一对一通信,而后者支持一个话题有多个发布者和订阅者。

ISP

图像信号处理(Image Signal Processing),用于对前端图像传感器输出信号进行处理的单元,以匹配不同厂商的图像传感器。

DVPP

数字视觉预处理(Digital Vision Pre-Processing),提供对特定格式的视频和图像进行解码、缩放等预处理操作,以及对处理后的视频、图像进行编码再输出的能力。

配置管理模块

该模块(Configuration Manager,简称CfgMgr)用于管理系统中的配置参数,提供各种配置参数的加载、读、写、监听、持久化、快照、还原、重载等功能。

数据面

部署与机器人业务紧密相关的业务模块,具体包括:从各个传感器抓取原始数据,到后续各个环节上对数据的加工、处理、融合、计算,到最终输出控制命令涉及的相关模块,以及负责上述各个节点间数据发送/接收调度的通信拓扑维护DataMaster、数据队列调度QueSche、各种大数据计算硬件加速模块、DVPP等。

管理面

主要包括各类系统资源管理、IO访问请求等相关的模块,如日志管理、文件管理、参数配置管理、安全管理、身份鉴权管理等。

媒体数据处理

在机器人系统中,Camera软件子系统主要控制图像传感器(CMOS Image Sensor, CIS)以及ISP等硬件,处理来自CIS的数据(图片、视频等)时,会将数据传递给后端感知子系统或者显示子系统,进行编解码等操作。

Qos策略

服务质量策略(Quality of Service)指通过一系列技术为网络通信提供更好服务的安全机制, 一般聚焦解决网络延迟和阻塞等问题。QoS的保证对于容量有限的网络来说十分重要,特别是对带宽有高要求、对延时较敏感的场景。