From ae0c8d2fd8faad03db1a8a0bff0b313c6b3b227c Mon Sep 17 00:00:00 2001 From: lyf <169361657@qq.com> Date: Sat, 21 Mar 2026 15:03:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- armor/include/armor_finder/armor_finder.h | 1 + armor/src/armor_finder/armor_finder.cpp | 2 +- armor/src/armor_finder/classifier/solver.cpp | 2 +- .../armor_finder/send_target/send_target.cpp | 4 ++-- tools/logger.hpp | 20 +++++++++++-------- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/armor/include/armor_finder/armor_finder.h b/armor/include/armor_finder/armor_finder.h index 13b052f..2ee8aca 100644 --- a/armor/include/armor_finder/armor_finder.h +++ b/armor/include/armor_finder/armor_finder.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #define BLOB_RED ENEMY_RED diff --git a/armor/src/armor_finder/armor_finder.cpp b/armor/src/armor_finder/armor_finder.cpp index 643850d..30ad0ae 100644 --- a/armor/src/armor_finder/armor_finder.cpp +++ b/armor/src/armor_finder/armor_finder.cpp @@ -128,7 +128,7 @@ end: target_xyz = cv::Point3f(armor.xyz_in_gimbal.x() * 100.0, armor.xyz_in_gimbal.y() * 100.0, armor.xyz_in_gimbal.z() * 100.0); // 转换为cm cv::Point3f current_pos = target_xyz; - double current_time = static_cast(frame_time.tv_sec) + static_cast(frame_time.tv_usec) / 1e6; + double current_time = frame_time / 1000.0; history.push_back({current_pos, current_time}); if (history.size() > 10) { // 仅保留最近10帧 history.erase(history.begin()); diff --git a/armor/src/armor_finder/classifier/solver.cpp b/armor/src/armor_finder/classifier/solver.cpp index bf268a1..40c5b4e 100644 --- a/armor/src/armor_finder/classifier/solver.cpp +++ b/armor/src/armor_finder/classifier/solver.cpp @@ -33,7 +33,7 @@ Solver::Solver(const std::string & config_path) : R_gimbal2world_(Eigen::Matrix3 auto R_camera2gimbal_data = yaml["R_camera2gimbal"].as>(); auto t_camera2gimbal_data = yaml["t_camera2gimbal"].as>(); R_gimbal2imubody_ = Eigen::Matrix(R_gimbal2imubody_data.data()); - R_camera2gimbal_ = Eigen::Matrix(R_camera2gimbal_data.data()); + R_camera2gimbal_ = Eigen::Matrix(R_camera2gimbal_data.data()); t_camera2gimbal_ = Eigen::Matrix(t_camera2gimbal_data.data()); */ diff --git a/armor/src/armor_finder/send_target/send_target.cpp b/armor/src/armor_finder/send_target/send_target.cpp index f148984..8ab67b9 100644 --- a/armor/src/armor_finder/send_target/send_target.cpp +++ b/armor/src/armor_finder/send_target/send_target.cpp @@ -80,8 +80,8 @@ bool ArmorFinder::sendBoxPosition(uint16_t shoot_delay) { double y_target = -target_xyz.y / 100.0; // 垂直高度差 double pitch_comp = BallisticSolver::get_pitch(x_target, y_target, MUZZLE_VELOCITY, BALLISTIC_K); - // 计算是否满足开火条件 (例如残差小于 1.5 度) - can_fire = AutoTrigger::should_fire(yaw, pitch_comp, 1.5); + // 计算是否满足开火条件 + can_fire = AutoTrigger::should_fire(*this, MUZZLE_VELOCITY, yaw, pitch_comp); return sendTarget(serial, yaw, pitch_comp, dist * 100.0, shoot_delay); } diff --git a/tools/logger.hpp b/tools/logger.hpp index 7df01f9..5c87aee 100644 --- a/tools/logger.hpp +++ b/tools/logger.hpp @@ -1,8 +1,12 @@ -#pragma once -// Minimal logger stub — no external logging library required. -// Replace with a real logger (e.g. spdlog) if needed. -#include -#define LOG_INFO(...) (void)0 -#define LOG_WARN(...) (void)0 -#define LOG_ERROR(...) (void)0 -#define LOG_DEBUG(...) (void)0 +#ifndef TOOLS__LOGGER_HPP +#define TOOLS__LOGGER_HPP + +#include + +namespace tools +{ +std::shared_ptr logger(); + +} // namespace tools + +#endif // TOOLS__LOGGER_HPP \ No newline at end of file