首先需要使用一个Ubuntu环境,WSL或者虚拟机或者直接装Ubuntu都是很好的选择,对于开发而言不咋影响。
然后安装docker,安装命令可以看我之前的文章,一文入门Docker。当然可以使用Ubuntu自带的软件管理安装也没有什么问题,需要注意的是,在Linux环境中需要安装一些常用的软件,像是vim,curl,git对于Ubuntu而言,这些常用的开源软件可以直接使用apt命令安装(当然docker也可以)。
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
PX4官方推荐不要使用root用户运行Docker,所以在安装完成docker后,需要执行下方的代码。
groupadd docker #添加用户组
gpasswd -a username docker #添加当前用户到docker用户组
newgrp docker #更新用户组
使用docker命令如下所示,如果是虚拟机环境,直接sudo实际上也可以或者直接转成su root来做开发。
然后新建一个文件夹,拉一下这个工具链的代码,Github可能访问不到,多刷新几次。
mkdir src
cd src
git clone https://github.com/PX4/PX4-Autopilot.git
cd PX4-Autopilot
然后直接在Ubuntu中执行就可以自动安装代码
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
需要注意的是,在代码的安装过程中需要安装很多其他依赖的包,如果网速过慢的话需要切换apt的源。
然后可以编译一个gazebo,使用以下的命令进行编译
make px4_sitl_default gazebo
在这个编译过程中将会使用到大量的python模块,如果出现错误,需要使用pip命令进行逐一的安装,一般会有提示,没有提示的话搜一下也就知道应该如何进行安装了。
顺带一提,在这个安装中会请求多次github的内容,如果网速过慢的情况下会莫名的卡住。这个时候可以使用ctrl+c进行停止,再重试几次就可以了,逐一使用top命令进行CPU的监控,在编译的过程中非常吃CPU如果此时CPU占用非常少,等了一段时间也没有任何的反应,说明确实卡住了。
不是所有的网络问题都会报错的。
多次尝试后,编译成功会自动的打开gazebo仿真。
然后可以尝试编译一个px4_fmu-v3_default.px4,使用下方的命令。
make px4_fmu-v3_default
编译成功后如图所示