Autoware 安装(踩坑指南)

news2024/11/16 9:36:55

Autoware 安装(踩坑指南)

【Autoware】2小时安装Autoware1.13(保姆级教程)

Autoware入门学习(二)——Ubuntu18.04下的源码安装和配置

上面的两篇博客安装都异常顺利,甚至没有一点报错,实际安装中显然是不可能的

安装环境

  • Ubuntu 18.04
  • ROS Melodic
  • Qt 5.10.0
  • OpenCV 3.4.16

看一下官网的 Requirements

在这里插入图片描述

这里 CUDA 是选装的,CUDA 要求是10.0的,而我是11的,而且 Eigen 版本也不一样,所以编译时没有选择 CUDA,后面有实际需要再说

在这里插入图片描述

下载 autoware.ai.repos 时出错,怎么都下载不下来

wget -O autoware.ai.repos "https://raw.githubusercontent.com/autowarefoundation/autoware_ai/1.12.0/autoware.ai.repos"

直接去查看这个文件,复制到 autoware.ai.repos 即可

repositories:
  autoware/common:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/common.git
    version: 1.12.0
  autoware/core_perception:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/core_perception.git
    version: 1.12.0
  autoware/core_planning:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/core_planning.git
    version: 1.12.0
  autoware/documentation:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/documentation.git
    version: 1.12.0
  autoware/messages:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/messages.git
    version: 1.12.0
  autoware/simulation:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/simulation.git
    version: 1.12.0
  autoware/utilities:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/utilities.git
    version: 1.12.0
  autoware/visualization:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/visualization.git
    version: 1.12.0
  drivers/awf_drivers:
    type: git
    url: https://gitlab.com/autowarefoundation/autoware.ai/drivers.git
    version: 1.12.0
  citysim:
    type: git
    url: https://github.com/CPFL/osrf_citysim.git
    version: 27bd05bc6c762b3ad8c9bb85f678d4b7ce7a27c5
  car_demo:
    type: git
    url: https://github.com/CPFL/car_demo.git
    version: e364448fad421cb6244c9f828f978d8d877dcbf9
  drivers/ds4:
    type: git
    url: https://github.com/tier4/ds4.git
    version: 5aa2f7f53a67992fffa7c801ed9c663a380b5d4a

rosdep install 的时候提示缺少相关包

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

缺什么安装什么,例如 sudo apt-get install ros-melodic-nmea-msgs

redwall@redwall-G3-3500:~/autoware$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS-DISTRO
WARNING: given --rosdistro -DISTRO but ROS_DISTRO is "melodic". Ignoring environment.
WARNING: ROS_PYTHON_VERSION is unset. Defaulting to 2
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
autoware_bag_tools: Cannot locate rosdep definition for [nmea_msgs]
kitti_box_publisher: Cannot locate rosdep definition for [jsk_recognition_msgs]
range_vision_fusion: Cannot locate rosdep definition for [jsk_topic_tools]
runtime_manager: Cannot locate rosdep definition for [nmea_navsat_driver]
as: Cannot locate rosdep definition for [pacmod_msgs]
autoware_camera_lidar_calibrator: Cannot locate rosdep definition for [image_view2]
lidar_euclidean_cluster_detect: Cannot locate rosdep definition for [jsk_rviz_plugins]

没用 CUDA 用下面的语句编译

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

这里遇到了很多问题,可以归类两个大问题

多版本 OpenCV 问题

安装 ROS 时会安装 3.2.0 版本的 OpenCV,后面自己又安装了 3.4.16 版本的 OpenCV

之前不晓得从哪里看来的博客,两个版本都安装到了 /usr/local/ 目录下,那么后安装的 3.4.16 版本的 OpenCV 就会覆盖之前的 3.2.0 版本的

那么就会导致版本的混乱,同时在 build 目录下 sudo make uninstall 时会把 3.2.0 版本的也一起卸载掉,这就导致很多 ROS 基础的功能包都找不到 OpenCV 头文件

ubuntu卸载opencv,简单快速,亲测有效

ubuntu18.04中多版本OpenCV切换的尝试

ubuntu自定义路径安装OpenCV

卸载重装 OpenCV 3.4.16,注意制定安装路径为 /usr/local/opencv-3.4.16

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-3.4.16 ..

make 编译前可以 nproc 查看处理器核心数量,充分利用核心数量进行多线程编译

安装完成后在bashrc文件末尾增加如下语句

export PKG_CONFIG_PATH=/usr/local/opencv-3.4.16/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv-3.4.16/lib
export OpenCV_DIR=/usr/local/opencv-3.4.16

加入前两条语句后,pkg-config能发现opencv

加入第三条语句后,能在CMakeLists.txt中直接通过FIND_PACKAGE(OpenCV REQUIRED)命令找到opencv

对于 OpenCV 3.2.0,也是重新安装,用下述命令卸载

sudo apt-get remove 'libopencv*'

会随着卸载很多软件包,记录下来,再重新安装,OpenCV 3.2.0 用下述命令重新安装

2023-06-16.txt

sudo apt-get install 'libopencv*'

至此,编译时报错对 cv::Mat() 未定义的引用解决

OpenCV版本不兼容

代码中opencv2风格的代码与opencv3风格代码混用,报了很多错误

/home/fengbro/autoware.ai/src/autoware/core_perception/vision_lane_detect/nodes/vision_lane_detect/vision_lane_detect.cpp:514:58: error: could not convert ‘cv::Scalar_((double)0, (double)255, (double)255, (double)0)’ from ‘cv::Scalar {aka cv::Scalar_}’ to ‘CvScalar’
cvPoint(frame_size.width/2, frame_size.height), CV_RGB(255, 255, 0), 1);

vision_lane_detect.cpp文件,修改其中第514行代码:

CV_RGB(255, 255, 0) —> cvScalar(255, 255, 0)

/home/fengbro/autoware.ai/src/autoware/core_perception/vision_lane_detect/nodes/vision_lane_detect/vision_lane_detect.cpp:544:30: error: conversion from ‘cv::Mat’ to non-scalar type ‘IplImage {aka _IplImage}’ requested
IplImage frame = cv_image->image;

vision_lane_detect.cpp文件的第544行中:
IplImage frame = cv_image->image;-----> IplImage frame = cvIplImage(cv_image->image);

/home/fengbro/autoware.ai/src/autoware/core_perception/vision_darknet_detect/src/vision_darknet_detect.cpp:228:17: error: no match foroperator=(operand types are ‘IplImage {aka _IplImage}and ‘cv::Mat’)
ipl_image = final_mat;

修改vision_darknet_detect.cpp文件的第228行:

ipl_image = final_mat; 为 ipl_image = cvIplImage(final_mat);

/home/fengbro/autoware.ai/src/autoware/core_perception/vision_beyond_track/include/detection.h:234:21: error: conversion from ‘cv::Mat’ to non-scalar type ‘CvMat’ requested
CvMat cvmat = sum_mat;

在detection.h文件的第234行下一行添加如下内容

for(size_t i=0; i< sum_mat.rows; ++i)
    for(size_t j=0; j< sum_mat.cols; ++j)
        ((double*)(cvmat.data.ptr + i*cvmat.step))[j] = sum_mat.at<double>(i,j);
/home/fengbro/autoware.ai/src/autoware/core_perception/trafficlight_recognizer/nodes/region_tlr/region_tlr.cpp:143:63: error: no match foroperator=(operand types are ‘CvPoint’ and ‘cv::Point {aka cv::Point_<int>})   
textOrg = cv::Point(ctx.topLeft.x, ctx.botRight.y + baseline);

修改region_tlr.cpp文件的第143行如下

textOrg = cvPoint(ctx.topLeft.x, ctx.botRight.y + baseline);

顺利安装后会提示如下信息

---
Finished <<< trafficlight_recognizer [18.1s]
Summary: 139 packages finished [52.9s]

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

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

相关文章

AMEYA360代理线:艾睿红外热成像仪数据机房监测应用

数据信息时代&#xff0c;数据机房是企业重要的区域。近日某购物平台发生的数据机房宕机事故&#xff0c;引发关注。机房设备温度异常&#xff0c;使得系统崩溃&#xff0c;经济损失超亿元。红外热成像仪作为一种非接触式、精准度高、可视化的温度测量工具&#xff0c;为数据机…

【MyBatis 神级框架】从入门到进阶

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 1. 什么是 MyBatis 1.1 为什么要学MaBatis&am…

TikTok正测试AI聊天机器人Tako

该功能可以“从根本上改变应用程序中的搜索和导航” 原文链接&#xff1a;TikTok tests AI chatbot called Tako – The Verge TikTok正在测试一个名为Tako的AI聊天机器人&#xff0c;根据与The Verge共享的功能截图&#xff0c;它可以根据人们的问题推荐视频。 如果TikTok最…

总结:公有云产品之CDN

一、介绍 由于公司经常提供CDN相关概念&#xff0c;本文特地总结下。 二、产品说明 百度云的内容分发网络CDN是一款基于互联网的分布式服务平台&#xff0c;可以加速网络上的内容分发和传输&#xff0c;提高网络的稳定性和访问速度。 CDN主要通过将网站的静态和动态资源缓存…

读书笔记-《ON JAVA 中文版》-摘要17[第十七章 文件]

文章目录 第十七章 文件1. 文件和目录路径1.1 选取路径部分片段1.2 路径分析1.3 Paths的增减修改 2. 目录3. 文件系统4. 路径监听5. 文件查找6. 文件读写7. 本章小结 第十七章 文件 在丑陋的 Java I/O 编程方式诞生多年以后&#xff0c;Java终于简化了文件读写的基本操作。 在 …

手机APP测试流程规范模板

一、流程图 二、测试周期 9.25-10.5 1、测试资源 测试任务开始前&#xff0c;检查各项测试资源。 1.1、产品功能需求文档 1&#xff09;产品原型图 2&#xff09;产品效果图 3&#xff09;行为统计分析定义文档 4&#xff09;测试设备&#xff08;Android4.1-Android4.…

OWASP 之跨站脚本xss基础技能

OWASP 之跨站脚本xss基础技能 一.XSS概述二.漏洞危害三.XSS漏洞绕过方法1.手工测试XSS步骤2.常见xss3.绕过方法 四.xss防御方法a.CSP内容安全策略b.HttpOnlyc.输入输出检查d.使用防御函数 五.pikachu靶场1.反射型XSS&#xff08;get&#xff09;2.反射型XSS&#xff08;post&am…

PS如何把多张图片拼接到一张?

现在有多张图片如下 &#xff0c;如何拼接成为1张呢&#xff1f; 打开ps&#xff0c;在ps里面点击文件->自动->联系表。 在弹出来的联系表对话框中&#xff0c;点击选取&#xff0c;选择要拼接的图片。 选择好图片之后&#xff0c;设置宽度高度&#xff0c;宽度的话&…

List Label 28.003 2023 Crack

列表和标签 28.003 在 Web 报表设计器中添加新的图表类型&#xff0c;并支持 Embarcadero RAD Studio 11.3。 6月 16&#xff0c; 2023 - 16&#xff1a;38 新版本 特征 .NET 所有可用的 NuGet 包现在都有一个特殊的企业包和 ID&#xff0c;以确保包都来自一个包源&#xff0c;…

GeneGPT:用领域工具增强大型语言模型,以改善对生物医学信息的访问

文章目录 一、论文关键信息二、主要内容1. Motivations2. 解决方案关键3. 实验和结果 三、总结与讨论 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、论文关键信息 论文标题&#xff1a;GeneGPT: Augmenting Large Language Models with Domain …

代码审计——垂直越权详解

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 垂直越权&#xff0c;也称权限提升&#xff0c;是一种“基于URL的访问控制”设计缺陷引起的漏洞。 由于Web应用程序没有做权…

2023开放原子全球开源峰会——Intel专题探访

浩瀚宇宙&#xff0c;有光&#xff0c;朝着未来之境&#xff1b;万物之始&#xff0c;有道&#xff0c;启示智慧共荣&#xff1b;在多维赋能的时空里&#xff0c;见微知著&#xff0c;开放共享 &#xff0c;包罗万象&#xff1b;在抵达终点的路途中&#xff0c;彼此陪伴&#x…

《Java核心卷1》怎么样?读1,2章草记 | 第12版

文章目录 《Java核心技术卷 一》第一章 概述第二章 Java编程环境 图书推荐 《Java核心技术卷 一》 第一章 概述 前言&#xff1a;本书与一些”0基础入门“的书定位感觉是不太一样的&#xff0c;可能就像书名所说&#xff0c;是”核心技术“叭。书中经常将Java语言与 c 进行对比…

基于Java电子竞技管理平台设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

详解c++---红黑二叉树的原理和实现

什么是红黑二叉树树 avl树是通过控制平衡因子来控制二叉搜索树的平衡&#xff0c;当某个节点的平衡因子等于2或者-2的话我们就根据他所在的位置来进行旋转&#xff0c;如果这个节点位于右右的话就对其进行向左旋转&#xff0c;如果这个节点位于左左的话就对其进行向右旋转&…

【Android复习笔记】OkHttp核心原理

使用方法 调用流程 0kHttp请求过程中最少只需要接触OkHttpClient、Request、Call、 Response,但是框架内部进行大量的逻辑处理。 所有的逻辑大部分集中在拦截器中,但是在进入拦截器之前还需要依靠分发器来调配请求任务。 分发器:内部维护队列与线程池,完成请求调配;拦截…

chatgpt赋能python:Python中嵌套列表的访问方法

Python中嵌套列表的访问方法 在Python编程中&#xff0c;嵌套列表是一种很常见的数据类型。它可以存储多个列表&#xff0c;使得数据结构更加复杂灵活。然而&#xff0c;如何访问嵌套列表中的元素呢&#xff1f;本文将详细介绍Python中嵌套列表的访问方法。 嵌套列表的定义 …

ch8_2_CPU的指令周期

1.  指令周期 指令周期是指_ CPU从主存取出一条指令, 分析指令&#xff0c;加上执行这条指令的时间。 1.1指令周期 指令周期&#xff1a; 是指cpu&#xff0c;从内存中取出指令&#xff0c;并且执行一条指令所需要的全部时间。 比如 从内存单元中&#xff0c;取出操作数&…

【备战秋招】每日一题:4月29日美团春招第二题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检&#xff0c;为了更好的阅读体检&#xff0c;&#xff0c;可以查看我的算法学习博客第二题-限行 在线评测链接:P1267 题目内容 塔子哥是一个富有的商人&#xff0c;他在一家大型贸易公司工作。他的公司位于城市的中心区&#xff0c;是一座高耸的摩天大楼。…

代码审计——SSRF详解

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 服务端请求伪造攻击&#xff08;SSRF&#xff09;也成为跨站点端口攻击&#xff0c;是由于一些应用在向第三方主机请求资源时提…