当前位置: 首页 > news >正文

Autoware内容学习与初步探索(一)

0. 简介

之前作者主要是基于ROS2,CyberRT还有AutoSar等中间件完成搭建的。有一说一,这种从头开发当然有从头开发的好处,但是如果说绝大多数的公司还是基于现成的Apollo以及Autoware来完成的。这些现成的框架中也有很多非常好的方法。目前作者打算抽一些时间来整理这部分资料,并根据自己学习内容进行介绍。

目前使用的主流的无人驾驶开源项目框架,主要是Autoware和百度的Apollo。百度Apollo的版本迭代十分迅速,起初的几个版本也是基于ROS1开发的,但由于ROS的局限性(主要是其机制所造成的无人系统响应时间相对较慢等问题,不适用于高速无人驾驶),Apollo貌似从3.5开始就弃用ROS1改用自己研发的CyberRT中间件了,但Apollo也有一定的局限性,比如需要购买百度提供的高精度地图服务等,Apollo在SLAM定位建图这方面开放性不是很高。如果你对自己移动平台行驶速度的要求不是很高,仅仅是在小片公共区域(类似厂区、园林等)实现自动驾驶,Autoware足够满足使用需求。博主是做园林环卫机器人的,所以主要在用Autoware框架,Apollo只了解一点点。目前,Autoware已经推出了基于ROS2的 Autoware.Auto,感兴趣的朋友可以看一下。

1. Autoware自动驾驶框架介绍

Autoware.AI是世界上第一个用于自动驾驶技术的“All-in-One”开源软件。它ROS1操作系统,并在Apache2.0许可下使用。主要包含以下模块:

  • 定位(Localization ):通过结合GNSS和IMU传感器的3D地图和3D地图、SLAM算法来实现定位。
  • 检测(Detection ):通过传感器融合算法和深度神经网络使用摄像机和激光雷达完成检测。
  • 预测和规划(Prediction and Planning ):基于概率机器人模型和基于规则的系统,部分还使用深度神经网络。
  • 控制(Control):Autoware向车辆输出的是速度和角速度的扭曲量。尽管控制量的主要部分通常位于车辆的线控控制器中,但这些是Control的一部分。

2. Apollo和Autoware的异同

2.1 硬件区别

以NXP的二代蓝盒子为硬件基础,这两个自动驾驶软件开源平台最大的区别在于底层,最上层的应用模块差别不大。硬件系统方面,Apollo推荐64位x86指令集的CPU加英伟达GPU架构。Autoware主要使用英伟达的AGX Xavier或PX2,也就是推荐ARM的V8指令集架构CPU。当然,也支持64位x86指令集的CPU加英伟达GPU架构。

2.2 框架区别

Autoware的框架主要包含感知(Perception)、决策(Planning)两个部分,感知部分包含定位(Localization)、检测(Detection)、预测(Prediction)三个模块,决策包含全局运动规划(Mission)、局部运动规划(Motion)两个模块

相比Autoware,Apollo的框架更加丰富和复杂,整个框架包括云服务平台、开源软件平台、参考硬件平台和参考软件平台四部分。

云服务平台包括:

  • 高精地图服务:高精度地图是实现无人驾驶汽车高精度定位、路径导航、路径规划的基础;

  • 仿真引擎:通过海量实际路况及自动驾驶场景数据,促进自动驾驶系统的开发快速迭代进行;

  • 数据平台:包括传感器数据、车辆行驶数据等;安全:数据安全、通信安全、服务安全;

  • OTA:空中下载技术(Over-the-Air Technology)是远程升级系统的必备技能;

  • DuerOS:百度的语音交互平台,未来可通过语音与车实现交互。

开源软件平台是Apollo自动驾驶系统的核心部分,包括功能模块、运行框架和实时操作系统三部分。功能模块可细分为:

  • 地图引擎:运行高精度地图;
  • 定位模块:通过GPS、V-SLAM、L-SLAM、里程计等多种定位源融合,结合高精度地图,实现精准定位;
  • 感知:通过激光雷达、毫米波雷达、摄像头,精确感知车辆周围的环境路况,包括车辆、行人、交通标志等等;
  • 规划:主要包括路径规划、运动障碍物的预测等;
  • 控制:实现控制车辆的转向、油门、刹车等操作;End-to-End:基于深度学习的横向和纵向驾驶模型;
  • HMI:人机交互模块。

硬件平台主要是无人驾驶系统的计算硬件和各种传感器硬件,包括GPS/IMU、摄像头、激光雷达、毫米波雷达、HMI设备、黑盒子等。

车辆平台,可实现线控转向、线控油门和线控制动等线控功能。

2.3 中间件区别

相比Ros,CyberRT增加了Component组件,组件之间通过 Cyber channel 通信。Cyber RT 中用Message实现模块间通信,其实现基于 protobuf。同时,CyberRT也支持异步计算任务,优化线程使用与系统资源分配,同时支持定义模块拓扑结构的配置文件

点击Autoware内容学习与初步探索(一)——古月居可查看全文

相关文章:

Autoware内容学习与初步探索(一)

0. 简介 之前作者主要是基于ROS2,CyberRT还有AutoSar等中间件完成搭建的。有一说一,这种从头开发当然有从头开发的好处,但是如果说绝大多数的公司还是基于现成的Apollo以及Autoware来完成的。这些现成的框架中也有很多非常好的方法。目前作者…...

【手写数据库内核组件】01 解析树的结构,不同类型的数据结构组多层的链表树,抽象类型统一引用格式

不同类型的链表 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 不同类型…...

Pandas 进阶 —— 数据转换、聚合与可视化

引言 在数据分析的旅程中,Pandas 库提供了从数据转换到聚合再到可视化的全面解决方案。上篇我们掌握了数据的导入和清洗,本篇我们将探索如何通过 Pandas 对数据进行更高级的处理,包括数据转换、聚合分析以及可视化展示。 数据转换 数据转换…...

华为OD机试 - 来自异国的客人(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测…...

期末上分站——计组(3)

复习题21-42 21、指令周期是指__C_。 A. CPU从主存取出一条指令的时间 B. CPU执行一条指令的时间 C. CPU从主存取出一条指令的时间加上执行这条指令的时间。 D. 时钟周期时间 22、微型机系统中外设通过适配器与主板的系统总线相连接,其功能是__D_。 A. 数据缓冲和…...

IDA*——AcWing 180. 排书

IDA* 定义 IDA*(Iterative Deepening A*)是一种结合了深度优先搜索(DFS)的递归深度限制特性和A搜索的启发式估价函数的搜索算法。它主要用于解决启发式搜索问题,尤其是当搜索空间很大或者搜索成本不确定时。 IDA* 是…...

【云计算】公有云、私有云、混合云、社区云、多云

公有云、私有云、混合云、社区云、多云 1.云计算的形态1.1 公有云1.2 私有云1.3 混合云1.4 社区云1.5 多云1.5.1 多云和混合云之间的关系1.5.2 多云的用途1.5.3 影子 IT 和多云1.5.4 优缺点 2.不同云形态的对比 1.云计算的形态 张三⾃⼰在家做饭吃,这是 私有云&…...

MySQL中的MVCC解析

MySQL中的MVCC解析 多版本并发控制是MySQL中实现高并发的一种关键技术。通过对数据进行多版本的管理,MVCC能够在保证数据一致性的同时,提高数据库的并发性能。本文将深入探讨MySQL中的MVCC机制,包括其原理、实现方式以及优势。 MVCC的原理 …...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的生日聚会(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…...

初识STM32:芯片基本信息

STM32简介 STM32是ST公司基于ARM公司的Cortex-M内核开发的32位微控制器。 ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构。 ST公司于1987年由意大利的SGS微电子与法国的Thomson半导体合并…...

Zabbix 配置PING监控

Zabbix PING监控介绍 如果需要判断机房的网络或者主机是否正常,这就需要使用zabbix ping,Zabbix使用外部命令fping处理ICMP ping的请求,在基于ubuntu APT方式安装zabbix后默认已存在fping程序。另外zabinx_server配置文件参数FpingLocation默…...

异常解决(三)-- Wandb fails with ServiceStartProcessError

原文链接:https://github.com/wandb/wandb/issues/5765 我的环境配置: Python3.8.16 Wandb0.17.4 在使用Wandb记录实验数据时, 报以下错误: ServiceStartProcessError: The wandb service process exited with 1. Ensure that s…...

Qt调用Matlab(一)

目录 1 概述2 创建Qt工程2.1 增加Matlab支持3 调用Matlab3.1 widget.h3.2 widget.cpp4 运行4.1 配置4.2 运行1 概述 MATLAB是MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域…...

网络爬虫(二) 哔哩哔哩热榜高频词按照图片形状排列

我们有时候需要爬取结果生成为自定义的词云图 生成自定义的词云图通常需要以下步骤: 1. 爬取数据:使用爬虫工具或库,如requests、BeautifulSoup等,可以爬取网页、论坛、社交媒体等平台上的文本数据。 2. 数据预处理&#xff1a…...

MySQL 常见错误及解决方案

1. Too many connections 运行环境:Winows11、Phpstudy V8.1.1.3、MySQL 5.7.26 同一时间 MySQL 的连接数量有限制,当超过上限时将提示下面错误信息: 1040 - Too many connections 查看当前最大连接数 mysql> show variables like %max_…...

STM32 - 内存分区与OTA

最近搞MCU,发现它与SOC之间存在诸多差异,不能沿用SOC上一些技术理论。本文以STM L4为例,总结了一些STM32 小白入门指南。 标题MCU没有DDR? 是的。MCU并没有DDR,而是让代码存储在nor flash上,临时变量和栈…...

RAG理论:ES混合搜索BM25+kNN(cosine)以及归一化

接前一篇:RAG实践:ES混合搜索BM25+kNN(cosine) https://blog.csdn.net/Xin_101/article/details/140230948 本文主要讲解混合搜索相关理论以及计算推导过程, 包括BM25、kNN以及ES中使用混合搜索分数计算过程。 详细讲解: (1)ES中如何通过BM25计算关键词搜索分数; (2)…...

分享大厂对于缓存操作的封装

hello,伙伴们好久不见,我是shigen。发现有两周没有更新我的文章了。也是因为最近比较忙,基本是993了。 缓存大家再熟悉不过了,几乎是现在任何系统的标配,并引申出来很多的问题:缓存穿透、缓存击穿、缓存雪崩…...

冯诺依曼体系结构与操作系统(Linux)

文章目录 前言冯诺依曼体系结构(硬件)操作系统(软件)总结 前言 冯诺依曼体系结构(硬件) 上图就是冯诺依曼体系结构图,主要包括输入设备,输出设备,存储器,运算…...

开源六轴协作机械臂myCobot280实现交互式乘法!让学习充满乐趣

本文经作者Fumitaka Kimizuka 授权我们翻译和转载。 原文链接:myCobotに「頷き」「首振り」「首傾げ」をしてもらう 🤖 - みかづきブログ・カスタム 引言 Fumitaka Kimizuka 创造了一个乘法表系统,帮助他的女儿享受学习乘法表的乐趣。她可以…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

爬虫基础学习day2

# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

在Zenodo下载文件 用到googlecolab googledrive

方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!&#xff0…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响,推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下,基于神经血管耦合现象的多模态神经影像方法,通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里,本研…...