从零开始学习自动驾驶路径规划-环境配置

news2024/11/26 18:38:49

从零开始学习自动驾驶路径规划-环境配置

前面,每个人遇到的问题不一样,这里记录了配置步骤和目前遇到的问题,会持续更新报错解决方法。配置时有报错请认真看报错经验

环境配置步骤(18.04和20.04都可以,有些问题没遇到就好)

1.更新镜像源
首先要更新镜像源吧,比如ubuntu20.04的清华源。百度一堆:ubuntu20.04的清华源.
2.安装gcc,g++
这里,我们要另外添加一个软件源,以安装gcc,g++。我这里讲的是ubuntu20的gcc,g++安装,18的好像没有9和10的版本,记得是7的,不过你们自己安装好这两个编译器就行,自行百度。

sudo gedit /etc/apt/sources.list

增加

deb http://cn.archive.ubuntu.com/ubuntu xenial main

注意这个源是ubuntu20的,18的可能不一样。
执行

sudo apt-get update

其次,安装gcc 与 g++:

sudo apt-get install gcc-9 g++-9
sudo apt-get install gcc-10 g++-10

3.安装ros和python3环境
网上教程太多啦,你们可以根据自己的系统安装对应的ros版本。我的是ubuntu20.04,安装的是ros-noetic。建议不要用ubuntu16,因为我没试过,用18或者20,也就是melodicnoetic

4.安装osqp求解器
运行/src/planning/installers里面的install_osqp.sh

sudo ./install_osqp.sh

5.安装依赖库:ADOL-C
先按方法一(可能有版本不匹配问题)做,如果报错或者运行有问题再卸载重新用方法二
方法一:
先安装Colpack

git clone http://github.com/CSCsw/ColPack.git
cd ColPack/build/automake
autoreconf -vif
mkdir build
cd build
../configure --prefix=usr/local
make -j
sudo make install

再安装ADOL-c

git clone http://github.com/coin-or/ADOl-C.git
./configure prefix=usr/local
make -j
sudo make install

方法二:
运行/src/installers里面的install_adolc.sh
打开install_adolc.sh文件,先修改如下图所表标红色的路径为自己电脑ADOL-C-2.6.3下载的绝对路径。不然会找不到lib64。在这里插入图片描述 然后执行:

sudo ./install_adolc.sh

6.安装依赖库:ipopt求解器

最近发现ipopt自带的库下载链接失效,所以此包安装麻烦一些:

可以参考别人的博客:
Ubuntu20.04 安装 Ipopt + cppAD流程,一键到底没有废话(复制流攻略)

7.安装matplotcpp
运行/src/installers里面的install-matplotcpp.sh

sudo ./install-matplotcpp.sh

8.安装其他ros包依赖
运行/src/installers里面的install_base.sh

sudo ./install_base.sh

注意,里面有ros-noetic,是针对ros-noetic版本的,melodic版本要改成ros-melodic。

9.安装Qt5 (可选)
参考:https://blog.csdn.net/Joker__123/article/details/122438138

10.安装qpoases求解器

sudo ./install_qp_oases.sh

11.安装yaml读取

sudo ./install_yaml.sh

报错经验

1

CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):
  Unable to find either executable 'empy' or Python module 'em'...  try
  installing the package 'python3-empy'

注意,因为我安装了conda环境,在base下编译的,所以才可能出现这个问题,解决方法:

pip install empy

2

ImportError: "from catkin_pkg.package import parse_package" failed: No module named 'catkin_pkg'
Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
CMake Error at /opt/ros/noetic/share/catkin/cmake/safe_execute_process.cmake:11 (message):
  execute_process(/usr/local/anaconda3/bin/python3
  "/opt/ros/noetic/share/catkin/cmake/parse_package_xml.py"
  "/opt/ros/noetic/share/catkin/cmake/../package.xml"
  "/home/cg/Automatic_driving/build/catkin_tools_prebuild/catkin/catkin_generated/version/package.cmake")
  returned error code 1

注意,因为我安装了conda环境,在base下编译的,所以才可能出现这个问题,解决方法:

pip install catkin_pkg

catkin build 

3

/usr/bin/ld: /lib/x86_64-linux-gnu/libapr-1.so.0: undefined reference to `uuid_generate@UUID_1.0'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/ui_console.dir/build.make:150/home/cg/Automatic_driving/devel/.private/ui_console/lib/ui_console/ui_console] 错误 1
make[1]: *** [CMakeFiles/Makefile2:166:CMakeFiles/ui_console.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2

这个错误的原因,还是因为有了conda环境,QT引用的是anaconda里的qt,因为我在ui_console里面用了qt画图,当然,你可以把这个文件夹删除,也可以解决。解决方法:

到anaconda安装文件夹下的anaconda/lib下:

sudo mkdir libuuid_bk
mv libuuid* libuuid_bk/

4

Traceback (most recent call last):
  File "/opt/ros/noetic/lib/joint_state_publisher/joint_state_publisher", line 35, in <module>
    import rospy
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/__init__.py", line 49, in <module>
    from .client import spin, myargv, init_node, \
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/client.py", line 52, in <module>
    import roslib
  File "/opt/ros/noetic/lib/python3/dist-packages/roslib/__init__.py", line 50, in <module>
    from roslib.launcher import load_manifest  # noqa: F401
  File "/opt/ros/noetic/lib/python3/dist-packages/roslib/launcher.py", line 42, in <module>
    import rospkg
ModuleNotFoundError: No module named 'rospkg'

这个错误的原因,还是因为有了conda环境,解决方法:

pip install rospkg

5
找不到链接库,不管是ladolclibqpOASES还是其他l开头或者lib开头的。解决办法:
a.打开**/etc/ld.so.conf**文件:

sudo gedit /etc/ld.so.conf

b.加入动态库文件所在的目录:在include ld.so.conf.d/*.conf下方增加

/usr/local/lib

c.保存后,在命令行终端执行:

sudo ldconfig

6

chmod o+x ./xxx.sh

再执行

sudo ./xxx.sh

7
在这里插入图片描述
这是github不好下,重新运行或者梯子。

8
在这里插入图片描述
先单独编译object_msgs包,

catkin build object_msgs

再整体编译
9
在这里插入图片描述
先单独编译derived_object_msgs包

catkin build derived_object_msgs

再整体编译

10
在这里插入图片描述
检查cmake版本,版本要求是3.12

11待续

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

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

相关文章

流媒体视频融合平台EasyCVR更新版本后,首页无法打开的原因排查与解决

EasyCVR视频融合平台基于云边端一体化架构&#xff0c;可支持多协议、多类型设备接入&#xff0c;包括&#xff1a;NVR、IPC、视频编码器、无人机、车载设备、智能手持终端、移动执法仪等。平台具有强大的数据接入、处理及分发能力&#xff0c;可在复杂的网络环境中&#xff0c…

精通自动化,Pytest自动化测试框架-fixture用例的前后置(实现)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试用例实现前后…

软件项目验收测试报告-软件项目验收流程

目录 一、什么是项目验收&#xff1f; 二、软件项目验收材料的准备 三、软件项目验收&#xff0c;按照验收的流程&#xff0c;可分为验收准备、初步验收、最终验收和项目交接四个部分。 对甲方而言&#xff0c;项目验收是正式接受项目成果&#xff0c;将项目从建设转为运营。…

视频增强技术-去噪

本文介绍了关于视频增强技术的相关方法包括传统方法和基于深度学习的方法&#xff0c;并给出了他们的对比实验结果&#xff0c;最后对它们简单的做了总结&#xff0c;文中有一些图片和总结来自于网上其他博主的文章&#xff0c;已在文中标记并给出了相关的原文链接&#xff0c;…

JAVA基础-集合(List与Map)

目录 引言 一&#xff0c;Collection集合 1.1,List接口 1.1.1&#xff0c;ArrayList 1.1.1.1&#xff0c;ArrayList的add&#xff08;&#xff09;添加方法 1.1.1.2&#xff0c;ArrayList的remove&#xff08;&#xff09;删除方法 1.1.1.3&#xff0c;ArrayList的contai…

机器学习之主成分分析(Principal Component Analysis)

1 主成分分析介绍 1.1 什么是主成分分析 主成分分析&#xff08;Principal Component Analysis&#xff09;简称PCA&#xff0c;是一个非监督学习的机器学习算法&#xff0c;主要用于数据的降维&#xff0c;对于高维数据&#xff0c;通过降维&#xff0c;可以发现更便于人类理…

(css)自定义el-dialog对话框添加背景图片

(css)自定义el-dialog对话框添加背景图片 效果&#xff1a; // 文件管理对话框 /deep/ .el-dialog {background: transparent;background-image: url("../assets/image/file-upload-background.png");background-size: 100% 100%; } // 头部 /deep/ .el-dialog__titl…

2024考研408-操作系统 第五章-输入输出IO管理 学习笔记

文章目录 一、I/O管理概述1.1、I/O设备的概念与分类1.1.1、什么是I/O设备&#xff1f;1.1.2、I/O设备的分类&#xff1a;按照使用特性1.1.2、I/O设备的分类&#xff1a;按传输速率分类1.1.3、I/O设备的分类&#xff1a;按照信息交换的单位分类知识点回顾与重要考点 1.2、I/O控制…

【Linux】udp客户端windows版以及Tcp服务器的实现

windows版客户端更适合大多数人~ 文章目录 一. udp客户端windows版二.Tcp服务器的实现总结 一、udp客户端windows版 首先我们将上一篇文章中实现的udp大型聊天室的代码进行修改&#xff0c;注意我们只修改服务端代码将代码修改的很简单就好&#xff0c;因为我们只是做一个如何…

spring-事务

spring-事务 事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列&#xff0c;这些操作要么全部执行,要么全部不执行&#xff0c;是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成&#xff0c;它具有ACID特性。 为了在spring中…

UE特效案例 —— 骷髅爆点

一&#xff0c;环境配置 创建默认地形Landscape&#xff0c;如给地形上材质需确定比例&#xff1b;添加环境主光源DirectionalLight&#xff0c;设置相应的强度和颜色&#xff1b;添加天光反射SkyLight&#xff0c;用于天空反射&#xff1b;添加指数级高度雾ExponentialHeightF…

C++笔记之循环引用与环状引用

C笔记之循环引用与环状引用 code review! 文章目录 C笔记之循环引用与环状引用1.C循环引用和环状引用描述的是同一种现象吗?2.环状引用3.环状引用现象举例——常见环状引用4.解决环状引用——使用前向声明5.环状引用现象举例——使用对象本身可能造成环状引用 1.C循环引用和…

MySQL_4

目录 一、日志 1、错误日志 2、二进制日志 2.1 介绍 2.2 格式 2.3 删除 3、查询日志 4、慢查询日志 二、主从复制 1、概述 2、原理 3、搭建 三、分库分表 1、介绍 1.1背景 1.2拆分策略 1.3垂直拆分 1.4水平拆分 1.5实现技术 2、Mycat概述 2.1 介绍 2.2 安装 2.3…

每日一题2023.7.22|链表的基本操作

链表的基本操作 题目描述 考察链表的基本操作 输入 输入数据只有一组&#xff0c;第一行有n1个整数&#xff0c;第一个整数是这行余下的整数数目n&#xff0c;后面是n个整数。这一行整数用来初始化列表的&#xff0c;并且输入的顺序与列表中的顺序相反&#xff0c;也就是说如果…

htmlCSS-----浮动

目录 前言&#xff1a; 浮动 1.浮动的效果 2.浮动的特点 3.浮动的写法 4.浮动的原理 5.浮动的作用 6.案例 7.浮动的缺陷与解决方式 浮动问题 解决方式 8.补充说明 前言&#xff1a; 浮动是html里面重要的一部分&#xff0c;前面我们学习了三种元素的类型&#xff08;…

element中table的表格更新数据之后保留原来的勾选状态

reserve-selection: 仅对 typeselection 的列有效&#xff0c;类型为 Boolean&#xff0c;为 true 则会在数据更新之后保留之前选中的数据&#xff08;需指定 row-key&#xff09; <el-table ref"table" :data"DataList" :row-key"rowKey"&g…

使用rknn-toolkit2把YOLOV5部署到OK3588上

使用rknn-toolkit2把YOLOV5部署到OK3588上 虚拟环境搭建软件包安装在PC机上运行yolov5目标检测 虚拟环境搭建 首先在PC的ubuntu系统安装虚拟环境&#xff1a; 我的服务器是ubuntu18.04版本&#xff0c;所以安装python3.6 conda create -n ok3588 python3.6 需要键盘输入y&…

【博客681】k8s list机制与resourceVersion语义

k8s list机制与resourceVersion语义 K8s 架构&#xff1a;环形层次视图 对于 K8s 集群&#xff0c;从内到外的几个组件和功能&#xff1a; etcd&#xff1a;持久化 KV 存储&#xff0c;集群资源&#xff08;pods/services/networkpolicies/…&#xff09;的唯一的权威数据&…

实例023 建立字体形状窗体

实例说明 大家都见过不规则形状的窗体吧&#xff0c;那么如何制作一个文字形的窗体呢&#xff1f;文字形窗体一般应用在屏幕提示中&#xff0c;如收款机屏幕等。运行本例&#xff0c;效果如图1.23所示。 技术要点 以前&#xff0c;创建字体形窗体是一个既费时又费人力的过程&…

K8S初级入门系列之七-控制器(Job/CronJob/Daemonset)

一、前言 前一章节我们介绍了RC&#xff0c;RS控制器&#xff0c;其主要针对在线业务Pod部署&#xff0c;比如nginx&#xff0c;这些业务是需要确保7*24持续运行的&#xff0c;还有一类离线业务&#xff0c;比如定时任务&#xff0c;大数据离线计算等&#xff0c;在有任务的才需…