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.

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.

    ejemplo

    IDs = generateNodeID(graph,numNodes) genera el número especificado numNodes nuevos ID de nodo IDs para usar al crear nuevos factores para agregar al gráfico de factores graph.

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

    ejemplo

    IDs = generateNodeID(graph,nodeMatrixSize) especifica el número de nuevos ID de nodo que se generarán como el número 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(graph,numFactors,factorType) genera nuevos ID de nodo para el número especificado de factores numFactors. El tamaño de los ID de nodo generados y cómo se incrementan los ID depende de la cantidad de factores y del tipo de factor factorType

    Nota

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

    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 ID de nodo 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 aumenta 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 ID de nodo para crear un objeto factorTwoPoseSE2 con tres factores. Debido a que el último ID de nodo del gráfico de factores 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 de factores para generar nodos, especificado como un objeto factorGraph .

    La propiedad NumNodes de graph 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 graph; 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 ID de nodo como un vector fila en la forma [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 la forma [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 en 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 factor único 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 ID de nodo con el formato [SE2Pose1NodeID SE2Pose2NodeID].

    Ejemplo: generateNodeID(fg,1,"factorPoseSE2AndPointXY") crea un conjunto de dos ID de nodo en 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. numNodesN - vector fila de elementos, donde N es igual a numNodes y se incrementa con cada nuevo ID de nodo.

    2. nodeMatrixSizeM-por- N matriz, 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 de factores fg, la función genera una matriz de ID de nodo en este formato.

      [ID1ID2ID3ID4ID5ID6]

    3. numFactors y factorTypeM-por- N matriz, donde M es igual a numFactors y N es el número de ID de nodo generados por factor dependiendo del valor de factorType:

    factorTypeIDs Formato
    • "factorCameraAndPointXYZ"

    • "factorPoseSE2AndPointXY"

    • "factorPoseSE3AndPointXYZ"

    N-por-2 matriz de ID de nodo, 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]

    • "factorTwoPoseSE2"

    • "factorTwoPoseSE3"

    N-por-2 matriz, 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]

    • "factorIMUBiasPrior"

    • "factorPoseSE3Prior"

    • "factorVelocity3Prior"

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

    [ID1ID2IDN]

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

    Capacidades ampliadas

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

    Historial de versiones

    Introducido en R2023a

    Consulte también

    |