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

MotorResetPositionWorker 类型是一个电机复位工人类型,用户可以通过这个工人类型来实现电机的复位功能。 更多...

#include <MotorResetPositionWorker.hpp>

类 z::MotorResetPositionWorker< SchedulerType, MotorPrecision, JointNumber > 继承关系图:
z::MotorResetPositionWorker< SchedulerType, MotorPrecision, JointNumber > 的协作图:

Public 成员函数

 MotorResetPositionWorker (SchedulerType::Ptr scheduler, const nlohmann::json &Motor_cfg, const nlohmann::json &reset_cfg)
 构造一个电机复位工人类型
 
void StartReset (size_t epoches=0)
 开始复位,用户可以通过这个方法来启动复位
 
void StopReset ()
 停止复位,用户可以通过这个方法来停止复位
 
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 MotorPrecision, size_t JointNumber>
class z::MotorResetPositionWorker< SchedulerType, MotorPrecision, JointNumber >

MotorResetPositionWorker 类型是一个电机复位工人类型,用户可以通过这个工人类型来实现电机的复位功能。

MotorResetPositionWorker 类型是一个电机复位工人类型,用户可以通过这个工人类型来实现电机的复位功能。 通常来说可以由调度器创建一个复位任务队列,并在复位结束后销毁这个任务队列,这个队列通常不位于主任务队列中。 用户也可以通过调用StartReset方法来启动复位,通过StopReset方法来停止复位。 该类型需要从数据总线中读取"CurrentMotorPosition"这个数据,并将"TargetMotorPosition"这个数据写入到数据总线中。 用户需要在数据总线中注册这些数据类型,以便于工人类型能够正确的读写数据。用户可以通过配置文件来配置复位的目标位置和复位的时间。

config.json配置文件示例:

{
"Workers": {
"MotorControl": {
"DefaultPosition": [0, 0, 0, 0, 0, 0] //默认位置
},
"ResetPosition": {
"Duration": 1.0 //复位时间 1s
}
}
}
模板参数
SchedulerType调度器类型
MotorPrecision电机数据精度,用户可以通过这个参数来指定电机数据的精度,比如可以指定为float或者double
JointNumber电机数量,用户可以通过这个参数来指定电机的数量

构造及析构函数说明

◆ MotorResetPositionWorker()

template<typename SchedulerType, typename MotorPrecision, size_t JointNumber>
z::MotorResetPositionWorker< SchedulerType, MotorPrecision, JointNumber >::MotorResetPositionWorker ( SchedulerType::Ptr scheduler,
const nlohmann::json & Motor_cfg,
const nlohmann::json & reset_cfg )
inline

构造一个电机复位工人类型

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

成员函数说明

◆ StartReset()

template<typename SchedulerType, typename MotorPrecision, size_t JointNumber>
void z::MotorResetPositionWorker< SchedulerType, MotorPrecision, JointNumber >::StartReset ( size_t epoches = 0)
inline

开始复位,用户可以通过这个方法来启动复位

参数
epoches复位的时间,单位为调度器的时间步长,默认为0,表示使用配置文件中的时间

◆ TaskRun()

template<typename SchedulerType, typename MotorPrecision, size_t JointNumber>
void z::MotorResetPositionWorker< SchedulerType, MotorPrecision, JointNumber >::TaskRun ( )
inlineoverridevirtual

TaskRun方法,在每次任务队列循环中被调用,用来实现电机的复位逻辑

实现了 z::AbstractWorker< SchedulerType >.


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