Main Content

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

factorIMU

Convertir lecturas de IMU a factor

Desde R2022a

Descripción

El objeto factorIMU convierte lecturas de IMU sin procesar en restricciones entre poses, velocidades y sesgos de IMU para un objeto factorGraph .

Creación

Descripción

F = factorIMU(nodeID,GyroscopeReadings,AccelerometerReadings) crea un objeto factorIMU , F, con la propiedad de números de identificación de nodo especificada NodeID establecida en nodeID, y con las propiedades de lecturas del giroscopio y lecturas del acelerómetro establecidas en los valores de sus argumentos correspondientes.

F = factorIMU(nodeID,GyroscopeReadings,AccelerometerReadings,imuparams) especifica los parámetros de IMU, como la frecuencia de muestreo, el ruido de polarización del giroscopio y el ruido de polarización del acelerómetro, como un objeto factorIMUParameters .

ejemplo

F = factorIMU(nodeID,SampleRate,GyroscopeBiasNoise,AccelerometerBiasNoise,GyroscopeNoise,AccelerometerNoise,GyroscopeReadings,AccelerometerReadings) crea un objeto factorIMU , F, con la propiedad de números de identificación de nodo especificada NodeID establecida en nodeID, y con una frecuencia de muestreo, ruido de polarización del giroscopio, ruido de polarización del acelerómetro, ruido de giroscopio, ruido del acelerómetro, lecturas del giroscopio y lecturas del acelerómetro establecidos en sus valores correspondientes, respectivamente.

F = factorIMU(___,Name=Value) especifica propiedades utilizando uno o más argumentos de nombre-valor además de todos los argumentos de entrada de la sintaxis anterior.

Argumentos de entrada

expandir todo

Parámetros de factor IMU, especificados como un objeto factorIMUParameters .

Propiedades

expandir todo

Esta propiedad o parámetro es de solo lectura.

Números de identificación de nodo, especificados como un vector fila de seis elementos en el formato [PoseID1 VelocityID1 IMUBiasID1 PoseID2 VelocityID2 IMUBiasID2]. El factor de objeto factorIMU espera que los nodos de los ID de nodo correspondientes tengan los tipos de nodo [POSE_SE3, VEL3, IMU_BIAS, POSE_SE3, VEL3, IMU_BIAS] y conecta esos nodos en el gráfico de factores utilizando los ID de nodo especificados.

Si un factor en el objeto factorIMU especifica ID que no corresponden a un nodo en el gráfico de factores, el gráfico de factores crea automáticamente POSE_SE3, VEL3 y IMU_BIAS escriben nodos con los ID correspondientes y agregan los nodos al gráfico de factores al agregar el factor al gráfico de factores.

Debe especificar esta propiedad en la creación del objeto.

Para obtener más información sobre los tipos de nodos esperados de todos los factores admitidos, consulte Tipos de nodos esperados de objetos de factores.

Esta propiedad o parámetro es de solo lectura.

Frecuencia de muestreo de IMU, en Hz, especificada como un escalar numérico mayor que 100.

Debe especificar esta propiedad en la creación del objeto.

Esta propiedad o parámetro es de solo lectura.

Covarianza del ruido de polarización del giroscopio, especificada como una matriz de 3 por 3.

Debe especificar esta propiedad en la creación del objeto.

Esta propiedad o parámetro es de solo lectura.

Covarianza del ruido de polarización del acelerómetro, especificada como una matriz de 3 por 3.

Debe especificar esta propiedad en la creación del objeto.

Esta propiedad o parámetro es de solo lectura.

Covarianza del ruido de medición del giroscopio, especificada como una matriz de 3 por 3.

Debe especificar esta propiedad en la creación del objeto.

Esta propiedad o parámetro es de solo lectura.

Covarianza del ruido de medición del acelerómetro, especificada como una matriz de 3 por 3.

Debe especificar esta propiedad en la creación del objeto.

Esta propiedad o parámetro es de solo lectura.

Lecturas del giroscopio, especificadas como una matriz N-por 3, donde N es el número de lecturas. Las lecturas del giroscopio especificadas están preintegradas en el factor. GyroscopeReadings y AccelerometerReadings deben tener el mismo tamaño.

Debe especificar esta propiedad en la creación del objeto.

Esta propiedad o parámetro es de solo lectura.

Lecturas del acelerómetro, especificadas como una matriz N-por-3, donde N es el número de lecturas. Las lecturas del acelerómetro especificadas están preintegradas en el factor. GyroscopeReadings y AccelerometerReadings deben tener el mismo tamaño.

Debe especificar esta propiedad en la creación del objeto.

Marco de referencia para el sistema de coordenadas local, especificado como "ENU" (este-norte-arriba) o "NED" (noreste-abajo).

Tipos de datos: string | char

Transformación que consiste en traslación y rotación tridimensionales para transformar los nodos de pose conectados al marco de referencia inicial del sensor IMU, especificado como un objeto se3 .

Por ejemplo, si los nodos de pose conectados almacenan poses de la cámara en el marco de referencia inicial del sensor de la cámara, la transformación del sensor gira y traduce una pose en el marco de referencia inicial del sensor de la cámara al marco de referencia inicial del sensor IMU. El marco de referencia inicial del sensor tiene la primera posición del sensor en su origen.

Una transformación de sensor es innecesaria si los nodos de pose de conexión contienen poses en el marco de referencia del sensor IMU inicial. De lo contrario, debe especificar la transformación del sensor.

Funciones del objeto

nodeTypeObtener el tipo de nodo en el gráfico de factores
predictPredecir la pose y la velocidad del factor.

Ejemplos

contraer todo

Configure parámetros como los ID de los nodos conectados, la frecuencia de muestreo, el ruido y las lecturas. Luego cree un factor IMU con estos parámetros como argumentos.

nodeID = [1,2,3,4,5,6];
sampleRate = 400; % Hz
gyroBiasNoise = 1.5e-9 * eye(3);
accelBiasNoise = diag([9.62e-9, 9.62e-9, 2.17e-8]);
gyroNoise = 6.93e-5 * eye(3);
accelNoise = 2.9e-6 * eye(3); 
gyroReadings = [ -0.0151    0.0299    0.0027
                -0.0079    0.0370   -0.0014
                -0.0320    0.0306    0.0035
                -0.0043    0.0340   -0.0066
                -0.0033    0.0331   -0.0011];
accelReadings = [   1.0666    0.0802    9.9586
                   1.1002    0.0199    9.6650
                   1.0287    0.3071   10.1864
                   0.9077   -0.2239   10.2989
                   1.2322    0.0174    9.8411];
  
f = factorIMU(nodeID, sampleRate, gyroBiasNoise, accelBiasNoise, ...
             gyroNoise, accelNoise, gyroReadings, accelReadings, ReferenceFrame="NED");

Cree un gráfico de factores predeterminado y agregue el factor al gráfico usando la función addFactor .

g = factorGraph;
addFactor(g,f);

Más acerca de

expandir todo

Referencias

[1] Forster, Christian, Luca Carlone, Frank Dellaert, and Davide Scaramuzza. “On-Manifold Preintegration for Real-Time Visual-Inertial Odometry.” IEEE Transactions on Robotics 33, no. 1 (February 2017): 1–21. https://doi.org/10.1109/TRO.2016.2597321.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2022a