0
点赞
收藏
分享

微信扫一扫

PX4从放弃到精通(二十四):自定义机型



文章目录

  • ​​前言​​
  • ​​一、定义机型文件​​
  • ​​二、修改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。

PX4从放弃到精通(二十四):自定义机型_自动驾驶

添加完机型文件后,还需要修改该目录下的​​CMakeLists.txt​​文件,

在文件的最后添加上自定义机型的名字

# [80000, 81000] (Unmanned) TEST
80003_testframs

PX4从放弃到精通(二十四):自定义机型_人工智能_02

本例中定义的机型文件如下:注意name、type、class要自己定义,其他的部分我是参考的其他的机型写的。

#!/bin/sh
#
# @name Test
#
# @url https://www.baidu.com
#
# @type Test
# @class Test
#
# @output MAIN0 Speed of left wheels
# @output MAIN1 Speed of right wheels
#
# @maintainer Xujun
#
# @board px4_fmu-v2 exclude
# @board bitcraze_crazyflie exclude
#

. ${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

# Because this is differential drive, it can make a turn with radius 0.
# This corresponds to a turn angle of pi radians.
# If a special case is made for differential-drive, this will need to change.
param set-default GND_MAX_ANG 3.142
param set-default GND_WHEEL_BASE 0.3

# TODO: Set to -1.0, to allow reversing. This will require many changes in the codebase
# to support negative throttle.
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

# Provide ESC a constant 1500 us pulse, which corresponds to
# idle on the Roboclaw motor controller on the Aion R1
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

# Enable Airspeed check circuit breaker because Rovers will have no airspeed sensor
param set-default CBRK_AIRSPD_CHK 162128

# Differential drive acts like ackermann steering with a maximum turn angle of 180 degrees, or pi radians
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 SER_TEL4_BAUD 115200
# 104 corresponds to Telem 4
param set-default RBCLW_SER_CFG 104
# Start this driver after setting parameters, because the driver uses some of those parameters.
# roboclaw start /dev/ttyS3

# Configure this as rover
set MAV_TYPE 10

# Set mixer
set MIXER generic_diff_rover

set PWM_MAIN_REV2 1

type对应地面站上的机架类型,name对应地面站上的载具。

PX4从放弃到精通(二十四):自定义机型_人工智能_03

二、修改srcparser.py

修改下图的srcparser.py文件

PX4从放弃到精通(二十四):自定义机型_人工智能_04

在下图位置加入一行:

elif (self.name == "Test"):
return "Test"

PX4从放弃到精通(二十四):自定义机型_固件_05

三、编译并下载固件

先在Firmware路径下执行

make clean

然后执行

make airframe_metadata

然后会在下面的目录生成​​airframes.xml​​文件

PX4从放弃到精通(二十四):自定义机型_人工智能_06

可以在里面找到生成了之前定义的80003这个机型

PX4从放弃到精通(二十四):自定义机型_上传_07

然后执行下面命令编译固件

make px4_fmu-v5_default

注意在编译固件时不要使用upload上传代码,必须用地面站进行上传

打开下图这个页面,然后插上飞控

PX4从放弃到精通(二十四):自定义机型_固件_08

选择自定义固件

PX4从放弃到精通(二十四):自定义机型_自动驾驶_09

选择刚才编译生成的.px4固件,双击上传即可

PX4从放弃到精通(二十四):自定义机型_上传_10

四、修改QGC

将第三步生成的​​airframes.xml​​中所有内容复制到QGC的​​AirframeFactMetaData.xml​​文件中,替换掉原有的内容

PX4从放弃到精通(二十四):自定义机型_自动驾驶_11

将自定义机型的svg图标放在​​qgroundcontrol/src/AutoPilotPlugins/PX4/Images​​目录下,命名为Test.svg:

PX4从放弃到精通(二十四):自定义机型_人工智能_12

在 ​​qgcimages.qrc​​中点击添加-》添加文件,然后选择上一步的Test.svg,并将别名命名为Airframe/Test

PX4从放弃到精通(二十四):自定义机型_自动驾驶_13

然后重新编译地面站

然后将飞控连到新编译的地面站上,就可以在机架那一栏设置新添加的机型

PX4从放弃到精通(二十四):自定义机型_人工智能_14

设置之后如下:

PX4从放弃到精通(二十四):自定义机型_上传_15

机型对应的​​SYS_AUTOSTART​​参数为80003

PX4从放弃到精通(二十四):自定义机型_人工智能_16



举报

相关推荐

0 条评论