一、创建虚拟机Ubuntu
菜鸟必学 图文教你虚拟机安装Ubuntu:http://www.linuxdiyf.com/linux/9274.html
Linux虚拟机安装VMware Tools:http://www.linuxdiyf.com/linux/12944.html
本人操作系统 win10 企业版,激活工具激活一下,换了那么多系统发现纯净原装的系统才是最适合开发的,不会这漏那漏,少个什么系统文件一些驱动都装不了)
装完后记得装下vmware tools,有了这个就可以在客户机和虚拟机之间传文件,复制和黏贴(最重要的就这个了),改屏幕大小。
二、在Ubuntu中编译Pixhawk固件
为什么选择在linux系统下编译呢有两个原因:
1、windows7系统下试了很多次一直卡在4%-5%的时候出错,系统也换过好几次了,电脑也换过,还是编译失败。
2、相比win,linux编译速度快很多,win7到4%的时候,linux差不多就100%了(夸张一点)。
固件编译官网原文http://dev.px4.io/starting-installing-linux.html/ ,其实看什么其他攻略教程啊都不如看官网的教程来的实在,毕竟每个人的情况不一样,可能当时那样做是没问题的,但是官方出了些更新之前的手段就失效了。(不过看官网需要英语给力,反正我看的超级吃力,慢慢来吧)
可以参考[附]。
在虚拟机中按 ctrl+alt+T 打开控制台。按照上面的步骤复制黏贴。
第五步:编译源码 (这边有点问题)
cd Firmware
git submodule update --init --recursive (此处应在编译之前更新一下固件)
make px4fmu-v2_default (这里说下Pixhawk看官网有三个版本,v1 v2 v3,其中v1/v2都是用的make px4fmu-v2_default,而v3版本的Pixhawk用的是make px4fmu-v4_default,之后上传的时候会先核对版本,版本不对就提示错误)
三、在Ubuntu中上传固件到Pixhawk
Pixelhawk 通过USB连接PC,在选项 虚拟机->可移动设备->将px4连接至虚拟机。
控制台输入make px4fmu-v2_default ,从0-100%(这个进度不知道干嘛的),如果卡在100%重复提示一行英文,那说明需要重新拔插一下USB。
之后出现3行100%
Erase : [====================] 100.0%
Program: [====================] 100.0%
Verify : [====================] 100.0%
Rebooting.
[100%] Built target upload
上传成功了,之后就是通过地面站进行一些调试校准,在校准完成之前,Pixhawk的中心大灯是保持红灯闪烁。
附:PIXHAWK开发环境建立(固件编译)
目前有很多基于PIXHAWK的开发的无人机,业界对于APM/PIXHAWK也比较认可。我接下来就会写一系列文章来介绍PIXHAWK的安装,编译,模拟开发。因为PIXHAWK的二次开发余地比较大,整体代码框架性能优于APM,所以就以PIXHAWK为基础来进行飞控的二次开发。关注阿木无人机社区玩也的专业!
PIXHAWK的使用Qgroundcontrol作为地面站:http://qgroundcontrol.org/downloads/
PIXHAWK的开发工具连接下载地址:http://dev.px4.io/starting-installing.html/
可以根据不同了开发平选择不同的系统开发,因为开源的PIXHAWK对于Linux的支持比较好,以后本文的软件安装和开发,均在linux下面。
本文翻译于:http://dev.px4.io/starting-installing-linux.html/ ( Development Environment on Linux)英文还不错的同学可以参考原文,我在这里结合自己的编译,开发情况给出一个实操作文章。
开发环境的安装:
权限设置:在安装开发环境之前为当前linux用户组设置一个用户组。(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 usermod -a -G dialout $USER
开发硬件环境:目前PX4支持4种主要的硬件系统。
分别是Pixhawk,高通的801飞控平台,树莓派2,SITL虚拟模拟平台。这几种平台都有相应的文档,感兴趣的同学可以移步。
在ubuntu14.04中安装如下库和软件
第一步:执行以下三条命令
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
# simulation tools
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-7-jdk openjdk-7-jre clang-3.5 lldb-3.5 -y
主要是cmake软件和仿真软件。我这边电脑lldb-3.5 的库找不到,我们暂且不安装这个库。就可以顺利的安装成功。
第二步:执行以下命令删除串口模式管理器
官网说Ubuntu的端口和USB serial端口有冲突,所以要删除modemmanager
sudo apt-get remove modemmanager
第三步:执行以下命令更新依赖包:
安装gcc-arm-none-eabi编译器
sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded -y
sudo apt-get update
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
如果上面的安装失败,我们可以尝试手动安装4.8的版本。
pushd .
cd ~
wget https://launchpadlibrarian.net/186124160/gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2
tar -jxf gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2
exportline="export PATH=$HOME/gcc-arm-none-eabi-4_8-2014q3/bin:\$PATH"
if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
. ~/.profile
popd
sudo apt-get install gcc-arm-none-eabi -y
这也可以安装GCC的编译工具的,如果前面的都不行,就试试这个直接安装。
安装32位的支持库:sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386 (如果安装失败可以跳过)
第四步:执行以下命令下载PX4源码
mkdir -p ~/src
cd ~/src
git clone https://github.com/PX4/Firmware.git
第五步:编译源码
cd Firmware
make px4fmu-v2_default
注意在编译源码的时候,最好在root超级用户下面,进行编译。我的开发环境就是,在sudo的条件下,一直说cmake找不到,在普通用户下说是没有权限。只有root用户,就很快的编译出了PIX固件,如果顺利真正的编译PIX固件的时间只有4分钟不到,比windows + eclipse编译下要快很多。
QQ截图20160614121320
这就是成功在ubuntu14.04的环境下编译的完成的效果。
第六步:上传固件至PIXHAWK
make px4fmu-v2_default upload
显示以下为上传成功:
Erase : [====================] 100.0%
Program: [====================] 100.0%
Verify : [====================] 100.0%
Rebooting.
[100%] Built target upload
如果ubuntu14.04正确的安装了PX4驱动,那么就可以上传到pixhawk中看看,编译的固件效果。
因为PX4的更新比较快,这里只是抛砖引玉的效果,同时建议在ubuntu下做PIX的开发工作,因为linux对于开源项目,一贯的支持都比较好。