modified: User/module/gimbal.h
modified: User/task/ai.c
This commit is contained in:
parent
fc7d649d6d
commit
cf8c530dc8
@ -27,6 +27,17 @@ extern "C" {
|
|||||||
/* Exported macro ----------------------------------------------------------- */
|
/* Exported macro ----------------------------------------------------------- */
|
||||||
/* Exported types ----------------------------------------------------------- */
|
/* Exported types ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
/* 在 Gimbal_Vision_t 结构体中增加前馈成员 */
|
||||||
|
typedef struct {
|
||||||
|
uint8_t target_found;
|
||||||
|
float yaw;
|
||||||
|
float pit;
|
||||||
|
float yaw_v_ff; // Yaw 速度前馈
|
||||||
|
float pit_v_ff; // Pitch 速度前馈
|
||||||
|
// 如有需要可增加加速度前馈 a_ff
|
||||||
|
} Gimbal_Vision_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GIMBAL_MODE_RELAX, /* 放松模式,电机不输出。一般情况云台初始化之后的模式 */
|
GIMBAL_MODE_RELAX, /* 放松模式,电机不输出。一般情况云台初始化之后的模式 */
|
||||||
GIMBAL_MODE_ABSOLUTE, /* 绝对坐标系控制,控制在空间内的绝对姿态 */
|
GIMBAL_MODE_ABSOLUTE, /* 绝对坐标系控制,控制在空间内的绝对姿态 */
|
||||||
@ -39,6 +50,8 @@ typedef struct {
|
|||||||
float yaw; /* 视觉解算出的空间目标绝对 Yaw 角度 */
|
float yaw; /* 视觉解算出的空间目标绝对 Yaw 角度 */
|
||||||
float pit; /* 视觉解算出的空间目标绝对 Pitch 角度 */
|
float pit; /* 视觉解算出的空间目标绝对 Pitch 角度 */
|
||||||
uint8_t target_found; /* 视觉是否已锁定目标 (0: 未锁定, 1: 锁定) */
|
uint8_t target_found; /* 视觉是否已锁定目标 (0: 未锁定, 1: 锁定) */
|
||||||
|
float yaw_v_ff; // Yaw 速度前馈
|
||||||
|
float pit_v_ff; // Pitch 速度前馈
|
||||||
} Gimbal_Vision_t;
|
} Gimbal_Vision_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@ -94,12 +94,16 @@ static void AI_RxCpltCallback(void) {
|
|||||||
vision_data.target_found = 1;
|
vision_data.target_found = 1;
|
||||||
vision_data.yaw = ai_rx_data.yaw;
|
vision_data.yaw = ai_rx_data.yaw;
|
||||||
vision_data.pit = ai_rx_data.pitch;
|
vision_data.pit = ai_rx_data.pitch;
|
||||||
|
vision_data.yaw_v_ff = ai_rx_data.yaw_vel;
|
||||||
|
vision_data.pit_v_ff = ai_rx_data.pitch_vel;
|
||||||
// ai_shoot_cmd.mode = SHOOT_MODE_READY;
|
// ai_shoot_cmd.mode = SHOOT_MODE_READY;
|
||||||
break;
|
break;
|
||||||
case 2: /* 控制云台且开火 */
|
case 2: /* 控制云台且开火 */
|
||||||
vision_data.target_found = 1;
|
vision_data.target_found = 1;
|
||||||
vision_data.yaw = ai_rx_data.yaw;
|
vision_data.yaw = ai_rx_data.yaw;
|
||||||
vision_data.pit = ai_rx_data.pitch;
|
vision_data.pit = ai_rx_data.pitch;
|
||||||
|
vision_data.yaw_v_ff = ai_rx_data.yaw_vel;
|
||||||
|
vision_data.pit_v_ff = ai_rx_data.pitch_vel;
|
||||||
// ai_shoot_cmd.mode = SHOOT_MODE_FIRE;
|
// ai_shoot_cmd.mode = SHOOT_MODE_FIRE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user