A scheduling framework designed to meet the deterministic end-to-end delay of sensors from input processing to output planning and control in robot service scenarios. It includes event scheduling, shared memory management, queue management, and queue scheduling.
AscendCL
Ascend Computing Language (AscendCL) provides a collection of C language APIs for users to develop deep neural network applications on the Ascend platform for target recognition and image classification, ranging from device management, context management, stream management, memory management, to model loading and execution, operator loading and execution, and media data processing.
ROS
Robot Operating System (ROS) is an open source operating system architecture designed for robot software development. It has developed to the second-generation, that is, ROS 2. It provides many operating system-like services, including hardware abstraction, low-level driver management, message passing between programs, and program release package management. It also provides tools and libraries for obtaining, establishing, compiling, and executing multi-machine convergence programs.
OpenHiva
The OpenHiva is a programming framework designed for robot application development. It encapsulates deterministic scheduling framework and AscendCL interfaces and provides ROS-like programming interfaces, including message release/subscription interfaces, neural network (NN) inference interfaces, and input/output (I/O) processing interfaces.
The OpenHiva supports topic-based communication modes (Pub/Sub communication mechanism), including:
Common message: Messages are subscribed to and published based on standard topics. The message memory is applied for and released by OpenHiva. You only need to pay attention to the service logic. The code logic is relatively simple.
BufferMessage: Messages are subscribed to and published based on HivaBuffer. It is usually used for image message passing, especially for data obtained from sensors such as lidar and camera. The data volume is large and unstructured. During the message passing, the copy-free solution is used to improve performance. The message memory is not applied for by OpenHiva. Instead, the sensor driver is directly used to apply for the shared memory for message passing.
NOTE:
The NN engine is implemented inside a node. After the inference model is loaded to an application and the original camera data is input, the inference result can be released in topic or BufferMessage format.
The OpenHiva supports the service-based communication mode (RPC remote invoking mechanism).
Service communication allows the client to send a request to the server and obtain a response. The biggest difference between service communication and topic communication is that the former is one-to-one communication, while the latter supports multiple publishers and subscribers for a topic.
Configuration manager
The configuration manager (CfgMgr) is used to manage configuration parameters in the system, and provides functions such as loading, reading, writing, listening, persistency, snapshot, restoration, and reloading of various configuration parameters.
Data plane
It includes service modules closely related to robot services, such as modules involved in sensor raw data capture, data processing, convergence, and calculation, and final output of control commands, and modules involved in data transmission/receiving scheduling (DataMaster for communication topology maintenance, QueSche for data queue scheduling, various big data computing hardware acceleration modules, DVPP, and the like).
Management plane
It includes modules related to system resource management and I/O access requests, such as log management, file management, parameter configuration management, security management, and identity authentication management.
Media data processing
In a software system, the camera software subsystem mainly controls hardware such as an image sensor (CMOS Image Sensor, CIS) and an ISP, processes data from the CIS, and transmits the data to a back-end perception subsystem or a display subsystem.
QoS policy
Quality of service (QoS) is a security mechanism that uses a series of technologies to provide better services for network communication. It focuses on solving problems such as network delay and congestion. QoS is very important for networks with limited capacity, especially in scenarios that have high requirements on bandwidth and are sensitive to delay.