/
klischa
/
AstraScanner2
Обзор
Документация
Войти
/
klischa
/
AstraScanner2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/tracking/NeuralTrackingGuards.h
55 строк
2 KB
Arena Agent
tracking: harden neural pose runtime validation
17 июн 2026, 19:47
17 июн 2026, 19:47
47a6097
Код
Авторство
О чём код?
#ifndef NEURALTRACKINGGUARDS_H #define NEURALTRACKINGGUARDS_H #include <Eigen/Dense> #include <optional> #include <limits> #include <vector> #include <pcl/point_cloud.h> #include <pcl/point_types.h> struct NeuralCloudStats { int totalPoints = 0; int finitePoints = 0; Eigen::Vector3f min = Eigen::Vector3f::Zero(); Eigen::Vector3f max = Eigen::Vector3f::Zero(); Eigen::Vector3f centroid = Eigen::Vector3f::Zero(); float bboxDiagonal = 0.0f; }; struct NeuralPoseMetrics { Eigen::Matrix4f transform = Eigen::Matrix4f::Identity(); float quaternionNorm = 0.0f; float translationNorm = 0.0f; float rotationAngleRad = 0.0f; }; struct NeuralAlignmentMetrics { float meanResidual = std::numeric_limits<float>::infinity(); float medianResidual = std::numeric_limits<float>::infinity(); float inlierRatio = 0.0f; int samplesEvaluated = 0; }; std::optional<NeuralCloudStats> analyzeNeuralCloud( const pcl::PointCloud<pcl::PointXYZRGB>::Ptr& cloud); std::optional<NeuralPoseMetrics> poseVectorToMatrixChecked( const std::vector<float>& poseVec); bool isRotationMatrixValid( const Eigen::Matrix3f& rotation, float detTolerance = 0.05f, float orthoTolerance = 0.05f); NeuralAlignmentMetrics evaluateAlignmentResidual( const pcl::PointCloud<pcl::PointXYZRGB>::Ptr& source, const pcl::PointCloud<pcl::PointXYZRGB>::Ptr& target, const Eigen::Matrix4f& transform, int sampleStride = 8, float inlierThresholdMeters = 0.02f); #endif // NEURALTRACKINGGUARDS_H