最近又太忙了,嗨,每次换工作开始都要忙上一段时间,博客好久没更新了,用matlab做的混合A星泊车程序与行人轨迹预测、强化学习DQN控制交通灯的代码一直没时间放出来,忙完这段时间抽个时间写个说明文档一起放出来,现在就来记录一下Autoware的过程。
1.显卡驱动安装:
建议旧电脑的显卡驱动采用这种方式安装,因为在官网下载新的驱动安装会报:
verifying archive integrity... Error in check sums xxxxxxxx xxxxxxxx,安装不成功。
这种解决办法就是按照下面的方法安装即可解决。新的显卡就在官网下载新的驱动安装就可以了(网上教程也很多,这里就不说了)。
在终端输入:ubuntu-drivers devices
,可以看到如下界面:
== /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0 ==
model : GM108M [GeForce 940MX]
modalias : pci:v000010DEd0000134Dsv0000103Csd00008214bc03sc02i00
vendor : NVIDIA Corporation
driver : xserver-xorg-video-nouveau - distro free builtin
driver : nvidia-384 - distro non-free recommended
从上图可以看出,我的显卡是:GM108M [GeForce 940MX],推荐安装的版本号是:nvidia-384 - distro non-free recommended。
如果同意安装推荐版本,那我们只需要终端输入:sudo ubuntu-drivers autoinstall
就可以自动安装了。
安装完后重启电脑
sudo reboot
使用指令:
nvidia-smi
如果出现下面的提示,说明驱动安装成功:
Wed Dec 16 22:03:43 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.130 Driver Version: 384.130 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 940MX Off | 00000000:01:00.0 Off | N/A |
| N/A 55C P0 N/A / N/A | 180MiB / 4044MiB | 14% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1052 G /usr/lib/xorg/Xorg 142MiB |
| 0 2167 G compiz 34MiB |
| 0 2570 G /usr/lib/firefox/firefox 1MiB |
+-----------------------------------------------------------------------------+
2.cuda 安装
载NVIDIA CUDA 9.0 Toolkit
- 去这个网站根据自己情况下载NVIDIA CUDA 9.0 Toolkit:
https://developer.nvidia.com/cuda-toolkit-archive
这次安装是先安装了自己下载的nvidia驱动,然后才进行CUDA 9.0的安装,所以跟官方的教程不太一样。主要差别在于不需要在安装CUDA时自动安装显卡驱动了,所以询问是否安装显卡驱动时,回复no。
$ sudo sh cuda_9.0.176_384.81_linux.run --no-opengl-libs
与安装显卡驱动原理相同,不安装OpenGL文件,注意这里是-libs。如果没加参数,后续询问时也一定不能安装OpenGL,否则会有问题。
之后,按照提示安装即可,具体选择如下:
accept # 表示同意安装
n # 因为已经提前安装了显卡驱动,所以这里不要安装显卡驱动
y # 安装CUDA 9.0 Toolkit
# 安装到默认目录
y # 创建安装目录的软链接
y # 事实上这里这里选择n,即不复制Samples也可以,因为安装目录下有/samples。以防万一还是选择y吧此时CUDA 9.0 已经安装完毕,接下来设置下环境变量即可,建议添加到全局变量中:
$ sudo gedit /etc/profile
在最后加上:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
然后source一下:
$ source /etc/profile # 临时生效
重启电脑,永久生效。
输入指令检查一下,如果显示下面图片的内容,说明CUDA 9.0安装成功:
$ nvcc --version
出现如下信息:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
- 编译并测试设备:
$ cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery
- 编译并测试带宽:
$ cd ../bandwidthTest
$ sudo make
$ ./bandwidthTest
如果显示的是关于GPU的信息,最后的结果都是Result = PASS
则说明安装成功了。
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce 940MX"
CUDA Driver Version / Runtime Version 9.0 / 9.0
CUDA Capability Major/Minor version number: 5.0
Total amount of global memory: 4044 MBytes (4240965632 bytes)
( 3) Multiprocessors, (128) CUDA Cores/MP: 384 CUDA Cores
GPU Max Clock rate: 1242 MHz (1.24 GHz)
Memory Clock rate: 900 Mhz
Memory Bus Width: 64-bit
L2 Cache Size: 1048576 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Supports Cooperative Kernel Launch: No
Supports MultiDevice Co-op Kernel Launch: No
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 9.0, NumDevs = 1
Result = PASS
3.Autoware代码安装
- 安装系统依赖:
$ sudo apt-get update
$ sudo apt-get install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin gksu
$ sudo apt-get 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://gitlab.com/autowarefoundation/autoware.ai/autoware/raw/1.12.0/autoware.ai.repos?inline=false"
- 下载源码
$ vcs import src < autoware.ai.repos
- 安装autoware依赖
$ rosdep update
$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
- 编译支持cuda
$ AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
下载数据地址,这个地址可以直接下载,网上好多地址连接的谷歌的,不翻墙根本下载不了。
下载3D点云.
$ wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz
2.下载 ROSBAG data (LiDAR: VELODYNE HDL-32E, GNSS: JAVAD GPS RTK Delta 3).
$ wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz
以下为个人记录没法进入界面插U盘安装驱动的部分指令
-
查看U盘
fidsk -l eg: Device Boot Start End Blocks Id System /dev/sdc1 * 1 2668 128016 6 FAT16 表示/dev/sdc1就是U盘所在设备
-
将U盘挂载
创建/mnt/usb目录,如果存在则不需要创建: cd /mnt mkdir usb 将U盘挂载到/mnt/usb目录下: sudo mount /dev/sdc1 ./usb cd usb|ls 显示U盘中的内容表示挂载成功,然后就可以讲重要的文件拷贝到/mnt/usb目录下了。
-
Linux下卸载U盘命令如下:
umount /mnt/usb