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

rosbag

Abra y analice el archivo de registro de rosbag

Descripción

ejemplo

bag = rosbag(filename) crea un objeto plaquita intercambiable, que contiene todos los índices de mensaje de la rosbag en la ruta de acceso.BagSelectionbagfilename Para obtener un objeto, utilice.BagSelectionrosbag Para acceder a los datos, llame o extraiga datos relevantes.readMessagestimeseries

A, o bolsa, es un formato de archivo para almacenar los datos del mensaje ROS.rosbag Se utilizan principalmente para registrar mensajes dentro de la red de ROS. Puede usar estas bolsas para análisis, visualización y almacenamiento sin conexión. Consulte el para obtener más información sobre.ROS wiki páginarosbags

bagInfo = rosbag('info',filename) Devuelve información como una estructura, sobre el contenido de la rosbag en.bagInfofilename

ejemplo

rosbag info filename muestra información en la ventana de comandos sobre el contenido de la rosbag en.MATLAB®filename La información incluye el número de mensajes, las horas de inicio y finalización, los temas y los tipos de mensaje.

Ejemplos

contraer todo

Recupera información del rosbag. Especifique la ruta completa al rosbag si aún no está disponible en la ruta de acceso de MATLAB®.

bagselect = rosbag('ex_multiple_topics.bag');

Seleccione un subconjunto de los mensajes, filtrados por tiempo y tema.

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

Para ver información sobre un archivo de registro de rosbag, utilicerosbag info filenameDónde, filename es un archivo rosbag ()..bag

rosbag info 'ex_multiple_topics.bag'
Path:     /tmp/Bdoc19a_1063752_83459/tp27e3dac7/robotics-ex61825935/ex_multiple_topics.bag Version:  2.0 Duration: 2:00s (120s) Start:    Dec 31 1969 19:03:21.34 (201.34) End:      Dec 31 1969 19:05:21.34 (321.34) Size:     23.6 MB Messages: 36963 Types:    gazebo_msgs/LinkStates [48c080191eb15c41858319b4d8a609c2]           nav_msgs/Odometry      [cd5e73d190d741a2f92e81eda573aca7]           rosgraph_msgs/Clock    [a9c97c1d230cfc112e270351a944ee47]           sensor_msgs/LaserScan  [90c7ef2dc6895d81024acba2ac42f369] Topics:   /clock               12001 msgs  : rosgraph_msgs/Clock              /gazebo/link_states  11999 msgs  : gazebo_msgs/LinkStates           /odom                11998 msgs  : nav_msgs/Odometry                /scan                  965 msgs  : sensor_msgs/LaserScan  

Obtenga transformaciones de los archivos rosbag () cargando el rosbag y comprobando los marcos disponibles..bag A partir de estos fotogramas, utilice para consultar la transformación entre dos fotogramas de coordenadas.getTransform

Carga el rosbag.

bag = rosbag('ros_turtlesim.bag');

Obtenga una lista de los marcos disponibles.

frames = bag.AvailableFrames;

Obtenga la última transformación entre dos fotogramas de coordenadas.

tf = getTransform(bag,'world',frames{1});

Compruebe si hay una transformación disponible en un momento específico y recupere la transformación. Se usa para comprobar si la transformación está disponible.canTransform Especifique la hora de uso.rostime

tfTime = rostime(bag.StartTime + 1); if (canTransform(bag,'world',frames{1},tfTime))     tf2 = getTransform(bag,'world',frames{1},tfTime); end

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

Nombre del archivo y la ruta de acceso del rosbag al que desea acceder, especificado como un escalar de cadena o un vector de caracteres. Esta ruta puede ser relativa o absoluta.

Argumentos de salida

contraer todo

Selección de mensajes de rosbag, devueltos como un identificador de objeto.BagSelection

Información sobre el contenido de la rosbag, devuelta como una estructura. Esta estructura contiene campos relacionados con el archivo rosbag y su contenido. Una salida de muestra para un rosbag como estructura es:

Path:     \ros\data\ex_multiple_topics.bag Version:  2.0 Duration: 2:00s (120s) Start:    Dec 31 1969 19:03:21.34 (201.34) End:      Dec 31 1969 19:05:21.34 (321.34) Size:     23.6 MB Messages: 36963 Types:    gazebo_msgs/LinkStates [48c080191eb15c41858319b4d8a609c2]           nav_msgs/Odometry      [cd5e73d190d741a2f92e81eda573aca7]           rosgraph_msgs/Clock    [a9c97c1d230cfc112e270351a944ee47]           sensor_msgs/LaserScan  [90c7ef2dc6895d81024acba2ac42f369] Topics:   /clock               12001 msgs  : rosgraph_msgs/Clock              /gazebo/link_states  11999 msgs  : gazebo_msgs/LinkStates           /odom                11998 msgs  : nav_msgs/Odometry                /scan                  965 msgs  : sensor_msgs/LaserScan 

Consulte también

| | | | |

Introducido en R2015a