Gobag: a standalone ROS bag reader
Gobag is exploration around the idea of fast ROS bag parser that can easily be deployed without ROS stack.
It uses Go modules system for dependency management.
In older versions of Go, you need to do the usual go get <all the dependencies>
.
In Go 1.11 (and working in GOPATH) you can turn on the modules support by this environment variable export GO111MODULE=on
and then just build. Much more on this here.
In future Go versions (starting 1.12) it should just work automagically as the module support will be switched on by default.
Then build the CLI tool:
cd gobag-cli/
go build # or go install
./gobag-cli help
Note: it works 99.99% of the time with the newest version of lz4 package, but in case of very large single message (more than 2^10 bytes) the version 1.1 needs to be used (currently newest is 2.0.7).
CLI usage is shown below.
Code usage examples are shown in gobag-cli/actions.go
.
- Provide out-of-the-box code samples with a sample bag file
- Benchmarking tests
- Work with lz4 package author to track down the large message regression
1.0.0 - Starship Technologies OÜ technology@starship.xyz
Dump indicated content of the bag
dump uncompressed chunks
dump chunk information
dump message definitions
dump HIVE DDL table definitions for all topics into separate .sql files
dump full bag to JSON
dump bag messages to JSON by topic
--time value
: Comma separated Unix epoch timestamps for start and end to filter by time--filter value
: Comma separated list of topics to limit output (including '/' prefix if needed)
Usage: gobag-cli docs > documentation.md
Generate documentation in markdown format and print to standard out.
Usage: Shows a list of commands or help for one command
--help, -h
: show help--version, -v
: print the version