Files
contracts/schema/topics.json
T
mikkeli 4cbac36fbe
/ crosscheck (push) Successful in 0s
Rust consumers (L4T) / Clippy, test, build, glibc for every service that compiles contracts in (push) Successful in 17s
IMU signals in the car's frame (attitude, gravity-free g, yaw rate) on yukart/imu/<signal>
The WT61's publisher owns mounting and gravity; displays get car-frame values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 23:23:31 +09:00

76 lines
2.5 KiB
JSON

{
"root": "yukart",
"topics": {
"yukart/can/raw": {
"payload": "binary",
"retained": false,
"rate": "1000-3000/s",
"publisher": "can-bridge",
"description": "Timestamped raw frames. Binary, not the JSON envelope."
},
"yukart/vehicle/<signal>": {
"payload": "envelope",
"retained": true,
"rate": "1-50/s",
"publisher": "decoder (source z27ag), obd-poller (source obd2)",
"description": "One topic per signal, named exactly as in signals.json."
},
"yukart/gnss/fix": {
"payload": "envelope",
"retained": true,
"rate": "1-10/s",
"publisher": "gnss",
"description": "value is an object: lat, lon, alt_m, speed_kph, heading_deg, fix, satellites."
},
"yukart/gnss/<signal>": {
"payload": "envelope",
"retained": true,
"rate": "1-10/s",
"publisher": "gnss",
"description": "The receiver's fix as single values, one topic per signal, named exactly as in signals.json (source=gnss). For displays; yukart/gnss/fix stays the composite for navigation."
},
"yukart/imu/<signal>": {
"payload": "envelope",
"retained": true,
"rate": "10-50/s",
"publisher": "imu",
"description": "The IMU (WT61) in the car's frame: attitude, gravity-free acceleration, yaw rate; one topic per signal, named exactly as in signals.json (source=imu)."
},
"yukart/host/<signal>": {
"payload": "envelope",
"retained": true,
"rate": "1/s",
"publisher": "orin-status",
"description": "The Orin itself: temperatures, load, memory, network links, UPS battery. One topic per signal, named exactly as in signals.json (source=host)."
},
"yukart/system/<service>": {
"payload": "json",
"retained": true,
"rate": "on change",
"publisher": "every service",
"description": "state: starting|ready|degraded|stopping, plus service-specific detail."
},
"yukart/nav/guidance": {
"payload": "json",
"retained": true,
"rate": "on change",
"publisher": "svc-nav",
"description": "Next manoeuvre, distance, street name."
},
"yukart/nav/route": {
"payload": "json",
"retained": true,
"rate": "on change",
"publisher": "svc-nav",
"description": "Active route geometry."
},
"yukart/session/mark": {
"payload": "json",
"retained": false,
"rate": "human",
"publisher": "svc-gw",
"description": "Operator event stamped into the recording. Carries both clocks like the envelope."
}
}
}