搭建飞控开发环境:ubuntu下pixhawk开发环境搭建(PX4开发)
关于开发环境,可以选择Windows、Linux或者Mac,若选择Linux,建议安装Ubuntu16.04的版本,版本太旧会导致一些核心库文件无法下载。
博主最开始是用Ubuntu16.04,环境搭建过程是按照英文官网翻译后进行的,但是不知道为什么一直不顺畅,安装也要等待很久,尤其是在下载ubuntu_sim_nuttx.sh脚本后,注意博主因为是小白,不太会,所以不知道为什么脑袋抽风的是百度了打开/新建脚本的命令,自己复制粘贴了上文所说的脚本,运行后,重启(也是百度的重启指令,现在想想有点不太靠谱),重启开机之后ubuntu的界面一直就是黑屏,图片见博主其他的文章虚拟机开机黑屏,如果有“热心网友”知道这是什么问题,请您一定滴滴博主,万能的网友们啊!
后来百度了很多解决方法都不可行,于是,又是那一句话“没有什么问题是重装解决不了的”,所以博主重装了一个学姐给的ubuntu,是她们老师自己搞的,给学生用的,不用很复杂的导入,可以直接用,或许就是“这点方便”导致博主后来的尴尬。
这次是ubuntu14.04的了,搭建飞控环境的过程也不是那么的顺利,但是也比第一次流畅多了,但是问题就出在安装git一直安装不成功,这个也是百般试探解决方法,都不可取,感觉可能是因为ubuntu是老师自己搞的,可能缺了点什么东西,于是,又是万能的金句“没有什么问题是重装解决不了的”,
所以,博主就又新建的一个ubuntu,结果搭建环境很流畅,安装git也是很舒服的呢。
下面就和大家分享一下过程,当然很多经验都是借鉴融合了很多前辈的。
主要链接:
官方英文原文地址:
http://dev.px4.io/starting-installing-linux.html
Ardupilot的官方网站:
http://ardupilot.org/dev/docs/building-the-code.html
Ubuntu环境下Pixhawk原生固件PX4的编译:
https://blog.csdn.net/grand910616/article/details/52089039
PX4中文维基:Linux开发环境:
https://fantasyjxf.gitbooks.io/px4-wiki/content/1_Getting-Started/linux.html
PX4开发(1):ubuntu下pixhawk开发环境搭建:
https://blog.csdn.net/Egean/article/details/79016768
一,配置环境:(简单介绍一下博主的安装环境,因为发现不同的环境可能会产生不同的问题和不同的结果)
新手,所以没有采用双系统的方式,而是在Windows下安装了虚拟机。
Windows:win10 64位
虚拟机:VMware Workstation 12
Ubuntu: Ubuntu 16.04
具体下载安装方式网上都有很详细的教程,博主就不解释了。
二,编译环境的搭建(博主本来是按照官网的一步一步弄的,但是发现可能还是需要改变)
官方说明:
我们使用Debian / Ubuntu LTS 作为Linux的标准支持版本,但是也支持Cent OS 和 Arch Linux的发行版本
1、权限设置
英文官网提示:
Warning Never ever fix permission problems by using 'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.
中文翻译是:
警告:永远不要使用sudo来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决。
最开始,博主也有点慌啊,因为不用sudo,下面的命令博主的ubuntu根本执行不了,ubuntu自动提示需要给权限才可以执行,所以博主只好不顾警告,采用sudo,幸好后面也没出现什么大问题。
打开终端(快捷键Ctrl+Alt+T)
把用户添加到用户组 "dialout":(输入下面的命令)
sudo usermod -a -G dialout $USER
可能还需要输入密码,输入密码,等待一会,就会有结果了,如果还是没有,可以再输入一遍上面的命令。
然后注销后,重新登录,因为重新登录后所做的改变才会有效。
或者博主下面这样,好像也没出问题
2、安装
官方说明:
更新包列表,安装下面编译PX4的依赖包。PX4主要支持的系列:
提示:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。
重启之后,再打开终端,输入以下命令:
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo apt-get update
# 必备软件
sudo apt-get install python-argparse git-core wget zip \
python-empy qtcreator cmake build-essential genromfs -y
# 仿真工具
sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jre
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y
注意这里有命令的最末是斜杆\,博主最开始也很疑问,以为是直接带上的,后来发现这是指代下一行的命令的,其实就是命令一行输入,只是可能因为排版原因,所以写在第二行,使用时直接将第二行的命令替代斜杆即可。例如:
sudo apt-get install python-argparse git-core wget zip \
python-empy qtcreator cmake build-essential genromfs -y
其实是
sudo apt-get install python-argparse git-core wget zip python-empy qtcreator cmake build-essential genromfs -y(都在一行上)
输入每个命令之后,可能都要等待一下,安装仿真工具时间比必备软件耗时更长一些
博主的结果如下图:
这个可能要等待长一点时间
3、基于NuttX的硬件
PX4不只支持我们的pixhawk,还支持其他的很多硬件,如高通骁龙飞控板,树莓派,派诺特等,所以基于NuttX的硬件就是指我们目标板子是pixhawk系列,参照下面方法配置。这里博主小白,最开始看官方英文版的没怎么太理解,还以为是全部都要安装,哈哈。
(1)删除管理代理
官方说明:
Ubuntu配备了一系列代理管理,这会严重干扰任何机器人相关的串口(或usb串口),卸载掉它也不会有什么影响:
sudo apt-get remove modemmanager
博主结果如下图:
(2)更新包列表和安装下面的依赖包。务必安装指定的版本的包
sudo apt-get install python-serial openocd \
flex bison libncurses5-dev autoconf texinfo build-essential \
libftdi-dev libtool zlib1g-dev \
python-empy -y
注意:斜杆说明如上文
博主结果如下图:
(3)在添加arm-none-eabi工具链之前,请确保删除残余
sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded
sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa
博主的第一个命令结果如下图:
这就很尴尬了,博主到网上找解决方法,所示要更新软件源:
然而,并没有什么用,如果有大佬看这里,知道是什么原因,请滴滴我!
所以,博主这一步就没有完成了,而是换了一个步骤:(但是如果网友朋友们是可以的,就按照官网的来哟,因为博主感觉自己这个也有点莫名其妙的成功了,不太懂)
1)输入命令sudo apt-get install lsb-core
博主的结果如下图:
2)可以检查arm-none-eabi 4.8.4是否安装成功,输入以下指令:
arm-none-eabi-g++ -v
博主的结果如下图:
就可以的,交叉编译环境搭建就搭建成功了啦!
如果有朋友知道我的疑问或者发现我的行文有什么错误,请滴滴我哟!
*****************************************************************************************************************
问题一:安装git不成功(噢,这个环境是ubuntu14.04的,一位老师自己弄的)
即使是更新软件源,输入命令sudo apt-get update
但是,问了ubuntu群里的大佬,说是更新软件源没用,得修改,但博主小白,不会,所以还是重装吧。嘤。