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.

generateNodeID

Generar nuevos ID de nodo

Desde R2023a

    Descripción

    La función generateNodeID genera nuevos ID de nodo para crear nuevos factores para un gráfico de factores.

    IDs = generateNodeID(fg,numNodes) genera la cantidad especificada numNodes de nuevos ID de nodo IDs para usar al crear nuevos factores para agregar al gráfico de factores fg.

    El primer ID de nodo en IDs es 0 si no hay nodos en fg, de lo contrario el primer ID de nodo en IDs es igual a graph.NumNodes + 1.

    ejemplo

    IDs = generateNodeID(fg,nodeMatrixSize) especifica la cantidad de nuevos ID de nodo a generar como la cantidad de elementos en una matriz con las dimensiones especificadas nodeMatrixSize. Los ID se incrementan en orden de fila principal.

    Por ejemplo, generateNodeID(graph,[3 2]) crea nuevos ID de nodo como una matriz en este formato.

    [ID1ID2ID3ID4ID5ID6]

    ejemplo

    IDs = generateNodeID(fg,numFactors,factorType) genera nuevos ID de nodo para la cantidad especificada de factores numFactors. El tamaño de los ID de nodo generados y cómo se incrementan los ID dependen de la cantidad de factores y del tipo de factor factorType

    Nota

    generateNodeID solo puede generar identificadores de nodo para crear un factor utilizando esta sintaxis para los objetos factorIMU y factorGPS. Para utilizar esta sintaxis para generar identificadores de nodo para los objetos factorIMU y factorGPS, numFactors debe ser 1.

    ejemplo

    Ejemplos

    contraer todo

    Cree un gráfico de factores y genere diez ID de nodo.

    fg = factorGraph;
    nids = generateNodeID(fg,10)
    nids = 1×10
    
         0     1     2     3     4     5     6     7     8     9
    
    

    Cree un gráfico de factores y genere una matriz de identificación de nodos de 4 por 2.

    fg = factorGraph;
    nids = generateNodeID(fg,[4 2])
    nids = 4×2
    
         0     1
         2     3
         4     5
         6     7
    
    

    Cree un gráfico de factores y genere identificadores de nodos para especificar cuatro factores en un objeto factorPoseSE3AndPointXYZ.

    fg = factorGraph;
    poseAndLandmarkIDs = generateNodeID(fg,4,"factorPoseSE3AndPointXYZ")
    poseAndLandmarkIDs = 4×2
    
         0     1
         0     2
         0     3
         0     4
    
    

    Tenga en cuenta que, en el caso de los factores de puntos de referencia, el objetivo es conectar una pose con varios puntos de referencia. Entonces, para el tipo de factor "factorPoseSE3AndPointXYZ", la primera columna es constante porque representa el nodo de pose única y la segunda columna se incrementa porque representa múltiples nodos de puntos de referencia.

    Cree y agregue el objeto de factor al gráfico de factores para crear los factores.

    poseAndLandmarkFactors = factorPoseSE3AndPointXYZ(poseAndLandmarkIDs);
    addFactor(fg,poseAndLandmarkFactors);

    Genere identificadores de nodo para crear un objeto factorTwoPoseSE2 con tres factores. Dado que el último ID de nodo del gráfico factorial es 4, los nuevos ID de nodo comienzan en cinco.

    poseIDs = generateNodeID(fg,3,"factorTwoPoseSE2")
    poseIDs = 3×2
    
         5     6
         6     7
         7     8
    
    

    Tenga en cuenta que el tipo de factor "factorTwoPoseSE2", el objetivo es crear una cadena de poses conectadas, lo que significa que cada fila debe estar conectada a la fila anterior y posterior. Entonces, para cada fila después de la primera, el primer elemento es el ID del segundo nodo de la fila anterior. Esto garantiza que cada nodo se conecte a los nodos inmediatamente anteriores y posteriores en secuencia.

    Cree y agregue el objeto factorTwoPoseSE2 al gráfico de factores.

    twoPoseFactors = factorTwoPoseSE2(poseIDs);
    addFactor(fg,twoPoseFactors);

    Argumentos de entrada

    contraer todo

    Gráfico factorial para generar nodos, especificado como un objeto factorGraph.

    La propiedad NumNodes de fg determina cuál es el primer ID de nodo generado de la salida IDs. El primer ID de nodo en IDs es 0 si no hay nodos en fg, de lo contrario el primer ID de nodo en IDs es igual a graph.NumNodes + 1.

    Número de ID de nodo que se generarán, especificados como un entero no negativo.

    Ejemplo: generateNodeID(fg,3) genera tres identificadores de nodo como un vector fila en el formato [NodeID1 NodeID2 NodeID3]

    Tamaño de la matriz de ID de nodo generado, especificado como un vector de dos elementos de enteros no negativos. El primer elemento especifica el número de filas y el segundo elemento especifica el número de columnas en la matriz de ID de nodo.

    Ejemplo: generateNodeID(fg,[3 2]) genera dos ID de nodo para tres factores en el formato [NodeID1 NodeID2; NodeID3 NodeID4; NodeID5 NodeID6]

    Número de factores para los que generar ID de nodo, especificados como un entero no negativo.

    Si factorType es "factorGPS" o "factorIMU", entonces numFactors debe especificarse como 1.

    Ejemplo: generateNodeID(fg,1,"factorPoseSE2AndPointXY") crea un conjunto de dos ID de nodo con el formato [SE2PoseNodeID LandmarkNodeID] para un factor.

    Tipo de factor para el que generar ID de nodo, especificado como una de estas opciones:

    La función generateNodeID solo admite la generación de ID de nodo para crear un único factor para estas opciones:

    Si factorType es "factorGPS" o "factorIMU", entonces el argumento numFactors debe especificarse como 1.

    El formato de los ID de nodo corresponde al formato de la propiedad NodeID para ese objeto de factor. Por ejemplo, si especifica "factorTwoPoseSE2", la función genera identificadores de nodo con el formato [SE2Pose1NodeID SE2Pose2NodeID].

    Ejemplo: generateNodeID(fg,1,"factorPoseSE2AndPointXY") crea un conjunto de dos ID de nodo con el formato [SE2PoseNodeID LandmarkNodeID]

    Tipos de datos: char | string

    Argumentos de salida

    contraer todo

    ID de nodo generados, devueltos como una de estas opciones según los argumentos de entrada que especifique:

    1. numNodes — vector fila de elementos N, donde N es igual a numNodes y se incrementa con cada nuevo ID de nodo.

    2. nodeMatrixSize — matriz M por N, donde M y N son iguales al primer y segundo elemento de nodeMatrixSize, respectivamente. Los ID de los nodos aumentan en orden de fila principal.

      Por ejemplo, si especifica generateNodeID(fg,[3 2]) sin nodos existentes en el gráfico factorial fg, la función genera una matriz de identificación de nodo en este formato.

      [ID1ID2ID3ID4ID5ID6]

    3. numFactors y factorType — matriz M por N, donde M es igual a numFactors y N es la cantidad de identificaciones de nodo generadas por factor según el valor de factorType:

    factorTypeFormato IDs
    • "factorCameraAndPointXYZ"

    • "factorPoseSE2AndPointXY"

    • "factorPoseSE3AndPointXYZ"

    Matriz de identificadores de nodo N por 2, donde N es igual a numFactors. La primera columna contiene el primer ID de nodo para cada fila, y la segunda columna contiene ID de nodo únicos que se incrementan hacia abajo en la segunda columna.

    [ID1ID2ID1ID3ID1IDN]

    De forma predeterminada, cuando factorType es "factorCameraAndPointXYZ", la función generateNodeID no genera una tercera columna correspondiente a los nodos de transformación del sensor del tipo "TRANSFORM_SE3". Para conectarse con los nodos de transformación de sensores mediante "factorCameraAndPointXYZ", debe especificar el argumento nodeMatrixSize al llamar a la función generateNodeID:

    generateNodeID(fg,[1 3]);

    • "factorTwoPoseSE2"

    • "factorTwoPoseSE3"

    Matriz N por 2, donde N es igual a numFactors. Cada fila representa un par de nodos consecutivos. Para cada fila después de la primera, el primer elemento es el ID del segundo nodo de la fila anterior. Esto garantiza que cada nodo se conecte a los nodos inmediatamente anteriores y posteriores en secuencia.

    [ID1ID2ID2ID3IDNIDN+1]

    "factorTwoPoseSIM3"

    Matriz N por 4, donde N es igual a numFactors. Cada fila representa un par de poses de transformación de similitud consecutivas en el espacio de estados SIM(3). Una pose de transformación de similitud, SIM(3), se representa utilizando una combinación de nodo de pose SE(3) (POSE_SE3) y un nodo de escala de pose SE(3) (POSE_SE3_SCALE). Para cada fila después de la primera fila, los primeros dos elementos son los identificadores de nodo que representan la segunda pose SIM(3) de la fila anterior. Esto garantiza que cada pose SIM(3) se conecte con la pose SIM(3) inmediatamente anterior y posterior en secuencia.

    [ID1ID2ID3ID4ID3ID4ID5ID6ID2N1ID2NID2N+1ID2N+2]

    • "factorIMUBiasPrior"

    • "factorPoseSE3Prior"

    • "factorVelocity3Prior"

    vector columna de elementos N, donde N es igual a numFactors.

    [ID1ID2IDN]

    El primer ID de nodo en IDs es 0 si no hay nodos en fg, de lo contrario el primer ID de nodo en IDs es igual a graph.NumNodes + 1.

    Capacidades ampliadas

    expandir todo

    Historial de versiones

    Introducido en R2023a

    expandir todo

    Consulte también

    |