rodrigoqueiroz / geoscenarioserver

9 stars 1 forks source link

Setup circular references from regelems #93

Closed mantkiew closed 2 years ago

mantkiew commented 2 years ago

Don't store the circular references in the osm file because they break JOSM. Set these references up when loading the map: iterate over the regulatoryElementLayer and add the reg elems to the affected lanelets. It's derived information, no point storing it in the file.

After we merge this, we can remove information about the circular references from https://geoscenario2.readthedocs.io/en/latest/mapping/.

mantkiew commented 2 years ago

There's one issue with this: despite having the reference set up properly, my vehicles still don't stop on the stop lines. I'm using drive.btree. That is probably because I don't have the stop signs.

mantkiew commented 2 years ago

Example output from my Waterloo_Region map:

I1228 12:10:18.694085 24766 LaneletMap.py:48] Setting circular references for AllWayStop 9444
I1228 12:10:18.694273 24766 LaneletMap.py:53] Added to lanelet 8699
I1228 12:10:18.694325 24766 LaneletMap.py:53] Added to lanelet 8927
I1228 12:10:18.694366 24766 LaneletMap.py:53] Added to lanelet 8972
I1228 12:10:18.694405 24766 LaneletMap.py:53] Added to lanelet 8727
I1228 12:10:18.694449 24766 LaneletMap.py:41] Setting circular references for RightOfWay 9432
I1228 12:10:18.694510 24766 LaneletMap.py:46] Added to lanelet 9141
I1228 12:10:18.694553 24766 LaneletMap.py:41] Setting circular references for RightOfWay 5998
I1228 12:10:18.694608 24766 LaneletMap.py:46] Added to lanelet 5994
I1228 12:10:18.694646 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7922
I1228 12:10:18.694699 24766 LaneletMap.py:46] Added to lanelet 7040
I1228 12:10:18.694740 24766 LaneletMap.py:41] Setting circular references for RightOfWay 6664
I1228 12:10:18.694793 24766 LaneletMap.py:46] Added to lanelet 6502
I1228 12:10:18.694831 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7890
I1228 12:10:18.694884 24766 LaneletMap.py:46] Added to lanelet 7330
I1228 12:10:18.694922 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7894
I1228 12:10:18.694974 24766 LaneletMap.py:46] Added to lanelet 7352
I1228 12:10:18.695015 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7898
I1228 12:10:18.695068 24766 LaneletMap.py:46] Added to lanelet 7491
I1228 12:10:18.695106 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7902
I1228 12:10:18.695159 24766 LaneletMap.py:46] Added to lanelet 6581
I1228 12:10:18.695199 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7906
I1228 12:10:18.695264 24766 LaneletMap.py:46] Added to lanelet 6602
I1228 12:10:18.695304 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7910
I1228 12:10:18.695360 24766 LaneletMap.py:46] Added to lanelet 7628
I1228 12:10:18.695399 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7914
I1228 12:10:18.695453 24766 LaneletMap.py:46] Added to lanelet 7654
I1228 12:10:18.695492 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7918
I1228 12:10:18.695545 24766 LaneletMap.py:46] Added to lanelet 7679
I1228 12:10:18.695583 24766 LaneletMap.py:41] Setting circular references for RightOfWay 7926
I1228 12:10:18.695636 24766 LaneletMap.py:46] Added to lanelet 7058
mantkiew commented 2 years ago

I tested after updating this with master but still the vehicles just zoom past the stop lines. For example,

./GSServer.py -s scenarios/coretest_scenarios/2waystop.gs.osm

Same for scenarios/test_scenarios/gs_intersection_redlight_follow.osm - the vehicles drive through the red light.

@rodrigoqueiroz what would be a good scenario to test this?

mantkiew commented 2 years ago

Ok! This now works!

cd avin-lanelet2/scenario_suite
bash scripts/launch.bash right-of-way