PX4中提供了很多机架,但要开发PX4不支持的机架类型,需要我们自定义
比如麦克纳姆轮
1.在ROMFS/px4fmu_common/init.d/airframes/
下添加*.hil
机架文件(参考其他)
命名为70000_macanum.hil
,数字得是其他车驾没用到的
#!/bin/sh
#
# @name HILStar (XPlane)
#
# @type Simulation
# @class Plane
#
# @output MAIN1 roll
# @output MAIN2 yaw
# @output MAIN3 throttle
#
# @maintainer Lorenz Meier <lorenz@px4.io>
# @board px4_fmu-v2 exclude
#
#算法使能脚本
. ${R}etc/init.d/rc.mac_apps
#使用3s电池
param set-default BAT1_N_CELLS 3
#航道起飞
param set-default RWTO_TKOFF 1
param set SYS_HITL 1
#取消一些解锁限制
# disable some checks to allow to fly
# - with usb
param set-default CBRK_USB_CHK 197848
# - without real battery
param set-default CBRK_SUPPLY_CHK 894281
# - without safety switch
param set-default COM_PREARM_MODE 0
param set-default CBRK_IO_SAFETY 22027
#关联混控文件
set MIXER mac_rover
#加入Cmakelist.txt
. ${R}etc/init.d/rc.mac_apps
关联算法脚本
set MIXER mac_rover
关联混控文件
2.在ROMFS/px4fmu_common/init.d/
下加入rc.*
算法脚本
这里命名为rc.mac_rover
,后缀与机架中相吻合
#!/bin/sh
#
# Standard apps for mecanum
#
# NOTE: Script variables are declared/initialized/unset in the rcS script.
#
#
# Start the attitude and position estimator.
#
ekf2 start &
#
# Start attitude controller.
#
mac_att_control start
#
# Start Land Detector.
#
land_detector start macanum
至于后面的主要工作,就是去实现mac_att_control
(名字自定义)姿态控制算法了,不在这里讲述
3.在ROMFS/px4fmu_common/mixers/
下加入*.main.mix
混控文件
命名为mac_rover.main.mix
,前缀与机架吻合
---------------------------------------
M:3
S: 0 0 10000 10000 0 -10000 10000
S: 0 2 -10000 -10000 0 -10000 10000
S: 0 3 0 20000 -10000 -10000 10000
---------------------------------------
M: 3
S: 0 0 -10000 -10000 0 -10000 10000
S: 0 2 10000 10000 0 -10000 10000
S: 0 3 0 20000 -10000 -10000 10000
---------------------------------------
M:3
S: 0 0 -10000 -10000 0 -10000 10000
S: 0 2 -10000 -10000 0 -10000 10000
S: 0 3 0 20000 -10000 -10000 10000
---------------------------------------
M: 3
S: 0 0 10000 10000 0 -10000 10000
S: 0 2 10000 10000 0 -10000 10000
S: 0 3 0 20000 -10000 -10000 10000
轮子装配方式如下:
【注】:仅做记录,不讲原理
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)