From 2e03e806531016aa6443d84ffd6085ea95aaac68 Mon Sep 17 00:00:00 2001 From: JiatongSun Date: Mon, 15 Apr 2019 17:15:16 +0800 Subject: [PATCH] Auto Aim --- energy/src/energy/get/gimble_rotation_get.cpp | 16 ++++++------ energy/src/energy/run.cpp | 25 +++++++++++++------ energy/src/energy/show/show.cpp | 4 +++ main.cpp | 4 ++- 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/energy/src/energy/get/gimble_rotation_get.cpp b/energy/src/energy/get/gimble_rotation_get.cpp index 664670a..4af8838 100644 --- a/energy/src/energy/get/gimble_rotation_get.cpp +++ b/energy/src/energy/get/gimble_rotation_get.cpp @@ -18,16 +18,16 @@ void Energy::gimbleRotation(){ // pitch_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(PITCH_ORIGIN_RAD)-STRETCH*(hit_point.y-ZERO_POINT_Y)), ATTACK_DISTANCE)); //该方法用于操作手自己完成对心工作的情况,对操作手要求高 -// cv::Point2f real_hit_point; -// stretch(hit_point, real_hit_point); + cv::Point2f real_hit_point; + stretch(hit_point, real_hit_point); // yaw_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(YAW_ORIGIN_RAD)-real_hit_point.x), ATTACK_DISTANCE)); // pitch_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(PITCH_ORIGIN_RAD)-real_hit_point.y), ATTACK_DISTANCE)); -// yaw_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(curr_yaw)-real_hit_point.x), ATTACK_DISTANCE)); -// pitch_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(curr_pitch)-real_hit_point.y), ATTACK_DISTANCE)); + yaw_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(mark_yaw*PI/180)-real_hit_point.x), ATTACK_DISTANCE)); + pitch_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(mark_pitch*PI/180)-real_hit_point.y), ATTACK_DISTANCE)); - yaw_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(3.5*PI/180)-STRETCH*(hit_point.x-cycle_center.x)), ATTACK_DISTANCE)); - pitch_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(9.1*PI/180)-STRETCH*(hit_point.y-cycle_center.y)), ATTACK_DISTANCE)); - cout<<"cur: "<(180 / PI * atan2((ATTACK_DISTANCE*tan(3.5*PI/180)-STRETCH*(hit_point.x-cycle_center.x)), ATTACK_DISTANCE)); +// pitch_rotation = static_cast(180 / PI * atan2((ATTACK_DISTANCE*tan(9.1*PI/180)-STRETCH*(hit_point.y-cycle_center.y)), ATTACK_DISTANCE)); +// cout<<"cur: "<200)all_armor_centers.clear(); // if(first_armor_centers.size()>200)first_armor_centers.clear(); // cout<<"first_armor_centers.size(): "<0||fans_cnt>0) showBothContours("Both",src, fans, armors); if(armors_cnt != fans_cnt+1) return 0; -*/ + +/* //此处用于标定云台在摄像头视频中的零点 findGimbleZeroPoint(src,gimble_zero_points); cout<<"gimble zero points: :"<0)hit_point = gimble_zero_points.at(0).rect.center; +*/ + -/* getAllArmorCenters(); cout<<"all_armor_centers.size(): "<