# 模块参考:控制器

# 飞艇控制

资料来源 modules/airship_att_control (打开新窗口)

# 说明

它实现了飞艇的姿态和速率控制器。理想情况下,它将采用姿态设定点(......)。载具姿态设定点)或速率设定点(在 acro 模式下通过 手动控制设定点 主题)作为输入和输出执行器控制信息。

目前,它正在为 手动控制设定点 主题直接连接到执行机构。

# 实施情况

为减少控制延迟,模块直接轮询 IMU 驱动程序发布的陀螺仪主题。

# 使用方法

airship_att_control <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 控制分配器

资料来源 modules/control_allocator (打开新窗口)

# 说明

实现控制分配。它将扭矩和推力设定点作为输入,并输出执行器设定点信息。

# 使用方法

control_allocator <命令> [参数...] 命令: 启动 停止 状态 打印状态 信息

# 飞行模式管理器

资料来源 modules/flight_mode_manager (打开新窗口)

# 说明

它实现了所有模式的设定点生成。它将载具的当前模式状态作为输入,并为控制器输出设定点。

# 使用方法

flight_mode_manager <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# fw_att_control

资料来源 模块/fw_att_control (打开新窗口)

# 说明

fw_att_control 是固定翼姿态控制器。

# 使用方法

fw_att_control <命令> [参数...] 命令: 启动 [vtol] VTOL 模式 停止 状态 打印状态信息

# fw_pos_control

资料来源 模块/fw_pos_control (打开新窗口)

# 说明

fw_pos_control 是固定翼位置控制器。

# 使用方法

fw_pos_control <命令> [参数...] 命令: 启动 [vtol] VTOL 模式 停止 状态 打印状态信息

# fw_rate_control

资料来源 模块/费率控制 (打开新窗口)

# 说明

fw_rate_control 是固定翼速率控制器。

# 使用方法

fw_rate_control <命令> [参数...] 命令: 启动 [vtol] VTOL 模式 停止 状态 打印状态信息

# mc_att_control

资料来源 模块/mc_att_control (打开新窗口)

# 说明

它实现了多旋翼飞行器姿态控制器。它采用姿态设定点(载具姿态设定点)作为输入,并输出一个速率设定值。

控制器有一个 P 循环,用于消除角度误差

记录已实施的四元数姿态控制的出版物:非线性四旋翼飞行器姿态控制》(2013 年),作者:Dario Brescianini、Markus Hehn 和 Raffaello D'Andrea 苏黎世联邦理工学院动态系统与控制研究所 (IDSC)

https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/154099/eth-7387-01.pdf

# 使用方法

mc_att_control <命令> [参数...] 命令: 启动 [vtol] VTOL 模式 停止 状态 打印状态信息

# mc_pos_control

资料来源 模块/mc_pos_control (打开新窗口)

# 说明

控制器有两个环路:P 环路用于控制位置误差,PID 环路用于控制速度误差。速度控制器的输出是推力矢量,分为推力方向(即多旋翼飞行器方向的旋转矩阵)和推力标量(即多旋翼飞行器推力本身)。

控制器在工作中不使用欧拉角,生成欧拉角只是为了更人性化地进行控制和记录。

# 使用方法

mc_pos_control <命令> [参数...] 命令: 启动 [vtol] VTOL 模式 停止 状态 打印状态信息

# 率控制

资料来源 模块/速率控制 (打开新窗口)

# 说明

它实现了多旋翼飞行器速率控制器。它接收速率设置点(在 acro 模式下通过 手动控制设定点 主题)作为输入和输出执行器控制信息。

控制器有一个 PID 循环,用于消除角速度误差。

# 使用方法

mc_rate_control <命令> [参数...] 命令: 启动 [vtol] VTOL 模式 停止 状态 打印状态信息

资料来源 模块/导航器 (打开新窗口)

# 说明

负责自主飞行模式的模块。其中包括任务(从 dataman 读取)、起飞和 RTL。它还负责检查违反地理围栏的情况。

# 实施情况

不同的内部模式是作为不同的类实现的,它们继承自一个共同的基类 导航模式.成员 导航模式 包含当前的活动模式。

导航仪发布位置设定点三元组 (三重定位点_s),然后由位置控制器使用。

# 使用方法

navigator <command> [arguments...] 命令: start fencefile 从 SD 卡加载地理围栏文件,存储在 etc/geofence.txt 中 fake_traffic 发布 4 条伪造的 transponder_report_s uORB 消息 stop status 打印状态信息

# UGV无人车位置控制

资料来源 modules/rover_pos_control (打开新窗口)

# 说明

使用 L1 控制器控制地面漫游车的位置。

出版 载具推力设定点(仅限 x 方向)和载具扭矩设定点(仅限偏航方向) IMU_GYRO_RATEMAX 处的信息。

# 实施情况

目前,这种实现方式只支持几种模式:

  • 全手动:油门和偏航控制直接传递到执行器
  • 自动任务:漫游车执行任务
  • 停泊:漫游车将导航至悬停半径内,然后停止电机

# 实例

CLI 使用示例

rover_pos_control start rover_pos_control status rover_pos_control stop

# 使用方法

rover_pos_control <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# uuv_att_control

资料来源 modules/uuv_att_control (打开新窗口)

# 说明

控制无人潜航器(UUV)的姿态。

出版 载具推力设置载具扭矩设定点 信息频率恒定为 250 赫兹。

# 实施情况

目前,这种实现方式只支持几种模式:

  • 全手动:滚转、俯仰、偏航和油门控制直接传递到执行器
  • 自动任务:uuv 执行任务

# 实例

CLI 使用示例

uuv_att_control start uuv_att_control status uuv_att_control stop

# 使用方法

uuv_att_control <命令> [参数...] 命令: 启动 停止 状态 打印状态 信息

# uuv_pos_control

资料来源 modules/uuv_pos_control (打开新窗口)

# 说明

控制无人潜航器 (UUV) 的姿态。发布 态度设定点 留言

# 实施情况

目前,这种实现方式只支持几种模式:

  • 全手动:滚转、俯仰、偏航和油门控制直接传递到执行器
  • 自动任务:uuv 执行任务

# 实例

CLI 使用示例

uuv_pos_control start uuv_pos_control status uuv_pos_control stop

# 使用方法

uuv_pos_control <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# vtol_att_control

资料来源 modules/vtol_att_control (打开新窗口)

# 说明

fw_att_control 是固定翼姿态控制器。

# 使用方法

vtol_att_control <命令> [参数...] 命令: 停止状态 打印状态信息