2026rc_r1/User/module/up.h
2026-03-17 04:38:02 +08:00

69 lines
1.3 KiB
C

#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "bsp/struct_typedef.h"
#include "component/pid.h"
#include "device/motor_rm.h"
#include <stdint.h>
typedef struct {
MOTOR_RM_Param_t m2006_left_param;
MOTOR_RM_Param_t m2006_right_param;
MOTOR_RM_Param_t m3508_left_param;
MOTOR_RM_Param_t m3508_right_param;
MOTOR_RM_Param_t M6020_param;
KPID_Params_t pid_2006_params;
KPID_Params_t pid_3508_params;
KPID_Params_t pid_6020_params;
} Up_params_t;
typedef struct {
float motor2006_left_out;
float motor2006_right_out;
float motor3508_left_out;
float motor3508_right_out;
float motor6020_out;
} Motor_out_t;
typedef struct {
uint32_t last_wakeup;
float dt;
struct {
fp32 motor_2006_left_speed;
fp32 motor_2006_right_speed;
fp32 motor_2006_left_angle;
fp32 motor_2006_right_angle;
fp32 motor_3508_left_speed;
fp32 motor_3508_right_speed;
fp32 motor_3508_left_angle;
fp32 motor_3508_right_angle;
fp32 motor_6020_speed;
fp32 motor_6020_angle;
} feedback;
struct {
KPID_t motor_2006_angle_pid[2];
KPID_t motor_2006_omega_pid[2];
KPID_t motor_3508_angle_pid[2];
KPID_t motor_3508_omega_pid[2];
KPID_t motor_6020_angle_pid;
KPID_t motor_6020_omega_pid;
} pid;
Up_params_t *params;
} UP_t;
#ifdef __cplusplus
}
#endif