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

ActionManagementWorker类型是一个用于管理和选择单个或多个推理网络的输出的工人类型。 更多...

#include <ActionManagementWorker.hpp>

类 z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs > 继承关系图:
z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs > 的协作图:

Public 类型

using OutPutRemapFunction = std::function<void(typename SchedulerType::Ptr, const z::math::Vector<InferencePrecision, ActionElementSize__>)>
 定义一个函数类型,用于重映射网络输出的函数类型,该函数类型接受一个调度器指针和一个网络输出的值,返回void。
 

Public 成员函数

 ActionManagementWorker (SchedulerType::Ptr scheduler, const nlohmann::json &worker_cfg)
 构造一个ActionManagementWorker类型
 
void TaskRun ()
 任务运行方法,在每次任务队列循环中被调用。
 
template<CTString CT>
void SetActionRemapFunction (OutPutRemapFunction func)
 设置网络输出的重映射函数,用户可以通过这个方法来设置网络输出的重映射函数。
 
template<CTSPair CT>
void SetActionRemapFunction (OutPutRemapFunction func)
 设置网络输出的重映射函数,用户可以通过这个方法来设置网络输出的重映射函数。
 
bool SwitchTo (std::string ActionName, InferencePrecision SwitchIntervalTime=-1)
 切换到指定的网络输出,用户可以通过这个方法来切换到指定的网络输出。
 
template<CTSPair ActionPair, InferencePrecision SwitchIntervalTime = static_cast<InferencePrecision>(-1)>
bool SwitchTo ()
 切换到指定的网络输出,用户可以通过这个方法来切换到指定的网络输出。
 
void BlockOutput ()
 阻止输出,用户可以通过这个方法来阻止输出。输出被阻止后,网络输出将不会更新电机目标位置, 用户可以通过SwitchTo方法来切换到指定的网络输出来重新更新位置。
 
- 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 TaskCycleBegin ()
 TaskCycleBegin方法,在每次任务队列循环的开始会被调度器调用。
 
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 InferencePrecision, CTSPair ... ActionPairs>
class z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs >

ActionManagementWorker类型是一个用于管理和选择单个或多个推理网络的输出的工人类型。

ActionManagementWorker类型是一个用于管理和选择单个或多个推理网络的输出的工人类型。 用户可以通过这个工人类型来实现多个推理网络的输出的选择和管理。用户可以通过配置文件来配置需要管理的网络输出的名称和类型, 用户可以通过SwitchTo方法来切换到指定的网络输出,用户也可以通过SetActionRemapFunction方法来设置网络输出的重映射函数。 该类型实现了一个默认的重映射函数,默认重映射函数将网络输出的值直接写入数据总线的"TargetMotorPosition"中。

config.json配置文件示例:

{
"Workers": {
"ActionManagement": {
"SwitchIntervalTime": 1, //默认切换间隔时间 1s
}
}
模板参数
SchedulerType调度器类型
InferencePrecision推理精度,用户可以通过这个参数来指定推理的精度,比如可以指定为float。
ActionPairs多个网络输出的ActionPair类型,用户可以通过这个参数来指定需要管理的网络输出的名称和类型。

构造及析构函数说明

◆ ActionManagementWorker()

template<typename SchedulerType, typename InferencePrecision, CTSPair ... ActionPairs>
z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs >::ActionManagementWorker ( SchedulerType::Ptr scheduler,
const nlohmann::json & worker_cfg )
inline

构造一个ActionManagementWorker类型

参数
scheduler调度器的指针
worker_cfg配置文件,用户可以通过配置文件来配置工人的一些参数。

成员函数说明

◆ SetActionRemapFunction() [1/2]

template<typename SchedulerType, typename InferencePrecision, CTSPair ... ActionPairs>
template<CTString CT>
void z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs >::SetActionRemapFunction ( OutPutRemapFunction func)
inline

设置网络输出的重映射函数,用户可以通过这个方法来设置网络输出的重映射函数。

模板参数
CT编译期字符串常量,表示网络输出的名称。
参数
func重映射函数,用户可以通过这个函数来实现网络输出的重映射逻辑。

◆ SetActionRemapFunction() [2/2]

template<typename SchedulerType, typename InferencePrecision, CTSPair ... ActionPairs>
template<CTSPair CT>
void z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs >::SetActionRemapFunction ( OutPutRemapFunction func)
inline

设置网络输出的重映射函数,用户可以通过这个方法来设置网络输出的重映射函数。

模板参数
CT编译期动作对,表示网络输出的名称和对应的类型。
参数
func重映射函数,用户可以通过这个函数来实现网络输出的重映射逻辑。

◆ SwitchTo() [1/2]

template<typename SchedulerType, typename InferencePrecision, CTSPair ... ActionPairs>
template<CTSPair ActionPair, InferencePrecision SwitchIntervalTime = static_cast<InferencePrecision>(-1)>
bool z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs >::SwitchTo ( )
inline

切换到指定的网络输出,用户可以通过这个方法来切换到指定的网络输出。

模板参数
CTSPairActionPair 网络输出的名称类型对,用户可以通过这个名称来指定需要切换到的网络输出。
InferencePrecisionSwitchIntervalTime 切换间隔时间,用户可以通过这个参数来指定切换的间隔时间,网络将会在用户指定的时间后切换到指定的网络输出。

如果SwitchIntervalTime为-1,则使用默认的切换间隔时间。(切换单位为秒)

返回
true 切换成功
false 切换失败,网络输出的名称未找到。

◆ SwitchTo() [2/2]

template<typename SchedulerType, typename InferencePrecision, CTSPair ... ActionPairs>
bool z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs >::SwitchTo ( std::string ActionName,
InferencePrecision SwitchIntervalTime = -1 )
inline

切换到指定的网络输出,用户可以通过这个方法来切换到指定的网络输出。

参数
ActionName网络输出的名称,用户可以通过这个名称来指定需要切换到的网络输出。
SwitchIntervalTime切换间隔时间,用户可以通过这个参数来指定切换的间隔时间,网络将会在用户指定的时间后切换到指定的网络输出。

如果SwitchIntervalTime为-1,则使用默认的切换间隔时间。(切换单位为秒)

返回
true 切换成功
false 切换失败,网络输出的名称未找到。

◆ TaskRun()

template<typename SchedulerType, typename InferencePrecision, CTSPair ... ActionPairs>
void z::ActionManagementWorker< SchedulerType, InferencePrecision, ActionPairs >::TaskRun ( )
inlinevirtual

任务运行方法,在每次任务队列循环中被调用。

实现了 z::AbstractWorker< SchedulerType >.


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