PX4/Pixhawk 教程 - 可视化参数配置和自启动 - param

2023-05-16

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
  • module_name:是模块名称,当不同的模块有同一个参数,就是通过这个名字来分辨;

  • serial_config:串口配置,模块添加了这个参数就会按里面的参数自动启动

    • command: 自动启动的指令,这个指令支持3个变量,(1)${SERIAL_DEV} 串口设备的路径(如/dev/ttyS1);(2)${BAUD_PARAM} 串口配置的波特率; (3)${i} instance in [0, N-1] (for multi-instance commands)
    • port_config_param: 这个参数的配置信息,包含的主要子节点(1)name,参数名称,字符串,主义不能超过16个字符;(2)group,分类,就是在QGC时这个参数的父级目录名称。(3)description_extended,描述信息,会在QGC里面出现。
  • parameters: 模块的参数列表。

    • group: 同上
    • definitions:参数定义,SENS_CM8JL65_R_0是这个参数的名称。这个参数用有以下子节点:(1)description,描述,描述字段又用有两个子节点,一个是short,短的描述,一个是long长的描述。这个会在QGC里显示;(2) type,类型,表明这个参数的类型有'int32', 'float', 'boolean', 'enum', 'bitmask'等值;(3)default:默认值;(4)value:用于enum类型,提供可选的值列表;(5)reboot_required: 是否需要重启生效;(6)minmax,可选,参数的最大值和最小值,仅支持int和float类型;(7)decimal,可选,显示的小数位数,仅支持float类型;(8)increment,可选,仅用于GCS下的浮点型;(9)unit,可选,单位。

支持的单位有:
| ‘%’, ‘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/(1000
PWM)’, ‘%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(使用前将#替换为@)

PX4/Pixhawk 教程 - 可视化参数配置和自启动 - param 的相关文章

  • Vim(gvim)配色方案推荐

    如果经常用vim进行编辑 xff0c 那么一款好的vim配色就是必然的啦 xff0c 今天我们就来介绍一下我比较喜欢的几款配色 xff08 配色效果主要针对gvim xff0c 因为在vim下工作都是终端操作 xff09 由于本人是以程序员
  • 如何定义python的全局变量

    定义全局变量 global var 61 10 def some function 在函数中使用全局变量 print 34 Global variable value 34 global var some function 在Python中
  • 网上推荐的学习ucosii的三本书

    1 xff0c 嵌入式实时操作系统uc os II教程 西安电子科技大学出版 xff0c 有流程图 2 xff0c 嵌入式实时操作系统uc os II原理与应用 xff08 第二版 xff09 任哲 北航出版 3 xff0c 基于嵌入式实时
  • UC/OSII源码阅读知识点(第一章)

    嵌入式实时操作系统uc os原理与实践 xff08 卢有亮 电子工业出版社 xff09 1 在STM32上使用的ARM CORTEX处理器中 xff0c 具有主堆栈MSP和进程堆栈PSP xff0c 具有Pendsv和Systick中断 2
  • 802.11控制帧&管理帧

    控制帧主要用于协助数据帧的传递 xff0c 可用于管理无线媒介的访问 提供MAC层的可靠性 以下只讲帧类型 xff0c 不讲帧结构 1 1 RTS帧 xff1a 用来取得媒介的控制权 xff0c 用于传送分段帧 xff0c 分段由网卡驱动程
  • linux常用变量含义

    是传给脚本的参数个数 0 是脚本本身的名字 1 是传递给该shell脚本的第一个参数 2 是传递给该shell脚本的第二个参数 64 是传给脚本的所有参数的列表 是以一个单字符串显示所有向脚本传递的参数 xff0c 与位置变量不同 xff0
  • 四核 x86 MinnowBoard 和 UP Squared 单板计算机

    MinnowBoard的 MinnowBoard Turbot Quad 和Aaeon的UP平方单板计算机开始出货 xff0c 以社区网站和运行Linux和Android的英特尔SoC为特点 5月23日 xff0c Intel支持的Minn
  • 无人机悬停 优象科技LC302 V1.1光流模块

    5月30日 xff0c 学校组织了一年一度的五月风活动 xff0c 每个社团纷纷拿出自己协会的作品 在我们科技爱好者协会中 xff0c 展示了光流模块 xff0c 特斯拉线圈 xff0c 蓝牙小车 xff0c 激光显示仪器 xff0c 空气
  • git中tag与release的创建以及两者的区别

    简介 本文辨析在参与开源项目时会遇到的tag与release的概念区别与联系 xff0c 并比较两者的创建方法 定义 标签 xff08 tag xff09 是特定提交 xff08 commit 一个指针 xff0c 也就是每个tag对应一个
  • PX4源码的Makefile详细理解(包含部分makefile语法规则和编译逻辑)

    啰嗦 xff1a 越会一件事情 xff0c 就会忘了不会一件事情的感觉 前段时间在微信上看到这句话 xff0c 深以为然 xff0c 这就是为什么很多时候懂的人觉得自己讲的很清楚了 xff0c 但是不懂的人却觉得并没有讲的清楚明了 xff0
  • c/c++语言结构体中的冒号的用法

    结构体中常见的冒号的用法是表示位域 有些信息在存储时 xff0c 并不需要占用一个完整的字节 xff0c 而只需占几个或一个二进制位 例如在存放一个开关量时 xff0c 只有0 和 1 两种状态 xff0c 用一位二进位即可 为了节省存储空
  • ubuntu 升级内核的具体步骤

    收藏于 2013 04 09 迁移自本人的百度空间 转载自 http forum ubuntu org cn viewtopic php p 61 2730876 ubuntu 12 04内核是linux 3 2 0 24 xff0c 其实
  • 不花钱的机器人——ROS机器人仿真平台 | 模拟器 | Autolabor Simulation

    没钱买机器人底盘和激光雷达 xff0c 照样也能玩转机器人 xff01 Autolabor Simulation是什么 Autolabor Simulation是由 Autolabor 推出的一款基于ROS xff08 Robot Oper
  • 分布式之数据库和缓存双写一致性方案解析

    本文转自博客园 作者 xff1a 孤独烟 原文链接 xff1a https www cnblogs com rjzheng p 9041659 html 为什么写这篇文章 首先 xff0c 缓存由于其高并发和高性能的特性 xff0c 已经在
  • TVM在Windows10下编译安装

    本教程记录了Windows端安装tvm的过程 xff0c 欢迎交流 教程参考 TVM Windows下全功能编译方法 xff1a 从入门到劝退 https blog csdn net znsoft article details 11503
  • V4L2视频驱动框架---v4l2_device管理模块简述

    v4l2框架由4个主要的部分 数据结构 组成 xff1a v4l2 devices 包括v4l2 subdev xff1a v4l2 device管理所有的设备 media device xff1a meida device框架管理运行时的
  • Pixhawk uORB通信

    Pixhawk 飞控 系统是基于ARM的四轴以上飞行器的飞行控制器 xff0c 它的前身是PX4 IMU xff0c Pixhawk 把之前的IMU进行了完整的重构 xff0c 最新版本是2 4 3 而对应的Pixhawk 1 x版本与2
  • 深入了解C++linux工程师的技术需求,为你以后的职业发展定方向

    一 C 43 43 服务器程序员 xff08 流媒体后台 xff0c 游戏后台 xff0c 高性能服务器后台 xff09 1 精通C 43 43 xff0c STL xff0c Linux等 xff0c 熟悉设计模式 xff1b 2 熟练掌
  • C/C++ Linux后台服务器开发高级架构师学习知识点路线总结(2021架构师篇完整版)

    C C 43 43 Linux后台服务器开发高级架构师学习知识点路线总结 xff08 2021架构师篇完整版 xff09 前言 xff1a 小编之前有跟大家分享过一篇架构师体系知识点总结的文章 xff0c 今天在原来的基础上有所改变更新 x
  • (音视频开发)WebRTC进阶流媒体服务器开发-多人互动架构

    一 xff1a 多人互动架构方案 xff08 一 xff09 WebRTC回顾 xff0c 两层含义 xff1a 1 WebRTC是google开源的流媒体客户端 xff0c 可以进行实时通讯 xff0c 主要应用于浏览器之间进行实时通讯

随机推荐

  • Linux C/C++后台开发高级架构师进阶指南-剑指腾讯T9

    C 43 43 后台开发是一个庞杂的技术栈 xff0c 因为没有统一的开发框架并且应用行业非常广泛 所有涉猎广泛 xff0c 这里就把C C 43 43 43 43 后台开发的技术点进行整理总结 xff0c 看完以后 xff0c 不会让你失
  • 如何让shell脚本变成可执行文件

    导读在本教程中介绍创建bash脚本并使用chmod命令使脚本可执行 xff0c 无需脚本前面加上sh或bash命令就可以运行它 创建脚本文件 第一步是使用以下命令创建一个扩展名为 sh的新文件 xff1a root 64 localhost
  • Fast-RTPS

    Fast RTPS是eprosima对于RTPS的C 43 43 实现 xff0c 是一个免费开源软件 xff0c 遵循Apache License 2 0 Fast RTPS现在被称为Fast DDS xff0c 作为ROS2的默认中间件
  • 如何使你的直流电机闭环?(PID讲解)

    前言 xff1a 看了看很多大佬写的PID讲解很全面也很复杂 xff0c 实在是不适合很多萌新入坑 xff0c 所以想按自己的理解写一篇通俗易懂的PID算法讲解 一 xff1a PID的基本定义 PID xff0c 就是 比例 xff08
  • Linux内核深度解析之中断、异常和系统调用——系统调用

    系统调用 系统调用是内核给用户程序提供的编程接口 用户程序调用系统调用 xff0c 通常使用glibc库针对单个系统调用封装的函数 如果glibc库没有针对某个系统调用封装的函数 xff0c 用户程序可以使用通用的封装函数syscall x
  • 面试题(嵌入式经典)

    1 用预处理指令 define声明一个常数 xff0c 用以表明1年中有多少秒 xff08 忽略闰年问题 xff09 define SECONDS PER YEAR 60 60 24 365 UL 2 写一个 标准 宏MIN xff0c 这
  • 择业面对选择,嵌入式 or 互联网,该进哪个?

    这个话题可能是不少电子相关专业的毕业生面临的困惑 xff0c 怎么选择 xff0c 可以听听别人的意见来作为参考 xff0c 但最终还是要由自己的兴趣和爱好决定 知乎上有这样一个提问 xff1a 本人大一开始玩各种单片机 FPGA DSP
  • 大疆无人机-图传技术

    大疆无人机 xff08 航拍器 xff09 遥控连接电脑驱动解决方案 http mini eastday com mobile 160722051432373 html 无人机系列之图传技术https blog csdn net ad360
  • 【2】uC/OS-III应用开发————>启动流程(STM32F767)

    简述 xff1a 上电启动 xff0c 分为三个阶段 CPU内核的初始化 xff0c ARM公司编写 xff0c 所用CPU的 s文件外设模块的初始化OS相关操作的初始化 启动 调度等等系统的启动 上电执行启动文件里面的复位函数Reset
  • Windows11原版镜像

    Windows 11 xff08 企业版 xff09 版本 22H2 xff08 2023年02月发布 xff09 64 位简体中文 文件 xff1a zh cn windows 11 business editions version 2
  • 树莓派操作系统

    树莓派操作系统 树莓派操作系统 介绍更新和升级树莓派操作系统 使用 APT使用 rpi 更新播放音频和视频 OMXPlayer 应用程序如何播放音频如何播放视频播放期间的选项在后台播放使用 USB 网络摄像头 基本用法自动化图像捕获延时拍摄
  • ARM平台FS6818/s5p6818开发板实验7 —— 通过I2C读取MMA8451三轴加速度传感器芯片实现计步器功能的实验

    实验目的 掌握I2C协议的内容 xff0c 了解I2C接口的特点 了解陀螺仪MMA8451的用途及数据采集过程 熟悉s5p6818处理器的I2C配置 xff0c 完成通过I2C读取MMA8451三轴加速度传感器芯片和加速度的改变实现计步功能
  • uC/OS-II 一些细节问题

    最高和最低优先级的任务最好不要使用 xff0c 而用户使用的任务多达56个 xff0c 0表示最高优先级 建立任务的函数有两个 OSTaskCreate OSTaskCreateExt xff08 可设置更多任务细节 xff09 OSSta
  • CubeMX配置FreeRTOS

    01 说在前面 RTOS为了提高任务调度效率一般都包含汇编程序 xff0c 因此移植起来需要一些汇编知识 xff0c 就算网上肯定有移植教程 xff0c 初次搞起来还是挺费劲的 初学时对RTOS代码不熟悉 xff0c 一开始就打击了积极性可
  • 云台控制协议VISCA、PELCO-D、PELCO-P

    1 VISCA部分协议命令 控制 命令 格式 备注 预置点 清除预置点 8X 01 04 3F 00 ZZ FF X 61 1 7 8是广播码 xff0c 下同 xff1b ZZ 61 00 3F xff0c 共64个预置点 设预置点 8X
  • lpms-ig1 IMU使用

    1 xff09 打开网址 https bitbucket org lpresearch lpmsig1opensourcelib 实现1 2 3块编译 2 xff09 给串口 ttyUSB0 赋予权限sudo chmod 777 dev t
  • Vitis AI1.1 系列教程1 - 软件安装

    这里写自定义目录标题 我的安装环境 安装过程在VMware中安装ubuntu 16 04安装Vitis AI几个常见的docker指令 我的安装环境 windows 10VMware 15 5Vitis AI 1 1ubuntu 16 04
  • PX4/Pixhawk - 编译环境搭建

    最近在学习px4的二次开发 xff0c 发现网上的环境搭建教程五花八门 xff0c 大多复杂 xff0c 重重踩坑之后 xff0c 发现还是官方的教程好使 xff0c 总结如下 xff1a 环境准备 采用vmware虚拟机搭建环境系统是ub
  • PX4/Pixhawk 教程 - 任务线程 - workqueue 和 task

    介绍 一个完整的px4的应用程序 xff08 或者叫任务 xff09 分为前台部分和后台部分 xff0c 前台部分是跑在shell任务中的 xff0c 比如helloworld那个程序就只有前台部分 xff0c 敲入指令即可在ssh中运行
  • PX4/Pixhawk 教程 - 可视化参数配置和自启动 - param

    px4常见的设置模块自启动的方式有两种 xff0c 一种是在rx xxx文件中添加需要启动的项 xff0c 另一种是通过yaml参数配置文件 通过添加系统启动项 通过修改系统的启动项实现模块的自启动 xff1a 在px4 ROMFS px4