|
Ctrl-Z
一个多线程机器人运动控制强化学习部署框架
|
ActionManagementWorker类型是一个用于管理和选择单个或多个推理网络的输出的工人类型。 更多...
#include <ActionManagementWorker.hpp>


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 |
| 调度器的指针,用户可以通过这个指针来获取一些全局的数据, 比如当前任务的时间戳,前级工人的输出数据等,也可以通过这个指针来设置一些全局的数据。 | |
ActionManagementWorker类型是一个用于管理和选择单个或多个推理网络的输出的工人类型。
ActionManagementWorker类型是一个用于管理和选择单个或多个推理网络的输出的工人类型。 用户可以通过这个工人类型来实现多个推理网络的输出的选择和管理。用户可以通过配置文件来配置需要管理的网络输出的名称和类型, 用户可以通过SwitchTo方法来切换到指定的网络输出,用户也可以通过SetActionRemapFunction方法来设置网络输出的重映射函数。 该类型实现了一个默认的重映射函数,默认重映射函数将网络输出的值直接写入数据总线的"TargetMotorPosition"中。
config.json配置文件示例:
| SchedulerType | 调度器类型 |
| InferencePrecision | 推理精度,用户可以通过这个参数来指定推理的精度,比如可以指定为float。 |
| ActionPairs | 多个网络输出的ActionPair类型,用户可以通过这个参数来指定需要管理的网络输出的名称和类型。 |
|
inline |
构造一个ActionManagementWorker类型
| scheduler | 调度器的指针 |
| worker_cfg | 配置文件,用户可以通过配置文件来配置工人的一些参数。 |
|
inline |
设置网络输出的重映射函数,用户可以通过这个方法来设置网络输出的重映射函数。
| CT | 编译期字符串常量,表示网络输出的名称。 |
| func | 重映射函数,用户可以通过这个函数来实现网络输出的重映射逻辑。 |
|
inline |
设置网络输出的重映射函数,用户可以通过这个方法来设置网络输出的重映射函数。
| CT | 编译期动作对,表示网络输出的名称和对应的类型。 |
| func | 重映射函数,用户可以通过这个函数来实现网络输出的重映射逻辑。 |
|
inline |
切换到指定的网络输出,用户可以通过这个方法来切换到指定的网络输出。
| CTSPair | ActionPair 网络输出的名称类型对,用户可以通过这个名称来指定需要切换到的网络输出。 |
| InferencePrecision | SwitchIntervalTime 切换间隔时间,用户可以通过这个参数来指定切换的间隔时间,网络将会在用户指定的时间后切换到指定的网络输出。 |
如果SwitchIntervalTime为-1,则使用默认的切换间隔时间。(切换单位为秒)
|
inline |
切换到指定的网络输出,用户可以通过这个方法来切换到指定的网络输出。
| ActionName | 网络输出的名称,用户可以通过这个名称来指定需要切换到的网络输出。 |
| SwitchIntervalTime | 切换间隔时间,用户可以通过这个参数来指定切换的间隔时间,网络将会在用户指定的时间后切换到指定的网络输出。 |
如果SwitchIntervalTime为-1,则使用默认的切换间隔时间。(切换单位为秒)
|
inlinevirtual |
任务运行方法,在每次任务队列循环中被调用。