/task_summaries topic is no longer used? (#189)

Posted by @shifsa:

With the version of RMF I downloaded last December, I was able to check task status from the /task_summaries topic.
However, I recently installed the latest version of RMF from source, and task status is not checking from the /task_summarires topic.
Is this topic no longer used?

Chosen answer

Answer chosen by @shifsa at 2022-08-18T06:19:24Z.
Answered by @youliangtan:

Publishing of /task_summaries is no longer supported. With the latest version, task states and robot states are published in the form of websocket. This can be seen here in rmf_demos, where we defined the server_uri argument.

Behind the scene, the task-dispatcher node and fleet_adapter nodes all act as a WebSocket client. These clients will publish the their states out to a websocket server. In our example, the websocket server is a rmf-web api-server. The states received by the server will then get stored in a database.

view task states with rmf-web

Just for the sake of viewing the states easily, you can run the rmf-web “api-server” and “web-dashboard” in a form of docker containers. According to this. Run a rmf_demos example with the arg server_uri:="ws://localhost:8000/_internal". Then:

docker run --network=host -it ghcr.io/open-rmf/rmf_deployment_template/rmf-web-rmf-server:galactic
docker run -p 3000:80 -it ghcr.io/open-rmf/rmf_deployment_template/rmf-web-dashboard-local:galactic

Lastly access the dashboard with: http://localhost:3000/dashboard

view task states with a websocket server utility script

ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:7878"

A utility script is provided to run a websocket server listener, this rmf_msg_observer.py will listen to port localhost:7878 by default, and prinout the received msgs.

ros2 run rmf_fleet_adapter_python rmf_msg_observer.py --task-state

Posted by @Yadunund:

Publishing on-going task information to /task_summaries was deprecated a while back. The TaskSummary message was too limiting in terms on the information it could encompass.

The fleet adapter now publishes verbose task state and task log information as json messages over websocket. The fleet adapter is a websocket client and you can provide it a uri or endpoint to your custom websocket server to automatically start receiving these messages. See API here.

The rmf-web dashboard for example now gets updates through this mechanism. See instructions here to run any of the simulations demos with rmf-web

Posted by @youliangtan:

Publishing of /task_summaries is no longer supported. With the latest version, task states and robot states are published in the form of websocket. This can be seen here in rmf_demos, where we defined the server_uri argument.

Behind the scene, the task-dispatcher node and fleet_adapter nodes all act as a WebSocket client. These clients will publish the their states out to a websocket server. In our example, the websocket server is a rmf-web api-server. The states received by the server will then get stored in a database.

view task states with rmf-web

Just for the sake of viewing the states easily, you can run the rmf-web “api-server” and “web-dashboard” in a form of docker containers. According to this. Run a rmf_demos example with the arg server_uri:="ws://localhost:8000/_internal". Then:

docker run --network=host -it ghcr.io/open-rmf/rmf_deployment_template/rmf-web-rmf-server:galactic
docker run -p 3000:80 -it ghcr.io/open-rmf/rmf_deployment_template/rmf-web-dashboard-local:galactic

Lastly access the dashboard with: http://localhost:3000/dashboard

view task states with a websocket server utility script

ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:7878"

A utility script is provided to run a websocket server listener, this rmf_msg_observer.py will listen to port localhost:7878 by default, and prinout the received msgs.

ros2 run rmf_fleet_adapter_python rmf_msg_observer.py --task-state

This is the chosen answer.

Posted by @opan08:

It should be

ros2 run rmf_fleet_adapter_python rmf_msg_observer.py --task_state

in humble version.
2024/5/1