当前位置:网站首页>PX4从放弃到精通(二十四):自定义机型
PX4从放弃到精通(二十四):自定义机型
2022-06-11 00:25:00 【Mbot】
前言
本教程用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要自己定义,其他的部分我是参考的其他的机型写的。
#!/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对应地面站上的载具。
二、修改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
边栏推荐
- Web3生态去中心化金融平台——Sealem Finance
- 焱融看|混合云环境下,如何实现数据湖最优存储解决方案
- [VBA Script] extract the information and pending status of all annotations in the word document
- Introduction to the application process of Shenzhen China Patent Award, with a subsidy of 1million yuan
- What is the C-end and what is the b-end? Let me tell you
- How much is the bonus of China Patent Award, with a subsidy of 1million yuan
- Beijing Yanqing District high tech enterprise cultivation support standard, with a subsidy of 100000 yuan
- I was so excited about the college entrance examination in 2022
- 云呐|省级行政单位固定资产管理系统
- 如何下载网页照片
猜你喜欢
![[ROS] review of 2021 ROS Summer School](/img/1c/588d29b60071628c7c9fdce17e8b84.jpg)
[ROS] review of 2021 ROS Summer School

The emperors of the Ming Dynasty

云呐|PDA无线固定资产盘点管理系统

Record the packaging of the googlechrome browser plug-in

Brief description of custom annotations

SAS discriminant analysis (Bayes criterion and proc discrim process)

Sealem Finance打造Web3去中心化金融平台基础设施

快递鸟系统对接

Middleware_ Redis_ 06_ Redis transactions

Recruitment | Nanjing | triostudio Sanli Agency - Interior Designer / construction drawing deepening Designer / device / Product Designer / Intern, etc
随机推荐
项目_基于网络爬虫的疫情数据可视化分析
IRS application release 16: H5 application design guide
负数+0+正数
深圳市南山区专精特新企业申报流程,补贴10-50万
OCR文字识别经典论文详解
Introduction to the policy support of Beijing China Patent Award, with a subsidy of 1million yuan
Introduction to prefix, infix and suffix expressions (code implementation of inverse Polish calculator)
Introduction to the application process of Shenzhen China Patent Award, with a subsidy of 1million yuan
SAS期末复习知识点总结(应用多元统计实验笔记)
2022北京怀柔区新技术新产品(服务)认定要求
Beijing Yanqing District high tech enterprise cultivation support standard, with a subsidy of 100000 yuan
立个flag--重构promise
Deepstream series fish eye camera test
Record several Oracle parameters DB_ files,Cursor_ sharing ,open_ cursor
How to write this with data and proc without SQL
Project_ Visual analysis of epidemic data based on Web Crawler
Solution to prompt "network initialization failed operation failed" in PD virtual machine installation system
Brief description of custom annotations
Non presented paper (no show) policy
北京門頭溝區高新技術企業培育支持標准,補貼10萬