PX4飞控入门

之前看到大神Su哥给大家带来关于SITL的分享,我也动了写一写什么的念头。

马上就2020了,之后的发展方向有了更多的选择。从大二开始连续参加两届大创加之今年暑假的电赛都用的是Pixhawk的硬件加ArduCopter固件进行无人机开发,积累了不少开发经验。但之后不一定会继续在无人机的路上走下去,又或者会在飞控和导航的方向深挖。便想写点什么记录和纪念下这些填坑的过程。

给大家分享一下关于WIN平台下Pixhawk的开发和SITL仿真。

Pixhawk的硬件支持APM和PX4两套固件,而两套固件的编译都需要在Linux下进行。官方推荐的是Ubuntu发行版,然而自从WIN1903支持WSL之后,win10就成了最好的Linux发行版(大雾)。其运行原理比虚拟机少了一些中间层,可以理解为一个从系统API级别模拟Linux内核的应用。从目前的使用体验来看,WSL除了不支持opengl和部分USB外设比较遗憾外,已经可以满足大部分的开发需要了。而使用则可以当成只有命令行的Linux进行使用,也有特殊的方法可以配置GUI和其窗口,之后有机会的话会写。

首先说一下我的开发环境吧,vscode+winterminal+wsl。

借助vscode的代码高亮和跳转进行编辑,然后在wsl完成Arducopter的编译环境搭建后,切换到代码目录下运行相关指令即可编译。

而关于SITL仿真,可以理解为一个特殊的程序,它通过数值计算模拟载具的姿态和各种参数。可以通过不同的引擎看到它的仿真结果(数值图表和仿真模型的姿态)。Arducopter支持多种simulater(SITL Simulator,Gazebo,XPlane-10,RealFlight,Morse Replay,JSBSim,AirSim)比较常用的是SITL和Gazebo。
在Win平台下,通过WSL进行SITL仿真后可以通过地面站查看数据或通过仿真软件查看其姿态。
1.直接借助MP/QGC的地图指示观看,不过这样只有2D的粗略位置,无法更直观的看到姿态
2.借助FlightGear/XPlane/RealFlight等看到其更直观的姿态信息

关于WSL搭建开发环境
关于FG进行SITL仿真

1
./Tools/autotest/sim_vehicle.py -L KSFO -v ArduCopter -N

如果大家感兴趣我会写写如何用游戏手柄控制SITL仿真

文章目录
|