PX4固件编译
环境:ubuntu22.04 PX4:1.16
硬件:NxtPX4
1 | sudo apt install python3-pip |
PX4环境配置
下载PX4代码及其子模块
1 | git clone https://github.com/PX4/PX4-Autopilot.git --recursive |
再次确认是否下载完全
1 | cd PX4-Autopilot |
安装完成后可以查看飞控代码版本
1 | cd PX4-Autopilot/ |
我选择切换到了1.16稳定版来开发,这个根据自己的选择来选版本
1 | git fetch --tags |
1 | # 安装依赖 |
我买的是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-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 | mavlink stream -d /dev/ttyS3 -s ATTITUDE -r 200 |
然后重新连入QGC可以在mavlink控制台看到imu输出频率
1 | uorb top -1 vehicle_imu |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Attic的博客!







