Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

insGPS

Modelo de lecturas de GPS para fusión de sensores.

Desde R2022a

Descripción

El objeto insGPS modela las lecturas GPS para la fusión de sensores. Pasar un objeto insGPS a un objeto insEKF permite que el objeto insEKF fusione datos de posición y velocidad opcionales. Para obtener detalles sobre el modelo GPS, consulte Algoritmos.

Creación

Descripción

sensor = insGPS crea un objeto insGPS. Al pasar el sensor creado a un objeto insEKF se permite que el objeto insEKF fusione datos de posición y velocidad opcionales. Al fusionar datos con la función de objeto fuse de insEKF, pase sensor como segundo argumento para identificar los datos obtenidos de un GPS.

Para habilitar la estimación de posición y velocidad en insEKF, utilice un modelo de movimiento que modele estados de posición y velocidad, como el objeto insMotionPose.

ejemplo

Propiedades

expandir todo

Origen del marco de referencia de navegación local, especificado como un vector fila de tres elementos en coordenadas geodésicas [latitude longitude altitude]. La altitud es la altura sobre el modelo de elipsoide de referencia, WGS84, en metros. La latitud y la longitud están en grados.

El marco de referencia es un marco noreste-abajo (NED) o este-norte-arriba (ENU), basado en la propiedad ReferenceFrame del objeto insEKF.

Tipos de datos: single | double

Ejemplos

contraer todo

Crea un objeto insGPS y pásalo a un objeto insEKF.

sensor = insGPS;
filter = insEKF(sensor)
filter = 
  insEKF with properties:

                   State: [16×1 double]
         StateCovariance: [16×16 double]
    AdditiveProcessNoise: [16×16 double]
             MotionModel: [1×1 insMotionPose]
                 Sensors: {[1×1 insGPS]}
             SensorNames: {'GPS'}
          ReferenceFrame: 'NED'

Muestra la información del estado del filtro. Dado que el sensor GPS informa mediciones de posición, el filtro modela de forma predeterminada el movimiento de rotación y traslación.

stateinfo(filter)
ans = struct with fields:
        Orientation: [1 2 3 4]
    AngularVelocity: [5 6 7]
           Position: [8 9 10]
           Velocity: [11 12 13]
       Acceleration: [14 15 16]

Suponga una medición de posición GPS de 10 grados de latitud, 10 grados de longitud y 10 metros de altitud. La medida de velocidad del GPS es [5 5 0] en m/s.

lla = [10 10 10];
vel = [5 5 0];
llaNoise = eye(3);
velNoise = 0.1*eye(3);

Fusionar la medición de la posición GPS.

state = fuse(filter,sensor,lla,llaNoise)
state = 16×1
105 ×

    0.0000
         0
         0
         0
         0
         0
         0
    5.5013
    5.4542
    0.9585
         0
         0
         0
         0
         0
      ⋮

Fusione la medición de la posición GPS junto con la medición de la velocidad.

measure = [lla vel];
measureNoise = blkdiag(llaNoise,velNoise);
state2 = fuse(filter,sensor,measure,measureNoise)
state2 = 16×1
105 ×

    0.0000
         0
         0
         0
         0
         0
         0
    7.3350
    7.2722
    1.2779
    0.0000
    0.0000
         0
         0
         0
      ⋮

Algoritmos

El objeto insGPS modela la lectura del GPS como la posición de longitud, latitud y altitud (LLA) y datos de velocidad opcionales en el marco de navegación.

Dependiendo de si incluye los datos de velocidad al utilizar la función de objeto fuse de insEKF, la ecuación de medición toma una de dos formas:

  • Si no fusiona los datos de velocidad, la medida es la latitud en metros, la longitud en grados y la altitud en metros (LLA).

  • Si fusiona datos de velocidad, la medición es la medición LLA y la velocidad de la plataforma en m/s, expresada en el marco de referencia definido por la propiedad ReferenceLoation del objeto insGPS y la propiedad ReferenceFrame del objeto insEKF.

Historial de versiones

Introducido en R2022a

Consulte también

|