Autoware.auto源码安装

自 2022 年以来,已将 Autoware 的开发迁移到 GitHub。目前Auto版本并没有进行最新维护

一、官网

Autoware.Auto (autowarefoundation.gitlab.io)

二、介绍

        Autoware是世界上第一个由Autoware基金会托管的用于自动驾驶汽车的“一体化”开源软件。基于 ROS 2 的 Autoware.Auto 项目是基于 ROS 1 的 Autoware.AI 项目的下一代继承者。        

        Autoware.Auto 与 Autoware.AI 相比的主要区别在于:

        - 现代软件工程最佳实践,包括代码审查、持续集成测试、详尽的文档、详尽的测试覆盖率、风格和开发指南
        - 改进的系统架构和模块接口设计(包括消息和 API)
        - 强调库、节点和系统级别的可重复性和确定性

三、功能说明

        Autoware.Auto 最初针对以下两个用例:

                - 自动代客泊车

                - 自动货物交付

        截至 2021 年 1 月,代客泊车功能已经实施,并在现场车辆演示中进行了展示。它允许在停车场低速机动。

四、安装简介

        官方提供了多种安装方式,包含以下几种:

                - 使用 ADE 安装

  • Installation with ADEicon-default.png?t=N7T8https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/installation-ade.html

                - 使用 ADE 为 arm64 系统安装

  • Installation with ADE for arm64 Systemsicon-default.png?t=N7T8https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/installation-ade-arm64.html

                - 安装 Autoware 但不使用 ADE

  • 安装不带 ADEicon-default.png?t=N7T8https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/installation-no-ade.html

        并且已经提示通过仿真运行完整软件堆栈的需提前安装是 LGSVL 仿真器:

  • SVL模拟器icon-default.png?t=N7T8https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/lgsvl.html

五、 源码安装

        目前源码安装采用第三种方式:

  • Installation w/o ADEicon-default.png?t=N7T8https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/installation-no-ade.html

 5.1  Ubuntu 20.04 系统安装

        请参考该文章中的 PC 安装方法,安装时注意查看下方 Tips:1.1、Ubuntu 18.04安装(PC+虚拟机)_ubuntu1804虚拟机安装教程-CSDN博客

 Tips:

        1 - Ubuntu 20.04 的安装与 Ubuntu 18.04 的安装大同小异,请自行斟酌

        2 - 安装过程中请插网线联网,一次性自动更新并安装好显卡驱动

              勾选

5.2  安装ROS Foxy

小鱼的一键安装系列 | 鱼香ROS (fishros.org.cn)icon-default.png?t=N7T8https://fishros.org.cn/forum/topic/20/%E5%B0%8F%E9%B1%BC%E7%9A%84%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E7%B3%BB%E5%88%97?lang=zh-CN        其中使用的脚本为:

wget http://fishros.com/install -O fishros && . fishros

5.3  Autoware.auto安装

5.3.1 更新软件包

sudo apt install -y git cmake python3-pip

5.3.2 安装python模块

sudo pip3 install -U colcon-common-extensions vcstool

5.3.3 ROS2 更新

$ sudo rosdep init
$ rosdep update

5.3.4  拉取代码库

git clone https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git

5.3.5  拉取代码

$ vcs import < autoware.auto.foxy.repos

5.3.6  自动更新依赖

        如果是初次更新会出现如图情况,

解决方案:

        运行下方指令后再次更新

rosdep update --include-eol-distros

         依赖更新完成:

5.3.7  移除自带的 auto-msgs依赖

sudo apt purge -y ros-foxy-autoware-auto-msgs

5.3.8  编译

        这里注意,ROS2 目前采用 colcon build 后,其 src 中的 launch 与 yaml 也会一并编译入 install 中,那么后期调色修改源码后还需要再次编译,Colcon build 编译中有一个特性可以取消,使的 launch、yaml 依旧在源码中,详情查看colcon - collective construction — colcon documentationicon-default.png?t=N7T8https://colcon.readthedocs.io/en/released/        这里采用两个编译参数进行编译,但是注意,-DDOWNLOAD_ARTIFACTS=ON 之适用于某些特定的功能包用来下载特定的依赖,如感知模块依赖的 neural_networks package

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release -DDOWNLOAD_ARTIFACTS=ON

         编译时间较长,耐心等待,因为 Auto 版本官方已停止维护,可能在编译中存在的某些错误。

Tips:

错误1:~/AutowareAuto/src/external/vesc/vesc_ackermann/src/vesc/

            vesc_ackermann/src/vesc_to_odom.cpp:63:71:error: no matching function

            for call to 'vesc_ackermann::VescToOdom::declare_parametor<double>

            (const char [19])' …………………………………………

解决方案:

将 vesc_to_odom.cpp中的第(63-72) 修改为

  speed_to_erpm_gain_ = declare_parameter<double>("speed_to_erpm_gain",speed_to_erpm_gain_);speed_to_erpm_offset_ = declare_parameter<double>("speed_to_erpm_offset",speed_to_erpm_gain_);if (use_servo_cmd_) {steering_to_servo_gain_ =declare_parameter<double>("steering_angle_to_servo_gain",steering_to_servo_gain_);steering_to_servo_offset_ =declare_parameter<double>("steering_angle_to_servo_offset",steering_to_servo_offset_);wheelbase_ = declare_parameter<double>("wheelbase",wheelbase_);}

将 ackermann_to_vesc.cpp中的第(51-56)修改为

  speed_to_erpm_gain_ = declare_parameter<double>("speed_to_erpm_gain",speed_to_erpm_gain_);speed_to_erpm_offset_ = declare_parameter<double>("speed_to_erpm_offset",speed_to_erpm_offset_);steering_to_servo_gain_ =declare_parameter<double>("steering_angle_to_servo_gain",steering_to_servo_gain_);steering_to_servo_offset_ =declare_parameter<double>("steering_angle_to_servo_offset",steering_to_servo_offset_);

         最后运行一次下方指令保证编译无错误:

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

 5.4 SVL simulator安装

5.4.1  svl-simulator介绍

https://www.svlsimulator.com/icon-default.png?t=N7T8https://www.svlsimulator.com/        由LG电子美国研发中心推出的一款基于Unity的用于自动驾驶开发的多机器人仿真器。
        SVL提供了一个开箱即用仿真解决方案,可以满足开发人员专注于测试自动驾驶汽车算法的需求。容易上手,直接提供了与Apollo、Autoware 等开源自动驾驶系统集成仿真的解决方案。

LGSVL仿真器介绍 LGSVL Simulator Introduction

5.4.2 svl-simulator 安装

        在下面网站中根据自己对应的系统版本下载即可Releases · lgsvl/simulator (github.com)icon-default.png?t=N7T8https://github.com/lgsvl/simulator/releases/

5.4.3 启动svl-simulator

        新开终端并索引到已下载的并解压的文件中,使用下面命令即可启动

./simulator

 六、Autoware.auto架构图

七、Autoware.auto Demo演示

        Autoware.auto 提供了多种场景下的演示 Demo,可在下方中找到,由于我只是为了走一遍流程,就不跑了,主要的放在 Autoware.unserve 的适配上。

Usage (autowarefoundation.gitlab.io)icon-default.png?t=N7T8https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/usage.html#autotoc_md85


不积跬步无以至千里,不积小流无以成江河---------------------------15:20

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

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

相关文章

【25届秋招备战C++】题型练习-背包问题

【25届秋招备战C】题型练习-背包问题 0-1背包416 - 分割等和子集1049 - 最后一块石头的重量 Ⅱ494 - 目标和474- 一和零 完全背包518- 零钱兑换Ⅱ377- 组合总数Ⅱ322- 零钱兑换279- 完全平方数 参考 0-1背包 416 - 分割等和子集 链接: 分割等和子集 解题思路&#xff1a;给定…

单片机中的几种周期(振动/时钟,状态,机械,指令周期)表示的含义(51为例)

几种周期含义及个人理解描述 参考&#xff1a;短文&#xff0c;参考&#xff0c;百度 个人理解简述&#xff1a;对于几个周期性来说&#xff0c;可以认为是小单位的时间组合成了长时间。就像把一个数据赋值&#xff0c;这个是简单的一个机械周期能完成的动作&#xff0c;但需要…

删除远程的master分支,并创建dev分支,将代码推送到dev分支上

在执行这些操作之前&#xff0c;确保你对远程仓库有足够的权限来删除分支和推送代码。下面的步骤将指导你如何删除远程的master分支&#xff0c;创建一个新的dev分支&#xff0c;并将代码推送到这个新分支上。 1. 删除远程的master分支 首先&#xff0c;使用以下命令删除远程…

C语言例:表达式(a=2,3),a+1的值

题目&#xff1a;设int a; 则表达式(a2,3),a1的值 #include<stdio.h> int main(void) {int a0;int b;int c;b (a2,4);c (a2,3),a1;printf("a1%d\n",a1); //a1 3;printf("a2,4的值为&#xff1a;%d\n",b); //a2,4的值为&…

开源模型应用落地-业务优化篇(八)

一、前言 在之前的学习中&#xff0c;我相信您已经学会了一些优化技巧&#xff0c;比如分布式锁、线程池优化、请求排队、服务实例扩容和消息解耦等等。现在&#xff0c;我要给您介绍最后一篇业务优化的内容了。这个优化方法是通过定时统计问题的请求频率&#xff0c;然后将一些…

【进阶五】Python实现SDVRP(需求拆分)常见求解算法——蚁群算法(ACO)

基于python语言&#xff0c;采用经典遗传算法&#xff08;ACO&#xff09;对 需求拆分车辆路径规划问题&#xff08;SDVRP&#xff09; 进行求解。 目录 往期优质资源1. 适用场景2. 代码调整3. 求解结果4. 代码片段参考 往期优质资源 经过一年多的创作&#xff0c;目前已经成熟…

Go函数全景:从基础到高阶的深度探索

目录 一、Go函数基础1.1 函数定义和声明基础函数结构返回值类型和命名返回值 1.2 参数传递方式值传递引用传递 二、Go特殊函数类型2.1 变参函数定义和使用变参变参的限制 2.2 匿名函数与Lambda表达式何为匿名函数Lambda表达式的使用场景 2.3 延迟调用函数&#xff08;defer&…

Arcgis新建位置分配求解最佳商店位置

背景 借用Arcgis帮助文档中的说明:在本练习中,您将为连锁零售店选择可以获得最大业务量的商店位置。主要目标是要将商店定位在人口集中地区附近,因为这种区域对商店的需求量较大。设立这一目标的前提是假设人们往往更多光顾附近的商店,而对于距离较远的商店则较少光顾。您…

北斗垂莽苍 开闭天门路(三)

北斗垂莽苍 开闭天门路(三&#xff09; 北斗垂莽苍 明河浮太清 曾经&#xff0c;北斗七星是中国古人在漫长的历史长河中寻找方向的重要坐标。如今&#xff0c;“天上建好&#xff0c;地上用好”的北斗&#xff0c;已成为助力经济发展和人民生活更加美好的急先锋。 早在2019年&…

【研发体系】CMMI 3 级和 5 级有什么区别?

以下是CMMI Level 3和CMMI Level 5之间的对比表格: CMMI 级别描述特点可测量性重点类比3&#xff08;已定义&#xff09;组织已建立一套标准流程&#xff0c;并始终执行。- 管理实践&#xff1a;完整的实践集涵盖了实践领域的全部意图。 - 定制&#xff1a;使用组织标准和定制…

禁止ie自动跳转edge

因为微软对ie已经彻底停止维护了&#xff0c;对于没有升级系统的用户来说&#xff0c;会自动更新edge然后将ie给禁止使用。下面方法有效的解决windows10下&#xff0c;禁止ie自动跳转edge。 方法一&#xff1a;对于2023年10月份前的更新可用 打开控制面板&#xff0c;点击网络…

STM32使用常见错误合集(正在更新版)

本文章记录一些学习STM32的一些错误问题 一、编译、烧录类问题 1、烧录不成功&#xff0c;Keil提示RDDI-DAP Error【场景&#xff1a;PWM驱动直流电机】 解决方案&#xff1a;将电机断开再进行烧录&#xff0c;断开后就可以美美烧录不报错啦~ 二、Keil使用问题 1、打开一个…

2 .Gen<I>Cam模块介绍

模块组成&#xff1a;GenApi&#xff0c;SFNC&#xff0c;GenTL&#xff0c;GenDC&#xff0c;GenCP。 首先让我来看下 GenTL (Transport Layer) GenApi( sometimes simply called the GenICam Standard) 传统相机应用程序二次开发&#xff0c;是基于相机厂家提供的sdk。使用…

el-table保留勾选的数据(分页、刷新数据)

1.在el-table中添加行标识 :row-key"val > val.id"&#xff0c;这里最好选择能唯一标识每一行的数据作为key的返回值&#xff0c;否则回选失败 <el-table :row-key"val > val.id" :data"tableList" border style"width: 100%&quo…

c++保存结构体数据为二进制文件与读取

写入 #include <iostream> #include <fstream> #include <string>struct testData {char* _name;int _age;

IBM:《2024年消费者调研:无处不在的人工智能彻底变革零售业》

1月17日&#xff0c;IBM商业价值研究院最近发布了第三份两年一度的消费者调研报告。 这项名为《无处不在的人工智能彻底改变零售业&#xff1a;客户不会等待》的报告&#xff0c;对包含中国在内的全球近20000名消费者进行了调研&#xff0c;相关结果反映了消费者对零售体验的普…

Java中 常见的开源树库介绍

阅读本文之前请参阅------Java中 树的基础知识介绍 在 Java 中&#xff0c;有几种流行的开源树库&#xff0c;它们提供了丰富的树算法和高级操作&#xff0c;可以帮助开发者更高效地处理树相关的问题。以下是几种常见的 Java 树库及其特点和区别&#xff1a; JTree 特点…

使用SpaceDesk实现iPad成为电脑拓展屏(保姆级教程)

使用SpaceDesk实现iPad成为电脑拓展屏 SpaceDesk是一个开源的软件, 所以说对学生和平民用户非常的友好, 连接后的画质也非常不错, 而且具有无线和有线两种连接方式. 接下来就开始教程: 1. 安装SpaceDesk电脑版 首先我们要下载SpaceDesk电脑版安装好: SpaceDesk官网 注意: …

计算机网络 网络层设备的 冲突域和广播域

域是指&#xff0c;表示冲突&#xff0c;或者广播在其中发生并传播的区域。 冲突域&#xff0c;是指连接到同一个物理介质上的所有结点的集合&#xff0c;这些结点之间存在介质争用的现象。 在OSI参考模型中&#xff0c;冲突域被视为第一层的概念&#xff0c;像集线器&#x…

C语言自学笔记15----C 语言 void指针

C 语言 void指针 如果我们声明了int指针&#xff0c;则此int指针不能指向float变量或某种其他类型的变量&#xff0c;即它只能指向int类型的变量。 为了克服这个问题&#xff0c;我们使用了指向void的指针。 指向void的指针表示可以指向任何数据类型的通用指针。 我们可以将任何…