NMZR1991 发表于 2022-11-10 11:46:48

PX4飞控入门

马上就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搭建开发环境

网上有不少启用WSL的教程,启用WSL后依次执行以下命令即可搭建环境。不过由于众所周知的网络原因,建议挂个梯子,不然可能会在下载代码阶段无限重复。



关于SITL仿真

其实质为启动脚本

/Tools/autotest/sim_vehicle.py,仿真可以在ardupilot/目录下执行命令

ardupilot/Tools/autotest/sim_vehicle.py -v ArduCopter

或者进入ArduCopter目录执行

ardupilot/Tools/autotest/sim_vehicle.py

关于FlightGear可视化

下载安装FlightGear 3.4.0,然后启动脚本

ardupilot/Tools/autotest/fg_quad_view.bat

会有一个FG窗口,然后启动SITL仿真即可。

分享无人机和机器人的实用技巧

点击蓝字关注我~

冬至来临
页: [1]
查看完整版本: PX4飞控入门