Comprehensive event logging system for SaltyBot with: Features: - MQTT subscription to /saltybot/* state topics (9 event types) - Structured JSON event logging to ~/.saltybot-data/events/YYYY-MM-DD.jsonl - Event types: encounter, voice_command, trick, e-stop, geofence, dock, error, boot, shutdown - Query service (time range + type filter) - Stats publisher (/saltybot/event_stats) with daily summaries - Dashboard live feed (/saltybot/event_feed) - Automatic log rotation: compress >7 days, delete >90 days - CSV export functionality - Thread-safe event processing Components: - EventLogger ROS2 node with background timers - Event dataclass with timestamp/type/source/data - File-based storage (JSONL + compressed archives) - Query API for time/type filtering - CSV export utility - Comprehensive unit tests (15 test cases) Configuration: - Data directory: ~/.saltybot-data/events - Rotation: 7 days compress, 90 days delete - Stats interval: 60 seconds - Rotation check: hourly Launch: - event_logger.launch.py - Standalone launch - Config: event_logger.yaml with topic mappings Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
25 lines
878 B
XML
25 lines
878 B
XML
<?xml version="1.0"?>
|
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
|
<package format="3">
|
|
<name>saltybot_event_logger</name>
|
|
<version>0.1.0</version>
|
|
<description>Structured JSON event logging for all robot activities with query service, stats publisher, log rotation, CSV export, and dashboard feed.</description>
|
|
<maintainer email="seb@vayrette.com">seb</maintainer>
|
|
<license>Apache-2.0</license>
|
|
|
|
<buildtool_depend>ament_python</buildtool_depend>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>std_msgs</depend>
|
|
<depend>builtin_interfaces</depend>
|
|
|
|
<test_depend>ament_copyright</test_depend>
|
|
<test_depend>ament_flake8</test_depend>
|
|
<test_depend>ament_pep257</test_depend>
|
|
<test_depend>python3-pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|