Crate rosbag [] [src]

Utilities for reading ROS bag files.

Example

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

let mut bag = RecordsIterator::new(path).unwrap();
let header = match bag.next() {
    Some(Ok(Record::BagHeader(bh))) => bh,
    _ => panic!("Failed to acquire bag header record"),
};
// get first chunk and iterate over messages in it
for record in &mut bag {
    let record = record.unwrap();
    match record {
        Record::Chunk(chunk) => {
            for msg in chunk.iter_msgs() {
                let msg = msg.unwrap();
                println!("{}", msg.time)
            }
            break;
        },
        _ => (),
    }
}
// jump to index records
bag.seek(header.index_pos).unwrap();
for record in bag {
    let record = record.unwrap();
    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.

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.