factorGraphSolverOptions
Descripción
El objeto factorGraphSolverOptions
contiene opciones de solución para optimizar un gráfico de factores.
Creación
Descripción
devuelve un objeto de opciones de solucionador de gráficos de factores predeterminado, Options
= factorGraphSolverOptionsOptions
.
especifica propiedades utilizando uno o más argumentos de nombre-valor. Por ejemplo, Options
= factorGraphSolverOptions(Name=Value
)factorGraphSolverOptions(MaxIterations=150)
establece la propiedad MaxIterations
del objeto factorGraphSolverOptions
en 150
.
Propiedades
Número máximo de iteraciones del solver , especificado como un entero positivo.
Límite inferior de cambio en la función de costes, especificado como un escalar positivo. La función de coste es:
Todos los costes son mayores que 0.
Límite inferior de la norma del gradiente, especificado como escalar positivo. La función norma es:
Oplus es la versión múltiple de la operación más y g(x) es el gradiente en x.
Límite inferior del tamaño de paso del solver lineal, especificado como un escalar positivo. La relación entre el tamaño del paso y la tolerancia del paso es:
deltaX es el tamaño del paso del solucionador lineal.
Bandera de verbosidad de la línea de comandos, especificada como 1
, 2
o 3
.
0
— No imprimir en la línea de comandos1
— Resumen del solucionador de impresión2
— Imprimir actualizaciones por iteración y resumen del solucionador
Algoritmo de cálculo de pasos de la región de confianza, especificado como 0
o 1
.
0
— Levenberg Marquardt1
— Pata de perro
Tipos de nodo para la estimación de la covarianza del estado del nodo, especificados como un escalar de cadena, un vector de caracteres, un arreglo de cadenas o un arreglo de celdas de vectores de caracteres.
Especifique "all-types"
para estimar y almacenar la covarianza del estado del nodo para todos los tipos de nodos admitidos, y especifique "none"
para no estimar ninguna covarianza del estado del nodo.
Puede utilizar un arreglo de cadenas o un arreglo de celdas de vectores de caracteres para especificar múltiples tipos de nodos para los cuales estimar y almacenar la covarianza del estado del nodo durante la optimización del gráfico de factores. Cada elemento debe ser una de estas opciones.
"POSE_SE2"
— Estima y almacena la covarianza del estado del nodo para los nodos del tipoPOSE_SE2
."POSE_SE3"
— Estima y almacena la covarianza del estado del nodo para los nodos del tipoPOSE_SE3
."POINT_XY"
— Estima y almacena la covarianza del estado del nodo para los nodos del tipoPOINT_XY
."POINT_XYZ"
— Estima y almacena la covarianza del estado del nodo para los nodos del tipoPOINT_XYZ
."IMU_BIAS"
— Estima y almacena la covarianza del estado del nodo para los nodos del tipoIMU_BIAS
."VEL_3"
— Estima y almacena la covarianza del estado del nodo para los nodos del tipoVEL_3
.
Después de optimizar el gráfico de factores con StateCovarianceType
establecido en un valor distinto de "none"
, puede usar la función nodeCovariance
para obtener la covarianza del estado del nodo del gráfico de factores para cualquier tipo de nodo especificado por StateCovarianceType
.
Nota
El tiempo de optimización aumenta cuanto más covarianzas de estado de nodo se estiman. Si tiene un gráfico factorial con muchos nodos y tipos de nodos, considere elegir solo los tipos de nodos necesarios y utilizar la técnica de optimización de ventana deslizante. Consulte el ejemplo Optimice incrementalmente el gráfico de factores mediante la ventana deslizante para obtener más información sobre la técnica de optimización de ventana deslizante.
Radio de la región de confianza inicial, especificado como un escalar positivo. Si espera que los estados de los nodos de variables libres, establecidos después de agregar factores al gráfico de factores, sean precisos, puede especificar un radio de región de confianza inicial más pequeño, como 0,1, para una convergencia más rápida de la optimización del gráfico de factores.
Tipos de datos: double
Ejemplos
Cree y optimice un gráfico de factores con opciones de solver personalizadas.
Crear gráfico de factores y configuración del solucionador
Cree un gráfico de factores y opciones de solver con configuraciones personalizadas. Establezca el número máximo de iteraciones en 1000
y establezca la verbosidad de la salida optimize
en 2
.
G = factorGraph; optns = factorGraphSolverOptions(MaxIterations=1000,VerbosityLevel=2)
optns = factorGraphSolverOptions with properties: MaxIterations: 1000 FunctionTolerance: 1.0000e-06 GradientTolerance: 1.0000e-10 StepTolerance: 1.0000e-08 VerbosityLevel: 2 TrustRegionStrategyType: 1 StateCovarianceType: None InitialTrustRegionRadius: 10000
Agregar factor GPS
Cree un factor GPS con número de identificación de nodo de 1
con NED ReferenceFrame y agréguelo al gráfico de factores.
fgps = factorGPS(1,ReferenceFrame="NED");
addFactor(G,fgps);
Optimizar gráfico de factores
Optimice el gráfico de factores con la configuración personalizada. Los resultados de la optimización se muestran con el nivel de detalle dependiendo de VerbosityLevel
.
optimize(G,optns);
iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time 0 0.000000e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+04 0 1.14e-04 1.43e-04 Terminating: Gradient tolerance reached. Gradient max norm: 0.000000e+00 <= 1.000000e-10 Solver Summary (v 2.0.0-eigen-(3.4.0)-no_lapack-eigensparse-no_openmp-no_custom_blas) Original Reduced Parameter blocks 1 1 Parameters 7 7 Effective parameters 6 6 Residual blocks 1 1 Residuals 3 3 Minimizer TRUST_REGION Sparse linear algebra library EIGEN_SPARSE Trust region strategy DOGLEG (TRADITIONAL) Given Used Linear solver SPARSE_NORMAL_CHOLESKY SPARSE_NORMAL_CHOLESKY Threads 1 1 Linear solver ordering AUTOMATIC 1 Cost: Initial 0.000000e+00 Final 0.000000e+00 Change 0.000000e+00 Minimizer iterations 1 Successful steps 1 Unsuccessful steps 0 Time (in seconds): Preprocessor 0.000029 Residual only evaluation 0.000000 (0) Jacobian & residual evaluation 0.000106 (1) Linear solver 0.000000 (0) Minimizer 0.002206 Postprocessor 0.000004 Total 0.002239 Termination: CONVERGENCE (Gradient tolerance reached. Gradient max norm: 0.000000e+00 <= 1.000000e-10)
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Historial de versiones
Introducido en R2022aAhora puede especificar el radio de la región de confianza inicial como una opción de resolución de gráficos de factores utilizando la propiedad InitialTrustRegionRadius
.
El objeto de gráfico de factores ahora puede estimar y almacenar la covarianza del estado del nodo durante la optimización del gráfico de factores. Para habilitar esta funcionalidad, especifique las opciones del solucionador de gráficos de factores personalizados y configure la propiedad StateCovarianceType
en uno o más tipos de nodo para los cuales estimar y almacenar la covarianza de estado. Después de optimizar con las opciones de resolución de gráficos de factores personalizados, utilice la función nodeCovariance
para obtener las covarianzas de estado almacenadas del gráfico de factores.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)