Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.

readMessages

Leer mensajes de rosbag

Descripción

ejemplo

msgs = readMessages(bag) devuelve datos de todos los mensajes del objeto,.BagSelectionbag Los mensajes se devuelven en una matriz de mensajes de celda.

Para obtener un objeto, utilice.BagSelectionrosbag

ejemplo

msgs = readMessages(bag,rows) devuelve datos de los mensajes de las filas especificadas por.rows El rango de las filas es [1,].bag.NumMessages

ejemplo

msgs = readMessages(___,"DataFormat","struct") devuelve datos como una matriz de estructuras de celdas mediante cualquier conjunto de los argumentos de entrada anteriores. El uso de estructuras puede ser significativamente más rápido que el uso de objetos de mensaje, y los datos de mensajes personalizados se pueden leer directamente sin cargar las definiciones de mensajes.rosgenmsg

Ejemplos

contraer todo

Leer rosbag y filtrar por tema y tiempo.

bagselect = rosbag('ex_multiple_topics.bag'); bagselect2 = select(bagselect,'Time',... [bagselect.StartTime bagselect.StartTime + 1],'Topic','/odom');

Devuelva todos los mensajes como una matriz de celdas.

allMsgs = readMessages(bagselect2);

Devuelva los diez primeros mensajes como una matriz de celdas.

firstMsgs = readMessages(bagselect2,1:10);

Carga el rosbag.

bag = rosbag('ros_turtlesim.bag');

Seleccione un tema específico.

bSel = select(bag,'Topic','/turtle1/pose');

Leer los mensajes como una estructura. Especifique el par nombre-valor al leer los mensajes.DataFormat Inspeccione la primera estructura en la matriz de celdas devuelta de las estructuras.

msgStructs = readMessages(bSel,'DataFormat','struct'); msgStructs{1}
ans = struct with fields:
        MessageType: 'turtlesim/Pose'
                  X: 5.5016
                  Y: 6.3965
              Theta: 4.5377
     LinearVelocity: 1
    AngularVelocity: 0

Extrae los puntos de los mensajes y traza la trayectoria del robot.xy

Se usa para extraer todos los campos de la estructura.cellfunXY Estos campos representan las posiciones del robot durante la grabación de rosbag.xy

xPoints = cellfun(@(m) double(m.X),msgStructs); yPoints = cellfun(@(m) double(m.Y),msgStructs); plot(xPoints,yPoints)

Argumentos de entrada

contraer todo

Todos los mensajes contenidos dentro de un rosbag, especificado como un objeto.BagSelection

Filas de objeto, especificado como-elemento Vector, donde es el número de filas para recuperar mensajes de.BagSelectionnn Cada entrada en el vector corresponde a un mensaje numerado en la bolsa. El rango de las filas es [1,].bag.NumMessage

Argumentos de salida

contraer todo

ROS datos de mensaje, devueltos como un objeto, matriz de celdas de objetos de mensaje, o matriz de celdas de estructuras. Los datos provienen del objeto creado con.BagSelectionrosbag Debe especificar en la función para obtener mensajes como una matriz de estructuras de celdas.'DataFormat','struct' El uso de estructuras puede ser significativamente más rápido que el uso de objetos de mensaje, y los datos de mensajes personalizados se pueden leer directamente sin cargar las definiciones de mensajes.rosgenmsg

Consulte también

| |

Introducido en R2015a