跳至内容

模块参考:控制器

飞艇控制

资料来源 modules/airship_att_control

说明

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

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

实施情况

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

使用方法

airship_att_control <命令> [参数...]
 命令
   启动

   停止

   状态 打印状态信息

控制分配器

资料来源 modules/control_allocator

说明

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

使用方法

control_allocator <command>[参数...]
 命令
   启动

   停止

   状态 打印状态信息

差分驱动

资料来源 模块/差分驱动

说明

罗孚差速驱动控制器。

使用方法

differential_drive <命令> [参数...]
 命令
   启动

   停止

   状态 打印状态信息

飞行模式管理器

资料来源 modules/flight_mode_manager

说明

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

使用方法

flight_mode_manager <command>[参数...]
 命令
   启动

   停止

   状态 打印状态信息

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...] [参数...
 命令
   启动

   fencefile 从 SD 卡加载地理围栏文件,存储在 etc/geofence.txt 中

   fake_traffic 发布 24 条伪造的 transponder_report_s uORB 报文

   停止

   状态 打印状态信息

罗弗-阿克曼

资料来源 modules/rover_ackermann

说明

UGV无人车状态机

使用方法

rover_ackermann <命令> [参数...]
 命令
   启动

   停止

   状态 打印状态信息

UGV无人车位置控制

资料来源 modules/rover_pos_control

说明

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

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

实施情况

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

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

实例

CLI 使用示例

UGV无人车位置控制启动
UGV无人车位置控制状态
停止

使用方法

rover_pos_control <command>[参数...]
 命令
   启动

   停止

   状态 打印状态信息

uuv_att_control

资料来源 modules/uuv_att_control

说明

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

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

实施情况

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

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

实例

CLI 使用示例

uuv_att_control 启动
uuv_att_control 状态
uuv_att_control 停止

使用方法

uuv_att_control <命令> [参数...]
 命令
   启动

   停止

   状态 打印状态信息

uuv_pos_control

资料来源 modules/uuv_pos_control

说明

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

实施情况

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

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

实例

CLI 使用示例

uuv_pos_control 启动
uuv_pos_control 状态
uuv_pos_control 停止

使用方法

uuv_pos_control <命令> [参数...]
 命令
   启动

   停止

   状态 打印状态信息

vtol_att_control

资料来源 modules/vtol_att_control

说明

fw_att_control 是固定翼姿态控制器。

使用方法

vtol_att_control <命令> [参数...]
 命令

   停止

   状态 打印状态信息