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已经被编译好了
 


运行一下
 


验证成功!

### 配置和运行PX4无人机 #### 准备工作环境 为了确保能够顺利配置并运行 PX4 无人驾驶航空器,在 Ubuntu 操作系统环境下,需先准备好必要的软件包以及工具链。对于特定硬件配置如华硕天选四笔记本电脑配备 i7 处理器与 RTX 4060 显卡的情况,建议按照官方指导完成基础环境部署[^2]。 执行如下命令来安装所需的基础依赖项: ```bash sudo apt-get update && sudo apt-get install git wget curl python3-pip -y ``` 接着利用官方提供的脚本来简化环境准备流程: ```bash bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx ``` 此命令会自动下载并安装编译 PX4 所必需的各种库文件和其他组件,同时跳过了模拟工具和 NuttX 的安装选项[^1]。 #### 编译源码 获取最新版本的 PX4 自动驾驶仪源代码仓库,并切换到稳定分支进行构建: ```bash git clone https://github.com/PX4/PX4-Autopilot.git -b stable cd PX4-Autopilot make px4_fmu-v6_default ``` 上述指令将会针对指定的目标平台(这里是 FMU v6)启动编译过程。如果一切正常,则会在 `build` 文件夹下生成固件二进制文件。 #### 上载固件至飞行控制器 通过 USB 数据线连接计算机与飞行控制板之后,可以借助 QGroundControl 或者其他支持 MAVLink 协议的应用程序来进行固件刷写操作。推荐使用 QGroundControl 应用因为其界面友好且功能全面。 打开 QGroundControl 后选择 Firmware 页面中的 "Upload" 功能上传刚才编译好的固件镜像给飞控设备。 #### 测试飞行前检查事项 首次试飞之前务必仔细核查所有机械结构是否牢固可靠;确认电池电量充足;校准传感器数据准确性;调整参数设定使之适应当前应用场景需求等重要准备工作不可忽视。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金戈鐡馬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值