avatar
文章
16
标签
24
分类
6
Home
about
tags
categories
RL-learning
photos
LogoAttic的博客PX4固件编译 返回首页
搜索
Home
about
tags
categories
RL-learning
photos

PX4固件编译

发表于2026-04-16|更新于2026-04-16
|浏览量:

环境:ubuntu22.04 PX4:1.16
硬件:NxtPX4

资料链接: https://github.com/HKUST-Aerial-Robotics/Nxt-FC.git

我选用的是港科大开源的NxtPX4
PX4-gazebo

1
2
3
4
sudo apt install python3-pip
sudo apt install git

pip3 install empy==3.3.4 # 固定empy版本为3.3.4

PX4环境配置

下载PX4代码及其子模块

1
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

再次确认是否下载完全

1
2
3
cd PX4-Autopilot

git submodule update --init –recursive

安装完成后可以查看飞控代码版本

1
2
cd PX4-Autopilot/
git describe --tags

我选择切换到了1.16稳定版来开发,这个根据自己的选择来选版本

1
2
3
git fetch --tags
git checkout v1.16.0
git submodule update --init --recursive
1
2
# 安装依赖
bash ./Tools/setup/ubuntu.sh

我买的是tb上的飞控板,飞控已经刷过固件了就不用重复刷bl,所以我没有编译bootloader,如果是自己打板则需要编译bootloader

编译固件

px4官方仓库里就有NxtPX4的编译用的config,直接用就行,如果是自己画的px4飞控板就需要自行编写config

以下操作均在PX4代码库下进行

1.编译bootloader

1
make hkust_nxt-dual_bootloader

2.编译飞控固件

1
make hkust_nxt-dual

由于我的飞控已经有bl了就不刷入bl,直接刷入固件即可

打开QGC

PX4-gazebo

PX4-gazebo

PX4-gazebo

选择刚刚编译好的固件PX4-Autopilot/build/hkust_nxt-dual_bootloader/hkust_nxt-dual_bootloader.px4

还有操作能把IMU频率提高到250HZ

以下为这块飞控板的串口映射

UART TTY SerialName Suggest Funcion
USART1 /dev/ttyS0 SERIAL_GPS1
USART2 /dev/ttyS1 SERIAL_GPS2
USART3 /dev/ttyS2 SERIAL_TEL1
UART4 /dev/ttyS3 SERIAL_TEL2
UART5 /dev/ttyS4 SERIAL_RC Receiver
USART6 /dev/ttyS5 Debug Currently not available, can be enable
UART7 /dev/ttyS6 SERIAL_TEL3 AUX
UART8 /dev/ttyS7 SERIAL_TEL4 AUX

修改以下参数

IMU_GYRO_RATEMAX: 2000Hz

IMU_INTEG_RATE: 400Hz

MAV_0_MODE: External vision

Set Uart4 to 921600(串口映射里UART4对应SERIAL_TEL2参数,所以修改SER_TEL2_BAUD)

MAV_0_RATE 92160B/s

修改完之后要重启飞控板

然后在飞控板的SD卡创建文件夹和文件

1
mkdir /etc

创建文件/etc/extras.txt,写入以下内容

1
2
3
mavlink stream -d /dev/ttyS3 -s ATTITUDE -r 200

mavlink stream -d /dev/ttyS3 -s HIGHRES_IMU -r 1000

然后重新连入QGC可以在mavlink控制台看到imu输出频率

1
uorb top -1  vehicle_imu

PX4-gazebo

文章作者: Attic
文章链接: https://osaerialrobot.top/2026/04/16/px4-firmware/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Attic的博客!
PX4LinuxUbuntu
cover of next post
下一篇
温和地走进GNU/Linux 终端
在使用各种AI工具的时候我们会发现AI总是会积极地使用命令行工具,那么这些命令行工具是如何给AI提高效率的,又是如何使用的,接下来跟随豹哥的脚步一探究竟。 ctrl+alt+t 这是打开终端的快捷键,所有的操作都将在此完成。 通常最常用的命令应该是ls,用于查看当前目录下有什么文件/文件夹。 实际上ls是一个可执行程序,ls这个可执行程序的位置可以通过。 1which ls 来查看 12li@li-MS-7C94:~$ which ls/usr/bin/ls 实际上which也是一个可执行程序,也可以用which来查看他的位置。 12li@li-MS-7C94:~$ which which/usr/bin/which 这些可执行程序都在/usr/bin/目录下,为什么我们的程序能找到这个目录下的程序呢。 因为我们的终端环境变量里写入了/usr/bin这个路径。 我们可以直接输入下面的命令来查看PATH里到底写了什么。 1echo $PATH 你会看到一长串路径,它们之间通常用:分隔,例如: 1/usr/loca...
相关推荐
cover
2026-04-15
温和地走进GNU/Linux 终端
在使用各种AI工具的时候我们会发现AI总是会积极地使用命令行工具,那么这些命令行工具是如何给AI提高效率的,又是如何使用的,接下来跟随豹哥的脚步一探究竟。 ctrl+alt+t 这是打开终端的快捷键,所有的操作都将在此完成。 通常最常用的命令应该是ls,用于查看当前目录下有什么文件/文件夹。 实际上ls是一个可执行程序,ls这个可执行程序的位置可以通过。 1which ls 来查看 12li@li-MS-7C94:~$ which ls/usr/bin/ls 实际上which也是一个可执行程序,也可以用which来查看他的位置。 12li@li-MS-7C94:~$ which which/usr/bin/which 这些可执行程序都在/usr/bin/目录下,为什么我们的程序能找到这个目录下的程序呢。 因为我们的终端环境变量里写入了/usr/bin这个路径。 我们可以直接输入下面的命令来查看PATH里到底写了什么。 1echo $PATH 你会看到一长串路径,它们之间通常用:分隔,例如: 1/usr/loca...
2025-12-12
px4 ctrl for ROS2
if (typeof lightGallery !== 'undefined') { var options = { selector: '.gallery-item' }; lightGallery(document.getElementsByClassName('.article-gallery')[0], options); }
avatar
Attic
帝都苦苦挣扎的PhD
文章
16
标签
24
分类
6
公告
机器人描述文件查看 学术会议查询
目录
  1. 1. PX4环境配置
  2. 2. 编译固件
最新文章
PX4固件编译
PX4固件编译2026-04-16
温和地走进GNU/Linux 终端
温和地走进GNU/Linux 终端2026-04-15
ros2-px4联合仿真环境配置1(SITL)
ros2-px4联合仿真环境配置1(SITL)2026-04-15
ros2-px4联合仿真环境配置2(SITL)
ros2-px4联合仿真环境配置2(SITL)2026-04-15
希望我能完成这个庞大的项目2026-03-16
© 2025 - 2026 By Attic框架 Hexo 8.1.1|主题 Butterfly 5.5.3
赣ICP备2025057989号-1  |  京公网安备11011402054558号
搜索
数据加载中