zoukankan      html  css  js  c++  java
  • MSYS2 5:Udacity Selt-Driving Car ND 环境配置

    博客转载自:https://medium.com/@fzubair/carnd-term2-gcc-setup-on-windows-287e1fd36845

    2018/6/2 — mingw32/cmake doesn’t work in the latest msys2. Have added step 7 to use “cmake” installed from cmake.org instead

    1. Download latest msys2 installer from https://www.msys2.org/ (orjust download this version http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe)
    2. Run the installer, keep c:msys64 as default, when it finishes, choose “Run MSYS now”
    3. When the command prompt window opens type:

      pacman -Syu  //更新系统
      

      A message will appear to close the terminal window. Close the window. (it might take long to close, and you might even have to kill it)

      Note: Depending on the version you download from msys2, it might say everything is up to date, just continue.

      3. Change home location by opening c:msys64etc sswitch.conf in any editor and change db_home to:

      db_home: windows desc //将home定位到windows的home,不修改则在/home/username

      4. Open MSYS2 MinGW 32bit and this time write:

     pacman -Su  //
    

      

    Note: Depending on the version you downloaded, it might say everything is up to date, so you can just continue. 可能下载速度很慢,可以通过更换源解决,方案参考 MSYS2 更换国内源

    5.Download gcc-5.4

    http://repo.msys2.org/mingw/i686/mingw-w64-i686-gcc-libs-5.4.0-1-any.pkg.tar.xz

    http://repo.msys2.org/mingw/i686/mingw-w64-i686-gcc-libgfortran-5.4.0-1-any.pkg.tar.xz

    http://repo.msys2.org/mingw/i686/mingw-w64-i686-gcc-5.4.0-1-any.pkg.tar.xz

    http://repo.msys2.org/mingw/i686/mingw-w64-i686-gcc-fortran-5.4.0-1-any.pkg.tar.xz

    http://repo.msys2.org/mingw/i686/mingw-w64-i686-gdb-7.11.1-4-any.pkg.tar.xz

    或者使用以命令安装Toolchain

    pacman -Syu mingw-w64-i686-toolchain

    6.Install gcc / other packages:

    $ cd ~/Downloads
    $ pacman -U mingw-w64-i686-gcc-libgfortran-5.4.0-1-any.pkg.tar.xz mingw-w64-i686-gcc-libs-5.4.0-1-any.pkg.tar.xz mingw-w64-i686-gcc-5.4.0-1-any.pkg.tar.xz 
    mingw-w64-i686-gdb-7.11.1-4-any.pkg.tar.xz mingw-w64-i686-gcc-fortran-5.4.0-1-any.pkg.tar.xz $ pacman -S mingw-w64-i686-make git make tar unzip patch automake autoconf mingw-w64-i686-python2 mingw-w64-i686-python2-matplotlib mingw-w64-i686-python2-pip

    Confirm gcc is working: 

    g++ --version
    

    7. Make sure you have cmake installed. If not, install cmake from https://cmake.org (or just install this version https://cmake.org/files/v3.11/cmake-3.11.3-win64-x64.msi)

    Projects

    Build uWebSockets for Mingw.

    git clone https://github.com/drganjoo/uWebSockets.git
    cd uWebSockets
    git checkout carnd-mingw
    mkdir build
    cd build
    "C:Program FilesCMakeincmake" -G "MSYS Makefiles" ..
    make
    make install
    

    1. ExtendedEKF
    git clone  https://github.com/udacity/CarND-Extended-Kalman-Filter-Project.git

    Download the changed CMakeLists.txt or you can make the following changes to CMakeLists.txt file yourself:

    Towards the bottom of the file add:

    ....
    target_link_libraries(ExtendedKF z ssl uv uWS)
    if (MINGW)
        target_link_libraries(ExtendedKF ws2_32)
    endif()
    

    Changed main.cpp to make it work on Windows:

    Line #175, currently says:

    if (h.listen(port))
    

    Change this to (this change will work on Linux / MacOS as well, so you can submit your code with this change in it):

    if (h.listen("127.0.0.1", port))
    

    Build project:

    mkdir build
    cd build
    "C:Program FilesCMakeincmake" -G "MSYS Makefiles" ..
    make
    

      

    If you want to run it, you need to provide return values in tools.cpp otherwise the program will crash. Open src/tools.cpp and write the following for time being:

    VectorXd Tools::CalculateRMSE(const vector<VectorXd> &estimations,
    	const vector<VectorXd> &ground_truth) {
    	/**
    	TODO:
    	* Calculate the RMSE here.
    	*/
    VectorXd temp(4);
    	temp << 1, 2, 3, 4;
    	return temp;
    }
    MatrixXd Tools::CalculateJacobian(const VectorXd& x_state) {
    	/**
    	TODO:
    	* Calculate a Jacobian here.
    	*/
    MatrixXd temp(3,4);
    	return temp;
    }
    

    Run the simulator and you should be able to see the 1,2,3,4 being sent to the simulator:

      2.Unscented Kalman Filter Project

    git clone https://github.com/udacity/CarND-Unscented-Kalman-Filter-Project.git

    Download the changed CMakeLists.txt or you can make the following changes to CMakeLists.txt file yourself:

    Towards the bottom of the file add:

    ....
    target_link_libraries(UnscentedKF z ssl uv uWS)
    if (MINGW)
        target_link_libraries(UnscentedKF ws2_32)
    endif()
    

    Changed main.cpp to make it work on Windows:

    Line #178, currently says:

    if (h.listen(port))

    Change this to (this works on Linux / MacOS as well):

    if (h.listen(“127.0.0.1”, port))
    

    Build project:

    mkdir build
    cd build
    cmake -G "MSYS Makefiles" ..
    make
    

    3. CarND-MPC-Quizes:

    Open MinGW32 Shell (Start->MSYS MinGW32)

    $ git clone https://github.com/udacity/CarND-MPC-Quizzes.git
    $ cd CarND-MPC-Quizzes
    $ wget https://www.coin-or.org/download/source/Ipopt/Ipopt-3.12.8.zip
    $ unzip Ipopt-3.12.8.zip
    

    Install ipopt from the shell:

    $ cd Ipopt-3.12.8/
    $ ../install_ipopt.sh .
    $ cd ..
    

    Install cppad:

    $ wget https://www.coin-or.org/download/source/CppAD/cppad-20180000.0.gpl.tgz
    $ tar xvzf cppad-20180000.0.gpl.tgz
    $ cd cppad-20180000.0
    $ mkdir build && cd build
    $ "C:Program FilesCMakeincmake" -G "MSYS Makefiles" -D cppad_prefix=/c/msys64/usr/local ..
    $ make check
    

    One test will fail, but you can ignore it:

    $ make install
    $ cd ../..
    

     3a) CarND-MPC-Quizzes/global_kinematic_model

    Add on top of main.cpp:

    // In this quiz you'll implement the global kinematic model.
    #define _USE_MATH_DEFINES
    #include <math.h>
    ....
    

    To build:

    make build
    cd build
    "C:Program FilesCMakeincmake" -G "MSYS Makefiles" ..
    make
    

    3b) CarND-MPC-Quizes/mpc_to_line

    Change CMakeLists.txt (or Download)

    if(MINGW)
    set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 0)
    endif()
    add_executable(mpc ${sources})
    if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    target_link_libraries(mpc ipopt python2.7)
    elseif (MINGW)
    target_link_libraries(mpc ipopt coinasl coinblas coinasl coinmumps coinlapack gfortran ws2_32 python2.7)
    else()
    target_link_libraries(mpc ipopt python27 )
    endif()
    

    Build:

    mkdir build
    cd build
    "C:Program FilesCMakeincmake" -G "MSYS Makefiles" ..
    make
    ./mpc
    

    If you get an error regarding python, set the following environment variables and then run mpc.exe again

    $ export PYTHONPATH=/mingw32/bin:/mingw32/lib/python2.7/site-packages:/mingw32/lib/python2.7/lib-dynload:/mingw32/lib/python2.7
    $ export PYTHONHOME=/mingw32/bin
    

    3c) CarND-MPC-Quizes/polyfit

    mkdir build
    cd build
    "C:Program FilesCMakeincmake" -G "MSYS Makefiles" ..
    make
    

    4) CarND-MPC-Project

    git clone https://github.com/udacity/CarND-MPC-Project.git
    

    Towards the bottom, make following changes to CMakeLists.txt (or Download):

    if(MINGW)
    set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 0)
    set(CMAKE_CXX_USE_RESPONSE_FILE_FOR_LIBRARIES 0)
    endif()
    target_link_libraries(mpc ipopt z ssl uv uWS)
    if (MINGW)
        target_link_libraries(mpc ipopt coinasl coinblas coinasl coinmumps coinlapack gfortran ws2_32)
    endif()
    

    Changed main.cpp to make it work on Windows:

    Line #1: Add the following:

    #define _USE_MATH_DEFINES
    #include <math>
    ...
    

    Line #179, currently says:

    if (h.listen(port))
    

    Change this to (this works on Linux / MacOS as well):

    if (h.listen(“127.0.0.1”, port))
    

    Build project:

    mkdir build
    cd build
    "C:Program FilesCMakeincmake" -G "MSYS Makefiles" ..
    make
    

    CLion Setup

    Configure->Settings, under Build, Execution, Deployment set MinGW folder:

    You can open project using ‘Import Project from Sources’ and choosing the root folder of the project e.g. ‘CarND-Extended-Kalman-Filter-Project’. Just choose Open Project instead of ‘Overwrite CMakeLists.txt’

    If you want to debug, then you can either:

    1. Set the working directory to c:/msys64/mingw32/bin. In CLion IDE, choose Run →Edit Configuration
    2. OR you can add c:/msys64/ming32/bin to System Path using environment variables

  • 相关阅读:
    如何修改容器内的/etc/resolv.conf
    OpenShift DNS的机制
    OpenShift 容器日志和应用日志分离问题
    python办公自动化(一)PPTX
    python装饰器 语法糖
    一步一步FLASK(一)
    linux python 安装 pymssql
    定制flask-admin的主页
    复制pycharm虚拟环境
    离线安装pycharm数据库驱动
  • 原文地址:https://www.cnblogs.com/flyinggod/p/10841636.html
Copyright © 2011-2022 走看看