uBot Multirotor Dynamics
用于飞控研究的刚体多旋翼:有电机滞后的旋翼、推力与反扭矩、相对空气的阻力和重力,按 uBot 仿真时间以固定步长积分。接受速度(航向系)、姿态、角速度和单电机指令,前三者由飞控换算成电机指令。
Get Active Control Mode
Section titled “Get Active Control Mode”Get Active Control ModeTarget is uBot Multirotor DynamicsTargetReturn Value
最近一条被接受的指令的控制模式;无人机自己悬停时为 Velocity。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | EUBot Flight Control Mode枚举 |
Get Flight Setpoint
Section titled “Get Flight Setpoint”Get Flight SetpointTarget is uBot Multirotor DynamicsTargetReturn Value
飞控当前正在飞的设定值。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | UBot Flight Setpoint结构体 |
Get Hover Motor Command
Section titled “Get Hover Motor Command”Get Hover Motor CommandTarget is uBot Multirotor DynamicsTargetReturn Value
在当前机架和世界重力下保持水平悬停的归一化电机指令。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | Float (double) |
Get Last Motor Commands
Section titled “Get Last Motor Commands”Get Last Motor CommandsTarget is uBot Multirotor DynamicsTargetReturn Value
最近一个物理步实际施加的电机指令(归一化,按电机顺序)。会复制整个数组。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | Float (double)数组 |
Set Flight Controller
Section titled “Set Flight Controller”Set Flight ControllerTarget is uBot Multirotor DynamicsTargetNew Controller
替换飞控,并立即重置它。传入空值时回退到内置的级联飞控。
| 引脚 | 方向 | 类型 |
|---|---|---|
| New Controller | 输入 | uBot Flight Controller对象引用 |
未特别标注的属性:蓝图里只读,Details 面板里可以编辑。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Dynamics Backend NameDynamicsBackendName · Dynamics | Name | BuiltIn | 动力学后端的名字,取自扩展点 UBotAerial.DynamicsBackend。实验性;BuiltIn 是插件自带的积分器。 |
AirframeAirframe · Dynamics|Airframe | UBot Multirotor Airframe结构体 | (MassKilograms=1.500000,InertiaKilogramSquareMeters=(X=0.029000,Y=0.029000,Z=0.055000),Rotors=((PositionMeters=(X=0.159099,Y=0.159099,Z=0.000000),SpinDirection=CounterClockwise),(PositionMeters=(X=-0.159099,Y=-0.159099,Z=0.000000),SpinDirection=CounterClockwise),(PositionMeters=(X=0.159099,Y=-0.159099,Z=0.000000)),(PositionMeters=(X=-0.159099,Y=0.159099,Z=0.000000))),LinearDragCoefficients=(X=0.250000,Y=0.250000,Z=0.300000),QuadraticDragCoefficients=(X=0.030000,Y=0.030000,Z=0.050000),AngularDragCoefficients=(X=0.003000,Y=0.003000,Z=0.005000)) | 质量、转动惯量、旋翼和阻力。改动在下一次 Reset Flight 时生效。蓝图读写,Details 可编辑 |
Accept Attitude CommandsbAcceptAttitudeCommands · Dynamics|Control | Boolean | true | 是否接受姿态指令。蓝图读写,Details 可编辑 |
Accept Body Rate CommandsbAcceptBodyRateCommands · Dynamics|Control | Boolean | true | 是否接受角速度指令。蓝图读写,Details 可编辑 |
Accept Motor CommandsbAcceptMotorCommands · Dynamics|Control | Boolean | true | 是否接受单电机指令。蓝图读写,Details 可编辑 |
Accept Velocity CommandsbAcceptVelocityCommands · Dynamics|Control | Boolean | true | 是否接受速度指令。蓝图读写,Details 可编辑 |
Command Loss ActionCommandLossAction · Dynamics|Control | EUBot Command Loss Action枚举 | Hover | 指令中断时无人机的动作:发送方释放了指令,或指令超过 Command Timeout Seconds 没有更新。蓝图读写,Details 可编辑 |
Command Timeout SecondsCommandTimeoutSeconds · Dynamics|Control | Float | 0.0 | 指令超过这么多仿真秒没有更新就算中断,单位 s;0 表示由发送方负责超时(uBot ROS 组件自带超时)。最小 0.0;单位 Seconds;蓝图读写,Details 可编辑 |
Controller Rate DividerControllerRateDivider · Dynamics|Control | Integer | 1 | 飞控每隔这么多个物理步运行一次,其间保持上一次的电机指令;默认 1,即每步运行。最小 1;蓝图读写,Details 可编辑 |
Flight ControllerFlightController · Dynamics|Control | uBot Flight Controller对象引用 | /Script/UBotAerial.UBotCascadedFlightController'/Script/UBotAerial.Default__UBotMultirotorDynamicsComponent:FlightController' | 处理速度、姿态和角速度指令的飞控。可以换成自己的子类。 |
Landing Speed Meters Per SecondLandingSpeedMetersPerSecond · Dynamics|Control | Float | 0.7 | 指令中断动作为 Land 时的下降速度,单位 m/s。最小 0.05;单位 MetersPerSecond;蓝图读写,Details 可编辑 |
Physics Rate Hz继承PhysicsRateHz · Multirotor | Float | 1000.0父类默认 500.0 | 每秒仿真时间的物理步数,单位 Hz。步数越多越精确,开销也越大。范围 100.0 – 4000.0;单位 Hertz |