data_logger.py is the catch-all telemetry script. It subscribes to whatever topics you point it at, writes their messages to disk (rosbag or CSV depending on type), and optionally publishes a flattened scalar summary to TensorBoard for live training-curve viewing. Most days you don’t think about it; on the days you need to diagnose a regression two weeks later, you’re grateful it ran.
Current status: placeholder. The current logging story is ros2 bag record for raw topics + a separate scripted TensorBoard writer in the RL pipeline. A dedicated data_logger.py script that does both in one place is on the backlog.
Planned inputs:
- Configurable topic list (YAML config).
- Optional TensorBoard event-file target directory.
Planned outputs:
.bagfiles in~/drone_media/logs/<session>/.- TensorBoard scalar/histogram events.
Why not just use ros2 bag and be done with it:
Two reasons. First, ros2 bag records raw messages, but most of what we want to visualize during training is derived (reward components, episode coverage, action statistics). Recording every intermediate computation as a topic just to log it is wasteful. Second, integrating with the TensorBoard event format from inside the policy training loop is cleaner than dumping rosbag files and post-processing them — closes the loop.
Where to go next
- RL framework overview — where training-loop telemetry actually lives today
- Custom scripts hub — sibling utilities
- Orchestrator script — adjacent piece of the same plumbing