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

【Autoware】Autoware.universe安装过程与问题记录

😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍Autoware.universe安装过程与问题记录。
无专精则不能成,无涉猎则不能通。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞

文章目录

    • :smirk:1. 项目介绍
    • :blush:2. 环境配置
    • :satisfied:3. 示例运行

😏1. 项目介绍

最近开始使用ROS2,顺便来装一下基于ROS2的Autoware版本来跑跑。

Autoware.Universe 是一个开源的自动驾驶汽车软件栈,是 Autoware 项目的一部分。Autoware 项目旨在为自动驾驶车辆提供完整的软件解决方案,涵盖从感知到控制的所有核心功能。Autoware.Universe 作为其中的一个重要子项目,主要致力于为多种自动驾驶应用场景提供高性能和可扩展的解决方案。

Autoware.Universe 是基于 ROS 2的自动驾驶系统。ROS 2是为机器人应用设计的开源框架,提供了强大的通信机制和工具支持,特别适合分布式系统和实时控制场景。Autoware.Universe 采用了 ROS 2 的架构,以提供更好的性能、实时性和灵活性,满足自动驾驶系统的高要求。

Autoware.Universe 的架构由多个核心组件组成,每个组件负责不同的功能:

1.感知(Perception):负责从传感器数据中提取有用的信息,包括物体检测、障碍物识别、车道线检测等。

2.定位(Localization):通过融合多种传感器数据,实时估计车辆在地图上的位置,提供高精度的定位信息。

3.地图(Mapping):生成和管理高精度地图,提供自动驾驶所需的环境信息和路况数据。

4.规划(Planning):根据感知和定位信息,生成安全有效的行驶路径和决策,包括路径规划、轨迹规划和运动规划。

5.控制(Control):根据规划的路径和轨迹,生成控制指令来操作车辆的转向、加速和制动,实现车辆的自动驾驶。

6.仿真(Simulation):提供仿真环境和工具,用于验证和测试自动驾驶算法和系统。

😊2. 环境配置

源码安装官方指导:https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/

首先,安装好ubuntu22.04和ROS Humble,配置好git、python环境,然后跟随官方指导走。

sudo apt-get -y update
sudo apt-get -y install git
git clone https://github.com/autowarefoundation/autoware.git
cd autoware
# 自动安装依赖,基于Ansible,期间如果有失败,可根据指导手动安装
# 这一步我没有选择安装cuda、cudnn和tensorrt这些,无GPU也能跑
./setup-dev-env.sh
# 这里我遇到的是安装egm2008-1太慢,手动下载下来再拷贝到系统目录这样快一点
sudo cp egm2008-1/ /usr/share/GeographicLib/geoids/# 克隆源码仓库
cd autoware
mkdir src
vcs import src < autoware.repos
# 安装src需要的依赖
source /opt/ros/humble/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
# 编译(总共369个包,universe版本对内存要求挺高,我16G的电脑总是会出现被kill,可以调整用几个核心)
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
# colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --parallel-workers 8 # 用8个核心并行编译
# 编译过程中如果有些包老卡死,可以先临时删除不影响功能的包,我这边注释了eagleye_rt和autoware_vehicle_cmd_gate。

其他参考1:http://t.csdnimg.cn/0s2fe
其他参考2:http://t.csdnimg.cn/3KpRg

Autoware.Universe相比Autoware.ai安装难度还是更大的,而且目前网上的教程都是基于Ubuntu20这一版本的,基于Ubuntu22Autoware.Universe界面相比之前有了大的改变,毕竟现在这个仓库还在持续更新中。

另外,除了跑官方的demo,还可以安装AWSimCarla进行联合仿真,难度还是有的,前者是Autoware官方的仿真器,但我这边不管是安装哪个版本启动都出现段错误,提了issue,更改了nvidia-smi版本也不行,还不完善;Carla如果是Ubuntu22的话一定去选择Carla 0.9.15版本,这样Python版本才能对上。

大家有兴趣的可以再折腾折腾,欢迎评论区交流。

😆3. 示例运行

安装完成后,可以下载demo地图和数据包:

# down map
gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1A-8BvYRX3DhSzkAnOcGWFw5T30xTlwZI'
unzip -d ~/autoware_map/ ~/autoware_map/sample-map-rosbag.zip# down rosbag
gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1VnwJx9tI3kI_cTLzP61ktuAJ1ChgygpG'
unzip -d ~/autoware_map/ ~/autoware_map/sample-rosbag.zip

我在运行logging_simulator这一步的时候总是报错退出,原因未知:

ros2 bag play $HOME/autoware_map/sample-rosbag/sample.db3 -r 0.2 -s sqlite3
# run map&rosbag
source install/setup.bash
ros2 launch autoware_launch logging_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-rosbag vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

然后运行规划仿真器,Rviz上点击起点和终点可规划出路线:

# run planning_simulator
source install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-rosbag vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

在这里插入图片描述
手动选择起点和终点:

在这里插入图片描述
但车其实还是没有真正跑起来,大家如果知道原因的话可以评论区交流。

在这里插入图片描述

以上。

相关文章:

【Autoware】Autoware.universe安装过程与问题记录

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Autoware.universe安装过程与问题记录。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下…...

JavaScript的学习之旅之基本数据类型

目录 一、字面量&#xff08;常量&#xff09;和变量 二、标识符 三、数据类型 1.String类型 2.Number类型 四、布尔值类型 五、Null和Undefined类型 一、字面量&#xff08;常量&#xff09;和变量 字面量&#xff1a;不可变的数据&#xff0c;一般位于等式的右边 变量&…...

oracle开放某些视图给特定用户,查询报视图不存在问题

以sysdba身份登录到Oracle数据库。 创建新用户。例如&#xff0c;创建一个名为new_user的用户&#xff0c;密码为password&#xff1a; CREATE USER new_user IDENTIFIED BY password;为新用户分配表空间和临时表空间。例如&#xff0c;将表空间users和临时表空间temp分配给新…...

es 更新索引mapping和setting

1.关闭索引 curl -X POST "localhost:9200/your_index_name/_close"2.修改setting 配置 无法更新一些默认数据,按照需求构建&#xff0c;我这边是构建增加了分词器 "settings": {"index": {"creation_date": "1718850346547…...

广告联盟流量变现app开发

广告联盟流量变现App的开发是一个涉及多个方面的综合性项目。以下是一个简要的开发流程和相关考虑因素&#xff1a; 市场分析与定位&#xff1a; 首先&#xff0c;需要对目标用户群体进行深入研究&#xff0c;了解他们的需求和偏好1。分析当前市场上的竞争对手和流行的广告模式…...

【Python高级编程】pickle`文件处理:序列化与反序列化

使用pickle模块可以在Python中方便地序列化和反序列化Python对象。以下是一个例子&#xff0c;展示了如何处理pickle文件&#xff0c;包括如何保存数据到pickle文件和从pickle文件加载数据。假设我们有一些数据需要保存并在之后加载。 示例代码 保存数据到 pickle 文件 impo…...

如何在 Linux 上安装 Docker Desktop

如何在 Linux 上安装 Docker Desktop Docker 是一个用于开发、部署和运行应用程序的开放平台。Docker Desktop 是 Docker 在 macOS 和 Windows 上的官方客户端&#xff0c;现在也支持 Linux 系统。本文将详细介绍如何在 Linux 上安装 Docker Desktop。 系统要求 在开始安装之…...

勒索病毒猖狂,请提前做好安全防护,德迅卫士保护你的安全

随着互联网的飞速发展&#xff0c;网络安全问题日益凸显。其中&#xff0c;勒索病毒作为一种极具危害性的网络安全威胁&#xff0c;已经引起了广泛关注。为了帮助大家更好地预防和应对勒索病毒攻击&#xff0c;我们特地为您精心准备了这份超实用的勒索病毒自救预防指南。让我们…...

Pycharm怎么默认终端连接远程服务器

因为经常需要从宿舍到学校内通勤&#xff0c;期间所有连接都会中断&#xff0c;所以每次开SSH特别麻烦&#xff0c;每次终端自动切换到本地&#xff1a; 每次都得点一下Start SSH Session 想要默认终端连接远程服务器&#xff0c;需要点File->Setting->Tools->SSH T…...

CTFHUB-SSRF-端口扫描

已经提示我们需要扫描8000~9000的端口 ?urlhttp://127.0.0.1:8000/flag.php 访问用burp抓包爆破 通过Burp扫描8000-9000端口开放的web服务&#xff0c;发现8718开放web服务...

日期工具类:获取 当前周 | 上一周 | 下一周 的第一天(周一)和最后一天(周天)

问题背景 获取 当前周 | 上一周 | 下一周 的第一天(周一)和最后一天(周天)。 例如: 输入:2024-6-21, current 输出:{"firstDay": "2024-6-17","lastDay": "2024-6-23"}输入:2024-6-21, last 输出:{"firstDay": …...

大数据学习-Hadoop

介绍 是 Apache 的顶级开源项目&#xff0c;一个分布式框架&#xff0c;主要功能&#xff1a; 分布式大数据存储——HDFS 组件分布式大数据计算——MapReduce 组件分布式资源调度——YARN 组件 可以通过它来构建集群&#xff0c;完成大数据的存储和计算 学习起来相对简单&…...

visualbox搭建linux环境双网卡配置

文章目录 1. 双网卡模式简介2. 网络模式配置2.1 virtualBox说明2.2 host-only网络模式配置2.3 NAT网络模式配置 3. 虚拟主机网络设置3.1 网卡一设置3.2 网卡二设置 4. 网卡配置5. ssh访问 本篇的目的是为了搭建本地的linux测试环境用。 1. 双网卡模式简介 双网卡网络模式简介 …...

一分钟了解Galaxybase银河图数据库先锋版升级功能!

Galaxybase 银河图数据库是一款创邻科技自主研发的商用图数据库&#xff0c;具有高性能、高可用、企业级安全等特性&#xff0c;支持大规模数据查询实时返回&#xff0c;快速挖掘关联关系&#xff0c;发现深层商业洞见&#xff0c;可广泛应用于金融、能源、电信、政企等行业中的…...

C++并发之协程实例(二)(计算斐波那契序列)

目录 1 协程2 实例-计算斐波那契序列2.1 斐波那契序列2.2 代码 3 运行 1 协程 协程(Coroutines)是一个可以挂起执行以便稍后恢复的函数。协程是无堆栈的&#xff1a;它们通过返回到调用方来暂停执行&#xff0c;并且恢复执行所需的数据与堆栈分开存储。这允许异步执行的顺序代码…...

云邮件推送服务如何配置?有哪些优势特点?

云邮件推送的性能怎么优化&#xff1f;如何选择邮件推送服务&#xff1f; 云邮件推送服务是一种基于云计算的邮件发送解决方案&#xff0c;能够帮助企业和个人高效地发送大规模邮件。AokSend将详细介绍如何配置云邮件推送服务&#xff0c;以便你能够充分利用其优势。 云邮件推…...

QT 数值型坐标轴有那些?(QValueAxis)

在Qt中&#xff0c;QValueAxis类用于表示数值型坐标轴&#xff0c;它本身没有直接的子类&#xff0c;但它是从QAbstractAxis这个抽象类继承而来的。QAbstractAxis是定义坐标轴属性和行为的基类&#xff0c;而QValueAxis则在此基础上提供了针对数值数据的具体实现。 Qt的图表模…...

《数字图像处理-OpenCV/Python》第16章:图像的特征描述

《数字图像处理-OpenCV/Python》第16章&#xff1a;图像的特征描述 本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 第16章&#xff1a;图像的特征描述 特征通常是针对图像中的目标或…...

React的服务器端渲染(SSR)和客户端渲染(CSR)有什么区别?

React的服务器端渲染&#xff08;SSR&#xff09;和客户端渲染&#xff08;CSR&#xff09;是两种不同的页面渲染方式&#xff0c;它们各自有不同的特点和适用场景&#xff1a; 服务器端渲染&#xff08;SSR&#xff09; 页面渲染: 页面在服务器上生成&#xff0c;然后将完整的…...

安全生产第一位,靠谱的漏油监测系统有哪些?

漏油监测系统&#xff0c;一般是由漏油绳、漏油控制器、监控云平台组成&#xff0c;用于实时检测油库、油罐、加油站、输油管道、油类化工厂等场所是否发生漏油事故。在这些地方一旦发生漏油&#xff0c;就极可能引发爆炸&#xff0c;损害到人员及财产安全。而一套靠谱的漏油监…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...