PX4概念

2023-05-16

本文针对多选翼飞行器

 

MANUAL:

                   ACRO: 飞行器的输入作用于roll、pitch和yaw的速率。油门直接作用于输出。

                   RATTITUDE:如果飞行器的输入大于该模式下的阈值,那么飞行器的输入将作用于roll、pitch和yaw。如果输入没有作为roll、pitch方向的角度命令和yaw的速率命令,那么油门将直接输出。

                   ANGLE: 飞行器的输入直接作为roll和pitch方向的角度命令和yaw方向的速率命令。油门将直接作用于电机的输出。

 

ASSISTED:

         ALTCTL:

                   Multirotors:roll,pitch,yaw的大小为人为手动输入。油门的输入代表先前上升或者下降的最大速率。油门有最大的死区。

         POSCTL

                   Multirotors:Roll控制左右方向相对于地面的速度,pitch控制前后方向相对于地面的速度。当roll和pitch的大小在死区内,飞行器的位置将不会变化。yaw人为控制yaw方向的选择速率。油门和ALTCTL一样控制飞行器上升/下降速率。

 

AUTO:

      AUTO_LOITER

              飞行器将在当前位置和高度下盘旋或者悬浮。

       AUTO_RTL

              飞行器将以直线形式飞到当前高度或者悬浮高度,之后再着陆。

       AUTO_MISSION

              飞行器遵循GCS(ground control station)的指令,如果暂时没有收到指令,飞行器将在当前高度下悬浮。

 

OFFBOARD:

         在该模式下,飞行器的位置、速度或者姿态由计算机通过串口和MAVLink控制。

 

Architectural Overview

         PX4由两个主要层构成:PX4飞行栈,飞行器软件和PX4中间层(可以支持任何自动机器人的中间层)。

         全部的飞行器框架都共用一个代码库。该完整的系统设计是灵活的:

                   全部的功能都可以分为相互交换的部件

                   通信是通过异步消息交换完成

                   该系统可以在工作场景下工作


High Level Software Architecture

         下面的每一个模块都是独立的模块,每个模块都有自己独立的代码,依赖项甚至运行时间。每个模块都通过uORB机制订阅和发布消息。

         TIP:  PX4的构架允许很方便快速的交换模块的信息。

PX4 Flight Stack

         PX4飞行栈是飞行器的引导,导航和控制算法的集合。他包括固定翼,多旋翼和VTOL框架的控制器,还包括姿态和位置的评估器。

         下图是一个典型块的应用的例子。取决于具体的vehicle,有些块可以结合成一个简单的应用。

PX4 Middleware

         PX4中间层主要由几部分组成:传感器的驱动,将传感器连接应用层的发布-订阅消息的机制(基于中间层)。

         发布-订阅机制:

                   该系统是激活状态的:当有新数据的时候,它会立即更新

                   全部并行运行

                   系统的部件可以在任何线程安全的情况下接收消息

Mixing and Actuators

PX4架构确保飞行器框架层在核心控制器中不需要特殊的处理。

混合意味着采用关于力学方面的命令(ex,向右转弯)并将他们转化为执行命令(控制电机)

将混合的逻辑思想从实际的姿态控制器中分开可以极大的改进可靠性。


Key Concepts

PX4使用(输入)控制组和输出组。在概念方面很简单: 一个控制组(ex attitude,对关键的飞行控制; 或者 gimbal对载荷的控制)。一个输出组是一个物理总线,(eg 对伺服电机的前8个PWM输出)。这些组的每一个组都有8个归一化(-1..+1)的命令端口(这些端口可以通过mixer标出)。一个mixer定义了该控制口的8个信号是如何连接到输出的。

 

对于一个简单的平台,控制口0(roll)是直接连到输出0(elevator)的。对一个多旋翼会有点不一样:控制口0(roll)是连接到四个电机与油门的组合的。

 

Mapping

因为有多个控制组(飞行控制,载荷,etc)和多个输出组(前8个PWM输出,UAVCAN,etc)。一个控制组可以发送命令到多个输出组。

 

PX4 mixer definitions

ROMFS/px4fmu_common/mixers中的文件中将mixers用于预先定义的机身。他们可以用作自定义版本的基础,或者通常的测试。


Syntax(
语法)

mixers的定义是text文件,在一个冒号后写一个大写字母作为一行的开头。

每个文件可以定义多个mixer,mixer对执行器的分配与设备有关,由mixer产生的执行器输出的数字与mixer有关。

tag中输入的是mixer的类型:R 多旋翼mixer


Null Mixer

null mixer不需要控制并产生一个值为0的输出信号。通常一个nullmixer在一个特定模式的执行器输出中被用作一个占位符。


Simple Mixer

         一个simplemixer将0或者多个控制输入集成到一个执行输出中。输入会被标记,而且mixing function会在使用输出标刻前累加结果。

如果<control count>的值是0,sum也会是0,mixer将会输出一个固定的值(由lower limit 和 upper limit限制的offset)

第2行定义了输出的刻度,如果scale是10000的话,ie offset是-0.5,那么他将编译为-5000

当用于mix vehicle控制,mixer group 0是 vehicle的姿态控制组,index 值0 - 3分别对应于roll、pitch、ywa 和 throttle。

 

 

Multirotor Mixer

multirotor mixer 将4个输入(roll、pit、ywa、thrust)集成到一些列执行器的输出中,为了驱动电机和速度控制器。

每个roll、pit、yaw刻度值决定了roll、pit、ywa相对于thrust的刻度。 Whilst the calculations are performed asfloating-point operations, the values stored in the definition file are scaledby a factor of 10000; i.e. an factor of 0.5 is encoded as 5000.

rollpityaw的输入范围期望值为 -1.0 to +1.0,尽管thrust的输入范围为0.0 to 1.0.每个执行器的输出为 -1.0 to 1.0.

In the case where anactuator saturates, all actuator values are rescaled so that the saturatingactuator is limited to 1.0.

 

PWM_limit State Machine

pwm_limit state machine 作为预解锁和解锁的输入函数,用于控制PWM输出。在解锁和解锁后油门增加这段时间内提供延迟。

 

Quick Summary

输入:

         解锁:螺旋桨旋转

         预解锁:良性行为的使能(控制接口)

                   该时刻的输入会覆盖当前的状态

                   突然的预解锁声明会使state变为 ON(不管当前的状态)

                  

状态:

         INIT和 OFF

                   PWM输出是上锁时的值

         RAMP

                   pwm输出值会在上锁时的值上升到最小值

         ON

                   根据控制值会输出pwm值

 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PX4概念 的相关文章

  • PX4通过I2C方式添加自定义传感器(3)

    添加自定义传感器并实现数据的发送和订阅 1 前期准备 1 1 建立文件夹和相关文件配置 我是在src drivers distance sensor文件夹下操作的 xff0c 当然其他文件夹下都类似 首先建立了两个文件夹angle sour
  • 【8-12】树莓派部署t265+px4飞控实现无人机视觉定位

    在之前的文章中 xff0c 我们已经成功在树莓派 xff08 ubuntu mate 18 04 xff09 上部署了T265的追踪摄像头 本文将利用MAVROS协议 xff0c 将T265测量的位姿信息发送给px4固件 xff0c 实现室
  • px4: v2的主板刷写v2的固件

    v2的主板刷写v2的固件 fengxuewei 64 fengxuewei Legion Y7000 2019 PG0 src Firmware changwei rc span class token function make span
  • PX4/Pixhawk---uORB深入理解和应用

    The Instructions of uORB PX4 Pixhawk 软件体系结构 uORB 主题发布 主题订阅 1 简介 1 1 PX4 Pixhawk的软件体系结构 PX4 Pixhawk的软件体系结构主要被分为四个层次 xff0c
  • PX4位置控制offboard模式说明

    offboard模式的开发及应用 一 px4固件的模式 px4固件支持10几种飞行模式 xff0c 从代码结构上分析 xff0c 分为基本模式 自定义模式和自定义子模式 1 基本模式 基本模式又分为 xff0c 位置控制模式 自稳模式 手动
  • PX4+Offboard模式+代码控制无人机起飞(Gazebo)

    参考PX4自动驾驶用户指南 https docs px4 io main zh ros mavros offboard cpp html 我的另一篇博客写了 键盘控制PX4无人机飞行 PX4无人机 键盘控制飞行代码 可以先借鉴本篇博客 xf
  • PX4无人机 - 键盘控制飞行代码

    PX4无人机 键盘控制飞行代码 仿真效果 实机效果 由于图片限制5M以内 xff0c 只能上传一小段了 xff0c 整段视频请点击链接 Pixhawk 6c 无人机 键盘控制无人机 Offboard模式 核心 xff1a 发布 mavros
  • px4源码编译指南

    px4源码编译指南 强烈推荐大家去看官网的英文文档 xff0c 国内的博客杂七杂八 xff0c 官网的中文也很久没有更新 xff0c 这几天自己踩了很多坑 xff0c 写个教程希望能帮助到大家 xff08 本文选用平台是pixhawk1 1
  • PX4源代码下载编译

    sudo git clone https github com PX4 PX4 Autopilot git recursivegit submodule update init recursivegit submodule update r
  • PX4模块设计之四:MAVLink简介

    PX4模块设计之四 xff1a MAVLink简介 1 MAVLink PX4 应用简介2 MAVLink v2 0新特性3 MAVLink协议版本4 MAVLink通信协议帧4 1 MAVLink v1 0 帧格式4 2 MAVLink
  • PX4模块设计之十七:ModuleBase模块

    PX4模块设计之十七 xff1a ModuleBase模块 1 ModuleBase模块介绍2 ModuleBase类介绍3 ModuleBase类功能介绍3 1 模块入口3 2 模块启动3 3 模块停止3 4 状态查询3 5 任务回调3
  • PX4模块设计之二十四:内部ADC模块

    PX4模块设计之二十四 xff1a 内部ADC模块 1 内部ADC模块简介2 模块入口函数2 1 主入口board adc main2 2 自定义子命令custom command 3 内部ADC模块重要函数3 1 task spawn3
  • PX4模块设计之三十:Hysteresis类

    PX4模块设计之三十 xff1a Hysteresis类 1 Hysteresis类简介2 Hysteresis类成员变量介绍3 Hysteresis类迟滞逻辑4 Hysteresis类重要方法4 1 Hysteresis bool ini
  • PX4模块设计之三十四:ControlAllocator模块

    PX4模块设计之三十四 xff1a ControlAllocator模块 1 ControlAllocator模块简介2 模块入口函数2 1 主入口control allocator main2 2 自定义子命令custom command
  • PX4模块设计之四十七:mavlink模块

    PX4模块设计之四十七 xff1a mavlink模块 1 mavlink模块简介2 模块入口函数mavlink main3 mavlink模块重要函数3 1 Mavlink start3 2 Mavlink task main3 3 Ma
  • px4无人机常识介绍(固件,px4等)

    专业名词解释 aircraft 任何可以飞或者可以携带物品还是搭载旅客的飞行器统称为飞机 航空器 uav 无人驾驶飞机 vehicle 飞行器 airplane plane aero plane 有机翼和一个或多个引擎的飞行器统称为飞机 D
  • px4下载指定版本的固件、git用法

    https hub fastgit org PX4 PX4 Autopilot git describe tag 查看当前版本号 git tag l 查看所有版本 xff0c 也就是打个tag git checkout v1 9 1 跳转到
  • 步骤三:PX4,Mavros的下载安装及代码测试

    1 安装Mavros sudo apt install ros melodic mavros ros melodic mavros extras 2 安装Mavros相关的 geographiclib dataset 此处已经加了ghpro
  • PX4项目学习::(七)飞控栈:commander

    PX4的飞行控制程序通过模块来实现 xff0c 与飞控相关的模块主要有commander xff0c navigator xff0c pos control xff0c att control这几个 xff0c 分别可以在src modul
  • 无人机PX4使用动捕系统mocap的位置实现控制+MAVROS

    动捕系统Optitrack xff0c 有很高的定位精度 xff0c 能够给无人机提供比较精确的位置信息 xff0c 因此如果实验室有条件 xff0c 都可以买一套动捕系统 动捕系统的原理 xff1a 光学式动作捕捉依靠一整套精密而复杂的光

随机推荐

  • vscode C/C++ 调试配置

    本文目录 前言一 已有VSCODE环境可正常运行 c cpp文件二 以test cpp为例进行调试配置1 按F5 xff08 启动调试 xff09 利用vscode自动生成tasks json launch json2 对tasks jso
  • pixhawk飞控接口含义

    官方文档 xff1a https docs px4 io v1 9 0 en flight controller pixhawk html 1 spektrum DSM receiver2 xff0c 3 远程通信口 xff0c 接数传4
  • 非线性优化库学习资料:Ceres Gtsam G2o

    其中 Ceres 资料最完善也相对稳定 xff0c 是谷歌的非线性优化库 xff0c Google Cartographer 就是调用了该库 http www ceres solver org tutorial html 既可以作为 Cer
  • 解决ros抛出escalating to SIGTERM问题

    运行ros节点执行ctrl 43 c后进程会转而执行rosspin 后面的程序 xff0c 但是如果在一定时间内程序没有执行完毕 xff0c 进程会强制退出 xff0c 并抛出 escalating to SIGTERM 错误 xff0c
  • Ubuntu18.04 ros-melodic opencv版本冲突问题解决

    原链接 xff1a https blog csdn net Shushan1 article details 116588614 问题描述 ros自带的opencv版本和自己安装的opencv版本冲突导致如下报错 解决办法 修改cv bri
  • ubuntu中,出现Failed to fetch http://…..时,需要换源

    欢迎关注 xff1a 天际使徒的个人博客 问题描述 xff1a 出现Failed to fetch http 问题原因 xff1a 一般是由于直接使用国外的源无法连接的原因导致的解决方案 xff1a 直接替换成国内的源即可 xff08 1
  • yocto 使用技巧

    相当详细的文章就是转运一下 xff0c 方便大家阅读 xff0c 原版文章可以看原链接 对于大家使用Yocto中的一些疑问 xff0c 使用寥寥数语进行解答 xff0c 让大家快速高效地使用Yocto 1 Yocto 编译后文件放在了哪里
  • 基于蚁群算法的10个城市TSP问题的最短路径研究(附源码及讲解步骤)

    基于蚁群算法的10个城市TSP问题的最短路径研究 欢迎关注 xff1a 天际使徒的个人博客 1 蚁群算法 1 1 蚁群算法的流程步骤 这里以TSP问题为例 xff0c 算法设计的流程如下 xff1a 步骤1 xff1a 对相关参数进行初始化
  • (pycharm,typora,chrome补充中……)使用中,小tips

    欢迎关注 xff1a 天际使徒的个人博客 文章目录 pycharmpython解释器界面小说明 xff08 转载 https www cnblogs com xiashuai future p 11192346 html xff09 连按两
  • pycharm安装matplotlib失败(2020最新)

    欢迎关注 xff1a 天际使徒的个人博客 请修复网络 使用国内镜像速度会快很多 xff1a 临时使用 xff1a pip install i https pypi tuna tsinghua edu cn simple some packa
  • qq群文件无法打开显示内容?

    欢迎关注 xff1a 天际使徒的个人博客 解决方法 xff1a 打开ie浏览器 右上角齿轮 gt Internet选项 gt 连接 gt 局域网设置 只勾选 自动检测设置 把代理关了 就能正常显示
  • Windows10下开机任务栏透明TranslucentTB(其他需要自启动软件感觉可以通用)

    转载 xff1a https blog csdn net weixin 43977619 article details 109602040 下载运行 1 下载解压后可以直接运行TranslucentTB应用程序 TPS xff1a 链接已
  • 私藏搜索思路,怎么搜索信息更快更准?

    欢迎关注 xff1a 天际使徒的个人博客 当我们需要查点东西的时候 xff0c 自然而然会想到百度一下 xff0c 但是 xff0c 百度上的质量参差不齐 xff0c 需要筛选 下面我提供一种搜索信息的思路 百度一下 xff08 常识 xf
  • 连续区间多类型KPI异常检测

    文章目录 TitleSummaryResearch ObjectiveProblem StatementMethod s EvaluationConclusion Title ALSR An Adaptive Label Screening
  • KPI自动化异常检测系统——Opprentice

    论文 xff1a Opprentice Towards Practical and Automatic Anomaly Detection Through Machine Learning 文章目录 问题设计思想算法细节 问题 KPI类型很
  • 特征提取和深度学习的KPI异常检测方法—组合模型

    文章目录 简介挑战总体设计数据预处理特征提取数据均衡模型训练模型综合 方案来自于首届AIops挑战赛亚军团队 简介 问题场景就是运维中kpi异常检测 xff0c 希望可以提高检测的准确率 该团队的思路是提取特征然后用集成学习的方法将异常检测
  • docker 安装、升级

    docker 安装 升级 服务器版本 Centos 7 9 1 有外网情况下 docker 升级 镜像下载地址 xff1a https download docker com linux centos 7 x86 64 stable Pac
  • stty 命令说明及使用讲解

    UNIX系统的命令很多 xff0c 但是巧妙使用命令的方法更多 随着经验的积累和观察学习其他用户的实践 xff0c 我们也可学会解决特殊问题的方法 这里谈谈自己使用UNIX系统中stty命令的一些体会 xff0c 希望能与你共享 1 xff
  • Opencv3.4.1+contrib3.4.1+vs2017配置(主要解决了编译的时候找不到.lib文件的问题)

    一般出现找不到 lib库文件都是环境变量配置没弄好或者是依赖项或包含库没设置好 xff0c 下面是我的步骤 xff0c 大家可以参考以下 xff08 大家一定要注意环境变量哪里的bin别弄成lib xff0c 2天不断重装的血泪教训 xff
  • PX4概念

    本文针对多选翼飞行器 MANUAL ACRO 飞行器的输入作用于roll pitch和yaw的速率 油门直接作用于输出 RATTITUDE 如果飞行器的输入大于该模式下的阈值 xff0c 那么飞行器的输入将作用于roll pitch和yaw