PX4开发环境配置

1. 安装Ubuntu
有三种安装方式,分别是双系统、VMWare虚拟机、WSL2。双系统或者直接在硬件上安装Linux的代价比较大,毕竟日常使用Windows为主,所以选择虚拟机的方式。
1.1 VMWare虚拟机
VMWare虚拟机安装比较简单,但是需要占用比较大的资源,而且网络有时候不稳定,在没有WSL之前只能用VMWare虚拟机。
距离我上次在Linux上作开发已经有几年了,VMWare已经更新了很多版本,所以就先试了一下VMWare上装Ubuntu的开发PX4。
结果重装了3次,期间还解决了网络问题、共享文件夹问题等等,最后还是被虚拟网络问题劝退,改用WSL了。
这次折腾得到一条经验:如果需要使用系统已经得到WSL支持,那就千万不要用VMWare。
1.2 WSL2
在Win11上安装WSL还是比较方便,按照官方教程走就可以,我的精简版Win11安装过程也很顺利。
PX4的官方文档提供了WSL2上的开发环境教程,只要按照要求完成几步简单的操作就可以完成PX4编译,直接开始自己的开发。
按照PX4和Windows给出的安装教程操作,最麻烦的就是等待。
Windows Development Environment (WSL2-Based)
How to install Linux on Windows with WSL

2 下载px4Autopilot代码
2.1 github下载
一行指令:
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
Download the PX4 Source Code
2.2 设置Github访问
下载代码最麻烦的是网络问题,因为github访问要么连不上,要么速度很慢,如果直接访问github下载代码,非常慢,而且会安装到一半连接超时,导致下载失败。
解决方法
修改git的proxy
git config --global http.proxy http://本机ip:port
git config --global https.proxy https://本机ip:port
可以ping通,但是无法连接
在VMWare上的Ubuntu开发的时候,出现了一个网络问题,无法连接到github,浏览器不能打开github,但是可以ping通。改设置什么都没用,重置一下虚拟网络就好了。
3 仿真环境
PX的代码编译以后可以使用JMAVSim进行仿真。
Software in the Loop Simulation runs the complete system on the host machine and simulates the autopilot. It connects via local network to the simulator. The setup looks like this:


3.1 安装JMAVSim
jMAVSim with SITL
JMAVSim
JMAVSim-PX4
3.2 安装QGC安卓App

QGroundControl是一款用于无人机的直观且功能强大的地面控制站,可以和px4的仿真连接,控制无人机飞行。
QGC下载和安装
3.3 QGC连接Jmav
按照下文的教程可以实现QGC局域网内连接PX4模拟器JMAVSim,只要手机和Ubuntu连接在一个局域网内就可已轻松实现连接。
QGC局域网内连接PX4模拟器JMAVSim
在进入仿真后,输入
mavlink start -p -t 192.168.xxx.xxx -o 14550
IP是Android端的地址。
3.4 仿真的初始位置
在仿真前,加入位置设置指令。
echo "Simulation by JMavSim & QGC"
export PX4_HOME_LAT=34.xxxxxxxxx
export PX4_HOME_LON=108.xxxxxxxxx
export PX4_HOME_ALT=449.xxxx
make px4_sitl_default jmavsim