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

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

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

环境配置步骤(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'...  tryinstalling 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 rospyFile "/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 roslibFile "/opt/ros/noetic/lib/python3/dist-packages/roslib/__init__.py", line 50, in <module>from roslib.launcher import load_manifest  # noqa: F401File "/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.mzph.cn/news/8453.shtml

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

相关文章

医疗小程序:提升服务质量与效率的智能平台

在医疗行业&#xff0c;公司小程序成为提高服务质量、优化管理流程的重要工具。通过医疗小程序&#xff0c;可以方便医疗机构进行信息传播、企业展示等作用&#xff0c;医疗机构也可以医疗小程序提供更便捷的预约服务&#xff0c;优化患者体验。 医疗小程序的好处 提升服务质量…

使用element-ui的滚动条

1.把想要出滚动条的内容放在下边标签里即可&#xff1a; <el-scrollbar style"height:100%;width:100%"></el-scrollbar>2.如果不想要横向的滚动条&#xff0c;添加css&#xff1a; .el-scrollbar__wrap {overflow-x: hidden; }3.如果相让滚动条一直显…

C# List 详解六

目录 35.MemberwiseClone() 36.Remove(T) 37.RemoveAll(Predicate) 38.RemoveAt(Int32) 39.RemoveRange(Int32, Int32) 40.Reverse() 41.Reverse(Int32, Int32) C# List 详解一 1.Add(T)&#xff0c;2.AddRange(IEnumerable)&#xff0c;3…

css——box-sizing属性

含义 盒子模型由四部分构成&#xff0c;外边距(margin), 边框(border),内边距(padding), 内容content box-sizing 就是指定盒子的大小和结构的。 box-sizing: content-box; //默认值 内容真正宽度 设置的宽度box-sizing: border-box; // 内容真正宽度width 设置的width- 左右p…

ChatGPT应用|科大讯飞星火杯认知大模型场景创新赛开始报名了!

ChatGPT发布带来的 AI 浪潮在全球疯狂蔓延&#xff0c;国内掀起的大模型混战已经持续半年之久&#xff0c;国产大模型数量正以惊人的速度增长&#xff0c;据不完全统计&#xff0c;截止7月14号已经达到了111个&#xff0c;所谓的“神仙打架”不过如此了吧。 &#xff08; 包括但…

【Hammerstein模型的级联】快速估计构成一连串哈默斯坦模型的结构元素研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码实现 &#x1f4a5;1 概述 在许多振动应用中&#xff0c;所研究的系统略微非线性。Hammerstein模型的级联可以方便地描述这样的系统。Hammerstein提供了一种基于指数正弦…

【Matlab】基于径向基神经网络的数据分类预测(Excel可直接替换数据)

【Matlab】基于径向基神经网络的数据分类预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码6.完整代码7.运行结果1.模型原理 基于径向基神经网络(Radial Basis Function Neural Network,RBFNN)的数据分类预测是一种基于神经网络的分类模型…

Windows Server 2012 搭建网关服务器并端口转发

需求 使用 Windows server 作为Hyper-V 虚拟出许多虚拟机&#xff0c;基本上都分配了内网地址&#xff0c;现在需要这些虚拟机访问外网&#xff0c;或者外网直接访问这些虚拟机&#xff0c;必须配置一个网关服务器。我决定直接使用 Windows 的远程访问中的 NAT 服务来完成。 …

PHP注册、登陆、6套主页-带Thinkphp目录解析-【强撸项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图主页注册&#xff0c;登陆 phpStudy 设置导数据库项目目录如图&#xff1a;代码部分&#xff1a;控制器前台的首页 其它配套页面展示直接给第二套方案的页面吧第三套…

如何安装 MySQL 客户端 - Mac, Ubuntu, CentOS 或 Windows

官方的 MySQL 客户端 mysql&#xff0c;也被称为 MySQL CLI&#xff0c;是个可以和你的 MySQL 服务器进行交互的命令行工具。 本文介绍了如何分别在 Mac, Ubuntu, Debian 和 Windows 上安装 mysql。 准备工作 首先&#xff0c;确认一下你之前是否安装过某个 MySQL 客户端。如…

【云原生】Kubernetes工作负载-StatefulSet

StatefulSet StatefulSet 是用来管理有状态应用的工作负载 API 对象 StatefulSet 用来管理某 Pod 集合的部署和扩缩&#xff0c; 并为这些 Pod 提供持久存储和持久标识符 和 Deployment 类似&#xff0c; StatefulSet 管理基于相同容器规约的一组 Pod。但和 Deployment 不同…

【Vue3】computed 计算属性

computed 基础语法 <template><div><div>性&#xff1a;<input v-model"firstName" type"text"></div><div>名&#xff1a;<input v-model"lastName" type"text"></div><div>…

Android版本的发展4-13

Android 4.4 KitKat 1、通过主机卡模拟实现新的 NFC 功能。 2、低功耗传感器&#xff0c;传感器批处理&#xff0c;步测器和计步器。 3、全屏沉浸模式&#xff0c;隐藏所有系统 UI&#xff0c;例如状态栏和导航栏。它适用于鲜艳的视觉内容&#xff0c;例如照片、视频、地图、…

API自动化测试总结

目录 Jmeter是怎么做API自动化测试的&#xff1f; Jmeter中动态参数的处理&#xff1f; 怎么判断前端问题还是后端问题&#xff1f; 详细描述下使用postman是怎么做API的测试的&#xff1f; 资料获取方法 Jmeter是怎么做API自动化测试的&#xff1f; 1、首先在JMeter里面…

Spring AOP(面向切面编程)的详细讲解

1.什么是 AOP&#xff1f; AOP&#xff08;Aspect Oriented Programming&#xff09;&#xff1a;⾯向切⾯编程&#xff0c;它是⼀种思想&#xff0c;它是对某⼀类事情的集中处理 AOP是一种思想&#xff0c;而Spring AOP是一个实现了AOP的思想框架&#xff0c;他们的关系和IOC…

git实战

git实战 第一章 快速入门 1.1 什么是git git是一个分布式的版本控制软件。 软件&#xff0c;类似于QQ、office、dota等安装到电脑上才能使用的工具。版本控制&#xff0c;类似于毕业论文、写文案、视频剪辑等&#xff0c;需要反复修改和保留原历史数据。分布式 - 文件夹拷贝…

rk3588 编译(使用github公版源码)和烧录(sd、emmc)

使用 github 上的代码进行编译 https://github.com/rockchip-linux/rkbin/tree/master https://github.com/rockchip-linux/u-boot/tree/next-dev https://github.com/rockchip-linux/kernel/tree/develop-5.10 下载他们的压缩包&#xff0c;自行解压&#xff0c;解压后把文件夹…

RocketMQ教程-(4)-领域模型概述

Apache RocketMQ 是一款典型的分布式架构下的中间件产品&#xff0c;使用异步通信方式和发布订阅的消息传输模型。通信方式和传输模型的具体说明&#xff0c;请参见下文通信方式介绍和消息传输模型介绍。 Apache RocketMQ 产品具备异步通信的优势&#xff0c;系统拓扑简单、上下…

Java-IDEA好用的插件

Lombok&#xff0c;结合一些列注解&#xff0c;帮我们轻松解决重复编写实体类get、set、toString、build、构造方法等麻烦 Chinesepinyin-CodeComp&#xff0c;让界面汉化&#xff0c;使用起来更有亲和力 MyBatisX,点击小鸟图标&#xff0c;轻松再Mapper接口与xml文件之间实…

无涯教程-html(val)

html(val)方法设置每个匹配元素的html内容。此属性在XML文档上不可用&#xff0c;但适用于XHTML文档。 html( val ) - 语法 selector.html( val ) 这是此方法使用的所有参数的描述- val - 任何字符串 html( val ) - 示例 以下示例将获取第一段的HTML内容&#xff0c;并…