Utilities for reading ROS bag files.
Example
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);
}