四轴飞行器——Building ArduPilot for Pixhawk/PX4 on Linux with Make(使用Make在Linux上构建Pixhawk / PX4的ArduPilot)

时间:2022-12-13 18:37:11

在开发一个项目或者造*之前,第一步永远是搭建开发环境,而在Linux下搭建Pixhawk时,总是因为各种各样的奇葩错误导致搭建失败,这次趁着硬盘崩了,重新搭建环境并记录下来,如果有错误或者补充可以在评论区提醒我哈~
操作系统:Ubuntu16.04(不建议使用较老版本的Ubuntu系统,后面会提到原因)

一、下载代码(Downloading the conde)

1.1 下载git

Git在所有主要的操作系统平台上均可用,并且有多种工具可帮助你轻松地入门。
Linux/Ubuntu用户可以通过apt下载,在命令行输入:
sudo apt-get update
sudo apt-get install git

1.2 Fork该开源项目

首先,你可以注册一个github的帐号,然后打开网址https://github.com/ArduPilot/ardupilot,点击”Fork”按钮即可。
随后,你便会看到在你的用户下有一个新的项目:
//github.com/your-github-userid/ardupilot

1.3 Clone这个项目到本地(你的电脑)

可以在每个Github仓库主页上的屏幕右侧找到URL,通常URL是:
https://github.com/ArduPilot/ardupilot.git
https://github.com/your-github-account/ardupilot
四轴飞行器——Building ArduPilot for Pixhawk/PX4 on Linux with Make(使用Make在Linux上构建Pixhawk / PX4的ArduPilot)
打开一个终端,并进入你想要存放代码的目录,例如:
cd Downloads //进入Downloads文件夹
输入以下指令clone代码:
git clone https://github.com/your-github-userid/ardupilot
cd ardupilot
git submodule update --init --recursive
到这里将代码下载到本地的部分就完成了,接下来就是

二、构建代码(Building the code)

2.1设置Ubuntu

运行 install-prereqs-ubuntu.sh 脚本,在终端输入:
Tools/scripts/install-prereqs-ubuntu.sh -y
重新加载路径(注销并登录才能生效):
. ~/.profile
现在你应该可以用BUILD.md中描述的waf来构建,Ardupilot逐渐从the make-based build system转移到Waf。BUILD.md中的说明应该足以让你构建Ardupilot,但你也可以阅读关于Waf Book中构建系统的更多信息。其实最基础的the make-based build system也可以实现,以ArduCopter为例,进入到ArduCopter目录下, 输入以下命令即可:
make px4-v2
make px4-v2-upload

编译下载成功后如下图所示:
四轴飞行器——Building ArduPilot for Pixhawk/PX4 on Linux with Make(使用Make在Linux上构建Pixhawk / PX4的ArduPilot)
看到最后一句,“在1-2s后重新插拔USB接口”,即说明环境配置好了!
但是其实在这之前,还要做很多前期准备工作,所以先不要着急编译,先安装一些编译下文将说到的所需的基本工具。

2.2基本的安装和设置

(1)安装gcc交叉编译器,点击跳转到下载链接,下载后你需要使用以下命令解压压缩包:
tar -xjvf gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2
然后通过编辑$ HOME / .bashrc文件并在末尾添加下面这一行来将tarball中的bin目录添加到$ PATH中:
export PATH=$PATH:/home/your_username/gcc-arm-none-eabi-4_9-2015q3/bin
注意:这里的路径是你解压的gcc-arm-none-eabi-4_9-2015q3-20150921-linux中的bin目录的路径,也就是说上面给出的路径只是作为参考。

(2)安装gnu make,一般Ubuntu系统自带,故不用下载,但是了解以下
make的构建原理也是很好的。

(3)如果你的系统是64位的,你还需要安装libc6-i386,在终端输入:
sudo apt-get install libc6-i386

(4)你需要让你的用户成为dialout的成员(您需要注销然后重新登录以使组更改生效),在终端输入:
sudo usermod -a -G dialout $USER

(5)代码编辑器可以选择Qt或者Sublime Text3,两者有各自的优缺点,Qt操作简单,但是需要配置交叉编译环境。Sublime Text3无需搭建环境,但是只有长期使用的人才能运用自如。

至此,一次Pixhawk基础的环境搭建就完成了,接下来我们一起探讨飞控代码中的精妙吧!