Difficulty in visualizing Tasks in Open-RMF (#388)

Posted by @hansdmc:

HI, i having issue in developing open-RMF.

Operating system and version:
    Ubuntu 20.04
OpenRMF installation type:
    From source => vcs import < RMF.repos 
    from the rmf.repos i modify:
       rmf-simulation => foxy
       thirdparty/pybind11_json_vendor => prep-0.1.0
    to work in ros-foxy.

    RMF-web taken from:https://github.com/open-rmf/rmf-web.git
     using python 3.10 venv

ROS distribution and version:
    ROS-FOXY 
ROS installation type:
    From source: https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html

the simple trial setup i connect my robot controller similiar to tinyrobot and creating a custom map through traffic editor

    <arg name="use_sim_time" default="true"/>

    <include` file="$(find-pkg-share rmf_demos)/common.launch.xml">
        <arg name="use_sim_time" value="$(var use_sim_time)"/>
        <!-- <arg name="viz_config_file" value ="$(find-pkg-share rmf_demos)/include/testmap/office.rviz"/> -->
        <arg name="config_file" value="$(find-pkg-share rmf_demos_maps)/testmap/testmap.building.yaml"/>
        <arg name="dashboard_config_file" value="$(find-pkg-share rmf_demos_dashboard_resources)/testmap/dashboard_config.json"/>
    </include>

    <group>
        <include file="$(find-pkg-share rmf_demos_fleet_adapter)/launch/fleet_adapter.launch.xml">
        <arg name="use_sim_time" value="$(var use_sim_time)"/>
        <arg name="nav_graph_file" value="$(find-pkg-share rmf_demos_maps)/maps/testmap/nav_graphs/1.yaml" />
        <arg name="config_file" value="$(find-pkg-share rmf_demos)/config/testmap/config.yaml"/>
        </include>
    </group>

the command send through rmf-demos-task with ros2 run manage to pass through and received by the robot.
however i encountered issue that i would like some clarification:

  1. for some reason if the task is not completed the task would not disappear or erased even with rebuilding the src or restarting the computer.

  2. Is Lidar MAP necessary for traffic-editor?

  3. i cannot get the RVIZ to work is there a building system to build RVIZ from the traffic editor. *hence it is currently commented out

  4. i cannot get the RMF-web to connect to the open-RMF using ros2 launch …launch.xml server_uri:=“http://localhost:8000/_internal
    => according to GitHub - open-rmf/rmf-web to put the server_uri to http://localhost:8000/_internal
    i received this error message
    [testmap_fleet_adapter]: BroadcastClient unable to connect to [http://localhost:8000/_internal]. Please make sure server is running. Error msg: invalid state

    through pacakage/dashboard pnpm start i can access rmf-dashboard through localhost:3000
    is there a step that i missed or should’ve be done?

let me know if further clarification or information are required. thank you

Chosen answer

Answer chosen by @hansdmc at 2023-10-13T02:47:32Z.
Answered by @aaronchongth:

the command persist when the fleet manager launches. i have tried to clear the src rm -rf build/ install/ logs/ or changing the domain id or restarting the computer. when the system restarted the robot would directly move involuntarily without additional command.

this is a rather peculiar issue that we have not encountered before. Is it possible for you to share your map file and launch files? There may be a low chance that a ROS 2 process has not died properly, but that should be mitigated by a full restart. Can I check that no other machines in your network are running the same processes and are on the same ROS 2 domain id?

Sorry, let me clarify, how do i mesh the map i used in traffic editor with the nav-graph route such like the rmf- visualisation example taken from: GitHub - open-rmf/rmf_visualization: Visualization tools for OpenRMF
currently rviz only display a blank screen with negotiation table. pretty much similar as to running ros2 launch rmf_visualization visualization.launch.xml as a standalone.

The building map will need to be served by the building map server like this, rmf_demos/rmf_demos/launch/common.launch.xml at main · open-rmf/rmf_demos · GitHub, in a demo.

Don’t forget to change the map/level name in rviz’s schedule panel.

is there a configuration i should have done to set up and connect the RMF-WEB to the Open-RMF

The API server handles the port 8000, while the dashboard is by default hosted on 3000, setting the server_uri to http://localhost:3000/_internal is incorrect.

Does the map show up on the dashboard like GitHub - open-rmf/rmf-web?

also how do i check which open-rmf version i am currently working on?

on which branch of GitHub - open-rmf/rmf: Root repository for the RMF software did you get your rmf.repos file? If that is main, I’m afraid there is limited number of things we can advise on, as we are fully developing and working in ROS 2 Humble and Iron.

i suspect the same issue would appear even if i migrate it to ros-humble

This may be true, if there are some misconfigurations to set up Open-RMF on your end, however since active development is currently on Humble and Iron (ROS 2 Humble and Iron has a lot of improvements over Foxy too!), we can better help understand what the potential issues are if we are on a similar setup.

You mentioned that the issue was present in GitHub - open-rmf/roscon_workshop: Materials for Open-RMF workshop at ROSCon 2022 Kyoto as well? Do you mean the default world in the workshop, or the modifications that you’ve made were not working?

Moving forward, I would suggest trying the demos, without any modifications, on a separate machine running Ubuntu 22.04 and ROS 2 Humble, to get an idea of how all the nodes should interact with each other, and how the outcome should look like, before replacing the map, as well as the fleet adapter to see which components may have issues.

Posted by @aaronchongth:

Hey there @hansdmc! Unfortunately we have stopped supporting a foxy build on Ubuntu 20.04, since Foxy is EOL. I would suggest migrating to Ubuntu 22.04 and running our most recent releases with Humble or Iron (there are binaries too, so minimal source builds needed!) Nevertheless, I’ll try to answer your questions to the best of our understanding.

for some reason if the task is not completed the task would not disappear or erased even with rebuilding the src or restarting the computer.

Can you elaborate a little more what this means? Specifically in what form does the task continue to exist in?

Is Lidar MAP necessary for traffic-editor?

It is not necessary, but it will make it easier to calculate the transforms between the RMF frame of reference and the robot’s navigatoin frame of reference (there are tools in traffic-editor to help with that). It can also help identify places where the robot is unable to navigate, where the appropriate navigation graphs can then be drawn up

i cannot get the RVIZ to work is there a building system to build RVIZ from the traffic editor. *hence it is currently commented out

Could you explain a little more what you intend to do with rviz? You should be able to install rviz though sudo apt install ros-DISTRO-rviz2.

i cannot get the RMF-web to connect to the open-RMF using ros2 launch …launch.xml server_uri:=“http://localhost:8000/_internal

I assume that rmf-web and testmap_fleet_adapter is running on the same machine? A sanity check here, once you have launched rmf-web, check if you can access the API server by going to http://localhost:8000/docs, if it is present but the fleet adapters are still having trouble connecting to it, we’ll need to verify the versions of the packages that you’re currently using.

Posted by @hansdmc:

Thank you @aaronchongth for the response, i will considered the humble integration. as for the other points:

for some reason if the task is not completed the task would not disappear or erased even with rebuilding the src or restarting the computer.
Can you elaborate a little more what this means? Specifically in what form does the task continue to exist in?

i am not quite sure the exact situation, however when executing the following command in a network
ros2 run rmf_demos_tasks dispatch_delivery -p disp_A -ph A_dispenser -d drop_1 -dh drop_ingestor -F testmap_robot -R robot1
the command persist when the fleet manager launches. i have tried to clear the src rm -rf build/ install/ logs/ or changing the domain id or restarting the computer. when the system restarted the robot would directly move involuntarily without additional command.

Is Lidar MAP necessary for traffic-editor?

It is not necessary, but it will make it easier to calculate the transforms between the RMF frame of reference and the robot’s navigatoin frame of reference (there are tools in traffic-editor to help with that). It can also help identify places where the robot is unable to navigate, where the appropriate navigation graphs can then be drawn up

thank you for the Lidar Clarification

i cannot get the RVIZ to work is there a building system to build RVIZ from the traffic editor. *hence it is currently commented out
Could you explain a little more what you intend to do with rviz? You should be able to install rviz though sudo apt install ros-DISTRO-rviz2.

Sorry, let me clarify, how do i mesh the map i used in traffic editor with the nav-graph route such like the rmf- visualisation example taken from: GitHub - open-rmf/rmf_visualization: Visualization tools for OpenRMF
currently rviz only display a blank screen with negotiation table. pretty much similar as to running ros2 launch rmf_visualization visualization.launch.xml as a standalone.

additionally, i also cannot make the negotiation to appear when the rmf-task is publish in the any demo or the roscon-workshop vbox even though, the tiny robot is clearly moving.

the visualizer is currently working as follows:

[rmf_task_dispatcher-13] ~Initializing Dispatcher Node~
[rmf_traffic_schedule-1] [INFO] [1692839718.927303355] [rmf_traffic_schedule_primary]: Successfully loaded logfile .rmf_schedule_node.yaml 
[rmf_traffic_schedule-1] [INFO] [1692839718.928463729] [rmf_traffic_schedule_primary]: Set up heartbeat on /rmf_traffic/heartbeat with liveliness lease duration of 10000 ms and deadline of 10000 ms
[rmf_traffic_schedule-1] [INFO] [1692839718.954371636] [rmf_traffic_schedule_primary]: Beginning traffic schedule node
[rmf_traffic_blockade-2] [INFO] [1692839718.938906466] [rmf_traffic_blockade_node]: Beginning traffic blockade node
[schedule_visualizer_node-4] [INFO] [1692839718.945160910] [schedule_visualizer_node]: Setting parameter rate to 10.000000
[schedule_visualizer_node-4] [INFO] [1692839718.945360909] [schedule_visualizer_node]: Setting parameter path_width to 0.200000
[schedule_visualizer_node-4] [INFO] [1692839718.945396067] [schedule_visualizer_node]: Setting parameter initial_map_name to L1
[schedule_visualizer_node-4] [INFO] [1692839718.945425766] [schedule_visualizer_node]: Setting parameter wait_secs to 10
[schedule_visualizer_node-4] [INFO] [1692839718.945491368] [schedule_visualizer_node]: Setting parameter port to 8006
[schedule_visualizer_node-4] [INFO] [1692839718.945516262] [schedule_visualizer_node]: Setting parameter retained_history_count to 50
[fleetstates_visualizer_node-5] [INFO] [1692839718.913070611] [fleet_states_visualizer]: Configuring fleet_states_visualizer...
[fleetstates_visualizer_node-5] [INFO] [1692839718.913233004] [fleet_states_visualizer]: Setting parameter initial_map_name to L1
[fleetstates_visualizer_node-5] [INFO] [1692839718.913295845] [fleet_states_visualizer]: Setting parameter fleet_state_nose_scale to 0.500000
[fleetstates_visualizer_node-5] [INFO] [1692839718.916125893] [fleet_states_visualizer]: Running fleet_states_visualizer...
[navgraph_visualizer_node-7] [INFO] [1692839718.935569080] [navgraph_visualizer]: Setting parameter initial_map_name to L1
[navgraph_visualizer_node-7] [INFO] [1692839718.935722810] [navgraph_visualizer]: Setting parameter lane_width to 0.500000
[navgraph_visualizer_node-7] [INFO] [1692839718.935778576] [navgraph_visualizer]: Setting parameter lane_transparency to 0.600000
[navgraph_visualizer_node-7] [INFO] [1692839718.935828970] [navgraph_visualizer]: Setting parameter waypoint_scale to 1.300000
[navgraph_visualizer_node-7] [INFO] [1692839718.935889955] [navgraph_visualizer]: Setting parameter text_scale to 0.700000
[navgraph_visualizer_node-7] [INFO] [1692839718.941125871] [navgraph_visualizer]: NavGraph visualizer is running...
[obstacle_visualizer_node-9] [INFO] [1692839718.925398870] [rmf_obstacle_visualizer]: Beginning RMF obstacle visualizer node
[rmf_task_dispatcher-13] [INFO] [1692839718.951297034] [rmf_dispatcher_node]:  Declared Time Window Param as: 2.000000 secs
[rmf_task_dispatcher-13] [INFO] [1692839718.951432879] [rmf_dispatcher_node]:  Declared Terminated Tasks Max Size Param as: 100
[rmf_task_dispatcher-13] [INFO] [1692839718.951466607] [rmf_dispatcher_node]:  Declared publish_active_tasks_period as: 2 secs
[rmf_task_dispatcher-13] [INFO] [1692839718.951495936] [rmf_dispatcher_node]:  Use timestamp with task_id: false
[rmf_task_dispatcher-13] [INFO] [1692839718.956848180] [rmf_dispatcher_node]: Starting task dispatcher node
[rmf_traffic_schedule-1] [INFO] [1692839718.976969661] [rmf_traffic_schedule_primary]: Registered new query [1]
[schedule_visualizer_node-4] [INFO] [1692839718.979743822] [schedule_data_node]: Registering to query topic rmf_traffic/query_update_1
[schedule_visualizer_node-4] [INFO] [1692839718.984577862] [schedule_data_node]: [rmf_traffic_ros2::MirrorManager::request_update] Requesting changes for query ID [1] since beginning of recorded history
[rmf_traffic_schedule-1] [INFO] [1692839718.985399224] [rmf_traffic_schedule_primary]: [ScheduleNode::update_mirrors] Sending remedial update starting from the beginning going to 2 for query 1
[schedule_visualizer_node-4] [INFO] [1692839718.998975290] [schedule_visualizer_node]: Successfully connected to rmf_traffic_schedule node.
[floorplan_visualizer_node-8] [INFO] [1692839719.013942432] [floorplan_visualizer]: Configuring floorplan_visualizer...
[floorplan_visualizer_node-8] [INFO] [1692839719.014052836] [floorplan_visualizer]: Setting parameter initial_map_name to L1
[floorplan_visualizer_node-8] [INFO] [1692839719.017028690] [floorplan_visualizer]: Running floorplan_visualizer...
[schedule_visualizer_node-4] [INFO] [1692839719.033237422] [schedule_data_node]: Mirror handling new sync of 1 queries from schedule node [b682e0cc-d5a1-406b-9e71-564734c420b8]
[rmf_visualization_building_systems-6] [INFO] [1692839719.400804707] [building_systems_visualizer]: Building systems visualizer started...

there seems to also an issue of the initial_map_name to L1 however it may be correlated or not.
Please do correct me if i am wrong, since the rmf-task is recognizing the map i thought this may not the main issue as to the inner workings of Open-RMF.

i cannot get the RMF-web to connect to the open-RMF using ros2 launch …launch.xml server_uri:=“http://localhost:8000/_internal

I assume that rmf-web and testmap_fleet_adapter is running on the same machine? A sanity check here, once you have launched rmf-web, check if you can access the API server by going to http://localhost:8000/docs, if it is present but the fleet adapters are still having trouble connecting to it, we’ll need to verify the versions of the packages that you’re currently using.

now that you mentioned it, indeed, i should have thought it that way. initially, i thought the server_uri:="http://localhost:8000/_internal" sets the server.
currently running pnpm start display the dashboard at http://localhost:3000 the display did appear and the /docs too.
furthermore, the server set up it seems the simple api running on a different port. i wonder if this is the correct setup:

[simple_api_server-14] Set Server IP to: 0.0.0.0
[simple_api_server-14] Set Server port to: 0.0.0.0:8083
[simple_api_server-14] Set RMF Websocket port to: localhost:7878
[simple_api_server-14] Starting Websocket Server
[simple_api_server-14] Starting RMF_Demos API Server: 0.0.0.0:8083, with ws://localhost:7878
[simple_api_server-14]  * Serving Flask app "rmf_demos_panel.simple_api_server" (lazy loading)
[simple_api_server-14]  * Environment: production
[simple_api_server-14]    WARNING: This is a development server. Do not use it in a production deployment.
[simple_api_server-14]    Use a production WSGI server instead.
[simple_api_server-14]  * Debug mode: off

is there a configuration i should have done to set up and connect the RMF-WEB to the Open-RMF
Additionally, i also have tried setup the the server_uri into server_uri:=“http://localhost:3000/_internal” however the same error message do appear.

*also how do i check which open-rmf version i am currently working on?

i suspect the same issue would appear even if i migrate it to ros-humble, let me know if further clarification is required.

Thank you


Edited by @hansdmc at 2023-08-24T01:56:02Z

Posted by @aaronchongth:

the command persist when the fleet manager launches. i have tried to clear the src rm -rf build/ install/ logs/ or changing the domain id or restarting the computer. when the system restarted the robot would directly move involuntarily without additional command.

this is a rather peculiar issue that we have not encountered before. Is it possible for you to share your map file and launch files? There may be a low chance that a ROS 2 process has not died properly, but that should be mitigated by a full restart. Can I check that no other machines in your network are running the same processes and are on the same ROS 2 domain id?

Sorry, let me clarify, how do i mesh the map i used in traffic editor with the nav-graph route such like the rmf- visualisation example taken from: GitHub - open-rmf/rmf_visualization: Visualization tools for OpenRMF
currently rviz only display a blank screen with negotiation table. pretty much similar as to running ros2 launch rmf_visualization visualization.launch.xml as a standalone.

The building map will need to be served by the building map server like this, rmf_demos/rmf_demos/launch/common.launch.xml at main · open-rmf/rmf_demos · GitHub, in a demo.

Don’t forget to change the map/level name in rviz’s schedule panel.

is there a configuration i should have done to set up and connect the RMF-WEB to the Open-RMF

The API server handles the port 8000, while the dashboard is by default hosted on 3000, setting the server_uri to http://localhost:3000/_internal is incorrect.

Does the map show up on the dashboard like GitHub - open-rmf/rmf-web?

also how do i check which open-rmf version i am currently working on?

on which branch of GitHub - open-rmf/rmf: Root repository for the RMF software did you get your rmf.repos file? If that is main, I’m afraid there is limited number of things we can advise on, as we are fully developing and working in ROS 2 Humble and Iron.

i suspect the same issue would appear even if i migrate it to ros-humble

This may be true, if there are some misconfigurations to set up Open-RMF on your end, however since active development is currently on Humble and Iron (ROS 2 Humble and Iron has a lot of improvements over Foxy too!), we can better help understand what the potential issues are if we are on a similar setup.

You mentioned that the issue was present in GitHub - open-rmf/roscon_workshop: Materials for Open-RMF workshop at ROSCon 2022 Kyoto as well? Do you mean the default world in the workshop, or the modifications that you’ve made were not working?

Moving forward, I would suggest trying the demos, without any modifications, on a separate machine running Ubuntu 22.04 and ROS 2 Humble, to get an idea of how all the nodes should interact with each other, and how the outcome should look like, before replacing the map, as well as the fleet adapter to see which components may have issues.


This is the chosen answer.

Posted by @aaronchongth:

Sorry I missed this comment, the simple API server is launched to work with the demos panel, RMF Panel. If you run server_uri:="...." this simple API server will not be used, so you can safely ignore that part of the logs

Posted by @hansdmc:

Apologise for the delay, and thank you for the explanation @aaronchongth

as suggested i tried to check the issue and do trial on the ROS-Humble
using the rmf.repos for humble: rmf/rmf.repos at humble · open-rmf/rmf · GitHub

first from the ROS-FOXY issue:

this is a rather peculiar issue that we have not encountered before. Is it possible for you to share your map file and launch files? There may be a low chance that a ROS 2 process has not died properly, but that should be mitigated by a full restart. Can I check that no other machines in your network are running the same processes and are on the same ROS 2 domain id?

Indeed as you suspected, there are multiple computer connected that i used for trial. it may be cause by arbitrary reasons, however through my findings there are several steps that i found works and did not works.

solution that works:

  1. shut down and restart all computer that is connected.

solution that did not works:

  1. changing domain ID
  2. restarting only 1 computer.

is there a method to ensure that without restarting or changing anything major, the task could be deleted as it is running ?
As to stop/kill the task without affecting other robots?

here is my building.yaml and launch file

coordinate_system: reference_image
crowd_sim:
  agent_groups:
    - {agents_name: [robot3, robot1, robot2], agents_number: 3, group_id: 0, profile_selector: external_agent, state_selector: external_static, x: 0, y: 0}
  agent_profiles:
    - {ORCA_tau: 1, ORCA_tauObst: 0.40000000000000002, class: 1, max_accel: 0, max_angle_vel: 0, max_neighbors: 10, max_speed: 0, name: external_agent, neighbor_dist: 5, obstacle_set: 1, pref_speed: 0, r: 0.25}
  enable: 0
  goal_sets: []
  model_types: []
  obstacle_set: {class: 1, file_name: test_map_navmesh.nav, type: nav_mesh}
  states:
    - {final: 1, goal_set: -1, name: external_static, navmesh_file_name: ""}
  transitions: []
  update_time_step: 0.10000000000000001
graphs:
  {}
levels:
  testmap:
    drawing:
      filename: test_map.png
    elevation: 0
    floors:
      - parameters: {ceiling_scale: [3, 1], ceiling_texture: [1, blue_linoleum], indoor: [2, 0], texture_name: [1, blue_linoleum], texture_rotation: [3, 0], texture_scale: [3, 1]}
        vertices: [2, 7, 1, 0]
    lanes:
      - [8, 6, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
      - [6, 5, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
      - [5, 3, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
      - [3, 9, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
      - [9, 10, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
      - [10, 11, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
      - [11, 6, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
      - [12, 5, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
      - [4, 3, {bidirectional: [4, true], demo_mock_floor_name: [1, ""], demo_mock_lift_name: [1, ""], graph_idx: [2, 1], orientation: [1, ""], speed_limit: [3, 0]}]
    layers:
      {}
    measurements:
      - [0, 1, {distance: [3, 5]}]
      - [0, 2, {distance: [3, 4]}]
      - [3, 4, {distance: [3, 1]}]
      - [5, 6, {distance: [3, 1]}]
    vertices:
      - [99.453999999999994, 450.52199999999999, 0, ""]
      - [599.48900000000003, 450.54000000000002, 0, ""]
      - [99.462999999999994, 51.518999999999998, 0, ""]
      - [399.54599999999999, 151.34899999999999, 0, ""]
      - [499.512, 151.34399999999999, 0, dock_c, {is_charger: [4, true], is_holding_point: [4, true], is_parking_spot: [4, true], spawn_robot_name: [1, robot3], spawn_robot_type: [1, testmap_robot]}]
      - [399.608, 251.245, 0, ""]
      - [399.69600000000003, 350.82400000000001, 0, ""]
      - [599.51400000000001, 51.521999999999998, 0, ""]
      - [499.80900000000003, 351.64699999999999, 0, dock_a, {is_charger: [4, true], is_holding_point: [4, true], is_parking_spot: [4, true], spawn_robot_name: [1, robot1], spawn_robot_type: [1, testmap_robot]}]
      - [199.38800000000001, 150.892, 0, disp_A, {is_holding_point: [4, true], pickup_dispenser: [1, A_dispenser]}]
      - [199.37700000000001, 351.64699999999999, 0, ""]
      - [299.60399999999998, 351.11700000000002, 0, drop_1, {dropoff_ingestor: [1, drop_ingestor], is_holding_point: [4, true]}]
      - [499.68900000000002, 251.65700000000001, 0, dock_b, {is_charger: [4, true], is_holding_point: [4, true], is_parking_spot: [4, true], spawn_robot_name: [1, robot2], spawn_robot_type: [1, testmap_robot]}]
    walls:
      - [2, 7, {alpha: [3, 1], texture_height: [3, 2.5], texture_name: [1, default], texture_scale: [3, 1], texture_width: [3, 1]}]
      - [7, 1, {alpha: [3, 1], texture_height: [3, 2.5], texture_name: [1, default], texture_scale: [3, 1], texture_width: [3, 1]}]
      - [1, 0, {alpha: [3, 1], texture_height: [3, 2.5], texture_name: [1, default], texture_scale: [3, 1], texture_width: [3, 1]}]
      - [0, 2, {alpha: [3, 1], texture_height: [3, 2.5], texture_name: [1, default], texture_scale: [3, 1], texture_width: [3, 1]}]
lifts: {}
name: test_map

<launch>
    <arg name="use_sim_time" default="true"/>
    <include file="$(find-pkg-share rmf_demos)/common.launch.xml">
        <arg name="use_sim_time" value="$(var use_sim_time)"/>
        <arg name="viz_config_file" value ="$(find-pkg-share rmf_demos)/include/testmap/testmap.rviz"/>
        <arg name="config_file" value="$(find-pkg-share rmf_demos_maps)/testmap/testmap.building.yaml"/>
        <arg name="dashboard_config_file" value="$(find-pkg-share rmf_demos_dashboard_resources)/testmap/dashboard_config.json"/>
    </include>
    <group>
        <include file="$(find-pkg-share rmf_demos_fleet_adapter)/launch/fleet_adapter.launch.xml">
        <arg name="use_sim_time" value="$(var use_sim_time)"/>
        <arg name="nav_graph_file" value="$(find-pkg-share rmf_demos_maps)/maps/testmap/nav_graphs/1.yaml" />
        <arg name="config_file" value="$(find-pkg-share rmf_demos)/config/testmap/config.yaml"/>
        </include>
    </group>
</launch>

the Dashboard Configuration:

{
  "world_name" : "testmap",  
  "valid_task": ["Delivery", "Loop"],
  "task": {
    "Delivery": {
      "option": {
        "coke": {
          "pickup_place_name": "disp_A",
          "pickup_dispenser": "A_dispenser",
          "dropoff_place_name": "drop_1",
          "dropoff_ingestor": "drop_ingestor"
        }
      }
    },
    "Loop": {
      "places": [
        "dock_a",
        "dock_b",
        "dock_c",
        "disp_A",
        "drop_1"
      ]
    },
    "Clean": {
    },
    "Station": {
    },
    "Patrol": {
    },
    "Charging": {
    }
  }
}

the test map uses TinyRobot configuration as a test Robot:

with name and waypoints changes:

name: "testmap_robot"

robots:
  # Here the user is expected to append the configuration for each robot in the
  # fleet.
  # Configuration for tinyRobot1
  robot1:
    robot_config:
      max_delay: 15.0 # allowed seconds of delay of the current itinerary before it gets interrupted and replanned
      filter_waypoints: False
    rmf_config:
      robot_state_update_frequency: 10.0
      start:
        map_name: "test_map"
        waypoint: "dock_a"
        orientation: 0.0 # radians
      charger:
        waypoint: "dock_a"

Don’t forget to change the map/level name in rviz’s schedule panel.

I have manage to display the RVIZ2 by changing the map /level name in the schedule panel, thank you.
although the robot is not displayed. i wonder what causes this issue?

Does the map show up on the dashboard like GitHub - open-rmf/rmf-web?

it did not.

on which branch of GitHub - open-rmf/rmf: Root repository for the RMF software did you get your rmf.repos file? If that is main, I’m afraid there is limited number of things we can advise on, as we are fully developing and working in ROS 2 Humble and Iron.

indeed i use the rmf.repos main branch
with some modification

from the rmf.repos main i modifed:
       rmf-simulation => foxy
       thirdparty/pybind11_json_vendor => prep-0.1.0

to work in ros-foxy

Second the ROSCON-WORKSHOP issue:

You mentioned that the issue was present in GitHub - open-rmf/roscon_workshop: Materials for Open-RMF workshop at ROSCon 2022 Kyoto as well? Do you mean the default world in the workshop, or the modifications that you’ve made were not working?

the issue is that the schedule panel is not displaying the traffic schedule.
from the vbox: https://drive.google.com/file/d/1_a6q_9ggtrBtlA7Fghw5iYWkVrWlapDV/view?pli=1
i execute ros2 launch demos: ros2 launch rmf_demos_gz_classic office.launch.xml
and

cd ~/rmf-web/packages/dashboard
pnpm start
  1. the GAZEBO and RVIZ2 is displaying as intended.
  2. rmf-web also displays the map and the door panel as its supposed to be.

the issue is that the RVIZ2 schedule panel did no respose once i execute the task:

such like this:

However, as the picture above,the negotiation ID and the task did not appear in the rmf-web and the RVIZ2.
is it supposed to display the negotiation id for the traffic system of Open-RMF or is there a visualisation method to see the changes in open-rmf traffic.

Third the ROS-HUMBLE issue:

i set up ROS-HUMBLE as follows:

Operating system and version:
    Ubuntu 22.04
OpenRMF installation type:
    From source => vcs import < RMF.repos 
    https://github.com/open-rmf/rmf/blob/humble/rmf.repos

    RMF-web taken from:https://github.com/open-rmf/rmf-web.git


ROS distribution and version:
    ROS-HUMBLE 
ROS installation type:
    From source: https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

although the are a lot of std error when building the Open-RMF is much smoothly installed and running when compared to ROS-FOXY

However i encounter new issue with RMF-WEB that prevents me from installing.
following the steps written here: GitHub - open-rmf/rmf-web

when pnpm install
error message appears:

Scope: all 10 workspace projects
Lockfile is up to date, resolution step is skipped
Packages: +2404
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ERR_PNPM_CANNOT_RESOLVE_WORKSPACE_PROTOCOL  Cannot resolve workspace protocol of dependency "pipenv-install" because this dependency is not installed. Try running "pnpm install".
Progress: resolved 2404, reused 15, downloaded 0, added 0

the python 3.10 has no issue when creating a custom pipenv through manual input.
regardless the version this error message appears when pnpm install executed.

Therefore i have not been able to fully check through the ROS-HUMBLE
i have not gone into details yet with ROS-HUMBLE however Open-RMF seems to run smoothly on ROS-HUMBLE.

Thank you, do let me know if there are issues with my setup and further clarifications.

Posted by @aaronchongth:

is there a method to ensure that without restarting or changing anything major, the task could be deleted as it is running ?
As to stop/kill the task without affecting other robots?

As long as all the machines have different ROS_DOMAIN_ID in their environment, when launching anything ROS 2 related, there should not be any issues moving forwards.

the issue is that the RVIZ2 schedule panel did no respose once i execute the task:

Hmm unfortunately I am not sure what you mean by this. Do you mean nothing happened? But from the rviz2 screenshot you provided, it looks like the trajectories are present and it is responding accordingly.

However, as the picture above,the negotiation ID and the task did not appear in the rmf-web and the RVIZ2.
is it supposed to display the negotiation id for the traffic system of Open-RMF or is there a visualisation method to see the changes in open-rmf traffic.

The negotiation panel is mainly used for debugging purposes and might not be actively maintained at the moment. There is also a chance that there are negotiations happening at the moment, hence no IDs are shown. Negotiations are present only when the trajectories seen in rviz2 is red in color, in your screenshot they are green, hence no negotiation is happening.

As for rmf-web, try refreshing the task queue table, there is a button.

Only recently we’ve merged auto refreshing the task table, Feature/task table auto update by aaronchongth · Pull Request #763 · open-rmf/rmf-web · GitHub.

However i encounter new issue with RMF-WEB that prevents me from installing.
following the steps written here: GitHub - open-rmf/rmf-web

This should not happen if you have followed each of the installation steps. Our nightly CI uses fresh docker images hence should be a good baseline, Nightly · Workflow runs · open-rmf/rmf-web · GitHub, I would recommend double checking the installation steps, or even recreate it in a fresh docker image to see what went wrong.

For reference, here are the steps we use to run pnpm install, rmf-web/.github/actions/bootstrap/action.yml at main · open-rmf/rmf-web · GitHub.

Posted by @hansdmc:

@aaronchongth thanks i have managed to run it and display it properly in both Rviz and rmf-web

The negotiation panel is mainly used for debugging purposes and might not be actively maintained at the moment. There is also a chance that there are negotiations happening at the moment, hence no IDs are shown. Negotiations are present only when the trajectories seen in rviz2 is red in color, in your screenshot they are green, hence no negotiation is happening.

i have confirmed that this instance is working properly

This should not happen if you have followed each of the installation steps. Our nightly CI uses fresh docker images hence should be a good baseline, Nightly · Workflow runs · open-rmf/rmf-web · GitHub, I would recommend double checking the installation steps, or even recreate it in a fresh docker image to see what went wrong.

i am not quite sure what went wrong but i achieve success by changing the directory into the rmf-web

cd ~/rmf-web
curl -fsSL https://get.pnpm.io/install.sh | bash -
pnpm env use --global 16

I may have other issues but regarding visualizing task in Open-RMF can be considered as answered, thank you


Edited by @hansdmc at 2023-10-13T02:46:13Z