boschresearch / mrp_bench

Benchmark for Multi Robot Planning
Apache License 2.0
17 stars 7 forks source link

Repeatedly getting "Waiting for flag to exist at /tmp/spawn_ready_flag.txt" in terminal on launching top_level_launch.py. #5

Open arushikhokhar opened 1 year ago

arushikhokhar commented 1 year ago

Waiting for flag to exist at /tmp/spawn_ready_flag.txt Waiting for flag to exist at /tmp/spawn_ready_flag.txt Waiting for flag to exist at /tmp/spawn_ready_flag.txt Waiting for flag to exist at /tmp/spawn_ready_flag.txt Waiting for flag to exist at /tmp/spawn_ready_flag.txt Waiting for flag to exist at /tmp/spawn_ready_flag.txt Waiting for flag to exist at /tmp/spawn_ready_flag.txt Waiting for flag to exist at /tmp/spawn_ready_flag.txt Waiting for flag to exist at /tmp/spawn_ready_flag.txt [schedule_visualizer_node-5] [INFO] [1678898853.997213545] [schedule_data_node]: Requesting new schedule update because update timed out [schedule_visualizer_node-5] [INFO] [1678898853.997492808] [schedule_data_node]: [rmf_traffic_ros2::MirrorManager::request_update] Requesting changes for query ID [1] since beginning of recorded history [rmf_traffic_schedule-2] [INFO] [1678898854.002426581] [rmf_traffic_schedule_primary]: [ScheduleNode::update_mirrors] Sending remedial update starting from the beginning going to 0 for query 1

rqt_graph

rosgraph_mrp_bench

map_markers

Also, on running ros2 topic echo /map_markers there is no output in the terminal.

smnschfr commented 1 year ago

Hi, could you share the config.yaml that you've used here?

arushikhokhar commented 1 year ago

https://drive.google.com/file/d/1Y3AX-q39GYaBUv2qdYl87zjx3hTw1Ml8/view?usp=sharing

Here's the link to the config.yaml file.

Also, bench_node.py is stuck here:

def main(args=None):
    rclpy.init(args=args)

    bm = BenchManager()
    while rclpy.ok() and not bm.inputReady():
        try:
            rclpy.spin_once(bm)                     
        except KeyboardInterrupt:
            break

It seems as if rclpy.spin_once(bm) goes on for infinite time. Hence the control doesn't shift to the next piece of code.

if bm.generateGoalsAndCallLibrary():
    print('grid stats: ', bm.cellGrid.getGridStatics())
    bm.generatePathRequests()
    bm.signalReadiness()

The signalReadiness function is not being called because the code is stuck in the while loop mentioned above. That's why the flag isn't written.

smnschfr commented 1 year ago

Thanks for the info, config.yaml looks fine so far.

After fixing issues with my local docker setup, I can confirm that the docker build now works for me. I've successfully run the simple experiment that is started by the default config that is provided with the image.

Please note that there are currently two mrp_bench folders in the container (/mrp_bench/mrp_bench) and the experiments folder in the document root (/experiments) is used if you follow the README word by word. This is something we'll probably update to avoid confusion.

If you look at the recent changes to the Dockerfile, you can see what was done and could copy these changes to the manual setup

Or, what I'd recommend at this point, go back to using docker. For fixing the manual installation, this is something that makes more sense with a port to Humble at the same time, instead of working on an EOL distro. Docker provides a good way to replicate the environment used in the experiments that are described in the paper.

a2a4 commented 1 year ago

Hello Simon! Thank you for replying.

We were able to bringup the docker version. Thank you so much. We will try manual installation on humble using the changes in docker accordingly.