本文主要是介绍PX4添加一个新的机型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有时候自己定义了一个新的固定翼或者选择,PX4没有对应的机型,这时候需要添加一个新的飞机类型。添加飞机的说明官网上有说明,https://dev.px4.io/en/airframes/adding_a_new_frame.html#add-new-airframe-to-qgroundcontrol。
不过官网上有些细节没有提到,很容易添加失败。步骤和官网上也差不多。我在总结一下步骤及容易出现的问题。所有的配置存储在ROMFS/px4fmu_common/init.d文件夹。所有的混控器存储在ROMFS/px4fmu_common/mixers文件夹。
添加一个新飞机
1、在init.d文件夹创建一个新的文件,这个文件需要以一个没有使用的自动启动ID作为文件名的前缀
2、确定文件的内容,文件的内容主要包括机型名字的确定,飞机参数的配置等等。特别需要注意的是@name在同一个@type下不能有重名的。以下面的3033_wingwing为例。
# @name Wing Wing (aka Z-84) Flying Wing
# @url https://docs.px4.io/en/framebuild_plane/wing_wing_z84.html
# @type Flying Wing
# @class Plane
# @output MAIN1 left aileron
# @output MAIN2 right aileron
# @output MAIN4 throttle
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @maintainer Lorenz Meier lorenz@px4.io
if [ $AUTOCNF == yes ]
thenparam set BAT_N_CELLS 2param set FW_AIRSPD_MAX 15param set FW_AIRSPD_MIN 10param set FW_AIRSPD_TRIM 13param set FW_R_TC 0.3param set FW_P_TC 0.3param set FW_L1_DAMPING 0.74param set FW_L1_PERIOD 16param set FW_LND_ANG 15param set FW_LND_FLALT 5param set FW_LND_HHDIST 15param set FW_LND_HVIRT 13param set FW_LND_TLALT 5param set FW_THR_LND_MAX 0param set FW_PR_FF 0.35param set FW_RR_FF 0.6param set FW_RR_P 0.04
fi
@name是你这个飞机要叫的名字,@url是你这个飞机介绍的链接。@type是你这个飞机的类型,旋翼还是固定翼?@class是你这个vehicle的类型,是飞机,车,还是船,@outpou是你这个飞机通道的输出对应的控制对象,左副翼舵机还是右副翼舵机,还是其他电机等等。接下来是这个飞机的参数。其中参数包括电池的CELL数,空速最大值和最小值,着陆的俯仰角限定值以及PID的控制参数等等。
3、 定义好飞机文件后,需要对于自己的混控器。如果你的飞机控制结构和现有的一样可以参考下别人是怎么写的,如果完全不一样则需要自己设计混控器了,想上面介绍的那样。
4、想要在地面站上成功看到自己的飞机还有很多需要注意的地方。首先对代码重新编译一下,需要clean一下生成的文件。Make clea;makepx4fmu-v2_default。 论坛里的说法是地面站是从飞机的Flash中读取机架信息的,所以需要通过地面站下载你之前编译好的固件http://discuss.px4.io/t/how-do-i-add-my-own-custom-airframe/6915
QT工程建立
qt工程的建立顺带在这里介绍下
Mkdir Firmware-build-dev
Cd Firmware-build-dev
cmake ../Firmware -G "CodeBlocks - Unix Makefiles" -DCONFIG=nuttx_px4fmu-v2_default
接着启动Qt creator(如果系统没安装Qt Creator 百度一下linux下安装Qt Creator,然后再启动Qt Creator)并加载 Firmware 根目录下 CMakeLists.txt 文件,步骤:点击工具栏 File -> Open File or Project -> Select the CMakeLists.txt file 。 如果加载提示ninja没有安装,请按照“高级Linux”章节进行ninja编译工具的安装,安装完成后,log out(登出)并log in(登入)。
加载了文件后,点击左侧projects按钮,在run onfiguration栏选择'custom executable',在executable 栏里输入'make', argument栏输入 'upload',将‘play’按钮配置成运行工程
这篇关于PX4添加一个新的机型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!