跳转到内容

uBot IMU Sensor

C++
UUBotImuSensorComponent
父类
UBot Sensor Component UUBotSensorComponent
类型
组件 · 可在 Components 面板添加 · 可作为蓝图父类
模块
UBotSensor · UBotSensor 0.1.1
头文件
Source/UBotSensor/Public/UBotImuSensorComponent.h

模拟 IMU。按固定频率输出组件本地坐标系下的角速度(rad/s)和比力(m/s²),以及世界坐标系下的姿态四元数;可选噪声、偏置、低通滤波和限幅。

纯函数 · UUBotImuSensorComponent.GetLatestIMUData

返回最近一次采样的 IMU 数据副本,不会触发新的采样。

引脚方向类型
Return Value输出UBot Imu Sensor Data结构体

函数 · UUBotImuSensorComponent.ResetIMUBias

把当前偏置恢复为 Details 中设置的 Accelerometer Bias 和 Gyroscope Bias,丢弃随机游走累积的漂移。

函数 · UUBotImuSensorComponent.ResetIMUHistory

清空差分用的历史状态。之后的两次采样是 Warming Up,第三次恢复 Valid。

函数 · UUBotImuSensorComponent.SampleIMU

立即采样一次 IMU,本次样本为 Valid 时返回 true。

引脚方向类型
Return Value输出Boolean

在 Components 面板选中组件,在 Details 面板底部 Events 区点事件旁的 + 即可生成事件节点。

事件 · UUBotImuSensorComponent.OnImuDataUpdated

每次 IMU 采样后触发,包括无效样本。Data 是本次的完整数据。

引脚方向类型
Data输出UBot Imu Sensor Data结构体

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

属性类型默认值说明
Low Pass Cutoff HzLowPassCutoffHz · IMU|FilterFloat20.0低通滤波的截止频率,单位 Hz。最小 0.1;需先勾选 Low Pass Filter Enabled
Low Pass Filter EnabledbLowPassFilterEnabled · IMU|FilterBooleanfalse为 true 时,对角速度和比力做一阶低通滤波。
Max Sample Delta SecondsMaxSampleDeltaSeconds · IMU|HistoryFloat0.5相邻样本的间隔超过它,样本为 Invalid Delta Time,历史被清空。单位 s。最小 0.01
Teleport Angle DegreesTeleportAngleDegrees · IMU|HistoryFloat120.0相邻样本间转角超过它,样本为 Teleport Detected,历史被清空。单位度。范围 1.0 – 180.0
Teleport Distance MetersTeleportDistanceMeters · IMU|HistoryFloat5.0相邻样本间位移超过它,样本为 Teleport Detected,历史被清空。单位 m。最小 0.01
Accelerometer BiasAccelerometerBias · IMU|NoiseVector(0.0, 0.0, 0.0)加速度计固定偏置,单位 m/s²,本地坐标系。只在 Noise Enabled 打开时加到输出上。
Accelerometer Bias Random Walk Std DevAccelerometerBiasRandomWalkStdDev · IMU|NoiseFloat0.0加速度计偏置的随机游走强度,单位 m/s²/√s。需先勾选 Noise Enabled。最小 0.0
Accelerometer Noise Std DevAccelerometerNoiseStdDev · IMU|NoiseFloat0.0加速度计白噪声强度,单位 m/s²。需先勾选 Noise Enabled。最小 0.0
Gyroscope BiasGyroscopeBias · IMU|NoiseVector(0.0, 0.0, 0.0)陀螺仪固定偏置,单位 rad/s,本地坐标系。只在 Noise Enabled 打开时加到输出上。
Gyroscope Bias Random Walk Std DevGyroscopeBiasRandomWalkStdDev · IMU|NoiseFloat0.0陀螺仪偏置的随机游走强度,单位 rad/s/√s。需先勾选 Noise Enabled。最小 0.0
Gyroscope Noise Std DevGyroscopeNoiseStdDev · IMU|NoiseFloat0.0陀螺仪白噪声强度,单位 rad/s。需先勾选 Noise Enabled。最小 0.0
Clamp OutputbClampOutput · IMU|SafetyBooleanfalse为 true 时,把角速度和比力的大小限制在上限以内,方向不变。
Max Angular VelocityMaxAngularVelocity · IMU|SafetyFloat50.0限幅时角速度大小的上限,单位 rad/s。最小 0.1;需先勾选 Clamp Output
Max Linear AccelerationMaxLinearAcceleration · IMU|SafetyFloat100.0限幅时比力大小的上限,单位 m/s²。最小 0.1;需先勾选 Clamp Output
Frame Id继承FrameId · uBot SensorStringimu_sensor父类默认 ""写入帧头的坐标系名,默认 imu_sensor。
Sensor Id继承SensorId · uBot SensorStringimu_sensor父类默认 ""写入帧头的传感器标识,默认 imu_sensor。
Update Rate Hz继承UpdateRateHz · uBot SensorFloat100.0父类默认 10.0自动采样频率,默认 100 Hz。运行中修改请用 Set Update Rate Hz。范围 0.1 – 240.0

来自 UBot Sensor Component

节点
属性