61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
#pragma once
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include "device/supercap.h"
|
||
#include "device/motor_rm.h"
|
||
#include "component/user_math.h"
|
||
#include "component/pid.h"
|
||
//#include "device/referee.h"
|
||
|
||
/**
|
||
* @brief 电机测量数据结构体(兼容RM电机库)
|
||
*/
|
||
typedef struct {
|
||
float speed_rpm; // 电机转速(RPM)
|
||
float current; // 电机电流(A)
|
||
float angle; // 电机角度(rad)
|
||
uint8_t temperature; // 电机温度(℃)
|
||
// 其他测量数据...
|
||
} chassis_motor_measure_t;
|
||
|
||
/**
|
||
* @brief 底盘电机结构体(兼容RM电机库)
|
||
*/
|
||
typedef struct {
|
||
chassis_motor_measure_t *chassis_motor_measure; // 电机测量数据指针
|
||
// 其他电机控制相关成员...
|
||
} chassis_motor_t;
|
||
|
||
/**
|
||
* @brief 底盘运动控制结构体
|
||
*/
|
||
typedef struct {
|
||
/* 4个电机的PID控制器 - 使用现有的KPID_t结构 */
|
||
KPID_t motor_speed_pid[4];
|
||
|
||
/* 4个底盘电机实例 - 兼容RM电机库 */
|
||
chassis_motor_t motor_chassis[4];
|
||
|
||
/* 功率控制相关 */
|
||
float total_power; // 底盘总功率
|
||
float power_limit; // 功率限制值
|
||
uint8_t power_state; // 功率状态
|
||
|
||
/* 底盘状态信息 */
|
||
float velocity_x; // X轴速度
|
||
float velocity_y; // Y轴速度
|
||
float angular_velocity; // 角速度
|
||
|
||
// 其他底盘控制相关变量...
|
||
} chassis_move_t;
|
||
|
||
void set_chassis_power(float power);
|
||
void chassis_power_control_with_supercap(chassis_move_t *chassis_power_control);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|