Ubuntu16.04下PX4 开发环境配置

  • PX4 Ubuntu1604 开发环境配置
    • 问题1 依赖错误及安装时404错误
    • 问题2 安装基于NuttX的硬件出错
    • 问题3 编译报错
    • 问题4 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目录)
然后:
Ubuntu16.04下PX4 开发环境配置_第1张图片

在这里:
这里写图片描述
点击Add–Custom Executable
Ubuntu16.04下PX4 开发环境配置_第2张图片
executable 栏里输入’make’, argument栏输入 ‘upload’
点击‘play’按钮配置成运行工程(程序左下角绿色小三角)。


真羡慕那些一遍安装就成功没有任何错的lucky dog(折腾一天,不知道以后还会遇到多少坑,哭晕在厕所)


  1. http://answers.ros.org/question/239285/invoking-make-j4-l4-failed-importerror-no-module-named-em/ ↩

你可能感兴趣的:(四轴飞行器,PX4)