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