-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample_config.yaml
More file actions
141 lines (125 loc) · 6.13 KB
/
Copy pathexample_config.yaml
File metadata and controls
141 lines (125 loc) · 6.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# RosBag Blackbox – Example Configuration
#
# Copy and adapt this file; pass it to the node via:
# ros2 run rosbag_blackbox ringbuffer_node \
# --ros-args -p config_file:=/path/to/config.yaml
#
# Pattern syntax (zenoh-style):
# * matches exactly ONE path segment (e.g. /camera/* → /camera/left)
# ** matches ANY depth of namespace (e.g. /camera/** → /camera/left/image_raw)
#
# Topic selectors (at least one must be provided per entry):
# pattern: <glob> – match by topic NAME using the syntax above
# type: <string> – match by message TYPE (exact, e.g. geometry_msgs/msg/Twist)
# Both keys may be combined; in that case BOTH conditions must hold.
#
# Buffer type (optional, default: memory):
# buffer: memory – keep messages in RAM (default, lowest latency)
# buffer: file – keep messages in a temporary file (reduces RAM usage;
# recommended for high-bandwidth topics like images)
# ── Ring-buffer settings ────────────────────────────────────────────────────
buffer:
duration_seconds: 60 # keep the last N seconds of messages in memory
# ── Snapshot output ─────────────────────────────────────────────────────────
snapshot:
directory: /tmp/rosbag_blackbox_snapshots
# Supported placeholders: {datetime}, {date}, {time}, {timestamp}, {trigger}
# {trigger} is 'auto' for automatic snapshots and 'manual' for service-triggered ones.
name_pattern: "snapshot_{trigger}_{datetime}"
# ── Automatic (sliding-window) snapshots ─────────────────────────────────────
# When enabled, a snapshot is written every (duration_seconds - overlap_seconds).
# Consecutive snapshots therefore overlap by overlap_seconds, ensuring no data
# is lost between them.
auto_snapshot:
enabled: true
overlap_seconds: 10.0 # seconds of shared data between consecutive snapshots
# ── Node parameter snapshotting ───────────────────────────────────────────────
# When patterns is non-empty, the current ROS2 parameters of all active nodes
# whose fully-qualified name (/<namespace>/<node>) matches at least one pattern
# are collected asynchronously and written to node_params.yaml inside each
# snapshot directory.
# Pattern syntax is the same zenoh-style glob used for topics (see above).
node_params:
patterns: ["/**"] # e.g. ["/**"] to capture every node, ["/my_ns/*"] for a namespace
collection_interval_seconds: 30.0 # how often to refresh the parameter cache
# ── Topic recording rules ────────────────────────────────────────────────────
# Rules are evaluated in order; the first matching pattern wins.
# If this section is empty (or the file is omitted), ALL discovered topics
# are recorded with the default (best-effort, volatile, depth=10) QoS.
topics:
# ── All Camera topics at max 1 Hz ─────────────────────────────────────────
- type: "sensor_msgs/msg/Image"
buffer: file # use a file-backed buffer to reduce RAM usage
max_frequency: 1.0 # Hz (omit or set to 0 for unlimited)
qos:
reliability: best_effort
durability: volatile
depth: 1
# ── All Twist messages, whatever topic they appear on ──────────────────
- type: "geometry_msgs/msg/Twist"
max_frequency: 10.0
qos:
reliability: best_effort
durability: volatile
depth: 5
# ── All Odometry messages, whatever topic they appear on ──────────────────
- type: "nav_msgs/msg/Odometry"
max_frequency: 10.0
qos:
reliability: best_effort
durability: volatile
depth: 5
# ── All Lidar messages, whatever topic they appear on ──────────────────
- type: "sensor_msgs/msg/LaserScan"
max_frequency: 5.0
qos:
reliability: best_effort
durability: volatile
depth: 5
# ── All GPS messages, whatever topic they appear on ──────────────────
- type: "sensor_msgs/msg/NavSatFix"
max_frequency: 5.0
qos:
reliability: best_effort
durability: volatile
depth: 5
# ── All NavSatStatus messages, whatever topic they appear on ──────────────────
- type: "sensor_msgs/msg/NavSatStatus"
max_frequency: 1.0
qos:
reliability: best_effort
durability: volatile
depth: 5
# ── TF / TF-static (reliable, higher depth) ────────────────────────────
- pattern: "/tf"
qos:
reliability: reliable
durability: volatile
depth: 100
- pattern: "/tf_static"
qos:
reliability: reliable
# transient_local = "latched": the subscriber receives the last
# message even when it joins after the publisher sent it.
durability: transient_local
depth: 1
# ── Occupancy-grid map (latched, published rarely) ─────────────────────
- pattern: "/map"
qos:
reliability: reliable
durability: transient_local # latched topic
depth: 1
# # ── LIDAR at 5 Hz ──────────────────────────────────────────────────────
# - pattern: "/*/scan"
# max_frequency: 5.0
# qos:
# reliability: best_effort
# durability: volatile
# depth: 1
# ── Catch-all: record every other topic at best-effort / low rate ───────
- pattern: "/**"
max_frequency: 5.0
qos:
reliability: best_effort
durability: volatile
depth: 10