Jetson nano(aarch64)部署autoware自动驾驶平台
因为本人在部署阶段搜索到的资料较少,比较辛苦,走了许多弯路,所以进行了一些资料的整合与自己的一些想法的记录,谨做记录、参考。
基本的环境(opencv,qt5,eigen3.3.7,cuda,)安装好后采用源码编译方式部署
使用:jetson nano(4G)、ubuntu18.04LTS、ros-melodic
环境部署阶段
opencv安装
本人先同时装了opencv和ros,导致版本冲突,才发现ros-melodic内有opencv(默认安装4点多版本),只好卸掉自己装的,但编译的过程中ros的opencv版本也有坑,下文会提到。
qt5安装
参考官方指导:http://www.jetsonhacks.com/2017/01/31/install-qt-creator-nvidia-jetson-tx1/
先输入:
sudo apt-get install qt5-default qtcreator -y
然后按官方教程配置下qt软件
cuda
万事开始之前,一定要检查nano的cuda是10.2的还是10.0的(10.2的建议重烧镜像,貌似可以通过jetpack的重装来装10.0,但我没找到,重装镜像可以找jetpack4.2、4.3的,内置cuda10.0,我的是jp是4.6cuda是10.2)cuda重装了后就斜入环境变量,刷新一下就可以使用了。
autoware编译阶段
报错一
(由于opencv版本(3.2.0)不符合编译要求):主要是cv_bridge、libopencv_objectect.so.3.2.0、autoware_health_checker(部分)之类的错误
解决办法(亲测有效)
1、卸载现有版本的opencv
sudo apt-get purge libopencv-dev
2、这个时候需要修改一个系统文件,就是这个文件导致apt安装的opencv版本是4.0版本而不是ubuntu18.04系统默认的3.2.0版本,文件路径是:/etc/apt/sources.list.d/nvidia-l4t-apt-source.list
打开之后就两行东西,注释掉里面的两行就行
3.apt update
4.sudo apt-get install libopencv-dev,就可以成功安装opencv3.2.0版本了
报错二
cuda版本要求10.0,我是10.2,就重新烧了镜像,呜呜呜,从头来。
报错三
运存不够用,报低内存警告、卡机,报下列错
本来是想着多编译几次,但都卡在第92个文件上,就想着没那么简单
下文总结:调,报错,调。。。。。
就去了解了一下ros2所使用的colcon build,
官方提供的命令是这个:
AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
但我用这条命令是一直编译过不去,卡机
然后就想着有没有一种可能colcon编译时也存在(make -j8)这样东西的,提升线程,可以编译提速的好东西
还真就找到了,在原命令下,加入-DCMAKE_CXX_FLAGS="–param ggc-min-expand=1"参数选项,(还是要好好了解下ros2的相关东西,不然会这坑还真过不去了)
AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="--param ggc-min-expand=1"(这里的1可调,看配置,自己试试)
但是还是在后续文件编译中卡住
查了一下,看了别人的处理方法是说:
一个是不使用显示屏桌面,开机后直接使用ssh远程登录操作,能节约一个多g内存,一般也够用了。(亲测有效)。也可以增加swap虚拟内存(准确说叫交换分区)
还是会卡,甚至崩掉,而且就跟着几根文件过不去,
lattice_planner
lidar_localizer
points_preprocessor
trafficlight_recognizer
以为他们四个堆在一起会出错,所以就想着去逐个击破,还是利用colcon build参数设置一下,对单个文件进行编译(–packages-select lattice_planner)
AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select waypoint_planner
报错四
缺包,补上:
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by “jsk_rviz_plugins”
with any of the following names:
jsk_rviz_pluginsConfig.cmake
jsk_rviz_plugins-config.cmake
sudo apt-get install ros-melodic-jsk-rviz-plugins
参考:
https://blog.csdn.net/jiangchao3392/article/details/73822655)
Jetson Xavier上编译autoware1.14.0,简单,快速,完美安装! - Xiangzh - 博客园 (cnblogs.com)
(12 封私信 / 51 条消息) 在使用英伟达开发板过程中,系统老是弹出“Low Memory Warning”,这是什么原因? - 知乎 (zhihu.com)
(63条消息) build colcon 编译指定的包 - CSDN
https://blog.csdn.net/CCCrunner/article/details/108866943