Publish fleet and task updates over ROS 2 if websocket is not provided #383
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New feature implementation
Implemented feature
Allows
fleet_state_update
,fleet_log_update
,task_state_update
, andtask_log_update
to be published over ROS 2 when websocket server URL is not provided.Works with open-rmf/rmf-web#1003
Implementation description
The motivation is related to open-rmf/rmf-web#899, where non-reproducible issues with websockets occur unpredictably in production environments, causing various systems to fail.
This allows the option to mitigate issues with the upstream
websocketpp
library, and just rely on ROS 2 to publish updates instead.This will also allow the use of ROS 2 introspection tools in production if network instability occurs, which hopefully is a much better experience than debugging websocket connections.
Testing
Instead of running demos with the
server_uri
, just runros2 run rmf_demos_gz office.launch.xml #headless:=1