文章目录
- 前言
- 一、定义机型文件
- 二、修改srcparser.py
- 三、编译并下载固件
- 四、修改QGC
前言
本教程用PX4实现自定义一些新构型的载具
PX4固件版本:1.12.3
QGC版本:4.0.11
PIXHAWK4 飞控
一、定义机型文件
PX4的机型文件存放在Firmware/ROMFS/px4fmu_common/init.d/airframes
目录下,每个机型文件开头的数字代表是该机型的ID,即参数SYS_AUTOSTART
,设置不同的SYS_AUTOSTART参数即可设置不同的机型,每个机型的SYS_AUTOSTART都不一样,本文自定义了一个机型文件80003_testframs
,该机型文件对应的SYS_AUTOSTART即是80003。
添加完机型文件后,还需要修改该目录下的CMakeLists.txt
文件,
在文件的最后添加上自定义机型的名字
# [80000, 81000] (Unmanned) TEST
80003_testframs
本例中定义的机型文件如下:注意name、type、class要自己定义,其他的部分我是参考的其他的机型写的。
//www.baidu.com
. ${R}etc/init.d/rc.rover_defaults
param set-default BAT_N_CELLS 4
param set-default EKF2_GBIAS_INIT 0.01
param set-default EKF2_ANGERR_INIT 0.01
param set-default EKF2_MAG_TYPE 1
param set-default FW_AIRSPD_MIN 0
param set-default FW_AIRSPD_TRIM 1
param set-default FW_AIRSPD_MAX 3
param set-default GND_SP_CTRL_MODE 1
param set-default GND_L1_DIST 5
param set-default GND_L1_PERIOD 3
param set-default GND_THR_CRUISE 0.7
param set-default GND_THR_MAX 0.5
param set-default GND_MAX_ANG 3.142
param set-default GND_WHEEL_BASE 0.3
param set-default GND_THR_MIN 0
param set-default GND_SPEED_P 0.25
param set-default GND_SPEED_I 3
param set-default GND_SPEED_D 0.001
param set-default GND_SPEED_IMAX 0.125
param set-default GND_SPEED_THR_SC 1
param set-default MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5
param set-default PWM_MAIN_DISARM 1500
param set-default PWM_MAIN_DIS0 1500
param set-default PWM_MAIN_DIS1 1500
param set-default PWM_MAIN_MAX 2000
param set-default PWM_MAIN_MIN 1000
param set-default CBRK_AIRSPD_CHK 162128
param set-default GND_MAX_ANG 3.1415
param set-default RBCLW_BAUD 8
param set-default RBCLW_COUNTS_REV 1200
param set-default RBCLW_ADDRESS 128
param set-default RBCLW_SER_CFG 104
set MAV_TYPE 10
set MIXER generic_diff_rover
set PWM_MAIN_REV2 1
type对应地面站上的机架类型,name对应地面站上的载具。
二、修改srcparser.py
修改下图的srcparser.py文件
在下图位置加入一行:
elif (self.name == "Test"):
return "Test"
三、编译并下载固件
先在Firmware路径下执行
make clean
然后执行
make airframe_metadata
然后会在下面的目录生成airframes.xml
文件
可以在里面找到生成了之前定义的80003这个机型
然后执行下面命令编译固件
make px4_fmu-v5_default
注意在编译固件时不要使用upload上传代码,必须用地面站进行上传
打开下图这个页面,然后插上飞控
选择自定义固件
选择刚才编译生成的.px4固件,双击上传即可
四、修改QGC
将第三步生成的airframes.xml
中所有内容复制到QGC的AirframeFactMetaData.xml
文件中,替换掉原有的内容
将自定义机型的svg图标放在qgroundcontrol/src/AutoPilotPlugins/PX4/Images
目录下,命名为Test.svg:
在 qgcimages.qrc
中点击添加-》添加文件,然后选择上一步的Test.svg,并将别名命名为Airframe/Test
然后重新编译地面站
然后将飞控连到新编译的地面站上,就可以在机架那一栏设置新添加的机型
设置之后如下:
机型对应的SYS_AUTOSTART
参数为80003