添加新的机型
以1.9.0版本为例
1.打开\Firmware\ROMFS\px4fmu_common\init.d\airframes。按照以往的格式添加自己定义的机架。
建议复制其中的一份文件,之后按照其原有的格式修改即可
注意:@type 后边为种类名,相当于新的机架,属于父类
@name 后边为自己定义的名字,相当于机架下边的新定义的名字,属于子类
因此同一type下的name 不可以相同。
以4040_dj_f330为例,以下是其打开后的样子
下面展示一些 内联代码片
。
#!/bin/sh
#
# @name DJI Flame Wheel F330
#
# @type Quadrotor x
# @class Copter
#
# @maintainer Lorenz Meier <lorenz@px4.io>
#
sh /etc/init.d/rc.mc_defaults
set MIXER quad_x
set PWM_OUT 1234
if [ $AUTOCNF = yes ]
then
param set MC_ROLL_P 7
param set MC_ROLLRATE_P 0.15
param set MC_ROLLRATE_I 0.05
param set MC_ROLLRATE_D 0.003
param set MC_PITCH_P 7
param set MC_PITCHRATE_P 0.15
param set MC_PITCHRATE_I 0.05
param set MC_PITCHRATE_D 0.003
param set MC_YAW_P 2.8
param set MC_YAWRATE_P 0.2
param set MC_YAWRATE_I 0.1
param set MC_YAWRATE_D 0
# DJI ESCs do not support calibration and need a higher min
param set PWM_MIN 1230
fi
因此若只修改名字,QGC上会将新定义的显示在原有的Quadrotor x里边
若修改机架,则会在QGC出现新的机架
2.需要将刚刚的文件名在CmakeLists文件中定义,不然不会编译。CmakeLists文件和刚刚打开的文件在同一路径。例如将文件名命名为4073_fxq,则需要在CmakeLists文件中定义,即添加上文件名即可。
下面展示一些 内联代码片
。
# [4000, 4999] Quadrotor x"
4001_quad_x
4002_quad_x_mount
4003_qavr5
4004_H4_680mm
4009_qav250
4010_dji_f330
4011_dji_f450
4012_quad_x_can
4013_bebop
4014_s500
4020_hk_micro_pcb
4030_3dr_solo
4031_3dr_quad
4040_reaper
4041_beta75x
4050_generic_250
4051_s250aq
4052_holybro_qav250
4060_dji_matrice_100
4070_aerofc
4073_fxq
4080_zmr250
4090_nanomind
4100_tiltquadrotor
4250_teal
4900_crazyflie
3.重新编译即可,编译前先make clean,之后再make想要的版本
4.编译成功之后,可以在Firmware/build/自己的版本/ 打开airframes.xml文件,搜索刚刚定义的类型和名字即可,注意不是文件名。如果出现,说明编译成功。
5.打开QGC,通过QGC烧录固件,有时候upload烧录不成功。
6.如果QGC不显示自定义的机架,重新打开QGC即可,如果换到不同的电脑上,需要重新烧录固件后,QGC才可以显示新定义的机架。
部分内容参考PX4添加一个新的机型
如有疑问,请联系3331271758@qq.com