px4常见的设置模块自启动的方式有两种,一种是在rx.xxx文件中添加需要启动的项,另一种是通过yaml参数配置文件。
通过添加系统启动项
通过修改系统的启动项实现模块的自启动:
在px4/ROMFS/px4fmu_common/init.d/rc.xxx
,xxx为类别的名称,目录截图如下:
这种方式的优点是可以为不同的机型设置不同的启动项,缺点是如果启动指令添加可变参数角为困难。
通过yaml文件配置参数
在模块的目录(CMakeLists)下新建module.yaml
文件,例子如下:
module_name: Lanbao PSK-CM8JL65-CC5
serial_config:
- command: cm8jl65 start -d ${SERIAL_DEV} -R p:SENS_CM8JL65_R_0
port_config_param:
name: SENS_CM8JL65_CFG
group: Sensors
parameters:
- group: Sensors
definitions:
SENS_CM8JL65_R_0:
description:
short: Distance Sensor Rotation
long: |
Distance Sensor Rotation as MAV_SENSOR_ORIENTATION enum
type: enum
values:
25: ROTATION_DOWNWARD_FACING
24: ROTATION_UPWARD_FACING
12: ROTATION_BACKWARD_FACING
0: ROTATION_FORWARD_FACING
6: ROTATION_LEFT_FACING
2: ROTATION_RIGHT_FACING
reboot_required: true
default: 25
支持的单位有:
| ‘%’, ‘Hz’, ‘mAh’, |
| | ‘rad’, ‘%/rad’, ‘rad/s’, ‘rad/s^2’, ‘%/rad/s’, ‘rad s^2/m’,‘rad s/m’, |
| | ‘bit/s’, ‘B/s’, |
| | ‘deg’, ‘deg1e7’, ‘deg/s’, |
| | ‘celcius’, ‘gauss’, ‘gauss/s’, ‘mgauss’, ‘mgauss^2’, |
| | ‘hPa’, ‘kg’, ‘kg/m^2’, ‘kg m^2’, |
| | ‘mm’, ‘m’, ‘m/s’, ‘m^2’, ‘m/s^2’, ‘m/s^3’, ‘m/s^2/sqrt(Hz)’, ‘m/s/rad’, |
| | ‘Ohm’, ‘V’, |
| | ‘us’, ‘ms’, ‘s’, |
| | ‘S’, ‘A/%’, ‘(m/s2)2’, ‘m/m’, ‘tan(rad)^2’, ‘(m/s)^2’, ‘m/rad’, |
| | ‘m/s^3/sqrt(Hz)’, ‘m/s/sqrt(Hz)’, 's/(1000PWM)’, ‘%m/s’, ‘min’, ‘us/C’, |
| | ‘N/(m/s)’, ‘Nm/(rad/s)’, ‘Nm’, ‘N’, |
| | ‘normalized_thrust/s’, ‘normalized_thrust’, ‘norm’, ‘SD’ |
添加完module.yaml
后,需要在CMAkeLists
中添加配置信息:
px4_add_module(
MODULE drivers__cm8jl65
MAIN cm8jl65
SRCS
CM8JL65.cpp
CM8JL65.hpp
cm8jl65_main.cpp
MODULE_CONFIG
module.yaml
DEPENDS
drivers_rangefinder
)
编译成功下载后,在csh里面输入以下指令可以看到新添加的参数
param show
如果要查询RC_MAP_A开头的参数:
nsh> param show RC_MAP_A*
Symbols: x = used, + = saved, * = unsaved
x RC_MAP_AUX1 [359,498] : 0
x RC_MAP_AUX2 [360,499] : 0
x RC_MAP_AUX3 [361,500] : 0
x RC_MAP_ACRO_SW [375,514] : 0
除了命令行的方式,还可以在QGC的parameter的可视化里面看到参数:
获取参数的c和cpp接口
未完待续
参考:
px4文档-配置参数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)