Partage de technologie

Code open source ArduPilot AP_VisualOdom_MAV

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Origine

Continue a étudier"Contrôle de vol open source ArduPilot AP_VisualOdom"à proposAP_VisualOdom_MAVClasse d'équipement.

En dehors de"AP_VisualOdom_Backend du code open source ArduPilot"En plus des méthodes et données abstraites partagées, étudions plus en détail l'implémentation des fonctions causée par les différences entre les appareils.

2. Définition de classe

Ce code C définit une classe AP_VisualOdom_MAV, qui hérite de AP_VisualOdom_Backend

class AP_VisualOdom_MAV : public AP_VisualOdom_Backend
{
public:
    // 构造函数,使用从AP_VisualOdom_Backend继承的构造函数
    using AP_VisualOdom_Backend::AP_VisualOdom_Backend;

    // 处理姿态估计数据,将其发送给EKF。距离单位为米
    // Parameters:
    // - remote_time_us: Remote timestamp in microseconds
    // - time_ms: Local timestamp in milliseconds
    // - x, y, z: Position coordinates in meters
    // - attitude: Quaternion representing attitude (orientation)
    // - posErr: Position error
    // - angErr: Angular error
    // - reset_counter: Counter for reset events
    // - quality: Quality of pose estimate (-1 for failed, 0 for unknown, 1 to 100 for varying levels of quality)
    void handle_pose_estimate(uint64_t remote_time_us, uint32_t time_ms, float x, float y, float z, const Quaternion