自动驾驶Drive PX2开发环境配置


       前段时间在搭建一个比较高效的自动驾驶开发软硬件环境,大家都比较清楚开发自动驾驶的软件,经常需要到实车去调试和验证。显然笔记本比较合适,但是在Nvidia Dirve PX2的计算平台上开发,需要笔记本具有Nvidia GPU显卡功能,而且需要能安装DriveWorks开发软件,显存最好能大于2G(可以运行深度学习算法模型)。所以我们选择了一款Dell的Alienware笔记本带GeForce GTX 1070(预算有限不能1080Ti,不过已有一台带1080Ti的台式机供深度学习)。

       下面提到的各种软件配置基于如下硬件配置:
Dell Alienware GeForce GTX 1070: i7 CPU,256G SSD,1T HDD基本硬件配置,品牌机没有选择。

       最终目的: Ubuntu 16.04开发环境为主,Windows 10日常办公,两个OS同时使用。   

需要配置的软件:
Ubuntu 16.04: DriveWorks,CUDA,Nvidia驱动,ROS,PCL-1.8,OpenCV-3.3,VScode和其他开发工具。
Windows 10:Office365,SourceInsight4.0等。

一、多操作系统安装
  
      拿到的Dell Alienware笔记本电脑有预装的home版Win 10, 但是最好到Dell官网去制作一个U盘重新安装(笔者就踩过一个坑,拿到的笔记本是激活了几个月的,别人使用过的,然后装到Ubuntu16.04发现不能切换Nvidia显卡,仍然只能使用Intel集成显卡!)。重装Win10,最好把它安装到HDD机械硬盘中,SSD固态硬盘全部给Ubuntu 16.04:一Ubuntu开发为主,就算重装不影响win 10,二是SSD固态硬盘速度快,自动驾驶开发中传感器数据需要大量I/O。

      Win 10重新刷好后,需要做下面两件事,以使能安装其他OS:
1.1) 在管理者权限中启动cmd,然后调用安全模式启动: bcdedit /set {current} safeboot minimal;
1.2) 重启 F2进入BIOS;
1.3) “Advanced”-> "SATA Operation" -> 把“RAID”切换成“AHCI”,退出,保存;
1.4) 进入win 10 取消安全模式启动: bcdedit /deletevalue {current} safeboot.

2.1) 重启F2进入BIOS;
2.2) “Boot" ->"Secure Boot" ->改成”Disabled“;
2.3)请注意”Boot List Option“ 应该是”UEFI“(默认)。

然后取消HDD机械硬盘写保护,在磁盘管理中,压缩卷,C盘只留一部分空间80G,其他存储空间做成其他压缩卷,这样在Ubuntu 16.04中,读写机械硬盘不影响C盘内容。

     Ubuntu 16.04 安装,先使用UNetbootin( https://unetbootin.github.io/)制作Ubuntu 16.04的U盘启动盘。
插入启动U盘,F12,选择U盘启动,然后进入Ubuntu 16.04的桌面,有一个图标” Install Ubuntu 16.04.05 LTS“双击安装,然后其他的勿勾选,直到提示Ubuntu的不同安装类型,选择”Something else“,然后需要选择SSD固态硬盘,文件系统格式ext4。一路走下去安装完成。

二、Nvidia各种软件安装
      1) Nvidia驱动安装
           1.1) 到Nvidia官网: http://www.nvidia.com/Download/index.aspx?lang=en-us 选择对应驱动比如"Nvidia.run"。
           1.2) 修改grub:
                   打开/etc/default/grub, 在“ GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet splash", 添加了nomodeset,保存,然后执行:sudo update-grub。
     1.3) 由于Ubuntu 16.04自带开源Nvidia显卡驱动nouveau, 需要添加到黑名单中禁用。
          添加conf 文件:cat /etc/modprobe.d/blacklist-nouveau.conf:
             blacklist nouveau
             options nouveau modeset=0
          重新生成 kernel initramfs:
             sudo update-initramfs -u
          reboot重启。
     1.4)Ctrl+Alt+F1进入text模式,关闭X windows
          sudo service lightdm start
          sudo ./Nvidia.run --no-opengl-files 
          (不需要安装opengl,如果不加可能会出现Ubuntu登录界面循环重启,但是笔者的添加--no-opengl-files反而在nvidia-smi看不到compiz,然后打开firefox,没有使用nvidia显卡上,然后重装sudo ./Nvidia.run,未添加--no-opengl-files)
          注意:安装过程中,遇到有xconfig,选择no。
         
   2)安装cuda-8.0
     安装过程中,有一个千万注意,就是不需要再安装驱动,因为这个驱动比较旧,跟上面安装可能冲突。
   3)安装CuDNN(比如v5.1)
     

cuDNN安装(https://developer.nvidia.com/rdp/cudnn-download

$tar -zxvfcudnn-8.0-linux-x64-v5.1-prod.tgz 

$cd cuda

$sudocp lib64/lib*/usr/local/cuda/lib64/ 

$sudocp include/cudnn.h/usr/local/cuda/include/

更新软连接:

$cd /usr/local/cuda/lib64/

$sudochmod +r libcudnn.so.5.1.5

$sudo ln -sf libcudnn.so.5.1.5libcudnn.so.5

$sudo ln -sf libcudnn.so.5libcudnn.so

/etc/ld.so.conf.d/加入文件cuda.conf, 内容如下

$ cd /etc/ld.so.conf.d/

$ geditcuda.conf

      sudo service lightdm stop 重启。

       4) DriveWorks

             https://developer.nvidia.com/nvidia-drive-downloads下载,然后按照提示安装,下载大约30G,下载完成后自动安装,中途terminal需要提示输入密码。

三、安装各种基础依赖

  1. 安装通用依赖项

    安装blas

    sudo apt-getinstall libatlas-base-dev

    安装pip

    sudo apt-getinstall python-pip

    安装其他依赖

    sudo apt-get install libprotobuf-devlibleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-devprotobuf-compiler liblmdb-dev libgflags-dev libgoogle-glog-dev liblmdb-dev

     

    sudo apt-getinstall python-dev

    sudo apt-getinstall python-opencv

     

    安装Python模块

sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflagsCythonipython

四、 安装Opencv

OpenCV3.2需要安装低于3.0ffmpeg否则opencv3.2video会有问题(配置ffmpegno导致的)

最新版本FFmpeg 2.5.1 已经发布,Ubuntu 14.0416.04用户可通过PPA进行安装,打开终端,输入命令:

sudo add-apt-repositoryppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg

卸载ffmpeg命令:

sudo apt-get remove ffmpeg


安装opencv其他依赖

sudo apt install -y build-essential

cmake # GUI (if you want to use GTK instead of Qt, replace'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option inCMake):

sudo apt install -y qt5-default libvtk6-dev

# Media I/O:

sudo apt install -y zlib1g-dev libjpeg-dev libwebp-devlibpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev

# Video I/O:

sudo apt install -y libdc1394-22-dev libavcodec-devlibavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-devlibx264-dev yasmlibopencore-amrnb-dev libopencore-amrwb-dev libv4l-devlibxine2-dev

 

# Parallelism and linear algebra libraries:

sudo apt install -y libtbb-dev libeigen3-dev

安装gstreamer

apt-get 命令方式安装

sudo apt-get installlibgstreamer0.10-dev gstreamer-tools gstreamer0.10-tools gstreamer0.10-doc

sudo apt-get installgstreamer0.10-plugins-base gstreamer0.10-plugins-goodgstreamer0.10-plugins-ugly gstreamer0.10-plugins-badgstreamer0.10-plugins-bad-multiverse

apt-get install libgstreamer* // 该命令的目的是安装头文件;注意’*’

 

下载OpenCV3.2 https://github.com/opencv/opencv/releases/tag/3.2.0

        在Ubuntu14.04放置OpenCV3.2解压目录下,在/usr/local/目录下创建opencv320目录,存放安装后的opencv。

        sudomkdir -p build

       cd ./build

       cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/opencv320

    sudo make&make install

五、PCL-1.8

       先安装各种依赖项:

  1. sudo apt-get update  

  2. sudo apt-get install git build-essential linux-libc-dev  
  3. sudo apt-get install cmake cmake-gui   
  4. sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev  
  5. sudo apt-get install mpi-default-dev openmpi-bin openmpi-common    
  6. sudo apt-get install libflann1.8 libflann-dev  
  7. sudo apt-get install libeigen3-dev  
  8. sudo apt-get install libboost-all-dev  
  9. sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev  
  10. sudo apt-get install libqhull* libgtest-dev  
  11. sudo apt-get install freeglut3-dev pkg-config  
  12. sudo apt-get install libxmu-dev libxi-dev   
  13. sudo apt-get install mono-complete  
  14. sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre

sudo apt-get update

下载源码: git clone https://github.com/PointCloudLibrary/pcl.git  

  1. cd pcl
  2. mkdir release  
  3. cd release  
  4. cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr/local/pcl-1.8\  

      -DBUILD_GPU=ON -DBUILD_examples=ON \  

  6. make & make install


六、 ROS 安装

参照其官网wiki安装Kinetic: http://wiki.ros.org/kinetic/Installation/Ubuntu

七、VirtualBox按照虚拟Win10

自己制作一个iso,这个参照网上经验安装即可,注意把安装选择在HDD机械硬盘中。


Now enjoy your self-driving development!



    





你可能感兴趣的:(Self-Driving,DrivePX2,CUDA,opencv)