Ubuntu16.04下PX4 開發環境配置

PX4 Ubuntu16.04 開發環境配置

看到官網有詳細介紹(官網安裝說明鏈接)時,喜出望外,列下了一串學習任務,以爲會很快就搞定開發環境,結果搞了半天發現自己還是too young too naive,一步一個坑,暫時記錄下來,留給有需要的人


問題1: 依賴錯誤及安裝時404錯誤

sudo apt-get install python-argparse git-core wget zip \
    python-empy qtcreator cmake build-essential genromfs -y

報錯如下:

正在讀取軟件包列表... 完成
正在分析軟件包的依賴關係樹       
正在讀取狀態信息... 完成       
注意,選中 'libpython2.7-stdlib' 而非 'python-argparse'
build-essential 已經是最新版 (12.1ubuntu2)。
zip 已經是最新版 (3.0-11)。
wget 已經是最新版 (1.17.1-1ubuntu1.2)。
libpython2.7-stdlib 已經是最新版 (2.7.12-1ubuntu0~16.04.1)。
有一些軟件包無法被安裝。如果您用的是 unstable 發行版,這也許是
因爲系統無法達到您要求的狀態造成的。該版本中可能會有一些您需要的軟件
包尚未被創建或是它們已被從新到(Incoming)目錄移出。
下列信息可能會對解決問題有所幫助:

下列軟件包有未滿足的依賴關係:
 qtcreator : 依賴: libclang1-3.6 (>= 3.6) 但是它將不會被安裝
E: 無法修正錯誤,因爲您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關係。

以爲是沒裝qt,跑去裝完最新的qt 5.9發現然並軟,
嘗試修復依賴:

sudo apt-get install aptitude
sudo aptitude install libclang-dev

顯示如下:

0 個軟件包被升級,新安裝 5 個, 1 個將被刪除, 同時 0 個將不升級。
需要獲取 12.2 MB 的存檔。 解包後將要使用 123 MB。
下列軟件包存在未滿足的依賴關係:
 libclang-3.6-dev : 依賴: libclang1-3.6 (= 1:3.6.2-3ubuntu1) 但它將不會被安裝。
 libobjc4 : 依賴: gcc-5-base (= 5.3.1-14ubuntu2) 但是 5.4.0-6ubuntu1~16.04.4 已安裝。
 libclang-common-3.6-dev : 依賴: libllvm3.6v5 (= 1:3.6.2-3ubuntu1) 但它將不會被安裝。
 libobjc-5-dev : 依賴: gcc-5-base (= 5.3.1-14ubuntu2) 但是 5.4.0-6ubuntu1~16.04.4 已安裝。
                 依賴: libgcc-5-dev (= 5.3.1-14ubuntu2) 但是 5.4.0-6ubuntu1~16.04.4 已安裝。
下列動作將解決這些依賴關係:

     保持 下列軟件包於其當前版本:       
1)     libclang-3.6-dev [未安裝的]       
2)     libclang-common-3.6-dev [未安裝的]
3)     libclang-dev [未安裝的]           
4)     libobjc-5-dev [未安裝的]          
5)     libobjc4 [未安裝的]      
是否接受該解決方案?[Y/n/q/?] 

輸入: y
依舊報錯,和前面一樣,
再次嘗試sudo aptitude install libclang-dev

……
是否接受該解決方案?[Y/n/q/?]

此處輸入:n,得到提示如下

下列動作將解決這些依賴關係:

      安裝 下列軟件包:                                                         
1)      libclang1-3.6 [1:3.6.2-3ubuntu1 (xenial)]                               
2)      libllvm3.6v5 [1:3.6.2-3ubuntu1 (xenial)]                                
3)      libobjc-5-dev [5.3.1-5ubuntu1 (xenial)]                                 
4)      libobjc4 [5.3.1-5ubuntu1 (xenial)]                                      

      降級 下列軟件包:                                                         
5)      cpp-5 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]         
6)      g++-5 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]         
7)      gcc-5 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]         
8)      gcc-5-base [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]    
9)      gfortran-5 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]    
10)     libasan2 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]      
11)     libatomic1 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]    
12)     libcc1-0 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]      
13)     libcilkrts5 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]   
14)     libgcc-5-dev [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]  
15)     libgfortran-5-dev [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenia
16)     libgfortran3 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]  
17)     libgomp1 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]      
18)     libitm1 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]       
19)     liblsan0 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]      
20)     libmpx0 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]       
21)     libquadmath0 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]  
22)     libstdc++-5-dev [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)
23)     libstdc++6 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]    
24)     libtsan0 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]      
25)     libubsan0 [5.4.0-6ubuntu1~16.04.4 (now) -> 5.3.1-5ubuntu1 (xenial)]     

是否接受該解決方案?[Y/n/q/?] y

看到一串降級預感有戲,果然,再次運行

sudo apt-get install python-argparse git-core wget zip \
    python-empy qtcreator cmake build-essential genromfs -y

報的錯變成了:

錯誤:1 http://mirror.neu.edu.cn/ubuntu xenial/universe amd64 genromfs amd64 0.5.2-2build2
  404  Not Found [IP: 202.118.1.64 80]
E: 下載 http://mirror.neu.edu.cn/ubuntu/pool/universe/g/genromfs/genromfs_0.5.2-2build2_amd64.deb  404  Not Found [IP: 202.118.1.64 80] 失敗

E: 有幾個軟件包無法下載,要不運行 apt-get update 或者加上 --fix-missing 的選項再試試?

顯示genromfs這個模塊404錯誤了
在清華鏡像站上找到也有這個包,按教程替換成清華源先備份:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 

更改源:sudo gedit /etc/apt/sources.list
打開https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/選擇自己的版本,將內容替換打開的sources.list裏的文本,保存關閉。
重要,一點要更新一下系統,不然繼續執行之前的install命令會一直報錯

sudo apt-get update

再進行下面的各種安裝應該就不會再有404的錯誤了

問題2: 安裝基於NuttX的硬件出錯

最後一步安裝NuttX時,官網介紹很奇怪,apt-get install 選項中居然少了arm-none-eabi,補全後爲:

sudo apt-get install python-serial openocd \
    flex bison libncurses5-dev autoconf texinfo build-essential \
    libftdi-dev libtool zlib1g-dev \
    python-empy gcc-arm-none-eabi -y

問題3: 編譯報錯

make px4fmu-v2_default到14%報錯:

python import error:  No module named em
python import error:  No module named em

Required python packages not installed.

On a Debian/Ubuntu system please run:

  sudo apt-get install python-empy
  sudo pip install catkin_pkg

On MacOS please run:
  sudo pip install empy catkin_pkg

On Windows please run:
  easy_install empy catkin_pkg

Required python packages not installed.

On a Debian/Ubuntu system please run:

  sudo apt-get install python-empy
  sudo pip install catkin_pkg

On MacOS please run:
  sudo pip install empy catkin_pkg

On Windows please run:
  easy_install empy catkin_pkg


python import error:  No module named em

Required python packages not installed.

On a Debian/Ubuntu system please run:

  sudo apt-get install python-empy
  sudo pip install catkin_pkg

On MacOS please run:
  sudo pip install empy catkin_pkg

On Windows please run:
  easy_install empy catkin_pkg

CMakeFiles/msg_gen.dir/build.make:900: recipe for target 'src/modules/uORB/topics/actuator_armed.h' failed
make[3]: *** [src/modules/uORB/topics/actuator_armed.h] Error 1
make[3]: *** 正在等待未完成的任務....
CMakeFiles/msg_gen.dir/build.make:153: recipe for target 'topics_sources/uORBTopics.cpp' failed
make[3]: *** [topics_sources/uORBTopics.cpp] Error 1
CMakeFiles/msg_gen.dir/build.make:528: recipe for target 'src/platforms/nuttx/px4_messages/px4_actuator_armed.h' failed
make[3]: *** [src/platforms/nuttx/px4_messages/px4_actuator_armed.h] Error 1
CMakeFiles/Makefile2:69: recipe for target 'CMakeFiles/msg_gen.dir/all' failed
make[2]: *** [CMakeFiles/msg_gen.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make[1]: *** [all] Error 2
Makefile:164: recipe for target 'px4fmu-v2_default' failed
make: *** [px4fmu-v2_default] Error 2

解決方法1

pip install empy

問題4: QT配置問題

教程裏面太簡略啦,現在安裝的高版本QT界面有點不一樣,
首先:加載 Firmware 根目錄下 CMakeLists.txt 文件,步驟:點擊工具欄 File -> Open File or Project -> Select the CMakeLists.txt file 。(注意,是Firmware 根目錄下,而不是新建的build目錄)
然後:
這裏寫圖片描述

在這裏:
這裏寫圖片描述
點擊Add–Custom Executable
這裏寫圖片描述
executable 欄裏輸入’make’, argument欄輸入 ‘upload’
點擊‘play’按鈕配置成運行工程(程序左下角綠色小三角)。


真羨慕那些一遍安裝就成功沒有任何錯的lucky dog(折騰一天,不知道以後還會遇到多少坑,哭暈在廁所)

發佈了26 篇原創文章 · 獲贊 75 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章