Skip to content

Add merging support to coms #7

@tylerferrara

Description

@tylerferrara

Auto Merging ♻

1. Broadcaster finds a robot
2. Broadcaster gets local map using NetSimMerger.get_latest()
3. Broadcaster sends msg.Merge over the network
4. Listener gets msg.Merge
5. Listener gets local map using NetSimMerger.get_latest()
6. Listener replies with msg.Merge over the network
7. Listener calls NetSimMerger.request_merge()
8. Broadcaster gets reply and calls NetSimMerger.request_merge() with new map

State Machine Merging 🤖

1. State machine says ("Lets merge with ROBOT_B")
2. State machine makes call NetSimMerger.merge_with(robot_B)
       Within NetSimMerger.merge_with:
        - Get the local map
        - Craft a ms.Merge
        - Publish to topic: `/coms_listening`
3. coms.sim.Sim.Broadcaster listens to `/coms_listeneing` and pushes the message over the network [waits for reply]
4. ROBOT_B: coms.sim.Listener obtains msg.Merge
5. ROBOT_B: gets local map
6. ROBOT_B: replies with its own msg.Merge
7. ROBOT_B: calls NetSimMerger.request_merge()
8. coms.sim.Sim.Broadcaster hears reply
9. coms.sim.Sim.Broadcaster calls NetSimMerger.request_merge()

NOTE: Implement sending messages as a service request in coms.sim.Sim

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions