本文主要参考CSDN博文:工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行_m0_60355964的博客-CSDN博客_arm ubuntu
使用鱼香ROS的意见安装ROS命令:
wget http://fishros.com/install -O fishros && . fishros
第一次打开终端输入该命令选择[1]:一键安装:ROS,安装完成后再次输入该命令选择[3]:一键配置:rosdep,完成后再次输入该命令选择[4]:一键配置:ROS环境,之后就完成了ROS的安装。
官方下载链接:https://gitlab.com/libeigen/eigen/-/releases
不要安装新版本的,autoware在编译过程中可能会报错。
找到eigen3.3.7的压缩包下载下来
打开终端:
unzip eigen-3.3.7.zip
cd eigen-3.3.7
mkdir build && cd build
sudo cmake ..
sudo make -j6
sudo make install
官方下载链接:Releases - OpenCV
找到OpenCV3.4.5,点击Sources下载,也可以下载安装更低版本的,不要下载新版本的,可能会编译报错。
sudo apt-get update
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
如过出现以下报错:
解决方法:
sudo gedit /etc/apt/sources.list
在sources.list文件最后面添加:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
再次输入上面的命令:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
cd opencv-3.4.5
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j6
sudo make install
1.将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
2.执行此命令后打开的可能是一个空白文档,这个不需要管,只需要将一下语句加入最后即可:
/usr/local/lib
3.执行下面命令,使得刚才的配置生效
sudo ldconfig
4.配置bash
sudo gedit /etc/bash.bashrc
5.在打开的文件最后换行添加下面命令
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
6.保存,执行以下命令使得上面配置生效
source /etc/bash.bashrc
7.最后进行更新
sudo updatedb
1.进入到OpenCV-3.4.5目录的example_cmake目录
cd opencv-3.4.5/samples/cpp/example_cmake
2.执行下面命令
cmake .
3.执行下面命令
make
结果如下:
4.最后插上一个相机,执行./opencv_example,出现一个窗口,左上角为Hello OpenCV即安装成功
./opencv_example
Type1.2的potobuf版本为3.5.1,在编译Autoware的时候会报错,需要安装低版本的potobuf
下载地址:https://codeload.github.com/google/protobuf/zip/v3.0.0
在文件中解压,并cd到protobuf-3.0.0目录下
在终端中执行以下命令:
./configure CFLAGS="-fPIC" CXXFLAGS="-fPIC"
Make
sudo make install
./autogen.sh
但是会超时,下载失败,我挂了梯子还是失败,查看了该sh文件里面的代码,是到一个外网下载gmock-1.7.0.zip文件。既然下载失败,就github下载了
git clone https://github.com/paulsapps/gmock-1.7.0
将clone下来的文件夹改名为gmock,即
mv gmock-1.7.0 gmock #手动修改文件夹名的跳过此步骤
然后将此文件夹复制到./autogen.sh同级目录下,并修改./autogen.sh文件
# 注释掉此部分,此部分内容就是下载文件->解压->修改文件夹名的步骤,上面已经做过了
# Check that gmock is present. Usually it is already there since the
# directory is set up as an SVN external.
#if test ! -e gmock; then
# echo "Google Mock not present. Fetching gmock-1.7.0 from the web..."
# curl $curlopts -O https://googlemock.googlecode.com/files/gmock-1.7.0.zip
# unzip -q gmock-1.7.0.zip
# rm gmock-1.7.0.zip
# mv gmock-1.7.0 gmock
#fi
然后就可以按第2部分进行编译了
./autogen.sh
./configure CFLAGS="-fPIC" CXXFLAGS="-fPIC"
Make
sudo make install
sudo apt update
sudo apt install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin
sudo apt install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool
pip3 install -U setuptools
mkdir -p autoware.ai/src
cd autoware.ai
wget -O autoware.ai.repos https://raw.githubusercontent.com/Autoware-AI/autoware.ai/1.14.0/autoware.ai.repos
vcs import src < autoware.ai.repos
rosdepc update
rosdepc install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
colconc build --cmake-args -DCMAKE_BUILD_TYPE=Release
vcs import src < autoware.ai.repos这一部有可能会报错,一般为网络问题,可以多尝试几次
如编译过程中出现其他报错,请参考文章开头给出的博客链接查找解决办法。