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也支持异步计算任务,优化线程使用与系统资源分配,同时支持定义模块拓扑结构的配置文件


3. Autoware安装

下面我们就来看一下Autoware的安装, Autoware 官网给出了两种安装方式:源码编译安装Source Build 和 Docker 方式,使用 Docker 方式更为简单。

3.1 安装OpenCV(以 4.0.0 为例)

Ubuntu 18.04 安装 OpenCV 网上的教程比较多,就不写具体的步骤了,推荐几个不错的:

Ubuntu 18.04安装OpenCV4.0和环境配置
OpenCV+Ubuntu18.04环境搭建
ubuntu18.04 安装opencv4.2
注意,如果使用 anaconda 管理 python 环境的话,也要将编译好的 opencv 库链接到 anaconda 下的 site-packages 目录下。

3.2 安装Qt(以 5.12.0为例)

…详情请参照古月居

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

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

相关文章

【Java的抽象类和接口】

1. 抽象类 1.1 抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 以上代码中…

Leaflet系列——【一】初识Leaflet与Leaflet视图操作

初识Leaflet(vue3 ) 前言:当你熟悉了openlayer、mapbox、cesium等一些GIS框架之后,对于我们开发来说其实他们的本质就是往瓦片上面叠加图层、【点、线、面、瓦片、geoJson、热力图、图片、svg等等】都是一层层的Layer图层&#xf…

Ceph集群扩容及数据再均衡原理分析

用户文件在Ceph RADOS中存储、定位过程大概包括:用户文件切割成对象、对象映射到PG、PG分组PGP、PG映射到OSD。这些过程中,可能涉及了大量概念和变量,而其实它们大部分是通过HASH、CRUSH等算法计算出来的,初始参数可能也就只有这么…

sql实践

1.从excel导入数据 在excel导入数据时要先在数据库中创建对应的数据库表 CREATE TABLE your_table_name (crawl_datetime DATE,url CHAR(255),company_name CHAR(255),company_size CHAR(255),company_type CHAR(255),job_type CHAR(255),job_name CHAR(255),edu CHAR(255),e…

暗区突围TWITCH掉宝关联帐号不了 无法关联帐号 关联不上

Twitch,作为全球知名的游戏直播平台,常常携手热门游戏如《暗区突围》举办互动活动,为玩家带来独特的参与体验。在这个过程中,“绑定关联”成为了连接直播观众与游戏世界的桥梁。简单来说,Twitch绑定关联《暗区突围》指…

leetcode——链表的中间节点

876. 链表的中间结点 - 力扣(LeetCode) 链表的中间节点是一个简单的链表OJ。我们要返回中间节点有两种情况:节点数为奇数和节点数是偶数。如果是奇数则直接返回中间节点,如果是偶数则返回第二个中间节点。 这道题的解题思路是&a…

OpenAI 发布了免费的 GPT-4o,国内大模型还有哪些机会?

大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 这是今天在某乎看到一个问题:OpenAI 发完 GPT-4o&…

关闭 Visual Studio Code 项目中 的eslint的语法校验 lintOnSave: false;; 项目运行起来之后 自动打开浏览器 端口

1、在 vue.config.js 配置 一个属性 lintOnSave: false 2、配置两个属性 open: true, // 自动打开浏览器 port: 3000 // 端口 port 端口号根据自己的项目实际开发来 配置

Lumina-T2X 一个使用 DiT 架构的内容生成模型,可通过文本生成图像、视频、多视角 3D 对象和音频剪辑。

Lumina-T2X 是一个新的内容生成系列模型,统一使用 DiT 架构。通过文本生成图像、视频、多视角 3D 对象和音频剪辑。 可以在大幅提高生成质量的前提下大幅减少训练成本,而且同一个架构支持不同的内容生成。图像质量相当不错。 由 50 亿参数的 Flag-DiT …

structured concurrency

1. 基于 c executions的异步实现 - 从理论到实践 - 知乎 (zhihu.com)

VitePress变成可视化了

VitePressSimple 非技术人员搭建博客的门槛又降低了,这个开源项目把VitePress变成可视化了。 要搭建博客、教程网站,VitePress是门槛最低的方案之一,唯一和技术有关的就是会用到编辑器来操作。 现在好了,VitePressSimple直接把Vit…

【软件测试】自动化测试 Selenium 篇(一)

一、什么是自动化测试 1、自动化测试介绍 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化就相当于将人工测试手段进行转换…

【激活函数--下】非线性函数与ReLU函数

文章目录 一、非线性函数在神经网络中的重要性二、ReLU函数介绍及其实现2.1 ReLU函数概述2.2 ReLU函数的Python实现及可视化 一、非线性函数在神经网络中的重要性 在神经网络中,激活函数的选择对于网络的性能和能力至关重要。阶跃函数和Sigmoid函数除了是激活函数的…

stable-diffusion-webui配置

源码地址 https://github.com/AUTOMATIC1111/stable-diffusion-webui.git报错Fresh install fail to load AttributeError: NoneType object has no attribute _id pydantic降级 pip uninstall pydantic pip install pydantic1.10.11记得要把clip-vit-large-patch14放在opena…

业务逻辑攻击是什么,如何有效进行防护

想象一下:您的开发团队刚推出了一款令人惊叹的全新应用程序,它具有顶级的API安全性,通过客户端保护对其进行了强化,甚至还设置了针对机器人攻击的防御措施。你感到这款产品很有安全保障,自己的团队出色地完成了工作。 …

服务器通的远程桌面连接不上,关于服务器通畅但远程桌面连接不上问题的专业分析

在日常的企业IT管理中,服务器远程桌面连接是一个重要的操作功能。然而,有时会出现服务器网络通畅,但远程桌面无法连接的情况。 问题分析 1. 防火墙或安全组设置问题:服务器的防火墙或安全组可能阻止了远程桌面连接的端口&#xf…

adobe安装“Error:SyntaxError:JSON Parse error:Unexpec

mac电脑安装Adobe时,会提示错误“Error:SyntaxError:JSON Parse error:Unexpected EOF”,这是怎么回事儿的,不管您是安装AI、PS、PR还是LR,如果也遇到相同的问题,可以参考一下方法解决: 「adobe安装提示错误…

Java RMI反序列化总结篇-01

1.java rmi反序列化 RMI 允许一个应用程序访问另外一个服务器或虚拟机上的对象,方法和服务,它使远程方法调用就像在本地调用一样简单。它为用户屏蔽了底层的网络传输细节,使用的时候只需适当处理异常即可。所以 RMI 是非常容易使用的&#x…

哪款骨传导耳机最值得入手?精选5款顶尖配置的骨传导耳机,闭眼入也不踩雷!

作为一名有着多年工作经验的数码博主,我见证了无数因盲目追求新颖而引发的听力问题。在此,我必须郑重提醒大家,虽然市面上充斥着众多声称能提供卓越音质和佩戴舒适度的骨传导耳机品牌,但它们之间存在大量劣质产品,这类…

centos7安装zabbix-server

zabbixan-server安装 环境安装zabbix安装zabbix配置apachezabbix-UI前端配置修改zabbix为中文语言 环境 准备: centos7系统、mysql数据库/MariaDB数据库 mysql数据库可参照:https://blog.csdn.net/weixin_61367575/article/details/138774428?spm1001.…