diff --git a/energy/src/energy/send/send.cpp b/energy/src/energy/send/send.cpp index cc0da07..9f132e0 100644 --- a/energy/src/energy/send/send.cpp +++ b/energy/src/energy/send/send.cpp @@ -18,10 +18,10 @@ void Energy::sendEnergy() { if (camera_cnt == 1) { sum_yaw += yaw_rotation; sum_pitch += pitch_rotation; - if (ROBOT_ID == 3 || ROBOT_ID == 4 || ROBOT_ID == 8) { + if (ROBOT_ID == 4 || ROBOT_ID == 8) { MINMAX(sum_yaw, -100, 100); MINMAX(sum_yaw, -100, 100); - } else if (ROBOT_ID == 7) { + } else if (ROBOT_ID == 3 || ROBOT_ID == 7) { float yaw_I_component = BIG_YAW_AIM_KI * sum_yaw; float pitch_I_component = BIG_PITCH_AIM_KI * sum_pitch; // MINMAX(yaw_I_component, -3, 3); @@ -50,7 +50,7 @@ void Energy::sendEnergy() { // << BIG_PITCH_AIM_KD * (pitch_rotation - last_pitch) << endl; last_yaw = tmp_yaw; last_pitch = tmp_pitch; - if (ROBOT_ID == 7) { + if (ROBOT_ID == 3 || ROBOT_ID == 7) { MINMAX(yaw_rotation, -6, 6); MINMAX(pitch_rotation, -6, 6); } @@ -68,14 +68,18 @@ void Energy::sendEnergy() { double tmp_yaw = yaw_rotation; double tmp_pitch = pitch_rotation; if (mcu_data.mark == 1) { - yaw_rotation = TRY_SMALL_YAW_AIM_KP * yaw_rotation + TRY_SMALL_YAW_AIM_KD * (yaw_rotation - last_yaw); + yaw_rotation = TRY_SMALL_YAW_AIM_KP * yaw_rotation + TRY_SMALL_YAW_AIM_KI * sum_yaw + + TRY_SMALL_YAW_AIM_KD * (yaw_rotation - last_yaw); pitch_rotation = - TRY_SMALL_PITCH_AIM_KP * pitch_rotation + TRY_SMALL_PITCH_AIM_KD * (pitch_rotation - last_pitch); + TRY_SMALL_PITCH_AIM_KP * pitch_rotation + TRY_SMALL_PITCH_AIM_KI * sum_pitch + + TRY_SMALL_PITCH_AIM_KD * (pitch_rotation - last_pitch); } else { - yaw_rotation = SMALL_YAW_AIM_KP * yaw_rotation + SMALL_YAW_AIM_KD * (yaw_rotation - last_yaw); - pitch_rotation = SMALL_PITCH_AIM_KP * pitch_rotation + SMALL_PITCH_AIM_KD * (pitch_rotation - last_pitch); + yaw_rotation = SMALL_YAW_AIM_KP * yaw_rotation + SMALL_YAW_AIM_KI * sum_yaw + + SMALL_YAW_AIM_KD * (yaw_rotation - last_yaw); + pitch_rotation = SMALL_PITCH_AIM_KP * pitch_rotation + SMALL_PITCH_AIM_KI * sum_pitch + + SMALL_PITCH_AIM_KD * (pitch_rotation - last_pitch); } - if (ROBOT_ID == 7) { + if (ROBOT_ID == 3 || ROBOT_ID == 7) { MINMAX(yaw_rotation, -6, 6); MINMAX(pitch_rotation, -6, 6); } diff --git a/main.cpp b/main.cpp index e008b3c..6675d6a 100644 --- a/main.cpp +++ b/main.cpp @@ -33,7 +33,7 @@ McuData mcu_data = { // 单片机端回传结构体 BIG_ENERGY_STATE, // 当前状态,自瞄-大符-小符 0, // 云台角度标记位 1, // 是否启用数字识别 - ENEMY_RED, // 敌方颜色 + ENEMY_BLUE, // 敌方颜色 0, // 能量机关x轴补偿量 0, // 能量机关y轴补偿量 }; @@ -66,8 +66,8 @@ int main(int argc, char *argv[]) { video_gimbal = new CameraWrapper(ARMOR_CAMERA_EXPOSURE, ARMOR_CAMERA_GAIN, 2/*, "armor"*/); video_chassis = new CameraWrapper(ENERGY_CAMERA_EXPOSURE, ENERGY_CAMERA_GAIN, 2/*, "energy"*/); } else { - video_gimbal = new VideoWrapper("/home/sun/桌面/video_8.8/8.7.4-big.avi"); - video_chassis = new VideoWrapper("/home/sun/桌面/video_8.8/8.7.4-big.avi"); + video_gimbal = new VideoWrapper("/home/sun/桌面/video_8.7/round1-8-5-7-big.avi"); + video_chassis = new VideoWrapper("/home/sun/桌面/video_8.7/round1-8-5-7-big.avi"); } if (video_gimbal->init()) { LOGM("video_gimbal source initialization successfully.");