赞
踩
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
今天自动驾驶之心很荣幸邀请到夏嵩杰来分享Autoware.ai-1.14.0超详细的安装教程!如果您有相关工作需要分享,请在文末联系我们!
作者 | 夏嵩杰
编辑 | 自动驾驶之心
本文档以逻辑状态进行安装,会遇到的错误也是大家最大可能遇到的,希望能帮助大家学习!
- 首选 i7 处理器,i5 也可以(8核)
- 8GB - 32GB 运行内存
- 至少 30GB 硬盘存储空间(推荐使用固态硬盘)
- 显卡 NVIDIA GTX GeForce GPU(980M或更高性能)
- i5(8核)
- 8GB 运行内存
- 120GB 硬盘存储空间
- 显卡 NVIDIA GTX GeForce 1050 Ti
安装可以分为docker和源码安装,两者都可以,根据习惯或安装过程是否顺利进行选择。要注意的是一定要有gpu驱动!!!
运行以下指令
- sudo apt-get update
- sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo apt-key fingerprint 0EBFCD88
-
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update
- sudo apt-get install docker-ce
docker版本至少19以上。
打开系统的软件与更新,选择附加驱动,等待可选驱动加载
加载完成:
这里我选择的是470,对应的cuda版本是11.4。选择完点击应用即可,然后在终端输入nvidia-smi可看到:
即完成。
运行以下指令:
- curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
- distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
- curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
- sudo apt-get update
- sudo apt-get install -y nvidia-docker2
- git clone https://gitlab.com/autowarefoundation/autoware.ai/docker.git
- cd docker/generic
- ./run.sh
一般master是最新的1.14版本。在执行./run.sh
时,通常会要求root权限,如果不想每次运行docker都要用root权限,可以用下面的方法配置:
- sudo groupadd docker
- sudo usermod -aG docker $USER
- newgrp docker
耐心等待下载,需要下载一段时间了,下载完成之后可能会报一个错误:usermod: UID '0' already exists:
需要手动修改一下刚才运行的run.sh脚本,加入这一段内容:
- USER_ID="$(id -u)"
- if [ USER_ID != 0 ]; then
- USER_ID=1000;
- else
- USER_ID=${USER_ID};
- fi
注意,安装完会在下载autoware-docker相应路径生成shared_dir文件夹,方便传文件到docker。
- cd /home/autoware/Autoware (此目录为工程目录)
- colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
可以不用编译,docker版本已经编译好了。
- source install/setup.bash
- roslaunch runtime_manager runtime_manager.launch
ubuntu20编译源码会出现一堆版本问题,建议使用ubuntu18.04,还有安装一下cuda驱动,安装方式如docker里面介绍。
- 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
- rosdep update
- rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
如果rosdep update报错:index-v4.yaml文件找不到
解决方法参考:https://zhuanlan.zhihu.com/p/479551543
如果出现以上错误,缺什么安装什么,比如 sudo apt-get install ros-melodic-rosbridge-server。
最后成功。
- python2和python3相互切换
- sudo update-alternatives --config python
切换为python2.7
- 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
- pip install catkin_pkg -i https://pypi.tuna.tsinghua.edu.cn/simple/
- sudo apt install libglew-dev
sudo apt-get update
我已总结好,直接运行
sudo apt-get install -y ros-melodic-jsk-recognition-msgs ros-melodic-jsk-rviz-plugins ros-melodic-nmea-msgs ros-melodic-rqt-gui ros-melodic-rqt-gui-py ros-melodic-nmea-navsat-driver ros-melodic-velodyne-pointcloud ros-melodic-grid-map-cv ros-melodic-grid-map-msgs ros-melodic-grid-map-ros ros-melodic-automotive-navigation-msgs ros-melodic-rosbash ros-melodic-autoware-msgs ros-melodic-automotive-platform-msgs ros-melodic-qpoases-vendor ros-melodic-xacro
sudo apt-get install -y ros-melodic-controller-manager ros-melodic-robot-state-publisher ros-melodic-joint-state-controller ros-melodic-gps-common ros-melodic-geodesy
我用的是5.9版本,网上资料比较多。
下载链接:https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz 下载完成后,在压缩包所在目录打开终端
- //解压
- sudo tar -xzvf eigen-3.3.7.tar.gz
-
- //安装
- cd eigen-3.3.7
- mkdir build
- cd build
- cmake ..
- sudo make install
安装后,头文件安装在/usr/local/include/eigen3/
可以参考:https://blog.csdn.net/qq_58879770/article/details/127037125
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
默认会在gpu上编译
问题1.:
编译到ros_observer时,会报出如下错误:/usr/bin/ld: CMakeFiles/ros_observer.dir/src/ros_observer.cpp.o: undefined reference to symbol ‘pthread_mutexattr_settype@@GLIBC_2.2.5’ //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
解决:
打开autoware/common/ros_observer/CMakeLists.txt,在所有的target_link_libraries中,加入libpthread.so.0,再编译即可通过
问题2.:
执行编译ndt_gpu会出现错误:GPU support on Melodic requires Eigen version>= 3.3.7
解决:
在/usr目录下搜索Eigen3Config.cmake文件,/usr/lib/cmake/eigen3目录下与/usr/local/share/eigen3/cmake目录下存在这个文件,区别在于:
/usr/local/share/eigen3/cmake目录下的Eigen3Config.cmake文件第32行为:set (EIGEN3_VERSION_STRING "3.3.7")
/usr/lib/cmake/eigen3目录下的Eigen3Config.cmake文件第42行为:set (EIGEN3_VERSION_STRING "3.3.4")
(上面的区别请参考自己的实际文件)
所以只需要将/usr/lib/cmake/eigen3下的全部文件保存到别处后删除,然后将/usr/local/share/eigen3/cmake下的全部文件拷贝到/usr/lib/cmake/eigen3目录下即可。
比如我这里将原先的文件保存在backup-eigen3.3.4,把/usr/local/share/eigen3/cmake下的全部文件拷贝到/usr/lib/cmake/eigen3目录
重新执行编译命令。
我是裸机安装的,所以大家跟着我步骤,应该不会出现大问题。
- source install/setup.bash
- roslaunch runtime_manager runtime_manager.launch
运行的效果根dokcer的一样,会出现ui界面。
1.运行的时候也会有一点小错误,比如print要改成python3的print,还有一些python的包要pip install一下,注意运行也要在python2.7下的环境运行。
2.我还出现了一个错误:
sudo: 没有终端存在,且未指定 askpass 程序
网上的解决方法:
将当前用户设置为不需要密码的方式,否则会遇到如下错误,sudo:没有终端存在,且未指定askpass程序
sudo visudo
在%sudo ALL=(ALL:ALL) ALL下面添加一行
username ALL=(ALL) NOPASSWD: ALL
发现我问题没有解决,不过不影响运行。
到这里安装步骤基本介绍完啦,接下来我们介绍对ui界面进行简介。
- cd ~/autoware-1.14/install/runtime_manager/share/runtime_manager/scripts
- gedit run
修改如下内容:
${OPTION_COMMAND}="bash -c 'source ~/autoware-1.14/install/setup.bash;
(https://www.guyuehome.com//Uploads/Editor/202204/20220415_83868.png)
文件位置:autoware-1.14/install/vehicle_description/share/vehicle_description/launch/vehicle_model.launch
打开后修改其中的文件:把‘state_publisher’改为‘robot_state_publisher’
启动autoware
- source install/setup.bash
- roslaunch runtime_manager runtime_manager.launch
(1) Simulation
播放录制的bag数据,包括点云和路点等。加载下载好的示例数据,点击Play按钮,然后点Pause。注意这里一定要先点一下Play!然后再进行后面的操作,不要等全部设置完才回来点。这样会导致timestamp的错误,使得demo无法正常运行。
点击autoware界面中的Rviz按钮,会打开默认配置的Rviz,在打开的Rviz界面左上角点击File➡Open Config,加载如下的配置文件:
/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/default.rviz
这个rviz已经添加好相关的话题了:
(2) Quick Start
加载每个模块对应配置launch文件,进行rviz的显示配置。
点击Map右侧的Ref按钮,选择加载地图
点击Sensing记载启动激光雷达及标定文件
点击Localization加载雷达与汽车base_link的坐标变换、加载汽车模型、点云降采样、gps信息转换和ndt匹配定位程序。
其他launch文件文件类似。
(3) 其他Tab需要配合仿真环境或实车去操作理解。
(1)这里开启Map按钮报错:
就是没有把data文件夹放到.autoware里面。
(2)
解决办法就是找到‘state_publisher’并用‘robot_state_publisher’去代替它。
文件位置:autoware-1.14>install>vehicle_description>share>vehicle_description>launch>vehicle_model.launch
打开后修改其中的文件:把‘state_publisher’改为‘robot_state_publisher’
(3)
启动 runtime_manager 后疯狂报如下错误
Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 16765, inlambda event: event.callable(*event.args, **event.kw) ) File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 9207, in SetLabel return core.Window_SetLabel(*args, **kwargs) File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1253-1254: invalid continuation byte
可以看到是 Python 的编码问题,直接将系统语言更改为英语解决
- wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz
- wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz
一定要注意解压文件是在.autoware/路径下的,不然后续运行launch文件时,会提示找不到文件:.autoware/data/tf/tf.launch。
1在Runtime Manager中选中“Simulation”Tab,在底下的文件选择框中选取从“sample_moriyama_data.tar.gz”中解压出来的rosbag文件,设置start Time为140s,点击下面的“Play”按键即可开始播放Demo中所录制的自动驾驶过程,但这里我们需要在2s后点击“Pause”,如图所示,原因是我们还需要设置其他一些数据和参数。
2.在“Setup”Tab中设置TF和车辆模型,即点击“TF”按钮及“Vehicle Model”按钮即可。正确点击后了两个按钮应该是处于深色的状态。
在“Map”Tab中选择地图文件和TF设置文件。在“Point Cloud”后面的文件选择框内载入点云地图文件,相关的文件存储在“sample_moriyama_data.tar.gz”文件所解压出来的文件中,具体位置为“data/map/pointcloud_map”,需要选中文件夹内所有的文件。然后点击“Point Cloud”按钮使之变为下图所示的深色状态。在“TF”按钮后面的文件选择框内载入tf.launch文件。我选用autoware-1.14/src/autoware/documentation/autoware_quickstart_examples/launch里面的,选中tf_local.launch文件。然后点击“TF”按钮使之变为下图所示的深色状态。
在“Sensing”Tab中勾选“voxel_grid_filter”,如下图所示。
5.在“Computing”Tab中勾选“nmea2tfpose”“ndt_matching”,如下图所示。
开启RViz可视化工具,回到“Simulation”Tab,点击底下的“RViz”按钮,使之成为深色的状态,如下图所示。
设置RViz,首先选择RViz配置文件,在菜单中选择“File–>Open Config”,选择“autowar-1.14/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/”下的“default.rviz”文件。
8.回到Runtime Manager,进入到“Simulation”Tab页,点击“Pause”按钮,这时Demo会结束暂停状态,继续播放rosbag文件。稍等片刻,就可以在Rviz中看到点云地图和机器人行驶的画面了。
bug:
车飘。
成功解决:将sample_moriyama_data里面的tf.launch改为autoware自带的tf_local.launch。并把Start Time设置为140(其实多少没有多大关系),让数据先跑会,稳定一下。
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
视频官网:www.zdjszx.com② 国内首个自动驾驶学习社区
近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。