Ubuntu18.04安装Autoware1.15(解决Openplanner无法绕障的问题:Openplanner2.5)

news/2024/7/8 1:58:51

文章目录

  • 一、下载Autoware1.15源码
  • 二、安装依赖
  • 三、修改CUDA版本
  • 四、编译以及报错解决
      • 编译
        • (1)报 `undefined reference to cv::Mat::Mat() `的错就按照下面方式改相应包:
        • (2)遇到OpenCV的CV_RGB、IplImage报错:
        • (3)报错:`error: conversion from ‘cv::Mat’ to non-scalar type ‘CvMat’ requested`,将报错那句改为:
        • (4)报错`error: no match for ‘operator=’ (operand types are ‘CvPoint’ and ‘cv::Point {aka cv::Point_<int>}’`,将下面这句中的`cv::Point`改为`cvPoint`
        • (5)报找不到cuDNN头文件的错:
        • (6)报错, op_tlr包未找到cuDNN的库:


在Autoware1.14配置的环境基础上安装Autoware1.15,解决一些14和15经常出现的报错
环境配置参考Autoware1.14的安装教程:Ubuntu18.04安装autoware 1.14(GPU版) 完整教程(包含环境搭建)

一、下载Autoware1.15源码

下载地址(注意包含了完整的Autoware,并不是只有Openplanner):https://github.com/hatem-darweesh/autoware.ai.openplanner

cd autoware
mkdir src

下载代码:

vcs import src < openplanner.1.15.repos

二、安装依赖

sudo apt-get install libnl-3-dev libnl-genl-3-dev
sudo apt-get install ros-melodic-tvm-vendor 
sudo apt-get install ros-melodic-lanelet2-io ros-melodic-lanelet2-core ros-melodic-lanelet2-maps ros-melodic-lanelet2-projection ros-melodic-lanelet2-routing ros-melodic-lanelet2-validation

三、修改CUDA版本

src/autoware/common/autoware_build_flags/cmake下的CUDA版本改为11.4(或者你电脑上的版本)
在这里插入图片描述

四、编译以及报错解决

编译

AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
# 编译特定的包
AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select lidar_kf_contour_track

(1)报 undefined reference to cv::Mat::Mat() 的错就按照下面方式改相应包:

find_package(OpenCV 3.4 REQUIRED)

include_directories( ${OpenCV_INCLUDE_DIRS} )

target_link_libraries(target ${OpenCV_LIBS})

在这里插入图片描述

(2)遇到OpenCV的CV_RGB、IplImage报错:

error: could not convert 'cv::Scalar_<double>((double)0,(double)255,(double)255,(double)0,)' from 'cv::Scalar {aka cv::Scalar_<double>}' to 'CvScalar' error:conversion from 'cv::Mat' to non-scalar type 'IplImage {aka _IplImage}' requested

在这里插入图片描述

  • CV_RGB改为cvScalar
  • 使用cvIplImage()函数将类型转换一下:

在这里插入图片描述

(3)报错:error: conversion from ‘cv::Mat’ to non-scalar type ‘CvMat’ requested,将报错那句改为:

在这里插入图片描述

CvMat* cvmat;
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);
		}

(4)报错error: no match for ‘operator=’ (operand types are ‘CvPoint’ and ‘cv::Point {aka cv::Point_<int>}’,将下面这句中的cv::Point改为cvPoint

// textOrg = cv::Point(ctx.topLeft.x, ctx.botRight.y + baseline);
textOrg = cvPoint(ctx.topLeft.x, ctx.botRight.y + baseline);

或者改为:

// textOrg = cv::Point(ctx.topLeft.x, ctx.botRight.y + baseline);
textOrg.x = ctx.topLeft.x;
textOrg.y = ctx.botRight.y + baseline;

(5)报找不到cuDNN头文件的错:

/usr/local/cuda-11.4/include/cudnn.h:61:10: fatal error: cudnn_ops_infer.h: No such file or directory CMake Error at op_tlr_generated_network_kernels.cu.o.Release.cmake:225 (message):
在Autoware1.14环境配置时,安装cuDNN把所有的头文件都复制过去:

# sudo cp include/cudnn.h /usr/local/cuda/include/ 
sudo cp include/cudnn*.h /usr/local/cuda/include/ 

(6)报错, op_tlr包未找到cuDNN的库:

/usr/bin/ld: cannot find -lcudart /usr/bin/ld: cannot find -lcublas /usr/bin/ld: cannot find -lcurand /usr/bin/ld: cannot find -lcudnn

发现是Cmakelists.txt中CUDA的库文件包含路径错误,在op_tlr包中改成自己的CUDA版本在这里插入图片描述


http://lihuaxi.xjx100.cn/news/1386438.html

相关文章

6.修饰符

文章目录 6.1 在一个静态方法内调用一个非静态成员为什么是非法的?6.2 静态方法和实例方法有何不同 6.1 在一个静态方法内调用一个非静态成员为什么是非法的? 由于静态方法可以不通过对象进行调用&#xff0c;因此在静态方法里&#xff0c;不能调用其他非静态变量&#xff0…

JSON格式Python,Java,PHP等封装获取淘宝商品详情SKU数据API方法

淘宝是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝天猫商品详情SKU详细数据&#xff0c;您可以通过开放平台的接口或者直接访问淘宝天猫商城的网页来获取商品详情Sku信息。以下是两种常用方法的介绍&…

基于java SpringBoot和HTML的博客系统

随着网络技术渗透到社会生活的各个方面&#xff0c;传统的交流方式也面临着变化。互联网是一个非常重要的方向。基于Web技术的网络考试系统可以在全球范围内使用互联网&#xff0c;可以在本地或异地进行通信&#xff0c;大大提高了通信和交换的灵活性。在当今高速发展的互联网时…

HBuilder 编辑器终端窗口无法输入,未响应的解决方案

HBuilder 编辑器终端窗口无法输入&#xff0c;未响应的解决方案 一、找到 HBuilder 安装目录 找到 main.js HBuilderX - plugins - builtincef3terminal - script - main.js 二、编辑 main.js 将 main.js 文件中的 powershell.exe 和 cmd.exe 路径都改为绝对路径 C:/Windows…

位1的个数,编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1‘ 的个数(也被称为汉明重量)。

题记&#xff1a; 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 ‘1’ 的个数&#xff08;也被称为汉明重量&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff…

AI学习笔记三:编写检测的yolov5测试代码

若该文为原创文章&#xff0c;转载请注明原文出处。 通过detect.py代码测试通过后&#xff0c;阅读detect.py代码发现&#xff0c;有些难以看懂&#xff0c;看得有点蒙蒙的&#xff0c; 所以编写了一个简单的测试程序。 代码如下&#xff1a; import cv2 import numpy as np…

springboot拿到yml文件中的配置,决绝将配置写在代码里

springboot拿到yml文件中的配置 写你对应的文件 package com.gym.vueea.config;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;/*** author ymgu* Package com.gym.vueea.config* date 2023…

【Linux】- RPM 与 YUM

RPM 与 YUM 1.1 rpm 包的管理1.2 rpm 包的简单查询指令1.3 rpm 包的其它查询指令&#xff1a;1.4 卸载 rpm 包&#xff1a;2.1 安装 rpm 包3.1 yum3.2 yum 的基本指令3.3 安装指定的 yum 包3.4 yum 应用实例&#xff1a; 1.1 rpm 包的管理 介绍 rpm 用于互联网下载包的打包及安…