|
Ctrl-Z
一个多线程机器人运动控制强化学习部署框架
|
该类型实现了一个可用的平凡推理工人类型,用户可以通过这个工人类型来实现推理的功能。 更多...
#include <PlainInferenceWorker.hpp>


Public 类型 | |
| using | MotorValVec = math::Vector<InferencePrecision, JOINT_NUMBER> |
| using | ValVec3 = math::Vector<InferencePrecision, 3> |
Public 成员函数 | |
| PlainInferenceWorker (SchedulerType::Ptr scheduler, const nlohmann::json &Net_cfg, const nlohmann::json &Motor_cfg) | |
| 构造一个PlainInferenceWorker类型 | |
| virtual | ~PlainInferenceWorker () |
| 析构函数 | |
| void | PreProcess () override |
| 推理前的准备工作,主要是将数据从数据总线中读取出来,并将数据缩放到合适的范围 | |
| void | PostProcess () override |
| 推理后的处理工作,主要是将推理的结果从数据总线中读取出来,并将数据缩放到合适的范围 并将推理的结果写入到数据总线中 | |
该类型实现了一个可用的平凡推理工人类型,用户可以通过这个工人类型来实现推理的功能。
该类型实现了一个可用的平凡推理工人类型,用户可以通过这个工人类型来实现推理的功能。 该类型网络输入包括:线速度,角速度,重力投影,用户命令,关节位置,关节速度,上一次动作,网络输出为动作。 该类型需要从数据总线中读取"CurrentMotorVelocity","CurrentMotorPosition","NetLastAction","NetUserCommand3", "LinearVelocityValue","AngleVelocityValue","AngleValue"这些数据,并将"NetLastAction","NetProjectedGravity","NetScaledAction", "TargetMotorPosition","InferenceTime"这些数据写入到数据总线中。用户需要在数据总线中注册这些数据类型,以便于工人类型能够正确的读写数据。 用户可以通过配置文件来配置推理的参数,比如观测量的缩放(observation scale),动作量的缩放(action scale), 观测量的裁剪(observation clip),动作量的裁剪(action clip)等。
config.json配置文件示例: 该类型无新增配置,具体配置请参考CommonLocoInferenceWorker中的配置。
网络输入:线速度(3),角速度(3),重力投影(3),用户命令(3),关节位置(N),关节速度(N),上一次动作(N) 网络输出:动作(N), N为关节数量
| SchedulerType | 调度器类型 |
| NetName | 网络名称,用户可以通过这个参数来指定网络的名称, 这在有多个网络时可以区分数据总线上的不同网络数据 |
| InferencePrecision | 推理精度,用户可以通过这个参数来指定推理的精度,比如可以指定为float或者double |
| JOINT_NUMBER | 关节数量 |
|
inline |
构造一个PlainInferenceWorker类型
| scheduler | 调度器的指针 |
| cfg | 配置文件 |