超详细保姆级ubuntu16.04源码安装autoware1.13.0_autoware1.13.0中qpoases文件-程序员宅基地

技术标签: 自动驾驶  github  git  ubuntu  Autoware  linux  

ubuntu16.04源码安装autoware.ai 1.13.0

官网提供的autoware版本与ubuntu系统适配情况,作者使用ubuntu16.04,选择版本v1.13.0
下图为官方适配表
https://github.com/Autoware-AI/autoware.ai/wiki/Source-Build详见https://github.com/Autoware-AI/autoware.ai/wiki/Source-Build,本安装步骤按照官网步骤进行,期间遇到的一些坑也会指出
作者已经安装完成ROS、QT5、CUDA9.0,未安装的请参考其他博客,在此不再赘述

作者跟随官方安装方法进行安装,官方安装方法如下:

1.安装依赖

$ sudo apt-get update
$ sudo apt-get install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin gksu
$ sudo apt-get install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool
$ pip3 install -U setuptools

【坑1】其中python3-vcstool、python3-colcon-common-extensions也需要用pip3安装,方法如下

$ pip3 install vcstool
$ pip3 install colcon-common-extensions

2.创建一个工作区

$ mkdir -p autoware.ai/src
$ cd autoware.ai

3.下载Autoware.AI到工作区

$ wget -O autoware.ai.repos "https://raw.githubusercontent.com/Autoware-AI/autoware.ai/1.13.0/autoware.ai.repos"

如果要安装其他版本只需要将上述命令中的1.13.0更改为其他版本

将Autoware.AI下载到工作区中。

$ vcs import src < autoware.ai.repos

【坑2】这一步时间会很久,到最后有可能一些包没下载,例如我是car_demo这个包没有下载下来,输出文件中给了一个github链接,可以自行下载下来放入~/autoware.ai/src/autoware文件夹下
完整的应该有以下9个文件夹
在这里插入图片描述

4.使用rosdep安装依赖。

$ rosdep update
$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

【坑3】rosdep update经常因为网速过不去,这个跟安装ROS类似,换热点解决

【坑4】rosdep install这一步一直提示缺少依赖包

【坑4.1】找不到lanelet2_maps、lanelet2_routing、lanelet2_traffic_fules、lanelet2_validation
在github找到了Lanelet2的工程https://github.com/fzi-forschungszentrum-informatik/Lanelet2

$ cd ~
$ git clone https://github.com/fzi-forschungszentrum-informatik/lanelet2.git

将上述找不到的包复制到~/autoware.ai/src/autoware/common路径下

【坑4.2】找不到mrt_cmake_modules
同样去github找到mrt_cmake_modules的工程https://github.com/KIT-MRT/mrt_cmake_modules

$ cd ~
$ git clone https://github.com/KIT-MRT/mrt_cmake_modules.git

将mrt_cmake_modules复制到~/autoware.ai/src/autoware/common路径下

【坑4.3】找不到qpoases_vendor

同样去github找到qpoases_vendor的工程https://github.com/Autoware-AI/qpoases_vendor

$ cd ~
$ git clone https://github.com:Autoware-AI/qpoases_vendor.git

将qpoases_vendor复制到~/autoware.ai/src/autoware/common路径下

【坑4.4】其他一些坑

(1)缺少jsk_recognition_msgs

$ sudo apt-get install ros-kinetic-jsk-recognition-msgs

(2)缺少pugixml

$ sudo apt-get install libpugixml-dev

(3)缺少geographic_lib

$ sudo apt-get install libgeographic-dev

(4)找不到grid_map_ros

$ sudo apt-get install ros-kinetic-grid-map-ros

5.编译工作区

带有CUDA支持

$ AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

【坑5】/usr/include/boost/math/constants/constants.hpp:284:3: error: unable to find numeric literal operator ‘operator""Q’
感谢@苏碧落 提供方法https://blog.csdn.net/subiluo/article/details/109034746
使用第4种方法解决问题
#define BOOST_MATH_DISABLE_FLOAT128 放到/usr/include/boost/math/tools/user.hpp文件里

还有些博主说将gcc更新到gcc-7即可,作者更新后错误依然存在

没有CUDA支持

$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

作者未执行没有CUDA支持的命令

6.Autoware运行

$ cd autoware.ai
$ source install/setup.bash
$ roslaunch runtime_manager runtime_manager.launch

在这里插入图片描述
成功看到Autoware界面,安装结束,有疑问欢迎联系[email protected]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34972053/article/details/109056140

智能推荐

给定入栈顺序,判断出栈顺序是否合法_如何根据入栈顺序判断出栈顺序是否正确-程序员宅基地

文章浏览阅读2.7k次。给定一个入栈顺序,判断出栈顺序是否有可能发生,所遵循的方法是使用一个辅助栈记录入栈的元素,当刚开始时候辅助栈为空,入栈元素第一个压入辅助栈,接下来如果看出栈顺序,如果出栈顺序的第一个元素和辅助栈的栈顶元素不相等,则继续把 入栈元素的下一个压入辅助栈;如果出栈顺序的元素和辅助栈的栈顶元素相等则直接将辅助栈的栈顶元素弹出,同时出栈序列向后移动一位。以此类推,如果当入栈元素全部进入辅助栈了,则秩序比较出栈_如何根据入栈顺序判断出栈顺序是否正确

CUPS-centos6-docker实践_docker cups-程序员宅基地

文章浏览阅读1.3k次。针对开源网络打印机软件CUPS的容器化实践创建一个目录,并在目录内建立一个文件名为Dockerfile的文件和文件名为cupsd.conf的配置文件Dockerfile#使用原始镜像FROM centos:6#作者MAINTAINER shark1985#使用阿里云yum源RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http:..._docker cups

Leetcode 89. 格雷编码(DAY 106) ---- 回溯算法学习期(后天考大物 今天开始预习)_后天考试 今天预习-程序员宅基地

文章浏览阅读117次。原题题目代码实现(首刷自解)class Solution {public: bool backtracking(vector<int>& ret,vector<bool>& visit,int num,int n) { visit[num] = true; ret.emplace_back(num); if(ret.size() == visit.size()) return true;_后天考试 今天预习

计算机应用基础客观答案,计算机应用基础作业一(答案)-程序员宅基地

文章浏览阅读401次。2012下半年计算机应用基础作业一一、单选题(共40题,每题1分)1、在第三代计算机期间内按规模和性能产生了______。A:包含笔记本电脑在内的序列机B:包含微型机在内的序列机C:大、中、小和微型机D:巨、大、中和小型机答案:D2、既可以接收、处理和输出模拟量,也可以接收、处理和输出数字量的计算机是______。 A:电子数字计算机 B:电子模拟计算机 C:数模混合计算机 D:专用计算机..._接收、处理和输出模拟量

python中的库有什么作用,python库在哪个文件夹_python中导入的库有什么用-程序员宅基地

文章浏览阅读801次,点赞16次,收藏21次。嗨喽,大家好呀~这里是爱看美女的茜茜呐又到了学Python时刻~随着大数据和人工智能的发展,Python也与多种科技深深绑定。比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开发都有涉及python画笑脸的源代码。万丈高楼平地起,Python这座大厦能够如此强大,就是拥有强大的成千上万的库的支持无数牛x的轮子在支持这座大厦,今天我们来一起梳理一下,俯瞰整个Python宝库。那么什么是库呢?从代码角度讲:库就是一堆类(class)和函数(function)的集合。_python中导入的库有什么用

springMvc 的三种url映射处理器的实现-程序员宅基地

文章浏览阅读191次。为什么80%的码农都做不了架构师?>>> ..._spring mvc通过filter实现url映射

随便推点

java isempty用法_Java String 的 isEmpty() 与 null 与 "" 区别解析-程序员宅基地

文章浏览阅读177次。问:简单说说 String 的 isEmpty() 与 null 与 "" 的区别?答:public class Test {public static void main(String[] args) {String a = new String();String b = "";String c = null;testString(a);testString(b);testString(c);}..._java string isempty

java语言概述、java语言特性、java语言发展史、java语言作用-程序员宅基地

文章浏览阅读691次。Java介绍:Java语言概述:Java语言是由美国Sun(Stanford University Network)斯坦福网络公司的java语言之父–詹姆斯·高斯林,在1995年推出的高级的编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。Java 可运行于多个平台,如 Windows, Mac OS 及其他多种 UNIX 版本的系统。Java分为三个体系:JavaSE(J2SE)(Java2 Platform Standard Editio_java语言

树状数组-程序员宅基地

文章浏览阅读118次。树状数组学习笔记

【报告分享】抖音蓝V账号定位及外化罗盘.pdf(附下载链接)-程序员宅基地

文章浏览阅读775次。今天给大家分享的报告是字节跳动营销创业中心于2019年11月份发布的《抖音蓝V账号定位及外化罗盘.pdf》,报告从账号定位、内容表现形式/试错、内容深耕与延展等方..._抖音规则外化

php 实现简拼-程序员宅基地

文章浏览阅读283次。<blockquote>model:::::::::::::::::::::::::::::function getFirstCharter($str){if(empty($str)){return '';}$fchar=ord($str{0});if ($fchar &gt;= 1 &amp;&amp; $fchar &lt;= 222) retu..._php 汉子转简拼代码

51Nod - 1765 期望推导_51nod1765-程序员宅基地

文章浏览阅读751次。题意:题目链接:https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=223971 每次生成一个[0,n)的随机数,如果这个随机数和给出的m个数字中的其中一个数字相等,那么就停止生成随机数,否则继续生成,求出所有生成的数的和的期望。思路:求期望的一种套路,可以列出一个关于期望E的方程,然后求解方程得出E的表达式。 对这道题来说,_51nod1765

推荐文章

热门文章

相关标签