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

NetCmdWorker类型是一个神经网络用户命令工人类型,用户可以通过这个工人类型来实现神经网络用户命令的功能。 更多...

#include <NetCmdWorker.hpp>

类 z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs > 继承关系图:
z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs > 的协作图:

Public 成员函数

 NetCmdWorker (SchedulerType::Ptr scheduler, const nlohmann::json &cfg=nlohmann::json())
 构造一个神经网络用户命令工人类型
 
void IncreaseCmd (size_t idx)
 离散增加命令,增加的步长为配置文件中设置的步长
 
void DecreaseCmd (size_t idx)
 离散减少命令,减少的步长为配置文件中设置的步长
 
void SetCmd (size_t idx, CmdPrecision val)
 连续设置命令,根据配置文件中的上下限和是否反转轴进行缩放
 
void SetCmdNoScale (size_t idx, CmdPrecision val)
 连续设置命令,不进行缩放
 
void TaskRun () override
 TaskRun方法,在每次任务队列循环中被调用, 具体的调用时机取决于用户在调度器中设置的当前工人在流水线中的顺序, 用户必须要实现的方法,用于实现当前工人的具体工作逻辑。
 
- 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 CmdPrecision, CTSPair CmdArgs>
class z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs >

NetCmdWorker类型是一个神经网络用户命令工人类型,用户可以通过这个工人类型来实现神经网络用户命令的功能。

NetCmdWorker类型是一个神经网络用户命令工人类型,用户可以通过这个工人类型来实现神经网络用户命令的功能。该类型 可以用于使用键盘或手柄控制机器人运动。该类型会根据配置文档中的配置来设置命令的上下限,离散步长和反向轴等。

config.json配置文件示例:

{
"Workers":{
"Commander": {
"EchoCmd": true, //是否回显打印命令
"UpperLimit": [1.4,0.3,0.3], //命令上限
"LowerLimit": [-1.5,-0.3,-0.3], //命令下限
"DiscreteCmdStep": [0.2,0.05,0.05], //离散步长(通常用于键盘控制)
"ReverseJoystickAxis": [false,true,true] //反向轴(通常用于手柄控制)
}
}
}
模板参数
SchedulerType调度器类型
CmdPrecision命令精度,用户可以通过这个参数来指定命令的精度,比如可以指定为float或者double
CmdArgs一个CTSPair类型的模板参数,用户可以通过这个参数来指定输入网络的命令名称和命令向量长度

构造及析构函数说明

◆ NetCmdWorker()

template<typename SchedulerType, typename CmdPrecision, CTSPair CmdArgs>
z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs >::NetCmdWorker ( SchedulerType::Ptr scheduler,
const nlohmann::json & cfg = nlohmann::json() )
inline

构造一个神经网络用户命令工人类型

参数
scheduler调度器的指针
cfg配置文件

成员函数说明

◆ DecreaseCmd()

template<typename SchedulerType, typename CmdPrecision, CTSPair CmdArgs>
void z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs >::DecreaseCmd ( size_t idx)
inline

离散减少命令,减少的步长为配置文件中设置的步长

参数
idx命令索引

◆ IncreaseCmd()

template<typename SchedulerType, typename CmdPrecision, CTSPair CmdArgs>
void z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs >::IncreaseCmd ( size_t idx)
inline

离散增加命令,增加的步长为配置文件中设置的步长

参数
idx命令索引

◆ SetCmd()

template<typename SchedulerType, typename CmdPrecision, CTSPair CmdArgs>
void z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs >::SetCmd ( size_t idx,
CmdPrecision val )
inline

连续设置命令,根据配置文件中的上下限和是否反转轴进行缩放

参数
idx命令索引
val命令值

◆ SetCmdNoScale()

template<typename SchedulerType, typename CmdPrecision, CTSPair CmdArgs>
void z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs >::SetCmdNoScale ( size_t idx,
CmdPrecision val )
inline

连续设置命令,不进行缩放

参数
idx命令索引
val命令值

◆ TaskRun()

template<typename SchedulerType, typename CmdPrecision, CTSPair CmdArgs>
void z::NetCmdWorker< SchedulerType, CmdPrecision, CmdArgs >::TaskRun ( )
inlineoverridevirtual

TaskRun方法,在每次任务队列循环中被调用, 具体的调用时机取决于用户在调度器中设置的当前工人在流水线中的顺序, 用户必须要实现的方法,用于实现当前工人的具体工作逻辑。

实现了 z::AbstractWorker< SchedulerType >.


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