Skip to content

Handling reconnects with TFClient #379

@jorgenfb

Description

@jorgenfb

I want to start the discussion on how to handle TF subscriptions and reconnects. We currently try to reconnect the ROSClient if we detect connection problems. We use the the service call (groovyCompatability=false) to establish a TF listener. Which again creates a topic for our client to listen to. However, the tf2_web_republisher will remove the publisher if there is no listeners for a given time period, determined by the timout option when setting up the subscriber. If the timeout is too low, the publisher will be removed before reconnection is done and the client would just listen to a topic noone is publishing to. We could of course use a really high timeout, but that does not seem like a good permanent solution.

Could we use that fact that tf2_web_republisher is using a latch topic to assume that we should receive a message fairly quick after a reconnect, and if not, we simply ask resends the request and subscribes to the new topic instead. Is this something we should pursue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions