Ubuntu下编译PX4原生飞控固件

1、下载PX4源码

进入Linux系统中后,使用以下命令
git clone https://github.com/PX4/PX4-Autopilot.git 下载完成后,在出现一个PX4-Autopilot目录

2、更新子模块

进入PX4-Autopilot目录中更新子模块

cd PX4-Autopilot

git submodule update --init --recursive

中途可能因为网络原因卡住,直接ctrl+C退出,删除卡住的子目录,重新执行更新命令,反复几次直到成功。

3、修改权限

PX4官方警告:"永远不要使用sudo来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决"
所以给普通用户一点权限来解决编译时使用sudo可能带来的危机

sudo usermod -a -G dialout $USER

4、下载依赖库

运行源码中的脚本来安装依赖

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

运行完往上翻一翻,有没有失败的红色段,失败就重复操作几次,直到全部成功,一般是网络问题导致的
没问题则按照提示重启

5、卸载模式管理器

sudo apt-get remove modemmanager

Ubuntu配备了一系列代理管理,这会严重干扰相关的串口(或USB串口),最明显的表现就是硬件连接到PC机后,无法读出硬件,无法烧录上传固件。

6.编译仿真工具

编译jmavsim
make px4_sitl jmavsim 编译 gazebo,同理
make px4_sitl gazebo 编译成功,自动启动gazebo软件,画面里有一个小飞机
在命令行输入help可查看支持的命令

7、编译源码

在PX4-Autopilot下编译PX4源码
输入make list_config_targets,会出现一系列可编译的px4固件,根据自己需求编译

这里选择v5
make px4_fmu-v5_default 中途会遇到很多缺少的文件,一般是git不完整,删除文件夹重新更新子模块即可,实在不行去git官网复制一下找不到的文件

编译成功

下载固件

make px4_fmu-v5_default upload

【BUG1】
但是发现有时候ninja会报错:
ninja not work to do 这个时候我们只需在/Firmware 文件夹下执行:make clean
然后重新编译即可...

【BUG2】
waiting for the bootloader......

解决办法是去QGC地面站下载我们的.px4文件到pixhawk中,QGC会帮我们加载bootloader

8.修改源码重新编译验证

现在我们重新编译一下官方给的例子
在/src/example中已经编写好了
我们只需要打开/PX4-Autopilot/boards/px4/fmu-v5/default.cmake
去掉px4_simple_app前的#,将此模块编译到固件中

打开地面站的MAVLink控制台,键入help,发现px4_simple_app已经被编译好了

运行一下

验证成功!

相关推荐
Ricardo-Yang5 分钟前
无人机单目深度估计测试:ZipDepth 与 AerialMetric
人工智能·算法·机器学习·计算机视觉·无人机
沈阳昊天环宇无人机小编辑2 天前
无人机测绘点云实操体验与丹东作业筹备展望,沈阳无人机外出测绘作业
无人机
workflower2 天前
智能无人机成低空经济核心赛道
运维·人工智能·机器学习·机器人·云计算·无人机
tianxuanjg3 天前
0.005mm 高精度 CNC 加工:机器人薄壁复杂零件变形控制与全维度品控方案
经验分享·机器人·无人机·制造·材质
沈阳昊天环宇无人机小编辑3 天前
无人机执照对直招军士招录与发展的赋能作用,文案由沈阳昊天环宇编辑整理 | 聚焦新质战斗力,助力青年直招军士梦
无人机
airobotcn3 天前
空地一体化巡检机器人系统落地实战指南
安全·机器人·无人机·智慧园区·巡逻
tianxuanjg3 天前
机器人精密零件:为何样品合格,批量却频频超差?
人工智能·经验分享·机器人·无人机·制造·材质
airobotcn3 天前
AI Agent下工厂:大模型如何驱动巡检机器人自主决策
人工智能·机器人·自动化·无人机
LONGZETECH3 天前
无人机组装调试实训高损耗痛点分析与虚拟仿真教学落地方案
c语言·开发语言·架构·无人机
Zentceh4 天前
无人机吊舱视觉模组选型:重量、功耗、延迟的三角平衡
图像处理·人工智能·科技·计算机视觉·视觉检测·无人机·视频