Ubuntu16.04下PX4 开发环境配置

本文记录了在Ubuntu16.04上配置PX4开发环境时遇到的问题,包括依赖错误、NuttX安装出错、编译报错和QT配置问题,并提供了详细的解决方案,帮助开发者避免常见错误。

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(折腾一天,不知道以后还会遇到多少坑,哭晕在厕所)

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值