Posted by @Narayan-007:
Hi, I wanted to try out the RMF Web UI with the RMF Demos before trying to use it with my own simulation world. I checked the RMF Web Github page, and it says that the Quick docker is enough to launch the RMF Web and to use it. For context, I am currently using ROS2 Humble on Ubuntu version 22.04.5. However, when I launched the rmf demos using the following command:
ros2 launch rmf_demos_gz airport_terminal.launch.xml
And launch RMF Web UI using the following commands:
fyp-user@rric:~/rmf_ws$ sudo docker run
–network host -it --rm
-e RMF_SERVER_URL=http://localhost:8000
-e TRAJECTORY_SERVER_URL=ws://localhost:8006
Package rmf-web/demo-dashboard · GitHub
[sudo] password for fyp-user:
┌──────────────────────────────────────────┐
│ │
│ Serving! │
│ │
│ - Local: http://localhost:3000 │
│ - Network: http://192.168.1.15:3000 │
│ │
└──────────────────────────────────────────┘
fyp-user@rric:~/rmf_ws$ sudo docker run
–network host -it --rm
-e ROS_DOMAIN_ID=0
-e RMW_IMPLEMENTATION=rmw_fastrtps_cpp
[sudo] password for fyp-user:
I can only view this, I can’t view anything regarding the demos, meaning it does not work as intended. Why is this the case?:
Am I missing something out? Please advise, thank you.
Edited by @Narayan-007 at 2025-01-31T02:35:34Z
Posted by @aaronchongth:
Hey @Narayan-007! It looks like you missed out the server_uri
launch parameter when launching your sim, please check out the instructions here again, GitHub - open-rmf/rmf_demos: Demonstrations of Open-RMF.
As mentioned in GitHub - open-rmf/rmf-web, we are currently supporting ROS 2 Jazzy, and therefore the quick start docker images were built with ROS 2 Jazzy. I would first advise to migrate to ROS 2 Jazzy to take advantage of all the new features, and to prevent any issues with versioning.
Other things you can try with your current setup,
- use
rmw_cyclonedds_cpp
instead
- make sure that the domain ID that you are launching your sim is indeed 0
- check if there are any errors when launching the API server docker image, and does it mention receiving ROS 2 messages, maps, etc
- inspect the browser with the dashboard to see if there are any logs or errors
From the screenshots it looks like the dashboard and API server are working as expected, just that the sim is unable to communicate with the API server.
Also, in the future, please put together multi-line logs using code blocks
like this
Posted by @Narayan-007:
Hi, thanks for the reply. I tried doing what you said, but when I did it, it still does not work.
This is the command I used and the error message I am getting:
fyp-user@rric:~/rmf_ws$ sudo docker run --network host -it --rm -e ROS_DOMAIN_ID=0 -e RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ghcr.io/open-rmf/rmf-web/api-server:latest
1738570408.974090 [0] python: Failed to find a free participant index for domain 0
[ERROR] [1738570408.974207631] [rmw_cyclonedds_cpp]: rmw_create_node: failed to create domain, error Error
/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/node.py:187: RuntimeWarning: Failed to fini rosout publisher: rcl node implementation is invalid, at ./src/rcl/node.c:390
self.__node = _rclpy.Node(
Traceback (most recent call last):
File "/ws/.venv/lib/python3.12/site-packages/starlette/routing.py", line 734, in lifespan
async with self.lifespan_context(app) as maybe_state:
File "/usr/lib/python3.12/contextlib.py", line 210, in __aenter__
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/ws/packages/api-server/api_server/app.py", line 92, in lifespan
await stack.enter_async_context(ros.get_ros_node)
File "/usr/lib/python3.12/contextlib.py", line 659, in enter_async_context
result = await _enter(cm)
^^^^^^^^^^^^^^^^
File "/ws/packages/api-server/api_server/fast_io/singleton_dep.py", line 30, in __aenter__
self.instance = self.context.__enter__()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/contextlib.py", line 137, in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
File "/ws/packages/api-server/api_server/ros.py", line 28, in get_ros_node
node = rclpy.node.Node("rmf_api_server")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/ros/jazzy/lib/python3.12/site-packages/rclpy/node.py", line 187, in __init__
self.__node = _rclpy.Node(
^^^^^^^^^^^^
rclpy._rclpy_pybind11.RCLError: error creating node: error not set, at ./src/rcl/node.c:252
Application startup failed. Exiting.
Posted by @aaronchongth:
I am assuming this is after the sim is launched using ROS 2 Humble?
With the sim in Humble, and the docker image launching in ROS 2 Jazzy, it looks like there is a conflict between the versions of CycloneDDS
.
There are a few options here,
- build and use the outdated
humble
version of rmf-web
from source, GitHub - open-rmf/rmf-web at humble, we have not maintained it for a while now, so are unsure if there could be issues
- attempt to build and use
main
from source in ROS 2 Humble, unsure if this will work too
- migrate to ROS 2 Jazzy
Posted by @Narayan-007:
So I would have to install the packages there then launch it?
Posted by @Narayan-007:
Now when I run this command, this happens:
fyp-user@rric:~/rmf_ws$ sudo docker run \
--network host -it --rm \
-e ROS_DOMAIN_ID=1 \
-e RMW_IMPLEMENTATION=rmw_cyclonedds_cpp \
ghcr.io/open-rmf/rmf-web/api-server:latest
[sudo] password for fyp-user:
msg="loading states from database..." level="INFO" ts="2025-02-03T08:18:11.332+0000" src="app.py:259" funcName="_load_states"
msg="loaded 0 door states" level="INFO" ts="2025-02-03T08:18:11.333+0000" src="app.py:264" funcName="_load_states"
msg="loaded 0 lift states" level="INFO" ts="2025-02-03T08:18:11.334+0000" src="app.py:269" funcName="_load_states"
msg="loaded 0 dispenser states" level="INFO" ts="2025-02-03T08:18:11.335+0000" src="app.py:276" funcName="_load_states"
msg="loaded 0 ingestor states" level="INFO" ts="2025-02-03T08:18:11.336+0000" src="app.py:283" funcName="_load_states"
msg="starting scheduler" level="INFO" ts="2025-02-03T08:18:11.337+0000" src="app.py:118" funcName="lifespan"
msg="loaded 0 tasks" level="INFO" ts="2025-02-03T08:18:11.338+0000" src="app.py:136" funcName="lifespan"
msg="successfully started scheduler" level="INFO" ts="2025-02-03T08:18:11.338+0000" src="app.py:137" funcName="lifespan"
msg="started app" level="INFO" ts="2025-02-03T08:18:11.338+0000" src="app.py:139" funcName="lifespan"
msg="127.0.0.1:50294 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAuu5E HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:14.998+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50294 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAuu6H&sid=6NEt5eH-zfMINFs2AAAA HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:15.65+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50294 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAuu6o&sid=6NEt5eH-zfMINFs2AAAA HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:15.99+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50302 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAuu6M&sid=6NEt5eH-zfMINFs2AAAA HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:15.117+0000" src="httptools_impl.py:481" funcName="send"
msg="[]" level="WARNING" ts="2025-02-03T08:18:18.152+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50258" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:18.152+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50258" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:18.152+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50258" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:18.152+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50258" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:18.648+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50266" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:18.648+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50266" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:19.227+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50276" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:19.228+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50276" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:19.228+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50276" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:19.228+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50276" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:19.229+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50276" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:19.230+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50276" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:19.230+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50276" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:19.230+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50276" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:19.288+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50292" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:19.288+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50292" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:19.288+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50292" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:19.288+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50292" user="None"
msg="[]" level="WARNING" ts="2025-02-03T08:18:19.289+0000" src="internal.py:31" funcName="process_msg" client="127.0.0.1:50292" user="None"
msg="Ignoring message, 'type' must include in msg field" level="WARNING" ts="2025-02-03T08:18:19.289+0000" src="internal.py:32" funcName="process_msg" client="127.0.0.1:50292" user="None"
msg="127.0.0.1:50198 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:21.211+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50198 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:21.230+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50198 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:22.166+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50198 - \"GET /user HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.356+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50198 - \"GET /permissions HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.388+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50198 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAuwRB HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.593+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50198 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.771+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50230 - \"GET /building_map/previous_fire_alarm_trigger HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:24.789+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50214 - \"GET /favorite_tasks HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.790+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50204 - \"GET /alerts/unresponded_requests HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.794+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAuwU9&sid=bI-zkyYoZS8ldY8HAAAC HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.813+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50250 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAuwU8&sid=bI-zkyYoZS8ldY8HAAAC HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.816+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50250 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAuwVI&sid=bI-zkyYoZS8ldY8HAAAC HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.858+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAuwVG&sid=bI-zkyYoZS8ldY8HAAAC HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.860+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAuwWj&sid=bI-zkyYoZS8ldY8HAAAC HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.946+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50250 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAuwWk&sid=bI-zkyYoZS8ldY8HAAAC HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:24.956+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:25.374+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50250 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:25.377+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50250 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:25.962+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50250 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:27.227+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50250 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:28.799+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:28.800+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:28.822+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:33.578+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:38.583+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:38.597+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50234 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:39.69+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48224 - \"GET /user HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.393+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48224 - \"GET /permissions HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.419+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48224 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAv0nm HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.650+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48224 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.774+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48238 - \"GET /alerts/unresponded_requests HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.808+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48252 - \"GET /building_map/previous_fire_alarm_trigger HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:50.809+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48248 - \"GET /favorite_tasks HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.810+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48224 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAv0qk&sid=jzWRqh7eBWCmhYbAAAAE HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.858+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48278 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAv0qf&sid=jzWRqh7eBWCmhYbAAAAE HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.879+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48278 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAv0st&sid=jzWRqh7eBWCmhYbAAAAE HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.944+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48278 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAv0tR&sid=jzWRqh7eBWCmhYbAAAAE HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:50.989+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48278 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:51.12+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48278 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:53.539+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48224 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:53.552+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48278 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:54.263+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48278 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:18:56.595+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48278 - \"OPTIONS /tasks?limit=10&offset=0&order_by=-unix_millis_start_time HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:56.853+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:48224 - \"GET /tasks?limit=10&offset=0&order_by=-unix_millis_start_time HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:18:56.882+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:50030 - \"GET /tasks?limit=10&offset=0&order_by=-unix_millis_start_time HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:19:11.879+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:42942 - \"GET /tasks?limit=10&offset=0&order_by=-unix_millis_start_time HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:19:26.849+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:43180 - \"GET /tasks?limit=10&offset=0&order_by=-unix_millis_start_time HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:19:41.807+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60458 - \"GET /tasks?limit=10&offset=0&order_by=-unix_millis_start_time HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:19:56.807+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60458 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:19:59.558+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:19:59.575+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:19:59.589+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:20:00.724+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /user HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.396+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /permissions HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.501+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAvINy HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.713+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.770+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60458 - \"GET /alerts/unresponded_requests HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.781+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37392 - \"GET /building_map/previous_fire_alarm_trigger HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:20:02.792+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37388 - \"GET /favorite_tasks HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.793+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37388 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAvIQZ&sid=_wYsd_I4MIUJqDpMAAAG HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.866+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37392 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAvIQc&sid=_wYsd_I4MIUJqDpMAAAG HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.873+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37392 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAvIRW&sid=_wYsd_I4MIUJqDpMAAAG HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:02.922+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37388 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAvISm&sid=_wYsd_I4MIUJqDpMAAAG HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.0+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37392 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:20:03.3+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37392 - \"GET /user HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.704+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37392 - \"GET /permissions HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.727+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37392 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAvIgC HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.910+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37388 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.932+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60458 - \"GET /alerts/unresponded_requests HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.934+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37412 - \"GET /building_map/previous_fire_alarm_trigger HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:20:03.936+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /favorite_tasks HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.937+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAvIhU.0&sid=7iTgtAm3mBCKBMwpAAAI HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.951+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37412 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAvIhU&sid=7iTgtAm3mBCKBMwpAAAI HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:03.952+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37412 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:20:03.966+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37412 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAvIiU&sid=7iTgtAm3mBCKBMwpAAAI HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:04.26+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAvIiT&sid=7iTgtAm3mBCKBMwpAAAI HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:04.29+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"POST /socket.io/?EIO=4&transport=polling&t=PJAvIjv&sid=7iTgtAm3mBCKBMwpAAAI HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:04.93+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37412 - \"GET /socket.io/?EIO=4&transport=polling&t=PJAvIjz&sid=7iTgtAm3mBCKBMwpAAAI HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:04.109+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:37412 - \"GET /building_map HTTP/1.1\" 404" level="INFO" ts="2025-02-03T08:20:07.378+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:07.381+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:07.941+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:12.828+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:17.147+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:17.821+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:22.824+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:27.144+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:27.821+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:32.820+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:37.149+0000" src="httptools_impl.py:481" funcName="send"
msg="127.0.0.1:60470 - \"GET /fleets HTTP/1.1\" 200" level="INFO" ts="2025-02-03T08:20:37.823+0000" src="httptools_impl.py:481" funcName="send"
^Cmsg="Tortoise-ORM shutdown" level="INFO" ts="2025-02-03T08:20:40.955+0000" src="__init__.py:552" funcName="close_connections"
msg="shutdown app" level="INFO" ts="2025-02-03T08:20:40.955+0000" src="app.py:67" funcName="shutdown"
msg="Client websocket disconnected" level="WARNING" ts="2025-02-03T08:20:40.960+0000" src="internal.py:141" funcName="rmf_gateway" client="127.0.0.1:50292" user="None"
msg="Client websocket disconnected" level="WARNING" ts="2025-02-03T08:20:40.960+0000" src="internal.py:141" funcName="rmf_gateway" client="127.0.0.1:50266" user="None"
msg="Client websocket disconnected" level="WARNING" ts="2025-02-03T08:20:40.960+0000" src="internal.py:141" funcName="rmf_gateway" client="127.0.0.1:50258" user="None"
msg="Client websocket disconnected" level="WARNING" ts="2025-02-03T08:20:40.961+0000" src="internal.py:141" funcName="rmf_gateway" client="127.0.0.1:50276" user="None"
msg="shutdown app" level="INFO" ts="2025-02-03T08:20:41.59+0000" src="app.py:67" funcName="shutdown"
fyp-user@rric:~/rmf_ws$
And now I can only see the robot data that too partially:
Edited by @Narayan-007 at 2025-02-03T07:23:17Z
Posted by @aaronchongth:
The websockets are working fine, which is a good sign, however the components that handle doors, lifts, maps and task dispatches will require ROS 2, and with the errors you listed above, those features will not work
Posted by @Narayan-007:
So in other words, unless I use Jazzy, and if the other steps you stated do not work, RMF Web cannot be utilised properly while using ROS2 Humble?
Posted by @aaronchongth:
Another thought occurred to me, just in case, ensure that you are launching your sim with rmw_cyclonedds_cpp
as well
So in other words, unless I use Jazzy, and if the other steps you stated do not work, RMF Web cannot be utilised properly while using ROS2 Humble?
Yes, please try the above options mentioned, in terms of building and launching rmf-web
from source either the humble
branch or main
branch. And if those steps do not work, you should consider using Jazzy for your sim as well
Posted by @Narayan-007:
How do I ensure that I am launching the sim with rmw_cyclonedds_cpp
? Because I only run the ros2 launch command, and the server_uri
argument, nothing else.
Posted by @aaronchongth:
You set it as an environment variable, by running,
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ros2 launch .........
Posted by @Narayan-007:
Oh yeah, sorry sorry, I thought you meant something else. Will update you on the progress, thank you.