Hi!
I presented this work during the PX4 Meetup in Belgium and want to push this to completion, so I thought I would seek feedback from the community before proceeding.
Background: at Foxglove, we came up with open-source multimodal format called MCAP that’s now a default rosbag format for ROS users. The format is quite flexible and optimized for multimodal data.
Here is the fork of pyulog I’m working on (together with my friend Cursor). I’m yet to clean it up but thought I would seek some early feedback:
- Foxglove expects ENU frames; following some ROS conventions, I created a simple tree of local_origin->base_intermediate->base_link, where local_origin to base_intermediate is an XYZ transform and base_intermediate to base_link adds a rotation
- I noticed sometimes log time starts at epoch start, so I try to be smart about it and use gps time to offset the relative time
- Not wanting to make pyulog depend on ROS, I used Foxglove message schemas and derived some messages so they can be rendered nicely in Foxglove. This would likely make these derived messages not work with standard ROS tools. Would that be acceptable, or should we rely fully on ROS and try to match MAVROS messages as closely as possible?
- Any value in parsing additional information that can be output in the table similar to what you can see in PX4 Flight Review
- I notice there is usually some ‘dead time’ in the logs where no sensor data, etc. is published. Any issues with removing this offset? I recognize this might be an issue in my converter; I will double-check this soon
Here is the video I recorded showing the visualization of a converted log file: