30#include "bitbot_mujoco/device/mujoco_imu.h"
31#include "bitbot_mujoco/device/mujoco_joint.h"
33using DeviceImu = bitbot::MujocoImu;
34using DeviceJoint = bitbot::MujocoJoint;
37using RealNumber = float;
38constexpr size_t JOINT_NUMBER = 8;
43constexpr z::CTSPair<
"AccelerationRaw", Vec3> ImuAccRawPair;
44constexpr z::CTSPair<
"AngleVelocityRaw", Vec3> ImuGyroRawPair;
45constexpr z::CTSPair<
"AngleRaw", Vec3> ImuMagRawPair;
47constexpr z::CTSPair<
"AccelerationValue", Vec3> ImuAccFilteredPair;
48constexpr z::CTSPair<
"AngleValue", Vec3> ImuMagFilteredPair;
49constexpr z::CTSPair<
"AngleVelocityValue", Vec3> ImuGyroFilteredPair;
52constexpr z::CTSPair<
"LinearVelocityValue", Vec3> LinearVelocityValuePair;
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;
69constexpr z::CTSPair<
z::concat(Net1Name,
"NetProjectedGravity"), Vec3> NetProjectedGravityPair;
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>;
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>;
101constexpr size_t OBSERVATION_STUCK_LENGTH = 10;
102constexpr size_t OBSERVATION_EXTRA_LENGTH = 5;
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