rosbag 0.2.0

Utilities for reading ROS bag files.
Documentation

Utilities for efficient reading of ROS bag files.

Example

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?);
}