需要部署的的相关库有 osqp、eigen、cppad、ipopt、yaml、glog
部署代码在域控的主板,主板上也会部署感知的代码,部署感知代码时,yaml、glog库就已经装好了,所以需要先检查域控上已经有的库,避免重复安装,本文的安装是在车辆域控无法上网翻墙的条件下,采用的办法是先下载好安装包,到车辆域控上编译,需要注意第一点是提前下载安装包的过程需要在可以翻墙的域控中,安装包在git的过程中会自动选择版本,如果在电脑中下载,会报版本不匹配的错误。
在没有网络时,只执行编译部分。
OSQP库(Note:必须安装和使用0.4.1版本)
# (1)安装命令
sudo git clone --recursive https://github.com/oxfordcontrol/osqp
cd osqp/
git checkout v0.4.1
git submodule update --init --recursive
mkdir build
cd build/
cmake ..
sudo make install
eigen库
sudo apt-get install libeigen3-dev
/usr/include/eigen3
git clone https://gitlab.com/libeigen/eigen.git
cd eigen
git checkout -p 3.3.4 //输入需要安装的版本
mkdir build
cd build
cmake…
sudo make install
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
注意二 ipopt库安装需要在cppad库前,否则会报库连接冲突的错误
ipopt库
安装依赖
sudo apt-get install gcc g++ gfortran git patch wget pkg-config liblapack-dev libmetis-dev libblas-dev
创建一个存放所有跟Ipopt相关的文件夹,便于管理
mkdir ~/Ipopt_pkg
cd Ipopt_pkg
安装ASL
git clone https://github.com/coin-or-tools/ThirdParty-ASL.git
cd ThirdParty-ASL
sudo ./get.ASL
sudo ./configure
sudo make
sudo make install
cd ..
安装HSL
git clone https://github.com/coin-or-tools/ThirdParty-HSL.git
cd ThirdParty-HSL
# 接下来需要下载coinhsl文件,并解压到ThirdParty-HSL目录下
下载coinhsl文件,并解压到ThirdParty-HSL目录下
在ThirdParty-HSL目录下,执行以下命令
sudo ./configure
sudo make
sudo make install
cd ..
安装MUMPS
git clone https://github.com/coin-or-tools/ThirdParty-Mumps.git
cd ThirdParty-Mumps
sudo ./get.Mumps
sudo ./configure
sudo make
sudo make install
cd ..
安装Ipopt
git clone https://github.com/coin-or/Ipopt.git
cd Ipopt
mkdir build
cd build
sudo ../configure
sudo make
sudo make test
sudo make install
完善环境
cd /usr/local/include
sudo cp coin-or coin -r
sudo ln -s /usr/local/lib/libcoinmumps.so.3 /usr/lib/libcoinmumps.so.3
sudo ln -s /usr/local/lib/libcoinhsl.so.2 /usr/lib/libcoinhsl.so.2
sudo ln -s /usr/local/lib/libipopt.so.3 /usr/lib/libipopt.so.3
cppad库
sudo apt-get install cppad
报错解决办法
1编译ipopt报错
checking for package HSL... yes
checking for function ma27ad_ in -L/usr/local/lib -lcoinhsl ... no
checking for function ma27ad in -L/usr/local/lib -lcoinhsl ... no
checking for function MA27AD_ in -L/usr/local/lib -lcoinhsl ... no
checking for function MA27AD in -L/usr/local/lib -lcoinhsl ... no
checking for function ma27ad__ in -L/usr/local/lib -lcoinhsl ... no
checking for function ma27ad_ in -L/usr/local/lib -lcoinhsl ... no
checking for function MA27AD__ in -L/usr/local/lib -lcoinhsl ... no
checking for function MA27AD_ in -L/usr/local/lib -lcoinhsl ... no
configure: error: Provided package HSL is not working or does not contain MA27. See config.log for details on failed checks
解决方法
去到ipopt文件夹下configure文件中找到
hsl_pcfiles="coinhsl"
将其改为:
hsl_pcfiles="libcoinhsl"
2 编译control 时,control_node.cpp文件中FLAGS_max_log_size = 10;会报错,将其注释
参考文献
1 Linux | Ubuntu 20.04安装ipopt和cppAD | 安装全流程+报错解决
2 Provided package HSL is not working or does not contain MA27. See config.log for details ...