Ctrl-Z
一个多线程机器人运动控制强化学习部署框架
载入中...
搜索中...
未找到
types.hpp
浏览该文件的文档.
1
10#pragma once
11#include <array>
12
14
16#include "Utils/MathTypes.hpp"
17
25
28
29
30#include "bitbot_mujoco/device/mujoco_imu.h"
31#include "bitbot_mujoco/device/mujoco_joint.h"
32
33using DeviceImu = bitbot::MujocoImu;
34using DeviceJoint = bitbot::MujocoJoint;
35
36/************ basic definintion***********/
37using RealNumber = float;
38constexpr size_t JOINT_NUMBER = 8;
41
42/********** IMU Data Pair******************/
43constexpr z::CTSPair<"AccelerationRaw", Vec3> ImuAccRawPair;
44constexpr z::CTSPair<"AngleVelocityRaw", Vec3> ImuGyroRawPair;
45constexpr z::CTSPair<"AngleRaw", Vec3> ImuMagRawPair;
46
47constexpr z::CTSPair<"AccelerationValue", Vec3> ImuAccFilteredPair;
48constexpr z::CTSPair<"AngleValue", Vec3> ImuMagFilteredPair;
49constexpr z::CTSPair<"AngleVelocityValue", Vec3> ImuGyroFilteredPair;
50
51/********** Linear Velocity Pair ***********/
52constexpr z::CTSPair<"LinearVelocityValue", Vec3> LinearVelocityValuePair;
53
54/********** Motor control Pair ************/
55constexpr z::CTSPair<"TargetMotorPosition", MotorVec> TargetMotorPosPair;
56constexpr z::CTSPair<"TargetMotorVelocity", MotorVec> TargetMotorVelPair;
57constexpr z::CTSPair<"TargetMotorTorque", MotorVec> TargetMotorTorquePair;
58constexpr z::CTSPair<"CurrentMotorPosition", MotorVec> CurrentMotorPosPair;
59constexpr z::CTSPair<"CurrentMotorVelocity", MotorVec> CurrentMotorVelPair;
60constexpr z::CTSPair<"CurrentMotorTorque", MotorVec> CurrentMotorTorquePair;
61constexpr z::CTSPair<"LimitTargetMotorTorque", MotorVec> LimitTargetMotorTorquePair;
62constexpr z::CTSPair<"CurrentMotorPositionRaw", MotorVec> CurrentMotorPosRawPair;
63constexpr z::CTSPair<"CurrentMotorVelocityRaw", MotorVec> CurrentMotorVelRawPair;
64
65/********* NN pair ********************/
66constexpr z::CTString Net1Name = "Net1";
67constexpr z::CTSPair<z::concat(Net1Name, "NetLastAction"), MotorVec> NetLastActionPair;
68constexpr z::CTSPair<z::concat(Net1Name, "NetUserCommand3"), Vec3> NetCommand3Pair;
69constexpr z::CTSPair<z::concat(Net1Name, "NetProjectedGravity"), Vec3> NetProjectedGravityPair;
70constexpr z::CTSPair<z::concat(Net1Name, "NetScaledAction"), MotorVec> NetScaledActionPair;
71constexpr z::CTSPair<z::concat(Net1Name, "NetClockVector"), z::math::Vector<RealNumber, 2>> NetClockVectorPair;
72constexpr z::CTSPair<z::concat(Net1Name, "InferenceTime"), RealNumber> InferenceTimePair;
73constexpr z::CTSPair<z::concat(Net1Name, "Action"), MotorVec> Net1OutPair;
74
75// define scheduler
76using SchedulerType = z::AbstractScheduler<ImuAccRawPair, ImuGyroRawPair, ImuMagRawPair, LinearVelocityValuePair,
77 ImuAccFilteredPair, ImuGyroFilteredPair, ImuMagFilteredPair,
78 TargetMotorPosPair, TargetMotorVelPair, CurrentMotorPosPair, CurrentMotorVelPair, CurrentMotorTorquePair,
79 TargetMotorTorquePair, LimitTargetMotorTorquePair,
80 CurrentMotorVelRawPair, CurrentMotorPosRawPair,
81 NetLastActionPair, NetCommand3Pair, NetProjectedGravityPair, NetScaledActionPair, NetClockVectorPair, InferenceTimePair, Net1OutPair>;
82
83
84//define workers
89using LoggerWorkerType = z::AsyncLoggerWorker<SchedulerType, RealNumber, ImuAccRawPair, ImuGyroRawPair, ImuMagRawPair, LinearVelocityValuePair,
90 ImuAccFilteredPair, ImuGyroFilteredPair, ImuMagFilteredPair,
91 TargetMotorPosPair, TargetMotorVelPair, CurrentMotorPosPair, CurrentMotorVelPair, CurrentMotorTorquePair,
92 TargetMotorTorquePair, LimitTargetMotorTorquePair,
93 NetLastActionPair, NetCommand3Pair, NetProjectedGravityPair, NetScaledActionPair, NetClockVectorPair, InferenceTimePair, Net1OutPair>;
94
96using FlexPatchWorkerType = z::SimpleCallbackWorker<SchedulerType>;
97
99
100/******define actor net************/
101constexpr size_t OBSERVATION_STUCK_LENGTH = 10;
102constexpr size_t OBSERVATION_EXTRA_LENGTH = 5;
103//using HumanoidGymInferWorkerType = z::HumanoidGymInferenceWorker<SchedulerType, RealNumber,OBSERVATION_STUCK_LENGTH, JOINT_NUMBER>;
AbstractScheduler 调度器类型,用于管理任务,工作线程和数据。
该文件定义了一个类ActionManagementWorker,用于管理和选择单个或多个推理网络的输出。
定义了一些数学类型,包括向量和张量类型
定义了一个神经网络用户命令工人类型
constexpr auto concat(const CTString< N > &...strs)
concat multiple compile time strings
定义 StaticStringUtils.hpp:47
AbstractScheduler 调度器类型,用于管理任务,工作线程和数据。
定义 AbstractScheduler.hpp:49
ActionManagementWorker类型是一个用于管理和选择单个或多个推理网络的输出的工人类型。
定义 ActionManagementWorker.hpp:55
异步日志工人类型,用户可以通过这个工人类型来异步的实现记录数据的功能。
定义 AsyncLoggerWorker.hpp:60
定义 EraxLikeInferenceWorker.hpp:27
ImuProcessWorker 类型是一个IMU数据处理工人类型,这个类型用于处理IMU传感器的数据,包括加速度,角速度和角度。 通常来说,这个类型可以被用于主任务队列中。 这个类会在TaskCycl...
定义 ImuProcessWorker.hpp:60
MotorControlWorker类型是一个电机控制类型,用于读取实际电机的位置、速度、电流等数据,并将控制指令写入到电机的控制接口。
定义 MotorControlWorker.hpp:153
MotorPDControlWorker类型是一个电机PD控制工人类型,用户可以通过这个工人类型来实现电机的PD控制。
定义 MotorControlWorker.hpp:52
MotorResetPositionWorker 类型是一个电机复位工人类型,用户可以通过这个工人类型来实现电机的复位功能。
定义 MotorResetPositionWorker.hpp:49
NetCmdWorker类型是一个神经网络用户命令工人类型,用户可以通过这个工人类型来实现神经网络用户命令的功能。
定义 NetCmdWorker.hpp:46
SimpleCallbackWorker 类型是一个简单的回调工人类型,用户可以通过这个工人类型来实现一些简单的工作逻辑。
定义 AbstractWorker.hpp:113
Vector class, support some vector operations, like dot, cross, normalize, etc.
定义 VectorType.hpp:77
compile time string key-value pair
定义 StaticStringUtils.hpp:99
compile time string
定义 StaticStringUtils.hpp:31