jetson nx部署Autoware.ai
硬件平台:jetson nx;系统ubuntu18.04;ros-melodic;opencv3.4.3;GCC7、G++7;QT5;cuda10.2;tensorrt7;autoware1.14
1、安装ros-melodic
参考博客:https://zhuanlan.zhihu.com/p/105248080
2、安装opencv3.4.3
参考博客:https://blog.csdn.net/a_lien/article/details/103615619
3、安装cuda10.2
参考博客:https://blog.csdn.net/z1872385/article/details/123522306
4、安装qt5
1)sudo apt-get install qtbase5-dev #安装qt5
2)sudo apt-get install qt5-default qtcreator -y #安装QTcreator
5、安装eigen3.3.9 (autoware1.14需要3.3.7以上的eigen)
1)卸载原有版本
sudo rm -rf /usr/include/eigen3
sudo rm -rf /usr/lib/cmake/eigen3
sudo rm -rf /usr/local/include/eigen3
sudo rm -rf /usr/share/doc/libeigen3-dev
sudo rm -rf /usr/local/share/pkgconfig/eigen3.pc /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums
sudo rm -rf /usr/local/lib/pkgconfig/eigen3.pc
sudo rm -rf /usr/local/share/eigen3
2)官网下载所需版本
https://gitlab.com/libeigen/eigen/-/releases
3)解压编译
unzip eigen-3.3.9.zip
cd eigen-3.3.9
mkdir build
cd build
cmake …
sudo make install
sudo cp -r /usr/local/include/eigen3 /usr/include
4)查看eigen版本
pkg-config --modversion eigen3
6、安装autoware 1.14
1)autoware 1.14 百度云安装包 链接:
https://pan.baidu.com/s/1EIHyVpMCzFcHisaQ5mgUpQ提取码:8gll
2)安装系统依赖
2.1 sudo apt update
2.2 sudo apt install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin
2.3 sudo apt install -y python3-pip python3-colcon-common-extensions
python3-setuptools python3-vcstool
2.4 pip3 install -U setuptools
3)下载源码
3.1 mkdir -p autoware.ai/src
3.2 cd autoware.ai
3.3 下载上述百度云,解压
4)配置安装环境
4.1 rosdep update
4.2 rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
7、配置过程中会有报错
1)若是安装的cuda10.2,需要修改配置文件
编译安装CUDA: AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
2)链接openCV路径出现问题
解决方法:用pkg-config --cflags opencv 查找opencv的路径
找到该路径按对应的cmake修改
3)问题:fails to build: calibration_publisher. undefined reference to cv::read
解决方法:修改calibration_publisher/CMakeLists.txt增加${OpenCV_LIBS};修改calibration_publisher/package.xml 增加libopencv-dev
4)缺少某些组件(会有很多类似的问题,方法都一样)![在这里插入图片描述](https://img-blog.csdnimg.cn/fab043a672554da6abe50a4965ad2ffc.png)
解决方法:sudo apt-get install ros-melodic-jsk-recognition-msgs
5)CV_WINDOW_AUTOSIZE ,CV_LOAD_IMAGE_UNCHANGED 没有被声明
原因:opencv3只有有些宏定义改了
解决:根据报错找到对应的文件,加入命名空间using namespace cv;
将CV_WINDOW_AUTOSIZE改为WINDOW_AUTOSIZE
将CV_LOAD_IMAGE_UNCHANGED改为 IMREAD_UNCHANGED
将CV_LOAD_IMAGE_GRAYSCALE改为 IMREAD_GRAYSCALE
6)找不到“CV_XXX“was not declared in this scope
解决:加入对应的头文件 #include “opencv2/imgproc/imgproc_c.h”
7)opencv 出现找不到openv_contrib模块
原因:是由于opencv3之后由于专利原因,opencv没有把这个加入到源码中。
方法一:需要下载源码编译:
https://blog.csdn.net/bj233/article/details/113351023
里面有一些缺失文件下载链接:
https://pan.baidu.com/s/1mNd9fh1f1YP8DSG5ePDOHg 提取码:nep7(未能解决)
方法二:更改版本
原因在于autoware不兼容高版本的opencv将camera_lidar_calibration_node.cpp中把等于版本3,换成大于(可以解决,没准nx自带的opencv4用这个方法也可以,可以尝试下)
8)有关于calibration_publisher的错误
解决方法:修改文件:autoware.ai/src/autoware/utilities/calibration_publisher/CMakeLists.txt
添加如下
修改:package.xml
9)出现tensorrt版本过高问题
查看tensorrt版本,需要版本为7以下,插到的版本为8,报错
解决办法:降低tensorrt版本 安装tensorrt7.2_cuda10.22_arm.deb
参考博客:https://blog.csdn.net/suixin19890311/article/details/125762692
由于去NVIDIA官网下载很慢,附上百度云链接
链接:https://pan.baidu.com/s/1THhh-P7ytM71HZCFtoJUHg 提取码:c8dc
下载完之后进行sudo dpkg -i * 所有deb文件的安装,至此tensorrt7安装完成
10) 出现找不到某个定义CV_WINDOW_AUTOSIZE ,CV_LOAD_IMAGE_UNCHANGED 没有被声明
解决方法: 根据报错找到对应的文件,加入命名空间using namespace cv;
将CV_WINDOW_AUTOSIZE改为WINDOW_AUTOSIZE
将CV_LOAD_IMAGE_UNCHANGED改为 IMREAD_UNCHANGED
将CV_LOAD_IMAGE_GRAYSCALE改为 IMREAD_GRAYSCALE