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

news2025/1/16 15:47:34

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.coloradmin.cn/o/1674868.html

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

相关文章

uniapp高性能图片裁剪插件,可添加水印

效果图&#xff1a; 插件地址&#xff1a;高性能图片裁剪&#xff0c;裁剪图片后自动添加水印 - DCloud 插件市场 示例&#xff1a; <template> <view><button click"select">选择图片</button><image mode"widthFix" :src&qu…

EUCR-30S电机保护器施耐德EOCR

​EOCR主要产品有电子式电动机保护继电器&#xff0c;电子式过电流继电器&#xff0c;电子式欠电流继电器&#xff0c;电子式欠电压继电器&#xff0c;其它保护和监视装置&#xff0c;电流互感器。 电器密集型设计 ■ 二个集成组装电流互感器 ■ 欠载保护&#xff08;空转保护…

解决使用Vue.js前端与Flask后端API交互时跨源资源共享问题

我在使用flask以及Vue做一个项目时遇到了Vue前端与Flask后端API交互的问题就是前端获取不到后端返回的数据&#xff0c;报错&#xff1a; 上网查说是跨域问题&#xff0c;于是找了一些解决办法&#xff0c;就是可以通过设置响应头的 Access-Control-Allow-Origin 字段来允许所有…

pve clusterk8s cluster重建

背景 dev环境新买了一块固态&#xff0c;插到pve主板的第二个M.2槽位不能识别&#xff0c;通过其他机器排查后确定是这台pve的槽位问题。 同时这台pve还有一些其他的lvm历史遗留问题&#xff0c;具体表现是每次开机很长&#xff0c;因为要扫描那块机械硬盘做的lvm 所以决定将这…

输入4个整数,找出其中最大的数,用一个函数来实现

函数的嵌套调用: C不允许对函数作嵌套定义&#xff0c;也就是说在一个函数中不能完整地包含另一个函数。 在一个程序中每一个函数的定义都是互相平行和独立的&#xff0c;如 void f1() {...} int f2() {...} float f3() {...} long f4()…

TikTok起号的八大技巧分享

国内的传统生意都是可以在抖音上做&#xff0c;那么也可以在TikTok 上重新做一遍。那该如何才能把握住这片巨大的蓝海&#xff0c;TikTok 账号的运营就成为了主要的关键了&#xff0c;对于TikTok账号运营的八大秘籍&#xff0c;大家一起看看是如何做的&#xff1f; 一、固定节…

克鲁斯CLOOS机器人维修知识分享

克鲁斯工业机器人是一种高度精密的自动化设备&#xff0c;广泛应用于制造业、物流等领域。为了确保机器人的正常运行&#xff0c;了解一些基本的CLOOS工业机械手维修知识是必不可少的。 【常见CLOOS机械臂故障及解决方法】 1. 机器人无法启动&#xff1a;检查电源是否正常&…

python 对矩阵与矩阵之间对应位置的元素,做softmax操作,代码实战

1.对矩阵中对应位置的元素&#xff0c;做softmax 对于一个向量&#xff0c;softmax函数会对其中每一个元素进行指数运算&#xff0c;然后除以所有元素指数和的结果。当将其应用到多个矩阵的相应位置上时&#xff0c;我们实际上是在对每个位置的一组数&#xff08;从各个矩阵的同…

【MP C3003】理光打印机驱动下载使用

官方下载链接 https://support.ricoh.com/bb/html/dr_ut_e/apc/model/mpc3003/mpc3003.htm?langen

sklearn中多分类和多标签分类评估方法总结

一、任务区分 多分类分类任务&#xff1a;在多分类任务中&#xff0c;每个样本只能被分配到一个类别中。换句话说&#xff0c;每个样本只有一个正确的标签。例如&#xff0c;将图像分为不同的物体类别&#xff0c;如猫、狗、汽车等。 多标签分类任务&#xff1a;在多标签分类任…

商家利器!手机智能无人直播实时场景,轻松解决获客难、成本高难题

​​随着互联网的飞速发展&#xff0c;直播行业正在成为一种新型的商业模式。然而&#xff0c;许多商家在进行直播带货时面临着获客困难和高成本的挑战。为了解决这些问题&#xff0c;本文将介绍一种名为"自动直播"的功能&#xff0c;并详述如何利用手机实现实时场景…

使用TimeSum教你打造一套最牛的知识笔记管理系统!

从用户使用场景进行介绍软件的使用&#xff1a; 一、用户需求&#xff1a; 我需要一款软件记录我每天&#xff1a; 干了啥事有啥输出&#xff08;文档&#xff09;需要时间统计&#xff0c;后续会复盘记录的内容有好的逻辑关系需要有日历进行展示。 二、软件使用介绍&#xf…

《告别重复:Spring AOP让你的代码花园绽放》

厌倦了在代码花园中重复种植相同的植物&#xff08;代码&#xff09;吗&#xff1f;Spring AOP将是你的园艺师&#xff0c;帮助你修剪和优化代码&#xff0c;让花园更加丰富多彩&#xff01; 文章目录 面向切面编程&#xff08;AOP&#xff09;主题文章一. 引言1.1 引入面向切面…

基于 Kernel PCA 的故障检测与诊断

基于 Kernel PCA 的故障检测与诊断 在工业领域&#xff0c;轴承是一种常见但重要的机械元件&#xff0c;负责支撑旋转部件并减少摩擦。然而&#xff0c;由于长时间的使用和环境因素等原因&#xff0c;轴承可能会出现各种故障&#xff0c;如磨损、裂纹等&#xff0c;这些故障如…

Vue的学习 —— <初识vue>

目录 前言 目标 前端的发展历程 正篇开始——Vue讲解 一、Vue简介 二、Vue特性 1、数据驱动视图 2、双向数据绑定 3、指令 4、插件 三、vue的三大版本 前言 在这个快速迭代的互联网时代&#xff0c;前端技术的发展日新月异&#xff0c;Vue.js的出现无疑为前端开发领…

普华永道:首席数据官在规模较小企业中的渗透率攀升

5月13日&#xff0c;普华永道发布第三期《全球首席数据官调研》显示&#xff0c;数据持续受到企业高层重视&#xff0c;用于解决最紧迫的公共问题&#xff0c;且首席数据官在规模较小的企业中的渗透率攀升。 调研发现&#xff0c;2023年&#xff0c;全球市值排名前2500家上市企…

探索制造业中 AI 人工智能与 MES 的协同效应

AI已经渗透到我们日常生活中的各种工具中——从语音助手到语言翻译&#xff0c;以及允许我们从图片、手写笔记中提取结构化数据的工具。AI还为许多流程自动化提供动力&#xff0c;纾解管理、物流、会计和人力资源部门员工的工作量和压力。 AI、物联网和新兴的超高速网络&#…

秒懂k8s中资源的介绍和用法

service介绍 解决什么问题 Pod的生命是有限的&#xff0c;死亡过后不会复活了&#xff0c;尽管每个Pod都有自己的IP地址&#xff0c;但是如果Pod重新启动了的话那么他的IP很有可能也就变化了。这就会带来一个问题&#xff1a;比如我们有一些后端的Pod的集合为集群中的其他前端…

shell脚本之函数和数组

目录 一.函数 1.函数的简介 2.函数具有的几个要素 3.定义函数 4.调用函数 5.传递参数 6.函数返回值 7.函数的变量作用范围 8.函数递归 9.查看函数 二.数组 1.数组简介 2.定义数组 3.数组索引 4.数组替换 一.函数 1.函数的简介 在Shell脚本中&#xff0c;函数是…

网络传输,请每次都开启 TCP_NODELAY

原文&#xff1a;Marc Brooker - 2024.05.09 &#xff08;注&#xff1a;不必过于担心这个问题&#xff0c;大部分现代库&#xff0c;语言&#xff08;如 Go&#xff09;&#xff0c;代理&#xff08;如 Envoy&#xff09;&#xff0c;都默认设置了 TCP_NODELAY。如果遇到网络…