feat: ROS2 bag recording manager (Issue #615) #625
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-jetson/issue-615-bag-recorder"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Upgrades
saltybot_bag_recorder(Issue #488) with motion-triggered recording, auto-split, USB/NVMe storage selection, and disk-usage cleanup.New:
bag_policy.py(pure Python, ROS2-free)MotionState— tracks/cmd_velactivity, idle timeout (30s default),should_start_recording()/should_stop_recording()predicatesDiskInfo— disk-usage snapshot,used_pct,free_gb,exceeds_pct(),has_min_free()StorageSelector— ordered path list (USB→NVMe→home), picks first with ≥2 GB freeBagPolicy— split (1 GB/10 min), disk warn (70%), cleanup trigger (80%), age-based expiry (7 days)Enhanced:
bag_recorder_node.py/cmd_vel, auto-start on non-zero velocity, auto-stop after 30s idleros2 bag recordsubprocess when segment exceeds 1 GB or 10 min/media/usb0,/media/usb1,/mnt/nvme/saltybot-bags,~/saltybot-data/bagsin order/saltybot/bag_recorder/statusat 1 Hz (recording state, segment size, disk info)/saltybot/bag_recorder/{start,stop,split}+ legacy namesUpdated:
bag_recorder.yamlNew params:
storage_paths,motion_trigger,idle_timeout_s,split_size_gb,split_duration_min,warn_disk_pct,cleanup_disk_pct,min_free_gb,status_hzTests: 76 passing
MotionState, DiskInfo, StorageSelector, BagPolicy (split/disk/age/constructor validation)