Replies: 1 comment
-
|
Hey @mrawding, thank you for reaching out. Please see the following notes: Does Foxglove currently support creating dynamic output topics from a converter (or extension) based on message contents, or are output topics required to be declared statically at initialization time? Answer: In this case your best bet would be to do something like this as you said via a pre-processing step with some sort of ROS node, MCAP transform for example. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Say I have an input topic like:
/robots/status/3d-tracksIs it possible to use the topic converter example (or another supported pattern) to dynamically split a single topic into multiple derived topics at runtime?
Example 1: Split by name
Given a topic:
/robots/statusWhere each message contains:
msg.name(string)msg.location(sensor_msgs/NavSatFix)Is there a supported way to dynamically create new topics like:
/robots/<msg.name>/gpsEach publishing a derived
LocationFix(or NavSatFix) message for that specific robot?In other words, the set of output topics is not known ahead of time and depends on values inside the message.
Example 2: Split by ID from an array
Given a topic:
/3d-tracksWhere each message contains:
msg.tracks[]--- for track in tracks ----
track.idtrack.pos(3D vector)Is it possible to emit one output topic per track ID, e.g.:
/tracks/<id>Each becoming its own data stream over time?
Key question:
Does Foxglove currently support creating dynamic output topics from a converter (or extension) based on message contents, or are output topics required to be declared statically at initialization time?
If this is not supported today:
Is there a recommended workaround or pattern?
Or is this something only achievable by preprocessing the data outside Foxglove (ROS node, MCAP transform, etc.)?
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions