Ctrl-Z
一个多线程机器人运动控制强化学习部署框架
载入中...
搜索中...
未找到
z::ImuProcessWorker< SchedulerType, ImuType, ImuPrecision > 模板类 参考

ImuProcessWorker 类型是一个IMU数据处理工人类型,这个类型用于处理IMU传感器的数据,包括加速度,角速度和角度。 通常来说,这个类型可以被用于主任务队列中。 这个类会在TaskCycleBegin方法中获取IMU数据并对齐进行滤波和去除异常值。用户可以通过配置文件来配置滤波器的权重。 更多...

#include <ImuProcessWorker.hpp>

类 z::ImuProcessWorker< SchedulerType, ImuType, ImuPrecision > 继承关系图:
z::ImuProcessWorker< SchedulerType, ImuType, ImuPrecision > 的协作图:

Public 成员函数

 ImuProcessWorker (SchedulerType::Ptr scheduler, ImuType ImuInstancePtr, const nlohmann::json &root_cfg=nlohmann::json())
 构造一个IMU数据处理工人类型
 
 ~ImuProcessWorker ()
 析构函数,虚函数,用于释放资源
 
void TaskCycleBegin () override
 TaskCycleBegin方法,在每次任务队列循环的开始会被调度器调用,用于获取IMU数据并进行滤波和去除异常值。
 
void TaskRun () override
 TaskRun方法默认没有实现工作逻辑,因为对IMU数据的处理通常在流水线的开始阶段。
 
- Public 成员函数 继承自 z::AbstractWorker< SchedulerType >
 AbstractWorker (SchedulerType::Ptr scheduler, const nlohmann::json &cfg=nlohmann::json())
 构造一个抽象工人类型
 
void setScheduler (SchedulerType::Ptr scheduler)
 设置调度器的指针
 
virtual ~AbstractWorker ()
 析构函数,虚函数,用于释放资源
 
virtual void TaskCreate ()
 TaskCreate方法,在任务队列创建的时候会被调度器调用,用户可以在这个方法中初始化一些资源
 
virtual void TaskDestroy ()
 TaskDestroy方法,在任务队列删除的时候会被调度器调用,用户可以在这个方法中释放一些资源
 
virtual void TaskCycleEnd ()
 TaskCycleEnd方法,在每次任务队列循环的结束会被调度器调用。
 
- Public 成员函数 继承自 z::ZObject
void PrintSplitLine (size_t length=60, char c='-')
 print a split line, default length is 60 and character is '-'
 

额外继承的成员函数

- Protected 属性 继承自 z::AbstractWorker< SchedulerType >
SchedulerType::Ptr Scheduler = nullptr
 调度器的指针,用户可以通过这个指针来获取一些全局的数据, 比如当前任务的时间戳,前级工人的输出数据等,也可以通过这个指针来设置一些全局的数据。
 

详细描述

template<typename SchedulerType, typename ImuType, typename ImuPrecision>
class z::ImuProcessWorker< SchedulerType, ImuType, ImuPrecision >

ImuProcessWorker 类型是一个IMU数据处理工人类型,这个类型用于处理IMU传感器的数据,包括加速度,角速度和角度。 通常来说,这个类型可以被用于主任务队列中。 这个类会在TaskCycleBegin方法中获取IMU数据并对齐进行滤波和去除异常值。用户可以通过配置文件来配置滤波器的权重。

该类会要求数据总线中包含"AccelerationRaw","AngleVelocityRaw","AngleRaw"这三个数据用于存储IMU传感器的原始数据。 该类会在数据总线中存储"AccelerationValue","AngleVelocityValue","AngleValue"这三个数据用于存储滤波处理后的IMU数据。

config.json配置文件示例:

{
"Workers": {
"ImuProcess": {
"AccFilterWeight": [
1, //加速度滤波权重,表示一个长度为2周期,每个周期的权重都是1的滤波器(有限长冲激响应滤波器FIR)
1
],
"GyroFilterWeight": [
1,
1
],
"MagFilterWeight": [
1,
1
]
}
}
}
模板参数
SchedulerType调度器类型
ImuTypeIMU传感器类型,用户可以通过这个参数来指定IMU传感器的具体类型, 但是这个类型必须要实现GetAccX, GetAccY, GetAccZ, GetGyroX, GetGyroY, GetGyroZ, GetRoll, GetPitch, GetYaw这些方法。
ImuPrecisionIMU数据的精度,用户可以通过这个参数来指定IMU数据的精度,比如可以指定为float或者double

构造及析构函数说明

◆ ImuProcessWorker()

template<typename SchedulerType, typename ImuType, typename ImuPrecision>
z::ImuProcessWorker< SchedulerType, ImuType, ImuPrecision >::ImuProcessWorker ( SchedulerType::Ptr scheduler,
ImuType ImuInstancePtr,
const nlohmann::json & root_cfg = nlohmann::json() )
inline

构造一个IMU数据处理工人类型

参数
scheduler调度器的指针
ImuInstanceIMU传感器实例指针
root_cfg配置文件

成员函数说明

◆ TaskCycleBegin()

template<typename SchedulerType, typename ImuType, typename ImuPrecision>
void z::ImuProcessWorker< SchedulerType, ImuType, ImuPrecision >::TaskCycleBegin ( )
inlineoverridevirtual

TaskCycleBegin方法,在每次任务队列循环的开始会被调度器调用,用于获取IMU数据并进行滤波和去除异常值。

重载 z::AbstractWorker< SchedulerType > .

◆ TaskRun()

template<typename SchedulerType, typename ImuType, typename ImuPrecision>
void z::ImuProcessWorker< SchedulerType, ImuType, ImuPrecision >::TaskRun ( )
inlineoverridevirtual

TaskRun方法默认没有实现工作逻辑,因为对IMU数据的处理通常在流水线的开始阶段。

实现了 z::AbstractWorker< SchedulerType >.


该类的文档由以下文件生成: