Apollo Cyber RT:引领实时操作系统在自动驾驶领域的创新

在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏:《linux深造日志》《粉丝福利》

⛺️生活的理想,就是为了理想的生活!

⛳️ 推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

  • ⛳️ 推荐
  • 引言
  • 一、Cyber RT 介绍
  • 二、常用术语
    • 1.1 运行 Cyber Monitor**
    • 1.2 实用命令
  • 三、熟悉 Cyber Monitor 界面
    • 3.1Cyber Monitor 交互命令介绍
  • 结语

引言

自动驾驶技术的不断演进引领着实时操作系统(RTOS)领域的创新。在众多自动驾驶平台中,Apollo Cyber RT stands out,成为实时操作系统中的佼佼者。Apollo Cyber RT 是一个开源、高性能的运行时框架,专为自动驾驶场景而设计。针对自动驾驶的高并发、低延迟、高吞吐量进行了大幅优化。

一、Cyber RT 介绍

Apollo Cyber RT 是一个开源、高性能的运行时框架,专为自动驾驶场景而设计。针对自动驾驶的高并发、低延迟、高吞吐量进行了大幅优化。

docs/框架设计/image.png

使用 Apollo Cyber RT 的主要好处:

  • 加速开发 - 具有数据融合功能的定义明确的任务接口 - 一系列开发工具 - 大量传感器驱动程序 - 简化部署 - 高效自适应的消息通信 - 具有资源意识的可配置用户级调度程序 - 可移植,依赖更少 - 赋能自动驾驶 - 默认的开源运行时框架 - 为自动驾驶搭建专用模块

二、常用术语

  • Component

在自动驾驶系统中,模块(如感知、定位、控制系统…)在 Cyber RT 下以 Component 的形式存在。不同 Component 之间通过 Channel 进行通信。Component 概念不仅解耦了模块,还为将模块拆分为多个子模块提供了灵活性。

  • Channel

Channel 用于管理 Cyber RT 中的数据通信。用户可以发布/订阅同一个 Channel,实现 p2p 通信。

  • Task

Task 是 Cyber RT 中异步计算任务的抽象描述。

  • Node

Node 是 Cyber RT 的基本组成部分;每个模块都包含一个 Node 并通过 Node 进行通信。通过在节点中定义 Reader/Writer 或 Service/Client,模块可以具有不同类型的通信形式。

  • Reader/Writer

Reader/Writer 通常在 Node 内创建,作为 Cyber RT 中的主要消息传输接口。

  • Service/Client

除了 Reader/Writer 之外,Cyber RT 还提供了用于模块通信的 Service/Client 模式。它支持节点之间的双向通信。当对服务发出请求时,客户端节点将收到响应。

  • Parameter

参数服务在 Cyber RT 中提供了全局参数访问接口。它是基于 Service/Client 模式构建的。

  • 服务发现

作为一个去中心化的框架,Cyber RT 没有用于服务注册的主/中心节点。所有节点都被平等对待,可以通过“服务发现”找到其他服务节点。使用UDP用来服务发现。

  • CRoutine

参考协程(Coroutine)的概念,Cyber RT 实现了 Coroutine 来优化线程使用和系统资源分配。

  • Scheduler

为了更好地支持自动驾驶场景,Cyber RT 提供了多种资源调度算法供开发者选择。

  • Message

Message 是 Cyber RT 中用于模块之间数据传输的数据单元。

  • Dag文件

Dag 文件是模块拓扑关系的配置文件。您可以在 dag 文件中定义使用的 Component 和上游/下游通道。

  • Launch文件

Launch 文件提供了一种启动模块的简单方法。通过在launch文件中定义一个或多个 dag 文件,可以同时启动多个模块。

  • Record文件

Record 文件用于记录从 Cyber RT 中的 Channel 发送/接收的消息。回放 Record 文件可以帮助重现Cyber RT之前操作的行为。

  • Mainboard

Cyber RT 的主入口,可以通过mainboard -d xxx.dag来启动一个模块进程。

  • 开发工具

CyberRT 框架同时也提供了一系列实用的工具用来辅助日常开发, 包括命令行工具 cyber_monitor cyber_recorder 等。

‍说明:这些工具需要运行在 Apollo Docker 环境内。

所有上述工具都依赖于 CyberRT 软件库,所以在使用这些工具之前,你需要通过如下方式来配置 CyberRT 工具的运行环境:

username@computername:~$: source /apollo/cyber/setup.bash

下面将着重介绍 cyber_monitor 的使用方法。

  • 使用 Cyber Monitor 查看 Channel 数据实践

命令行工具cyber_monitor提供了终端中实时显示channel信息列表的功能。

1.1 运行 Cyber Monitor**

在 Apollo Docker 环境中执行如下命令运行cyebr_monitor

username@computername:~$: cyber_monitor

1.2 实用命令

可以通过 -h 选项来获取帮助信息:

username@computername:~$: cyber_monitor -h

使用 -c 选项,可以让 cyber_monitor 只监测一个指定的 channel 信息:

username@computername:~$: cyber_monitor -c ChannelName

三、熟悉 Cyber Monitor 界面

在启动cyber_monitor之后,会在终端中显示一个交互界面。cyber_monitor自动从拓扑中收集所有 channel 的信息并分两列显示(channel 名称,数据频率)

channel 信息默认显示为红色,当有数据流经 channel 时,对应的行就会显示成绿色,如下图所示:

docs/框架设计/cyber_monitor.png

3.1Cyber Monitor 交互命令介绍

ESC | q key ---- 退出

Backspace ---- 后退

h | H ---- 显示帮助页

PageDown | Ctrl+d ---- 上一页

PageUp | Ctrl+u ---- 下一页

Up, down or w, s keys ---- 上下移动当前的高亮行

Right arrow or d key ---- 进入高亮行, 显示高亮行数据的详细信息

Left arrow or a key ---- 从当前界面返回上一层界面

Enter key ---- 与d键相同

f | F ---- 显示数据帧频率

t | T ---- 显示channel消息类型

Space ---- 关闭|开启 channel (仅在channel有数据到达时有效; channel关闭后会变成黄色)

i | I ---- 显示channel的Reader和Writer信息

b | B ---- 显示channel消息内容

n | N ---- 显示消息中RepeatedField的下一条数据

m | M ---- 显示消息中RepeatedField的上一条数据

结语

在自动驾驶技术的浪潮中,Apollo Cyber RT以其卓越的实时性能和关键特性,成为推动自动驾驶系统不断进步的关键因素之一。其在实时操作系统领域的引领地位,为我们展示了未来自动驾驶的潜力和前景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/247329.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【服务器】宝塔面板的使用手册

目录 🌷概述 🌼1. 绑定域名 🌼2. 添加端口 🌼3. 安装docker配置docker​​​​​​​ 🌼4. 软件商店 🌼5. 首页 🌷概述 宝塔面板的安装教程:【服务器】安装宝塔面板 &#x1f…

绘制太极图 - 使用 PyQt

大家好!今天我们将一起来探讨一下如何使用PyQt,这是一个强大的Python库,来绘制一个传统的太极图。这个图案代表着古老的阴阳哲学,而我们的代码将以大白话的方式向你揭示它的奥秘。 PyQt:是什么鬼? 首先&a…

Modelarts零代码体验,一键实现工地钢筋盘点,建筑提效新思维

前言 最近家附近的好几块地,同时在进行房产开发建设,早晚都能看到建筑师傅们在忙碌。 某天,夜跑中,发现前方的建筑工地,师傅们忙活的热火朝天,塔吊也在吊运钢筋中。 准备绕路的时候,旁边负责…

解锁创意无限:Adobe Photoshop 2023(PS2023)引领设计革命

Adobe Photoshop 2023 (PS2023),作为图像处理软件的翘楚,以其卓越的性能和无限的可能性,继续引领着数字创意设计的潮流。对于设计师、摄影师、艺术家以及那些对视觉效果有高要求的人们来说,PS2023无疑是他们的必备工具。 在PS202…

web前端项目-实现录音功能【附源码】

录音功能 运行效果&#xff1a;本项目可实现录音软件的录音、存储、播放等功能 HTML源码&#xff1a; &#xff08;1&#xff09;index.html&#xff1a; <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/h…

算法基础课-数据结构

单链表 题目链接&#xff1a;826. 单链表 - AcWing题库 思路&#xff1a;AcWing 826. 单链表---图解 - AcWing 需要注意的点在于理解ne[idx] head&#xff0c;idx表示当前的点&#xff0c;意思是将当前的点链到头结点的后面&#xff0c;再将头结点链在当前idx的前面。 #inc…

Qt|大小端数据转换

后面打算写Qt关于网络编程的博客&#xff0c;网络编程就绕不开字节流数据传输&#xff0c;字节流数据的传输一般是根据协议来定义对应的报文该如何组包&#xff0c;那这就必然牵扯到了大端字节序和小端字节序的问题了。不清楚的大小端的可以看一下相关资料&#xff1a;大小端模…

看图说话:Git图谱解读

很多新加入公司的同学在使用Git各类客户端管理代码的过程中对于Git图谱解读不太理解&#xff0c;我们常用的Git客户端是SourceTree&#xff0c;配合P4Merge进行冲突解决基本可以满足日常工作大部分需要。不同的Git客户端工具对图谱展示会有些许差异&#xff0c;以下是SourceTre…

[C#]winform部署yolov7+CRNN实现车牌颜色识别车牌号检测识别

【官方框架地址】 https://github.com/WongKinYiu/yolov7.git 【框架介绍】 Yolov7是一种目标检测算法&#xff0c;全称You Only Look Once version 7。它是继Yolov3和Yolov4之后的又一重要成果&#xff0c;是目标检测领域的一个重要里程碑。 Yolov7在算法结构上继承了其前…

【AcWing第140场周赛】AcWing 5461. 判断序列(A题)

文章目录 一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 一、题目 1、原题链接 5461. 判断序列 2、题目描述 二、解题报告 1、思路分析 按照题目要求模拟即可。具体过程&#xff1a;设置一个变量来记录是否满足题目要求&#xff0c;检查…

虹科分享丨汽车技术的未来:Netropy如何测试和确保汽车以太网的性能

来源&#xff1a;艾特保IT 虹科分享丨汽车技术的未来&#xff1a;Netropy如何测试和确保汽车以太网的性能 原文链接&#xff1a;https://mp.weixin.qq.com/s/G8wihrzqpJJOx5i0o63fkA 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; #汽车以太网 #车载网络 #Netropy …

SpringBoot常见错误

SpringBoot常见错误 1、SpringBoot启动时报错 错误: 找不到或无法加载主类 com.xxx.xxx.Application springboot启动时报错错误&#xff1a;找不到或无法加载主类 com.xxx.xxx.Application。 解决方法就是打开idea的控制台&#xff0c;输入以下三行命令&#xff1a; mvn cl…

Android发展历程及安装

目录 发展历程 下载网址 安装过程 发展历程 安卓基于Linux内核&#xff0c;Linux内核相当于房屋的地基 开源不等于免费&#xff0c;不能商用 安卓一般每半年小更新&#xff0c;一年大更新 对应API相当于别名 现在安卓安全性越来越高&#xff0c;性能越来越快&#xff0c…

2024.1.25 C++QT 作业

思维导图 练习题 1. 自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void sh…

社交巨头之争:Facebook如何保持领先地位

社交媒体领域一直是激烈的竞争场地&#xff0c;而在这场竞争中&#xff0c;Facebook一直屹立不倒&#xff0c;保持着领先地位。究竟是什么让这个社交巨头在激烈的竞争中屡屡脱颖而出呢&#xff1f;本文将深入剖析&#xff0c;揭示Facebook如何通过创新、数据驱动、社会责任等关…

flink-java使用介绍,flink,java,DataStream API,DataSet API,ETL,设置 jobname

1、环境准备 文档&#xff1a;https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/ 仓库&#xff1a;https://github.com/apache/flink 下载&#xff1a;https://flink.apache.org/zh/downloads/ 下载指定版本&#xff1a;https://archive.apache.org/dist/flink…

Java项目:基于SSM框架实现的企业员工岗前培训管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm821基于ssm框架实现的企业员工岗前培训管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格…

深入解析HTTPS:安全机制全方位剖析

随着互联网的深入发展&#xff0c;网络传输中的数据安全性受到了前所未有的关注。HTTPS&#xff0c;作为HTTP的安全版本&#xff0c;为数据在客户端和服务器之间的传输提供了加密和身份验证&#xff0c;从而确保了数据的机密性、完整性和身份真实性。本文将详细探讨HTTPS背后的…

2023年深圳市节假日人口迁入数据,shp/excel格式,需要自取!

基本信息. 数据名称: 深圳市节假日人口迁入数据 数据格式: Shp、excel 数据时间: 2023年国庆节 数据几何类型: 线 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1a0928迁入人口占迁入深圳市人口的比值&#xff0…

(2)(2.9) Holybro Microhard P900无线电遥测设备

文章目录 前言 1 特点 2 规格 3 包装内包括 前言 Holybro Microhard Radio 集成了 microhard Pico 系列射频模块&#xff0c;能够在强大的拓扑结构中提供高性能无线串行通信&#xff0c;如点对点、点对多点和安全 Mesh&#xff08;P840 不提供 Mesh&#xff09;。 它采用跳…