Task 1: Swarm Communication Network Architecture

From empty graph
to shared state.

Watch the ROS 2 group-chat system start, register clients, create topic routes, and duplicate one final message to every ROS node.

← Back to the project index
Problem

Keep every ROS node informed.

Clients need identity, join and leave events, shared messages, active-user counts, and recent history without direct client-to-client coupling.

Built

One broadcast, many deliveries.

The hub validates one record, publishes it once on /ros_chat/broadcast, and ROS 2 delivers a copy to every subscribed node.

Run the sequence

How Task 1 starts and works.

Play the full lifecycle or select a step. The final step shows one broadcast becoming three client deliveries. Persistence is shown as a side effect, not as a recipient.

Ready to start
ROS 2 graph
client nodeTerminal A/client/user-1
client nodeTerminal B/client/user-2
client nodeTerminal C/client/user-3
background processROS CHAT HUBregistry · validator
delivery copy 1Terminal Amessage received
delivery copy 2Terminal Bmessage received
delivery copy 3Terminal Cmessage received
message
side effect: hub appends the record to history.json
Nothing is running yet.
Architecture decisions

Broadcast is the system boundary.

One publisher. The hub publishes one validated record on the shared broadcast topic.

Many subscribers. Every ROS 2 client subscribes and receives its own delivered copy.

Persistence is separate. The hub also appends recent history, but storage is not the delivery path.

Ownership stays clear. The hub validates the sender before it broadcasts.