"""视觉跟踪控制包(visual_track_control Python 版)。 对应 C++ 参考实现 reference-c++/visual_track_control/。本包与 target_tracker 包互不依赖(TrackState 为字段对齐的独立值类型,胶水层负责转换)。 分层: 纯算法构件 rate_limiter / staleness_checker / line_of_sight / frame_transform / pid_controller 配置 config(TrackingConfig + load_from_json) 主控律 tracking_control_law(TrackingControlLaw) 指令输出 command_sender(抽象 Protocol)+ mavsdk_gateway(MAVSDK offboard) """ from .command_sender import CommandSender from .config import (AccelLimitConfig, CameraGroupConfig, ControlGroupConfig, DistanceGroupConfig, HeadingGroupConfig, HeadingMode, NoDistanceAction, TrackingConfig, VerticalGroupConfig, load_from_json) from .frame_transform import rotate_body_to_ned from .line_of_sight import PixelToAngle from .mavsdk_gateway import MavsdkCommandGateway from .pid_controller import PidController, PidParams from .rate_limiter import SlewRateLimiter, clamp from .staleness_checker import is_stale from .tracking_control_law import TrackingControlLaw from .types import (ControlMode, ControlOutput, ControlSnapshot, DegradedReason, TrackState) __all__ = [ "CommandSender", "MavsdkCommandGateway", "TrackingControlLaw", "TrackingConfig", "load_from_json", "HeadingMode", "NoDistanceAction", "ControlGroupConfig", "CameraGroupConfig", "HeadingGroupConfig", "VerticalGroupConfig", "DistanceGroupConfig", "AccelLimitConfig", "ControlMode", "DegradedReason", "TrackState", "ControlSnapshot", "ControlOutput", "PidController", "PidParams", "SlewRateLimiter", "clamp", "is_stale", "PixelToAngle", "rotate_body_to_ned", ]