跳转到内容

uBot Flight Controller

C++
UUBotFlightController
父类
UObject
类型
对象 · 抽象类 · 可作为蓝图父类
模块
UBotAerial · UBotAerial 0.1.0
头文件
Source/UBotAerial/Public/UBotFlightController.h

物理多旋翼的飞控。多旋翼每个物理步(或每隔 Controller Rate Divider 步)带着真值状态和当前控制模式的目标调用一次 Compute Motor Commands,并执行它返回的归一化电机指令。在 C++ 里继承并重写 _Implementation 函数即可换成自己的飞控;蓝图子类也能用,但以物理频率(默认 1 kHz)经蓝图虚拟机运行,需要调大 Controller Rate Divider。

函数 · UUBotFlightController.ComputeMotorCommands

返回这一步的归一化电机指令(0 到 1,按电机顺序每个转子一个)。Delta Seconds 是到下次调用的时间,单位 s。

引脚方向类型默认值
State输入UBot Multirotor State结构体
Setpoint输入UBot Flight Setpoint结构体
Delta Seconds输入Float (double)0.0
Out Motor Commands输出Float (double)数组

函数 · UUBotFlightController.ResetController

清空飞控的记忆(积分项和目标),并接收它要飞的机架。

引脚方向类型
State输入UBot Multirotor State结构体
Airframe输入UBot Multirotor Airframe结构体

纯函数 · UUBotFlightController.SupportsControlMode

这个飞控是否执行 Mode 的目标。电机模式不会到达飞控。

引脚方向类型默认值
Mode输入EUBot Flight Control Mode枚举Velocity
Return Value输出Boolean