从零开始学习自动驾驶路径规划-环境配置
前面,每个人遇到的问题不一样,这里记录了配置步骤和目前遇到的问题,会持续更新报错解决方法。配置时有报错请认真看报错经验
环境配置步骤(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,也就是melodic和noetic。
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
找不到链接库,不管是ladolc,libqpOASES还是其他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待续