PX4之飞行控制框架

这篇具有很好参考价值的文章主要介绍了PX4之飞行控制框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PX4的飞行控制程序通过模块来实现,与飞控相关的模块主要有commander,navigator,pos_control,att_control这几个,分别可以在src/modules目录中找到。
commander - 指令/事件处理模块,处理指令、遥控器输入和各种事件,设定飞行器状态和控制模式
navigator - 导航模块,根据指定的任务输出导航轨迹
pos_control - 位置控制,根据指定的轨迹或者位置实施位置控制,输出飞行器目标姿态
att_control - 姿态控制,控制飞行器姿态,使飞行器达到预期的速度/加速度等

整体的控制框架大致如下:
px4飞控,px4,PX4,飞控,无人机
其中,commander用于事件的处理,事件的类型可以包括遥控操作、用户指令、状态判断等。navigation, pos control, att control三个模块依次实现层级的飞行控制,从飞行轨迹到电机输出。每一层的输出是下一个环节的输入值,比如navigation的输入为设定的轨迹,输出为位置/速度的设定值,作为pos control的输入,pos control的输出为姿态的设定值,作为att control的输入,att control实现姿态控制,它的输出为电机的控制信号。commander处理信息和事件时会更改飞行器状态(vehicle status)和控制模式(control modes)的值,从而来确定控制系统的运行模式,比如手动控制、位置控制、定高控制、自动起飞等。

 1. commander
由commander.cpp实现,它的主要作用是对事件/消息做出响应,并根据事件/消息控制飞行器的状态和飞行模式,分析commander.cpp的源代码,它的输入输出如下图
px4飞控,px4,PX4,飞控,无人机
其中椭圆形表示模块,在程序中对应具体的module实现,方形表示信息,通过orb_publish,orb_subscribe等函数发布和订阅。commander的主要输入包括遥控器输入(manual_control_setpoint)、飞行器命令(vehicle_command)和着陆判断(vehicle_land_detect)、电池状态(battery_status、system_power)等信息。输出主要有飞行器状态(vehicle_state)、飞行器控制模式(vehicle_control_mode)等信息。其中黄色部分为最主要输出信息。

 2 navigator
navigator主要用来实现导航功能,即根据用户指定的任务给出飞行器需要实现的轨迹。它的消息输入输出结构如下图
px4飞控,px4,PX4,飞控,无人机
主要的输入为位置信息(vehicle_global_position,vehicle_local_position)、飞行器命令和任务指令(vehicle_command,mission),飞行器状态(vehicle_status)。输出为位置设定值(position_setpoint_triplet)和任务结果(mission_result)。

 3 pos_control
pos_control主要用来实现位置/速度控制,根据设定的位置/速度输出需要实现飞行器姿态。它的消息输入输出结构如下图
px4飞控,px4,PX4,飞控,无人机
主要的输入信息为飞行器状态(vehicle_status),控制模式(vehicle_control_mode),位置设定值(position_setpoint_triplet)等,主要的输出为飞行器的姿态设定值(vehicle_attitude_setpoint),用于后续的姿态控制。

 4 att_control
att_control主要用来实现姿态控制,即控制飞行器达到指定的姿态,飞行器的速度、位置等状态都通过姿态控制来实现。它的消息输入输出结构如下图
px4飞控,px4,PX4,飞控,无人机
它的主要输入信息为飞行器状态(vehicle_status),控制模式(vehicle_control_mode),姿态设定值(vehicle_attitude_setpoint),手动控制输入(manual_control_setpoint)等。它的输出主要为电机控制信号(actuators_control_0)。

 5 整体控制框架
px4飞控,px4,PX4,飞控,无人机
整体控制框架如上图所示,里面主要包含commander,navigator,pos_control,att_control等模块,主要的逻辑如前面所述,navigator、pos_control、att_control形成串级的控制系统,每一层的输出为下一层的输入。commander作为主要的调度方,接收各种信息和事件,主要通过vehicle_status和control_mode这两个变量来控制三个控制模块的运作。从而使飞行器实现不同模式的控制。

 文章来源地址https://www.toymoban.com/news/detail-621615.html

到了这里,关于PX4之飞行控制框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • px4+gazebo无人机仿真,定点起飞,y=x²轨迹飞行

    目录 一、创建工作空间 1.创建工作空间 catkin_ws 2.编译工作空间 catkin_make 二、offboard位置控制定点起飞 1.准备工作 2.启动 三、offboard位置控制y=x²轨迹飞行 参考ROS学习--第3篇:ROS基础---创建工作空间 打开终端,创建src文件夹: 进入src文件夹: 初始化文件夹: 进入catkin_ws文件

    2024年02月05日
    浏览(35)
  • PX4之飞行控制框架

    PX4的飞行控制程序通过模块来实现,与飞控相关的模块主要有commander,navigator,pos_control,att_control这几个,分别可以在src/modules目录中找到。 commander - 指令/事件处理模块,处理指令、遥控器输入和各种事件,设定飞行器状态和控制模式 navigator - 导航模块,根据指定的任务输

    2024年02月14日
    浏览(29)
  • 【PX4&Simulink&Gazebo联合仿真】在Simulink中使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化

    本篇文章介绍如何使用ROS2控制无人机沿自定义圆形轨迹飞行并在Gazebo中可视化,提供了Matlab/Simulink源代码,以及演示效果图。 环境: MATLAB : R2022b Ubuntu :20.04 LTS Windows :Windows 10 ROS :ROS2 Foxy Python: 3.8.2 Visual Studio :Visual Studio 2019 PX4 :1.13.0 ROS2的应用程序管道非常简单,这要

    2024年02月22日
    浏览(47)
  • PX4/PIXHAWK无人机代码控制流程

    一般来说,无人机的飞行控制方式主要有三种,分别为遥控器,地面站以及自定义软件;其中地面站跟自定义软件广义来说可归为一类,地面站本就是被用来控制飞行器,已经被开发好的软件;但是说到地面站,通常指的是QGC(QGroundControl)和MP(MissionPlane);两者区别主要在

    2024年01月19日
    浏览(29)
  • 无人机仿真—PX4编译,gazebo仿真及简单off board控制模式下无人机起飞

    在上篇记录中,已经对整体的PX4仿真环境有了一定的了解,现如今就要开始对无人机进行起飞等仿真环境工作,在整体虚拟环境中如果程序能够安稳起飞降落,即可对无人机进行实飞操作。 需要做的是,通过PX4官网提供的基本程序包,在ROS工作空间下新建程序包对其进行运行

    2024年02月03日
    浏览(39)
  • PX4无人机调参

    PX4 1.13.2 日志分析软件:flight review https://logs.px4.io/ 产生震动的原因: 1,桨叶损坏、动平衡差 2,电机桨座不垂直,电机动平衡差 3,机架刚性不足 4,部件松动 降低震动的方法: 软件滤波:调低通滤波或者陷波滤波器参数 硬件减震:调减震球的软度或者加配重 调参时可以用

    2024年02月15日
    浏览(43)
  • 【无人机】PIXHAWK、PX4、APM区别

    PIXHAWK、PX4、APM APM固件 专为Arduupilot开发的固件,现也用于PIXHAWK。有ArduCopter社区支撑、开放,功能全、迭代升级快,适合直接用。由于有较多的历史兼容性需求,软件代码体系相对杂乱,还封装了PX4的内核,学习起来困难些。 PX4固件 专为PIXHAWK开发的固件。相对封闭,代码体

    2024年02月20日
    浏览(35)
  • px4+vio实现无人机室内定位

    文章主要讲述px4 如何利用vins_fusion里程计数据实现在室内定位功能。 文章基于以下软、硬件展开。 硬件 软件 机载电脑: Intel NUC 系统:Ubuntu 20.04 相机: Intel Realsense D435i ros:noetic 飞控:Pixhawk 2.4.8 固件:PX4 1.14.0 完整vins_to_mavros 功能包地址: https://github.com/rotorcraftman/px4ctr

    2024年02月03日
    浏览(37)
  • Ubuntu PX4无人机仿真环境配置

     目录 一、VM虚拟机安装ubuntu18.04   1、VMware安装   2、新建虚拟机 二、Ubuntu系统配置   1、更改软件安装源   2、安装中文输入法 三、PX4环境搭建   1、安装git   2、下载px4源码   3、安装ROS   4、安装MAVROS   5、安装QGC   6、仿真测试 四、其他工具安装   1、VScode安装      

    2024年02月02日
    浏览(37)
  • 【PX4仿真】使用PX4+Gazebo+MAVROS+ROS进行无人机仿真中提高IMU消息频率的方法

    在无人机仿真中,IMU(惯性测量单元)消息频率对于路径规划和感知的仿真至关重要。然而,在使用PX4+Gazebo+MAVROS+ROS进行仿真时,可能会遇到频率受限的情况。本文将介绍如何提高IMU消息频率。 通过以下命令可以查看到IMU消息的发布频率 通常情况下固定在50Hz。 然而,通过

    2024年04月14日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包