无人机 PX4 飞控 | Offboard 模式详解与gazebo仿真测试

PX4 自动驾驶仪具备很多种控制模式,如下:

  • 位置模式
  • 手动/自稳模式
  • 特技模式
  • 环绕模式
  • 自动起飞
  • 自动降落
  • 定点模式
  • 跟随模式
  • 任务模式
  • 返航模式
  • Offboard模式

其中通过板载计算机的应用层功能来进行飞行器控制,则需要在Offboard模式下进行

概述

在该模式下,飞行器根据飞行控制栈外部(如机载计算机)提供的设定值控制位置、速度、加速度、姿态以及推力/力矩。
设定值可以通过MAVLink协议提供给飞控

PX4要求外部控制器提供2Hz连续的“有效存在”信号,该信号可由任意支持的 MAVLink 设置点消息提供。

PX4只有在收到该种信号超过1秒后才有效,如果该种信号停止飞行控制栈将重新获得控制权(脱离Offboard模式)。

需要注意的有以下几点:

  • 此模式需要位置或位姿信息的提供 - 例如GPS、光流、视觉惯性里程计、mocap等。
  • 在该模式下遥控器控制不再被响应,除非改变模式。(在这种模式下,可以在没有任何手动控制器的情况下飞行,通过将参数COM_RC_IN_MODE设置为4:禁用操纵杆输入)
  • 飞行器必须已经收到一条 MAVLink 设置点消息,该消息必须持续发送1秒以上,才允许在Offboard模式下解锁或者在飞行中切换至Offboard模式。
  • 如果没有以 > 2Hz 的速度收到MAVLink 设置点消息=,飞行器将退出Offboard模式。
  • 并非所有 MAVLink 支持的坐标系和字段值都被设定值消息和飞行器支持。

MAVLink 消息

mavros会将收到的期望指令转为下面的mavlink消息,不需要开发者自己构造

下面的 MAVLink 消息及其特定字段和字段值在特定的帧下是可以在Offboard模式下被飞控接收的

SET_POSITION_TARGET_LOCAL_NED

支持以下输入组合:

  • 位置设置值 (仅 x,y,z)
  • 速度设定值(仅vx,yy,vz)
  • 加速度设定值(仅 afx,afy,afz)
  • 位置设定值和速度设定值同时输入(速度设定值被作为前馈使用;被叠加到位置控制器的输出上,结果作为速度控制器的输入使用)
  • 位置设定值和速度设定值以及加速度设定值同时输入(速度和加速度设定值用作前馈;速度设定值叠加至位置控制器输出,并将结果作为速度控制器的输入;加速度设定值被叠加至速度控制器的输出中,输出结果用于计算推力矢量)。

PX4 支持下面的坐标系设定值:

  • 本地坐标系(MAV_FRAME_LOCAL_NED)[注意MAVROS需要接收ENU坐标系的值然后它自动转为NED,组成mavlink消息发送给飞控]
  • 机体坐标系( MAV_FRAME_BODY_NED)[位置上还是NED,速度和加速度为机体坐标系FRD]

SET_POSITION_TARGET_GLOBAL_INT

支持以下输入组合:

  • 位置设定值(仅lat_int,lon_int,alt)
  • 速度设定值(仅vx,vy,vz)
  • Thrust setpoint (only afx, afy, afz) [加速度设定值被用来生成归一化的推力设定值(即不支持加速度设定值)。]
  • 位置设定值和速度设定值(速度设定值被作为前馈使用;被叠加到位置控制器的输出上,结果作为速度控制器的输入使用)。

PX4 支持下面的坐标系设定值:

  • MAV_FRAME_GLOBAL : Global (WGS84) coordinate frame + altitude relative to mean sea level (MSL).

Offboard参数

Offboard模式 受以下参数影响:

  • COM_OF_LOSS_T : Offboard 连接超时时间(以秒为单位),超过该时间未检测到offboard连接后将触发 offboard 连接丢失的失效保护措施 ( COM_OBL_RC_ACT)
  • COM_OBL_RC_ACT : 当offboard模式控制丢失时切换到的飞行模式(值为 - 0: 位置, 1: 高度, 2: 手动, 3: *返航, 4: 降落).
  • COM_RC_OVERRIDE : 遥控器打杆时多旋翼(或者多旋翼模式下的 VOTL)会切换到 位置模式。 默认情况下未启用此功能。
  • COM_RC_STICK_OV : 遥控器打杆多少会切换到 位置模式 (如果 COM_RC_OVERRIDE 已启用)。
  • COM_RCL_EXCEPT : 该参数指定一种模式,在该模式下将忽略RC丢失及不会触发RC丢失的失效保护动作。 将位 2 置1将在Offboard模式下忽略RC丢失。

Offboard控制固件设置

在进行Offboard开发前,您需要在固件端做两个设置。

1.将遥控开关通道映射到offboard

在 QGroundControl 中加载参数,将RC_MAP_OFFB_SW 参数设置为您用来激活Offboard模式的RC 通道 。 该方法会在脱离Offboard模式后进入位置控制模式。

虽然此步骤不是强制性的,因为可以使用 Mavlink 消息激活Offboard模式。 但这种方法安全多了。

2.启用机载计算机接口

在连接任务计算机的串口上启动MAVLink

硬件设置

通常,有三种方式设置Offboard模式通信。

串口电台

一端连接飞控的 UART
一端连接地面站电脑

在这里插入图片描述

板载处理器

在飞行器上部署一台小型将计算机,用 UART 转 USB 适配器连接飞控。 这里有许多可能性,这将取决于除了向自驾仪发送指令外,还想要做什么样的额外机载处理。

安装支架在这里插入图片描述

板载处理器和 WIFI 链接到 ROS

部署在飞行器上的小型计算机除了通过 UART - USB 适配器连接到自动驾驶仪外,同时还可通过WiFi连接至运行 ROS 的地面站。 这可以是上述配备了WiFi适配器的任一计算机。

在这里插入图片描述

在 gazebo 中实践 offboard 模式程序控制

写一个ros的节点,节点启动后,飞机自动进入offboard模式,并解锁,然后起飞至设定点位置

代码

//一系列头文件


#include <ros/ros.h>
#include <geometry_msgs/PoseStamped.h>
#include <mavros_msgs/CommandBool.h>
#
### 垂直起降无人机飞控仿真资料教程 对于垂直起降无人机飞行控制系统的设计和开发而言,仿真环境扮演着至关重要的角色。这类平台通常集成了固定翼飞机的高效巡航能力和多旋翼无人机构型下的灵活垂直升降特性。 #### 1. 使用Gazebo进行模拟 Gazebo是一款广泛应用于机器人技术研究中的开源物理引擎工具包,支持多种类型的空中载具模型创建以及复杂场景构建。通过安装并配置特定于VTOL(Vertical Takeoff and Landing)车辆的动力学参数文件(.sdf),可以实现逼真度较高的飞行行为重现[^3]。 ```bash sudo apt-get install ros-noetic-gazebo-ros-pkgs ros-noetic-ar-drone ``` 这段命令用于在Ubuntu系统上基于ROS(Noetic Ninjemys版本)环境中部署必要的软件包来启动AR Drone虚拟实例作为测试对象之一;当然也可以替换为目标制造商所提供的其他官方资源链接地址来进行相应调整以适应不同品牌型号的产品需求特点。 #### 2. MATLAB/Simulink建模分析 MATLAB提供了丰富的函数库帮助工程师快速搭建数学模型,并利用Simulink图形化界面直观呈现整个系统的运作流程图。针对混合推进方式带来的特殊挑战——比如过渡阶段的姿态保持精度要求较高等情况,则可以通过编写自定义模块进一步细化处理逻辑从而达到预期效果[^4]。 ```matlab % 创建一个新的SIMULINK项目 new_system('MyVTOLDemo'); add_block('simulink/Signal Routing/Mux', 'MyVTOLDemo/MUX') set_param(gcbh, 'Inputs','3') % 设置输入端口数量为三个分别对应XYZ轴方向上的力矩分量 save_system; close_system('MyVTOLDemo',0); ``` 上述脚本展示了如何初始化一个简单的信号合成组件以便后续连接至更复杂的控制器结构之中去完成诸如路径规划之类的高级功能拓展工作。 #### 3. 开源框架PX4及其配套文档 PX4是一个专为小型无人驾驶航空器打造的操作系统级解决方案,在社区内拥有庞大的开发者群体贡献了大量的外围设备驱动程序和支持材料可供查阅学习。特别是其中有关Hybrid VTOL章节深入浅出地讲解了从硬件选型到最后成品组装调试全过程当中的要点难点所在[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月照银海似蛟龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值