Crate rosbag [] [src]

Utilities for efficient reading of ROS bag files.

Example

This example is not tested
use rosbag::{RosBag, Record};

let bag = RosBag::new(path).unwrap();
// create low-level iterator over rosbag records
let mut records = bag.records();
// acquire `BagHeader` record, which should be first one
let header = match records.next() {
    Some(Ok(Record::BagHeader(bh))) => bh,
    _ => panic!("Failed to acquire bag header record"),
};
// get first `Chunk` record and iterate over `Message` records in it
for record in &mut records {
    match record? {
        Record::Chunk(chunk) => {
            for msg in chunk.iter_msgs() {
                println!("{}", msg?.time)
            }
            break;
        },
        _ => (),
    }
}
// jump to index records
records.seek(header.index_pos).unwrap();
for record in records {
    println!("{:?}", record?);
}

Modules

msg_iter

Iterators over content of Chunk

record_types

Collection of record types.

Structs

RecordsIterator

Low-level iterator over records extracted from ROS bag file.

RosBag

Struct which holds open rosbag file.

Enums

Error

The error type for ROS bag file reading and parsing.

Record

Enum with all possible record variants

Type Definitions

Result

A specialized Result type for ROS bag file reading and parsing.