跳转到内容

uBot Multirotor Dynamics

C++
UUBotMultirotorDynamicsComponent
父类
uBot Multirotor Movement UUBotMultirotorMovementComponent
类型
组件 · 可在 Components 面板添加
模块
UBotAerial · UBotAerial 0.1.0
头文件
Source/UBotAerial/Public/UBotMultirotorDynamicsComponent.h

用于飞控研究的刚体多旋翼:有电机滞后的旋翼、推力与反扭矩、相对空气的阻力和重力,按 uBot 仿真时间以固定步长积分。接受速度(航向系)、姿态、角速度和单电机指令,前三者由飞控换算成电机指令。

纯函数 · UUBotMultirotorDynamicsComponent.GetActiveControlMode

最近一条被接受的指令的控制模式;无人机自己悬停时为 Velocity。

引脚方向类型
Return Value输出EUBot Flight Control Mode枚举

纯函数 · UUBotMultirotorDynamicsComponent.GetFlightSetpoint

飞控当前正在飞的设定值。

引脚方向类型
Return Value输出UBot Flight Setpoint结构体

纯函数 · UUBotMultirotorDynamicsComponent.GetHoverMotorCommand

在当前机架和世界重力下保持水平悬停的归一化电机指令。

引脚方向类型
Return Value输出Float (double)

纯函数 · UUBotMultirotorDynamicsComponent.GetLastMotorCommands

最近一个物理步实际施加的电机指令(归一化,按电机顺序)。会复制整个数组。

引脚方向类型
Return Value输出Float (double)数组

函数 · UUBotMultirotorDynamicsComponent.SetFlightController

替换飞控,并立即重置它。传入空值时回退到内置的级联飞控。

引脚方向类型
New Controller输入uBot Flight Controller对象引用

未特别标注的属性:蓝图里只读,Details 面板里可以编辑。

属性类型默认值说明
Dynamics Backend NameDynamicsBackendName · DynamicsNameBuiltIn动力学后端的名字,取自扩展点 UBotAerial.DynamicsBackend。实验性;BuiltIn 是插件自带的积分器。
AirframeAirframe · Dynamics|AirframeUBot 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|ControlBooleantrue是否接受姿态指令。蓝图读写,Details 可编辑
Accept Body Rate CommandsbAcceptBodyRateCommands · Dynamics|ControlBooleantrue是否接受角速度指令。蓝图读写,Details 可编辑
Accept Motor CommandsbAcceptMotorCommands · Dynamics|ControlBooleantrue是否接受单电机指令。蓝图读写,Details 可编辑
Accept Velocity CommandsbAcceptVelocityCommands · Dynamics|ControlBooleantrue是否接受速度指令。蓝图读写,Details 可编辑
Command Loss ActionCommandLossAction · Dynamics|ControlEUBot Command Loss Action枚举Hover指令中断时无人机的动作:发送方释放了指令,或指令超过 Command Timeout Seconds 没有更新。蓝图读写,Details 可编辑
Command Timeout SecondsCommandTimeoutSeconds · Dynamics|ControlFloat0.0指令超过这么多仿真秒没有更新就算中断,单位 s;0 表示由发送方负责超时(uBot ROS 组件自带超时)。最小 0.0;单位 Seconds;蓝图读写,Details 可编辑
Controller Rate DividerControllerRateDivider · Dynamics|ControlInteger1飞控每隔这么多个物理步运行一次,其间保持上一次的电机指令;默认 1,即每步运行。最小 1;蓝图读写,Details 可编辑
Flight ControllerFlightController · Dynamics|ControluBot Flight Controller对象引用/Script/UBotAerial.UBotCascadedFlightController'/Script/UBotAerial.Default__UBotMultirotorDynamicsComponent:FlightController'处理速度、姿态和角速度指令的飞控。可以换成自己的子类。
Landing Speed Meters Per SecondLandingSpeedMetersPerSecond · Dynamics|ControlFloat0.7指令中断动作为 Land 时的下降速度,单位 m/s。最小 0.05;单位 MetersPerSecond;蓝图读写,Details 可编辑
Physics Rate Hz继承PhysicsRateHz · MultirotorFloat1000.0父类默认 500.0每秒仿真时间的物理步数,单位 Hz。步数越多越精确,开销也越大。范围 100.0 – 4000.0;单位 Hertz

来自 uBot Multirotor Movement

节点
属性