optimize
Sintaxis
Descripción
La función optimize
optimiza un gráfico de factores para encontrar una solución que minimice el costo del problema de mínimos cuadrados no lineales formulado por el gráfico de factores. La optimización del gráfico factorial utiliza el solucionador Ceres para la estimación de la covarianza del estado de los nodos, un proceso que implica mayores costos de cálculo y tiempos de estimación más largos a medida que aumenta el número de nodos. Para obtener más información sobre la estimación de covarianza de Ceres-Solver, consulte http://ceres-solver.org/nnls_covariance.html.
Para estimar la covarianza del estado del nodo, optimice con opciones de solucionador personalizadas utilizando el objeto factorGraphSolverOptions
que tiene la propiedad StateCovarianceType
establecida en uno o más tipos de nodo. Al optimizar gráficos factoriales que requieren estimar la covarianza del estado para una gran cantidad de nodos, considere usar la optimización de ventana deslizante para aumentar la velocidad de optimización al estimar la covarianza del estado para menos nodos a la vez. Para obtener más información sobre la optimización de ventanas deslizantes, consulte Optimice incrementalmente el gráfico de factores mediante la ventana deslizante.
optimiza los nodos de pose especificados y cualquier nodo relacionado, excepto los nodos de pose no especificados.solnInfo
= optimize(fg
,poseNodeIDs
)
Nota
Al menos uno de los nodos de pose especificados debe cumplir uno o ambos de estos requisitos:
Tenga un estado de pose fijo utilizando la función
fixNode
.Relacionarse con uno o más factores que proporcionan información absoluta sobre el estado:
optimiza el gráfico de factores utilizando las opciones de resolución de gráficos de factores especificadas, además de cualquier combinación de argumentos de entrada de sintaxis anteriores. Por ejemplo, solnInfo
= optimize(___,solverOptions
)optimize(fg,factorGraphSolverOptions(StateCovarianceType="POSE_SE2"))
especifica que optimize
debe estimar y almacenar la covarianza del estado del nodo para los nodos de pose SE(2) en el gráfico de factores durante la optimización.
Ejemplos
Argumentos de entrada
Argumentos de salida
Más acerca de
Sugerencias
Antes de optimizar el gráfico de factores o un subconjunto de nodos, utilice la función
nodeState
para guardar los estados de los nodos en el espacio de trabajo. Si, después de ejecutar la optimización, desea realizar ajustes, puede restablecer los estados del nodo a los estados guardados.Si su optimización no tuvo éxito o dio como resultado estados de nodo inexactos, considere reevaluar los estados de estimación iniciales de los nodos y refinarlos según sea necesario utilizando la función
nodeState
.Para depurar una optimización parcial de un gráfico de factores, verifique los campos
OptimizedNodeIDs
yFixedNodeIDs
del argumento de salidasolnInfo
para ver cuáles de los ID de nodo optimizados y cuáles de los nodos fijos contribuyeron a la optimización.Para comprobar si
poseNodeIDs
forma un gráfico factorial conectado, utilice la funciónisConnected
.