diff --git a/GEMstack/knowledge/defaults/rrt_param.yaml b/GEMstack/knowledge/defaults/rrt_param.yaml index 3e7019384..16fc10a08 100644 --- a/GEMstack/knowledge/defaults/rrt_param.yaml +++ b/GEMstack/knowledge/defaults/rrt_param.yaml @@ -11,7 +11,7 @@ map: # vehicle info vehicle: heading_limit: 0.5235987756 # vehicle heading difference limit per rrt step_size (pi/6 in radians) - half_width: 0.8 # vehicle half width in meter + half_width: 0.6 # vehicle half width in meter # algorithm parameters rrt: time_limit: 10 # in sec diff --git a/GEMstack/knowledge/routes/summoning_roadgraph_highbay.json b/GEMstack/knowledge/routes/summoning_roadgraph_highbay.json index d64969937..c15319e45 100644 --- a/GEMstack/knowledge/routes/summoning_roadgraph_highbay.json +++ b/GEMstack/knowledge/routes/summoning_roadgraph_highbay.json @@ -1 +1 @@ -{"type": "Roadgraph", "data": {"frame": 2, "curves": {}, "lanes": {"eastward": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235842, 40.09275637879597, 0.0], [-88.23583851515151, 40.09275644167476, 0.0], [-88.23583503030304, 40.09275650455354, 0.0], [-88.23583154545454, 40.09275656743233, 0.0], [-88.23582806060607, 40.09275663031112, 0.0], [-88.23582457575758, 40.092756693189905, 0.0], [-88.2358210909091, 40.092756756068695, 0.0], [-88.2358176060606, 40.092756818947485, 0.0], [-88.23581412121213, 40.09275688182627, 0.0], [-88.23581063636364, 40.09275694470506, 0.0], [-88.23580715151516, 40.09275700758385, 0.0], [-88.23580366666667, 40.09275707046263, 0.0], [-88.23580018181819, 40.09275713334142, 0.0], [-88.2357966969697, 40.09275719622021, 0.0], [-88.23579321212121, 40.092757259098995, 0.0], [-88.23578972727273, 40.092757321977786, 0.0], [-88.23578624242424, 40.092757384856576, 0.0], [-88.23578275757576, 40.09275744773536, 0.0], [-88.23577927272727, 40.09275751061415, 0.0], [-88.2357757878788, 40.09275757349294, 0.0], [-88.2357723030303, 40.09275763637172, 0.0], [-88.23576881818182, 40.09275769925051, 0.0], [-88.23576533333333, 40.0927577621293, 0.0], [-88.23576184848486, 40.09275782500809, 0.0], [-88.23575836363636, 40.092757887886876, 0.0], [-88.23575487878789, 40.092757950765666, 0.0], [-88.2357513939394, 40.092758013644456, 0.0], [-88.2357479090909, 40.09275807652324, 0.0], [-88.23574442424243, 40.09275813940203, 0.0], [-88.23574093939393, 40.09275820228082, 0.0], [-88.23573745454546, 40.0927582651596, 0.0], [-88.23573396969697, 40.09275832803839, 0.0], [-88.23573048484849, 40.09275839091718, 0.0], [-88.235727, 40.092758453795966, 0.0], [-88.23572351515152, 40.092758516674756, 0.0], [-88.23572003030303, 40.092758579553546, 0.0], [-88.23571654545455, 40.09275864243233, 0.0], [-88.23571306060606, 40.09275870531112, 0.0], [-88.23570957575758, 40.09275876818991, 0.0], [-88.23570609090909, 40.09275883106869, 0.0], [-88.2357026060606, 40.09275889394748, 0.0], [-88.23569912121212, 40.09275895682627, 0.0], [-88.23569563636363, 40.092759019705056, 0.0], [-88.23569215151515, 40.09275908258385, 0.0], [-88.23568866666666, 40.09275914546264, 0.0], [-88.23568518181818, 40.09275920834142, 0.0], [-88.23568169696969, 40.09275927122021, 0.0], [-88.23567821212121, 40.092759334099, 0.0], [-88.23567472727272, 40.09275939697778, 0.0], [-88.23567124242425, 40.09275945985657, 0.0], [-88.23566775757575, 40.09275952273536, 0.0], [-88.23566427272728, 40.09275958561415, 0.0], [-88.23566078787879, 40.09275964849294, 0.0], [-88.2356573030303, 40.09275971137173, 0.0], [-88.23565381818182, 40.09275977425051, 0.0], [-88.23565033333333, 40.0927598371293, 0.0], [-88.23564684848485, 40.09275990000809, 0.0], [-88.23564336363636, 40.09275996288687, 0.0], [-88.23563987878788, 40.092760025765664, 0.0], [-88.23563639393939, 40.092760088644454, 0.0], [-88.23563290909091, 40.09276015152324, 0.0], [-88.23562942424242, 40.09276021440203, 0.0], [-88.23562593939394, 40.09276027728082, 0.0], [-88.23562245454545, 40.0927603401596, 0.0], [-88.23561896969697, 40.09276040303839, 0.0], [-88.23561548484848, 40.09276046591718, 0.0], [-88.235612, 40.092760528795964, 0.0], [-88.23560851515151, 40.092760591674754, 0.0], [-88.23560503030302, 40.092760654553544, 0.0], [-88.23560154545454, 40.092760717432334, 0.0], [-88.23559806060605, 40.09276078031112, 0.0], [-88.23559457575757, 40.09276084318991, 0.0], [-88.23559109090908, 40.0927609060687, 0.0], [-88.2355876060606, 40.09276096894748, 0.0], [-88.23558412121211, 40.09276103182627, 0.0], [-88.23558063636364, 40.09276109470506, 0.0], [-88.23557715151514, 40.092761157583844, 0.0], [-88.23557366666667, 40.092761220462634, 0.0], [-88.23557018181818, 40.092761283341424, 0.0], [-88.2355666969697, 40.09276134622021, 0.0], [-88.2355632121212, 40.092761409099, 0.0], [-88.23555972727272, 40.09276147197779, 0.0], [-88.23555624242424, 40.09276153485657, 0.0], [-88.23555275757575, 40.09276159773536, 0.0], [-88.23554927272727, 40.09276166061415, 0.0], [-88.23554578787878, 40.092761723492934, 0.0], [-88.2355423030303, 40.092761786371724, 0.0], [-88.23553881818181, 40.092761849250515, 0.0], [-88.23553533333333, 40.0927619121293, 0.0], [-88.23553184848484, 40.09276197500809, 0.0], [-88.23552836363636, 40.09276203788688, 0.0], [-88.23552487878787, 40.09276210076566, 0.0], [-88.2355213939394, 40.09276216364445, 0.0], [-88.2355179090909, 40.09276222652324, 0.0], [-88.23551442424241, 40.092762289402025, 0.0], [-88.23551093939393, 40.092762352280815, 0.0], [-88.23550745454544, 40.092762415159605, 0.0], [-88.23550396969696, 40.09276247803839, 0.0], [-88.23550048484847, 40.09276254091718, 0.0], [-88.235497, 40.09276260379597, 0.0], [-88.2354935151515, 40.09276266667475, 0.0], [-88.23549003030303, 40.09276272955354, 0.0], [-88.23548654545453, 40.09276279243233, 0.0], [-88.23548306060606, 40.092762855311115, 0.0], [-88.23547957575757, 40.092762918189905, 0.0], [-88.23547609090909, 40.092762981068695, 0.0], [-88.2354726060606, 40.09276304394748, 0.0], [-88.2354691212121, 40.09276310682627, 0.0], [-88.23546563636363, 40.09276316970506, 0.0], [-88.23546215151514, 40.09276323258384, 0.0], [-88.23545866666666, 40.09276329546263, 0.0], [-88.23545518181817, 40.09276335834142, 0.0], [-88.23545169696969, 40.09276342122021, 0.0], [-88.2354482121212, 40.092763484098995, 0.0], [-88.23544472727272, 40.092763546977785, 0.0], [-88.23544124242423, 40.092763609856576, 0.0], [-88.23543775757575, 40.09276367273536, 0.0], [-88.23543427272726, 40.09276373561415, 0.0], [-88.23543078787878, 40.09276379849294, 0.0], [-88.23542730303029, 40.09276386137172, 0.0], [-88.2354238181818, 40.09276392425051, 0.0], [-88.23542033333332, 40.0927639871293, 0.0], [-88.23541684848483, 40.092764050008086, 0.0], [-88.23541336363635, 40.092764112886876, 0.0], [-88.23540987878786, 40.092764175765666, 0.0], [-88.23540639393939, 40.09276423864445, 0.0], [-88.2354029090909, 40.09276430152324, 0.0], [-88.23539942424242, 40.09276436440203, 0.0], [-88.23539593939392, 40.09276442728081, 0.0], [-88.23539245454545, 40.0927644901596, 0.0], [-88.23538896969696, 40.09276455303839, 0.0], [-88.23538548484848, 40.092764615917176, 0.0], [-88.23538199999999, 40.092764678795966, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235968, 40.092730121204035, 0.0], [-88.23596452427185, 40.09273016732054, 0.0], [-88.23596104854369, 40.092730213437044, 0.0], [-88.23595757281554, 40.09273025955355, 0.0], [-88.23595409708737, 40.09273030567005, 0.0], [-88.23595062135922, 40.09273035178656, 0.0], [-88.23594714563107, 40.09273039790306, 0.0], [-88.23594366990291, 40.092730444019566, 0.0], [-88.23594019417476, 40.09273049013608, 0.0], [-88.2359367184466, 40.09273053625258, 0.0], [-88.23593324271845, 40.092730582369086, 0.0], [-88.2359297669903, 40.09273062848559, 0.0], [-88.23592629126213, 40.092730674602095, 0.0], [-88.23592281553398, 40.0927307207186, 0.0], [-88.23591933980582, 40.0927307668351, 0.0], [-88.23591586407767, 40.09273081295161, 0.0], [-88.23591238834952, 40.09273085906811, 0.0], [-88.23590891262135, 40.09273090518462, 0.0], [-88.2359054368932, 40.09273095130112, 0.0], [-88.23590196116506, 40.092730997417625, 0.0], [-88.23589848543689, 40.09273104353413, 0.0], [-88.23589500970874, 40.092731089650634, 0.0], [-88.23589153398058, 40.09273113576714, 0.0], [-88.23588805825243, 40.09273118188364, 0.0], [-88.23588458252428, 40.092731228000154, 0.0], [-88.23588110679611, 40.09273127411666, 0.0], [-88.23587763106796, 40.09273132023316, 0.0], [-88.2358741553398, 40.09273136634967, 0.0], [-88.23587067961165, 40.09273141246617, 0.0], [-88.2358672038835, 40.092731458582676, 0.0], [-88.23586372815534, 40.09273150469918, 0.0], [-88.23586025242719, 40.092731550815685, 0.0], [-88.23585677669902, 40.09273159693219, 0.0], [-88.23585330097087, 40.092731643048694, 0.0], [-88.23584982524272, 40.0927316891652, 0.0], [-88.23584634951456, 40.0927317352817, 0.0], [-88.23584287378641, 40.09273178139821, 0.0], [-88.23583939805825, 40.09273182751471, 0.0], [-88.2358359223301, 40.092731873631216, 0.0], [-88.23583244660195, 40.09273191974772, 0.0], [-88.23582897087378, 40.09273196586423, 0.0], [-88.23582549514563, 40.092732011980736, 0.0], [-88.23582201941747, 40.09273205809724, 0.0], [-88.23581854368932, 40.092732104213745, 0.0], [-88.23581506796117, 40.09273215033025, 0.0], [-88.235811592233, 40.092732196446754, 0.0], [-88.23580811650486, 40.09273224256326, 0.0], [-88.2358046407767, 40.09273228867976, 0.0], [-88.23580116504854, 40.09273233479627, 0.0], [-88.23579768932039, 40.09273238091277, 0.0], [-88.23579421359223, 40.092732427029276, 0.0], [-88.23579073786408, 40.09273247314578, 0.0], [-88.23578726213593, 40.092732519262285, 0.0], [-88.23578378640777, 40.09273256537879, 0.0], [-88.23578031067962, 40.09273261149529, 0.0], [-88.23577683495145, 40.0927326576118, 0.0], [-88.2357733592233, 40.09273270372831, 0.0], [-88.23576988349515, 40.092732749844814, 0.0], [-88.23576640776699, 40.09273279596132, 0.0], [-88.23576293203884, 40.09273284207782, 0.0], [-88.23575945631067, 40.09273288819433, 0.0], [-88.23575598058252, 40.09273293431083, 0.0], [-88.23575250485437, 40.092732980427336, 0.0], [-88.23574902912621, 40.09273302654384, 0.0], [-88.23574555339806, 40.092733072660344, 0.0], [-88.2357420776699, 40.09273311877685, 0.0], [-88.23573860194175, 40.09273316489335, 0.0], [-88.2357351262136, 40.09273321100986, 0.0], [-88.23573165048543, 40.09273325712636, 0.0], [-88.23572817475728, 40.092733303242866, 0.0], [-88.23572469902912, 40.09273334935937, 0.0], [-88.23572122330097, 40.092733395475875, 0.0], [-88.23571774757282, 40.09273344159239, 0.0], [-88.23571427184466, 40.09273348770889, 0.0], [-88.2357107961165, 40.092733533825395, 0.0], [-88.23570732038836, 40.0927335799419, 0.0], [-88.2357038446602, 40.092733626058404, 0.0], [-88.23570036893204, 40.09273367217491, 0.0], [-88.23569689320388, 40.09273371829141, 0.0], [-88.23569341747573, 40.09273376440792, 0.0], [-88.23568994174758, 40.09273381052442, 0.0], [-88.23568646601942, 40.092733856640926, 0.0], [-88.23568299029127, 40.09273390275743, 0.0], [-88.2356795145631, 40.092733948873935, 0.0], [-88.23567603883495, 40.09273399499044, 0.0], [-88.2356725631068, 40.092734041106944, 0.0], [-88.23566908737864, 40.09273408722345, 0.0], [-88.23566561165049, 40.09273413333995, 0.0], [-88.23566213592233, 40.092734179456464, 0.0], [-88.23565866019418, 40.09273422557297, 0.0], [-88.23565518446603, 40.09273427168947, 0.0], [-88.23565170873786, 40.09273431780598, 0.0], [-88.23564823300971, 40.09273436392248, 0.0], [-88.23564475728155, 40.092734410038986, 0.0], [-88.2356412815534, 40.09273445615549, 0.0], [-88.23563780582525, 40.092734502271995, 0.0], [-88.23563433009708, 40.0927345483885, 0.0], [-88.23563085436894, 40.092734594505, 0.0], [-88.23562737864077, 40.09273464062151, 0.0], [-88.23562390291262, 40.09273468673801, 0.0], [-88.23562042718447, 40.09273473285452, 0.0], [-88.23561695145631, 40.09273477897102, 0.0], [-88.23561347572816, 40.092734825087526, 0.0], [-88.23561000000001, 40.09273487120403, 0.0], [-88.23560652427184, 40.09273491732054, 0.0], [-88.2356030485437, 40.092734963437046, 0.0], [-88.23559957281553, 40.09273500955355, 0.0], [-88.23559609708738, 40.092735055670055, 0.0], [-88.23559262135923, 40.09273510178656, 0.0], [-88.23558914563107, 40.09273514790306, 0.0], [-88.23558566990292, 40.09273519401957, 0.0], [-88.23558219417475, 40.09273524013607, 0.0], [-88.2355787184466, 40.09273528625258, 0.0], [-88.23557524271845, 40.09273533236908, 0.0], [-88.23557176699029, 40.092735378485585, 0.0], [-88.23556829126214, 40.09273542460209, 0.0], [-88.23556481553398, 40.092735470718594, 0.0], [-88.23556133980583, 40.0927355168351, 0.0], [-88.23555786407768, 40.0927355629516, 0.0], [-88.23555438834951, 40.092735609068114, 0.0], [-88.23555091262136, 40.09273565518462, 0.0], [-88.2355474368932, 40.09273570130112, 0.0], [-88.23554396116505, 40.09273574741763, 0.0], [-88.2355404854369, 40.09273579353413, 0.0], [-88.23553700970874, 40.092735839650636, 0.0], [-88.23553353398059, 40.09273588576714, 0.0], [-88.23553005825242, 40.092735931883645, 0.0], [-88.23552658252427, 40.09273597800015, 0.0], [-88.23552310679612, 40.092736024116654, 0.0], [-88.23551963106796, 40.09273607023316, 0.0], [-88.23551615533981, 40.09273611634966, 0.0], [-88.23551267961165, 40.09273616246617, 0.0], [-88.2355092038835, 40.09273620858267, 0.0], [-88.23550572815535, 40.092736254699176, 0.0], [-88.23550225242718, 40.09273630081568, 0.0], [-88.23549877669903, 40.09273634693219, 0.0], [-88.23549530097088, 40.092736393048696, 0.0], [-88.23549182524272, 40.0927364391652, 0.0], [-88.23548834951457, 40.092736485281705, 0.0], [-88.2354848737864, 40.09273653139821, 0.0], [-88.23548139805825, 40.092736577514714, 0.0], [-88.2354779223301, 40.09273662363122, 0.0], [-88.23547444660194, 40.09273666974772, 0.0], [-88.23547097087379, 40.09273671586423, 0.0], [-88.23546749514563, 40.09273676198073, 0.0], [-88.23546401941748, 40.092736808097236, 0.0], [-88.23546054368933, 40.09273685421374, 0.0], [-88.23545706796116, 40.092736900330245, 0.0], [-88.23545359223301, 40.09273694644675, 0.0], [-88.23545011650485, 40.09273699256325, 0.0], [-88.2354466407767, 40.09273703867976, 0.0], [-88.23544316504855, 40.09273708479627, 0.0], [-88.23543968932039, 40.092737130912774, 0.0], [-88.23543621359224, 40.09273717702928, 0.0], [-88.23543273786407, 40.09273722314578, 0.0], [-88.23542926213592, 40.09273726926229, 0.0], [-88.23542578640777, 40.09273731537879, 0.0], [-88.23542231067961, 40.092737361495296, 0.0], [-88.23541883495146, 40.0927374076118, 0.0], [-88.2354153592233, 40.092737453728304, 0.0], [-88.23541188349515, 40.09273749984481, 0.0], [-88.235408407767, 40.09273754596131, 0.0], [-88.23540493203883, 40.09273759207782, 0.0], [-88.23540145631068, 40.09273763819432, 0.0], [-88.23539798058253, 40.092737684310826, 0.0], [-88.23539450485437, 40.09273773042733, 0.0], [-88.23539102912622, 40.092737776543835, 0.0], [-88.23538755339806, 40.09273782266035, 0.0], [-88.2353840776699, 40.09273786877685, 0.0], [-88.23538060194176, 40.092737914893355, 0.0], [-88.23537712621359, 40.09273796100986, 0.0], [-88.23537365048544, 40.092738007126364, 0.0], [-88.23537017475728, 40.09273805324287, 0.0], [-88.23536669902913, 40.09273809935937, 0.0], [-88.23536322330098, 40.09273814547588, 0.0], [-88.23535974757282, 40.09273819159238, 0.0], [-88.23535627184467, 40.092738237708886, 0.0], [-88.2353527961165, 40.09273828382539, 0.0], [-88.23534932038835, 40.092738329941895, 0.0], [-88.2353458446602, 40.0927383760584, 0.0], [-88.23534236893204, 40.092738422174904, 0.0], [-88.23533889320389, 40.09273846829141, 0.0], [-88.23533541747572, 40.09273851440791, 0.0], [-88.23533194174757, 40.092738560524424, 0.0], [-88.23532846601942, 40.09273860664093, 0.0], [-88.23532499029126, 40.09273865275743, 0.0], [-88.23532151456311, 40.09273869887394, 0.0], [-88.23531803883495, 40.09273874499044, 0.0], [-88.2353145631068, 40.092738791106946, 0.0], [-88.23531108737865, 40.09273883722345, 0.0], [-88.23530761165048, 40.092738883339955, 0.0], [-88.23530413592233, 40.09273892945646, 0.0], [-88.23530066019418, 40.09273897557296, 0.0], [-88.23529718446602, 40.09273902168947, 0.0], [-88.23529370873787, 40.09273906780597, 0.0], [-88.2352902330097, 40.09273911392248, 0.0], [-88.23528675728156, 40.09273916003898, 0.0], [-88.23528328155341, 40.092739206155485, 0.0], [-88.23527980582524, 40.09273925227199, 0.0], [-88.2352763300971, 40.0927392983885, 0.0], [-88.23527285436893, 40.092739344505006, 0.0], [-88.23526937864078, 40.09273939062151, 0.0], [-88.23526590291263, 40.092739436738015, 0.0], [-88.23526242718447, 40.09273948285452, 0.0], [-88.23525895145632, 40.09273952897102, 0.0], [-88.23525547572815, 40.09273957508753, 0.0], [-88.235252, 40.09273962120403, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "east_cycle_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235252, 40.092765778795965, 0.0], [-88.23524858166245, 40.092765928066214, 0.0], [-88.2352451893423, 40.092766374694925, 0.0], [-88.23524184885692, 40.09276711528302, 0.0], [-88.23523858562922, 40.0927681441942, 0.0], [-88.2352354244941, 40.09276945359793, 0.0], [-88.23523238950955, 40.09277103352892, 0.0], [-88.23522950377338, 40.09277287196306, 0.0], [-88.23522678924763, 40.092774954908855, 0.0], [-88.23522426659129, 40.092777266513984, 0.0], [-88.23522195500314, 40.092779789185876, 0.0], [-88.23521987207562, 40.092782503725644, 0.0], [-88.2352180336609, 40.09278538947418, 0.0], [-88.23521645375034, 40.092788424469376, 0.0], [-88.23521514436788, 40.09279158561329, 0.0], [-88.23521411547866, 40.092794848847916, 0.0], [-88.23521337491304, 40.092798189338275, 0.0], [-88.23521292830716, 40.09280158166144, 0.0], [-88.23521277905992, 40.092805, 0.0], [-88.23521292830716, 40.09280841833856, 0.0], [-88.23521337491304, 40.09281181066172, 0.0], [-88.23521411547866, 40.09281515115208, 0.0], [-88.23521514436788, 40.092818414386706, 0.0], [-88.23521645375034, 40.09282157553062, 0.0], [-88.2352180336609, 40.09282461052582, 0.0], [-88.23521987207562, 40.09282749627435, 0.0], [-88.23522195500314, 40.09283021081412, 0.0], [-88.23522426659129, 40.09283273348601, 0.0], [-88.23522678924763, 40.09283504509114, 0.0], [-88.23522950377338, 40.09283712803694, 0.0], [-88.23523238950955, 40.09283896647108, 0.0], [-88.2352354244941, 40.092840546402066, 0.0], [-88.23523858562922, 40.092841855805794, 0.0], [-88.23524184885692, 40.09284288471698, 0.0], [-88.2352451893423, 40.09284362530507, 0.0], [-88.23524858166245, 40.09284407193378, 0.0], [-88.235252, 40.09284422120403, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235252, 40.09273962120403, 0.0], [-88.23524852041031, 40.092739713883205, 0.0], [-88.2352450506848, 40.09273999162174, 0.0], [-88.23524160065871, 40.092740453632366, 0.0], [-88.23523818011145, 40.09274109860547, 0.0], [-88.23523479873887, 40.09274192471282, 0.0], [-88.23523146612578, 40.09274292961273, 0.0], [-88.23522819171876, 40.092744110456735, 0.0], [-88.23522498479943, 40.092745463897614, 0.0], [-88.23522185445808, 40.09274698609893, 0.0], [-88.23521880956794, 40.092748672745856, 0.0], [-88.23521585876001, 40.092750519057454, 0.0], [-88.23521301039867, 40.092752519800165, 0.0], [-88.2352102725578, 40.09275466930273, 0.0], [-88.23520765299808, 40.09275696147217, 0.0], [-88.2352051591449, 40.09275938981113, 0.0], [-88.23520279806728, 40.09276194743627, 0.0], [-88.23520057645794, 40.09276462709777, 0.0], [-88.2351985006142, 40.092767421199895, 0.0], [-88.23519657642026, 40.0927703218225, 0.0], [-88.2351948093304, 40.09277332074351, 0.0], [-88.23519320435358, 40.092776409462225, 0.0], [-88.23519176603928, 40.09277957922339, 0.0], [-88.23519049846452, 40.09278282104202, 0.0], [-88.23518940522236, 40.09278612572891, 0.0], [-88.23518848941167, 40.09278948391661, 0.0], [-88.23518775362842, 40.092792886086045, 0.0], [-88.23518719995825, 40.09279632259346, 0.0], [-88.23518682997059, 40.09279978369776, 0.0], [-88.23518664471419, 40.09280325958813, 0.0], [-88.23518664471419, 40.092806740411866, 0.0], [-88.23518682997059, 40.09281021630224, 0.0], [-88.23518719995825, 40.09281367740654, 0.0], [-88.23518775362842, 40.09281711391395, 0.0], [-88.23518848941167, 40.092820516083385, 0.0], [-88.23518940522236, 40.09282387427109, 0.0], [-88.23519049846452, 40.092827178957975, 0.0], [-88.23519176603928, 40.09283042077661, 0.0], [-88.23519320435358, 40.09283359053777, 0.0], [-88.2351948093304, 40.092836679256486, 0.0], [-88.23519657642026, 40.0928396781775, 0.0], [-88.2351985006142, 40.0928425788001, 0.0], [-88.23520057645794, 40.092845372902225, 0.0], [-88.23520279806728, 40.092848052563724, 0.0], [-88.2352051591449, 40.09285061018887, 0.0], [-88.23520765299808, 40.09285303852783, 0.0], [-88.2352102725578, 40.09285533069727, 0.0], [-88.23521301039867, 40.09285748019983, 0.0], [-88.23521585876001, 40.09285948094254, 0.0], [-88.23521880956794, 40.09286132725414, 0.0], [-88.23522185445808, 40.092863013901066, 0.0], [-88.23522498479943, 40.09286453610238, 0.0], [-88.23522819171876, 40.09286588954326, 0.0], [-88.23523146612578, 40.092867070387264, 0.0], [-88.23523479873887, 40.09286807528718, 0.0], [-88.23523818011145, 40.092868901394525, 0.0], [-88.23524160065871, 40.09286954636763, 0.0], [-88.2352450506848, 40.092870008378256, 0.0], [-88.23524852041031, 40.09287028611679, 0.0], [-88.235252, 40.092870378795965, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "east_cycle_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235252, 40.09284422120403, 0.0], [-88.2352554356672, 40.09284456435089, 0.0], [-88.23525888820048, 40.09284460400906, 0.0], [-88.23526233084336, 40.092844339871206, 0.0], [-88.23526573691599, 40.092843773984335, 0.0], [-88.23526908002198, 40.09284291073398, 0.0], [-88.23527233425285, 40.09284175681016, 0.0], [-88.23527547438896, 40.09284032115556, 0.0], [-88.2352784760948, 40.09283861489625, 0.0], [-88.23528131610774, 40.09283665125542, 0.0], [-88.2352839724182, 40.092834445450904, 0.0], [-88.23528642444028, 40.09283201457728, 0.0], [-88.23528865317125, 40.09282937747337, 0.0], [-88.23529064133888, 40.092826554576234, 0.0], [-88.23529237353524, 40.092823567762785, 0.0], [-88.23529383633614, 40.092820440180276, 0.0], [-88.23529501840514, 40.09281719606688, 0.0], [-88.23529591058141, 40.09281386056388, 0.0], [-88.23529650595079, 40.092810459520784, 0.0], [-88.23529679989923, 40.09280701929505, 0.0], [-88.23529679014872, 40.09280356654777, 0.0], [-88.23529647677482, 40.092800128037105, 0.0], [-88.23529586220612, 40.09279673041086, 0.0], [-88.23529495120539, 40.092793400000005, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235252, 40.092870378795965, 0.0], [-88.23525538146953, 40.09287088965463, 0.0], [-88.23525878285378, 40.09287124447567, 0.0], [-88.23526219695626, 40.09287144250836, 0.0], [-88.2352656165536, 40.09287148333374, 0.0], [-88.2352690344108, 40.09287136686541, 0.0], [-88.23527244329654, 40.0928710933498, 0.0], [-88.23527583599845, 40.092870663365595, 0.0], [-88.23527920533846, 40.09287007782253, 0.0], [-88.23528254418787, 40.09286933795948, 0.0], [-88.23528584548252, 40.09286844534179, 0.0], [-88.23528910223772, 40.09286740185804, 0.0], [-88.23529230756296, 40.09286620971595, 0.0], [-88.23529545467662, 40.09286487143781, 0.0], [-88.23529853692017, 40.092863389855076, 0.0], [-88.23530154777238, 40.0928617681024, 0.0], [-88.23530448086302, 40.092860009611016, 0.0], [-88.23530732998644, 40.092858118101425, 0.0], [-88.23531008911458, 40.092856097575606, 0.0], [-88.23531275240985, 40.092853952308474, 0.0], [-88.23531531423737, 40.09285168683888, 0.0], [-88.23531776917696, 40.09284930595997, 0.0], [-88.23532011203457, 40.09284681470911, 0.0], [-88.23532233785335, 40.09284421835714, 0.0], [-88.23532444192398, 40.0928415223973, 0.0], [-88.2353264197948, 40.092838732533544, 0.0], [-88.23532826728113, 40.09283585466854, 0.0], [-88.23532998047415, 40.09283289489112, 0.0], [-88.23533155574918, 40.09282985946342, 0.0], [-88.23533298977333, 40.092826754807646, 0.0], [-88.23533427951257, 40.092823587492475, 0.0], [-88.23533542223814, 40.092820364219136, 0.0], [-88.2353364155323, 40.09281709180727, 0.0], [-88.23533725729352, 40.092813777180474, 0.0], [-88.23533794574082, 40.09281042735167, 0.0], [-88.23533847941763, 40.09280704940824, 0.0], [-88.23533885719483, 40.09280365049708, 0.0], [-88.23533907827314, 40.09280023780941, 0.0], [-88.2353391421848, 40.09279681856563, 0.0], [-88.23533904879459, 40.0927934, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "east_inter": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.2352949512054, 40.0927934, 0.0], [-88.23529380991491, 40.092790118443446, 0.0], [-88.23529238269535, 40.09278695076264, 0.0], [-88.2352906807462, 40.09278392181455, 0.0], [-88.23528871742276, 40.09278105536754, 0.0], [-88.23528650813137, 40.09277837391479, 0.0], [-88.23528407020844, 40.09277589849782, 0.0], [-88.23528142278451, 40.09277364854138, 0.0], [-88.2352785866341, 40.09277164170102, 0.0], [-88.23527558401264, 40.092769893724544, 0.0], [-88.2352724384819, 40.092768418328426, 0.0], [-88.23526917472503, 40.09276722709019, 0.0], [-88.23526581835296, 40.09276632935756, 0.0], [-88.23526239570333, 40.092765732175096, 0.0], [-88.23525893363389, 40.09276544022892, 0.0], [-88.2352554593117, 40.09276545580997, 0.0], [-88.235252, 40.092765778795965, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.23533904879459, 40.0927934, 0.0], [-88.23534004364888, 40.09279023568675, 0.0], [-88.23534130231853, 40.092787166751414, 0.0], [-88.23534281580099, 40.09278421514436, 0.0], [-88.23534457327118, 40.092781401976765, 0.0], [-88.2353465621589, 40.09277874736963, 0.0], [-88.23534876823875, 40.09277627030987, 0.0], [-88.23535117573189, 40.09277398851449, 0.0], [-88.23535376741889, 40.092771918303896, 0.0], [-88.23535652476285, 40.092770074485124, 0.0], [-88.23535942804206, 40.092768470245986, 0.0], [-88.23536245649099, 40.09276711706069, 0.0], [-88.23536558844886, 40.09276602460781, 0.0], [-88.23536880151454, 40.09276520070105, 0.0], [-88.23537207270677, 40.09276465123335, 0.0], [-88.23537537862856, 40.09276438013474, 0.0], [-88.23537869563452, 40.09276438934423, 0.0], [-88.23538199999999, 40.092764678795966, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "westward": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235252, 40.09273962120403, 0.0], [-88.23525547572815, 40.09273957508753, 0.0], [-88.23525895145632, 40.09273952897102, 0.0], [-88.23526242718447, 40.09273948285452, 0.0], [-88.23526590291263, 40.092739436738015, 0.0], [-88.23526937864078, 40.09273939062151, 0.0], [-88.23527285436893, 40.092739344505006, 0.0], [-88.2352763300971, 40.0927392983885, 0.0], [-88.23527980582524, 40.09273925227199, 0.0], [-88.23528328155341, 40.092739206155485, 0.0], [-88.23528675728156, 40.09273916003898, 0.0], [-88.2352902330097, 40.09273911392248, 0.0], [-88.23529370873787, 40.09273906780597, 0.0], [-88.23529718446602, 40.09273902168947, 0.0], [-88.23530066019418, 40.09273897557296, 0.0], [-88.23530413592233, 40.09273892945646, 0.0], [-88.23530761165048, 40.092738883339955, 0.0], [-88.23531108737865, 40.09273883722345, 0.0], [-88.2353145631068, 40.092738791106946, 0.0], [-88.23531803883495, 40.09273874499044, 0.0], [-88.23532151456311, 40.09273869887394, 0.0], [-88.23532499029126, 40.09273865275743, 0.0], [-88.23532846601942, 40.09273860664093, 0.0], [-88.23533194174757, 40.092738560524424, 0.0], [-88.23533541747572, 40.09273851440791, 0.0], [-88.23533889320389, 40.09273846829141, 0.0], [-88.23534236893204, 40.092738422174904, 0.0], [-88.2353458446602, 40.0927383760584, 0.0], [-88.23534932038835, 40.092738329941895, 0.0], [-88.2353527961165, 40.09273828382539, 0.0], [-88.23535627184467, 40.092738237708886, 0.0], [-88.23535974757282, 40.09273819159238, 0.0], [-88.23536322330098, 40.09273814547588, 0.0], [-88.23536669902913, 40.09273809935937, 0.0], [-88.23537017475728, 40.09273805324287, 0.0], [-88.23537365048544, 40.092738007126364, 0.0], [-88.23537712621359, 40.09273796100986, 0.0], [-88.23538060194176, 40.092737914893355, 0.0], [-88.2353840776699, 40.09273786877685, 0.0], [-88.23538755339806, 40.09273782266035, 0.0], [-88.23539102912622, 40.092737776543835, 0.0], [-88.23539450485437, 40.09273773042733, 0.0], [-88.23539798058253, 40.092737684310826, 0.0], [-88.23540145631068, 40.09273763819432, 0.0], [-88.23540493203883, 40.09273759207782, 0.0], [-88.235408407767, 40.09273754596131, 0.0], [-88.23541188349515, 40.09273749984481, 0.0], [-88.2354153592233, 40.092737453728304, 0.0], [-88.23541883495146, 40.0927374076118, 0.0], [-88.23542231067961, 40.092737361495296, 0.0], [-88.23542578640777, 40.09273731537879, 0.0], [-88.23542926213592, 40.09273726926229, 0.0], [-88.23543273786407, 40.09273722314578, 0.0], [-88.23543621359224, 40.09273717702928, 0.0], [-88.23543968932039, 40.092737130912774, 0.0], [-88.23544316504855, 40.09273708479627, 0.0], [-88.2354466407767, 40.09273703867976, 0.0], [-88.23545011650485, 40.09273699256325, 0.0], [-88.23545359223301, 40.09273694644675, 0.0], [-88.23545706796116, 40.092736900330245, 0.0], [-88.23546054368933, 40.09273685421374, 0.0], [-88.23546401941748, 40.092736808097236, 0.0], [-88.23546749514563, 40.09273676198073, 0.0], [-88.23547097087379, 40.09273671586423, 0.0], [-88.23547444660194, 40.09273666974772, 0.0], [-88.2354779223301, 40.09273662363122, 0.0], [-88.23548139805825, 40.092736577514714, 0.0], [-88.2354848737864, 40.09273653139821, 0.0], [-88.23548834951457, 40.092736485281705, 0.0], [-88.23549182524272, 40.0927364391652, 0.0], [-88.23549530097088, 40.092736393048696, 0.0], [-88.23549877669903, 40.09273634693219, 0.0], [-88.23550225242718, 40.09273630081568, 0.0], [-88.23550572815535, 40.092736254699176, 0.0], [-88.2355092038835, 40.09273620858267, 0.0], [-88.23551267961165, 40.09273616246617, 0.0], [-88.23551615533981, 40.09273611634966, 0.0], [-88.23551963106796, 40.09273607023316, 0.0], [-88.23552310679612, 40.092736024116654, 0.0], [-88.23552658252427, 40.09273597800015, 0.0], [-88.23553005825242, 40.092735931883645, 0.0], [-88.23553353398059, 40.09273588576714, 0.0], [-88.23553700970874, 40.092735839650636, 0.0], [-88.2355404854369, 40.09273579353413, 0.0], [-88.23554396116505, 40.09273574741763, 0.0], [-88.2355474368932, 40.09273570130112, 0.0], [-88.23555091262136, 40.09273565518462, 0.0], [-88.23555438834951, 40.092735609068114, 0.0], [-88.23555786407768, 40.0927355629516, 0.0], [-88.23556133980583, 40.0927355168351, 0.0], [-88.23556481553398, 40.092735470718594, 0.0], [-88.23556829126214, 40.09273542460209, 0.0], [-88.23557176699029, 40.092735378485585, 0.0], [-88.23557524271845, 40.09273533236908, 0.0], [-88.2355787184466, 40.09273528625258, 0.0], [-88.23558219417475, 40.09273524013607, 0.0], [-88.23558566990292, 40.09273519401957, 0.0], [-88.23558914563107, 40.09273514790306, 0.0], [-88.23559262135923, 40.09273510178656, 0.0], [-88.23559609708738, 40.092735055670055, 0.0], [-88.23559957281553, 40.09273500955355, 0.0], [-88.2356030485437, 40.092734963437046, 0.0], [-88.23560652427184, 40.09273491732054, 0.0], [-88.23561000000001, 40.09273487120403, 0.0], [-88.23561347572816, 40.092734825087526, 0.0], [-88.23561695145631, 40.09273477897102, 0.0], [-88.23562042718447, 40.09273473285452, 0.0], [-88.23562390291262, 40.09273468673801, 0.0], [-88.23562737864077, 40.09273464062151, 0.0], [-88.23563085436894, 40.092734594505, 0.0], [-88.23563433009708, 40.0927345483885, 0.0], [-88.23563780582525, 40.092734502271995, 0.0], [-88.2356412815534, 40.09273445615549, 0.0], [-88.23564475728155, 40.092734410038986, 0.0], [-88.23564823300971, 40.09273436392248, 0.0], [-88.23565170873786, 40.09273431780598, 0.0], [-88.23565518446603, 40.09273427168947, 0.0], [-88.23565866019418, 40.09273422557297, 0.0], [-88.23566213592233, 40.092734179456464, 0.0], [-88.23566561165049, 40.09273413333995, 0.0], [-88.23566908737864, 40.09273408722345, 0.0], [-88.2356725631068, 40.092734041106944, 0.0], [-88.23567603883495, 40.09273399499044, 0.0], [-88.2356795145631, 40.092733948873935, 0.0], [-88.23568299029127, 40.09273390275743, 0.0], [-88.23568646601942, 40.092733856640926, 0.0], [-88.23568994174758, 40.09273381052442, 0.0], [-88.23569341747573, 40.09273376440792, 0.0], [-88.23569689320388, 40.09273371829141, 0.0], [-88.23570036893204, 40.09273367217491, 0.0], [-88.2357038446602, 40.092733626058404, 0.0], [-88.23570732038836, 40.0927335799419, 0.0], [-88.2357107961165, 40.092733533825395, 0.0], [-88.23571427184466, 40.09273348770889, 0.0], [-88.23571774757282, 40.09273344159239, 0.0], [-88.23572122330097, 40.092733395475875, 0.0], [-88.23572469902912, 40.09273334935937, 0.0], [-88.23572817475728, 40.092733303242866, 0.0], [-88.23573165048543, 40.09273325712636, 0.0], [-88.2357351262136, 40.09273321100986, 0.0], [-88.23573860194175, 40.09273316489335, 0.0], [-88.2357420776699, 40.09273311877685, 0.0], [-88.23574555339806, 40.092733072660344, 0.0], [-88.23574902912621, 40.09273302654384, 0.0], [-88.23575250485437, 40.092732980427336, 0.0], [-88.23575598058252, 40.09273293431083, 0.0], [-88.23575945631067, 40.09273288819433, 0.0], [-88.23576293203884, 40.09273284207782, 0.0], [-88.23576640776699, 40.09273279596132, 0.0], [-88.23576988349515, 40.092732749844814, 0.0], [-88.2357733592233, 40.09273270372831, 0.0], [-88.23577683495145, 40.0927326576118, 0.0], [-88.23578031067962, 40.09273261149529, 0.0], [-88.23578378640777, 40.09273256537879, 0.0], [-88.23578726213593, 40.092732519262285, 0.0], [-88.23579073786408, 40.09273247314578, 0.0], [-88.23579421359223, 40.092732427029276, 0.0], [-88.23579768932039, 40.09273238091277, 0.0], [-88.23580116504854, 40.09273233479627, 0.0], [-88.2358046407767, 40.09273228867976, 0.0], [-88.23580811650486, 40.09273224256326, 0.0], [-88.235811592233, 40.092732196446754, 0.0], [-88.23581506796117, 40.09273215033025, 0.0], [-88.23581854368932, 40.092732104213745, 0.0], [-88.23582201941747, 40.09273205809724, 0.0], [-88.23582549514563, 40.092732011980736, 0.0], [-88.23582897087378, 40.09273196586423, 0.0], [-88.23583244660195, 40.09273191974772, 0.0], [-88.2358359223301, 40.092731873631216, 0.0], [-88.23583939805825, 40.09273182751471, 0.0], [-88.23584287378641, 40.09273178139821, 0.0], [-88.23584634951456, 40.0927317352817, 0.0], [-88.23584982524272, 40.0927316891652, 0.0], [-88.23585330097087, 40.092731643048694, 0.0], [-88.23585677669902, 40.09273159693219, 0.0], [-88.23586025242719, 40.092731550815685, 0.0], [-88.23586372815534, 40.09273150469918, 0.0], [-88.2358672038835, 40.092731458582676, 0.0], [-88.23587067961165, 40.09273141246617, 0.0], [-88.2358741553398, 40.09273136634967, 0.0], [-88.23587763106796, 40.09273132023316, 0.0], [-88.23588110679611, 40.09273127411666, 0.0], [-88.23588458252428, 40.092731228000154, 0.0], [-88.23588805825243, 40.09273118188364, 0.0], [-88.23589153398058, 40.09273113576714, 0.0], [-88.23589500970874, 40.092731089650634, 0.0], [-88.23589848543689, 40.09273104353413, 0.0], [-88.23590196116506, 40.092730997417625, 0.0], [-88.2359054368932, 40.09273095130112, 0.0], [-88.23590891262135, 40.09273090518462, 0.0], [-88.23591238834952, 40.09273085906811, 0.0], [-88.23591586407767, 40.09273081295161, 0.0], [-88.23591933980582, 40.0927307668351, 0.0], [-88.23592281553398, 40.0927307207186, 0.0], [-88.23592629126213, 40.092730674602095, 0.0], [-88.2359297669903, 40.09273062848559, 0.0], [-88.23593324271845, 40.092730582369086, 0.0], [-88.2359367184466, 40.09273053625258, 0.0], [-88.23594019417476, 40.09273049013608, 0.0], [-88.23594366990291, 40.092730444019566, 0.0], [-88.23594714563107, 40.09273039790306, 0.0], [-88.23595062135922, 40.09273035178656, 0.0], [-88.23595409708737, 40.09273030567005, 0.0], [-88.23595757281554, 40.09273025955355, 0.0], [-88.23596104854369, 40.092730213437044, 0.0], [-88.23596452427185, 40.09273016732054, 0.0], [-88.235968, 40.092730121204035, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.23538199999999, 40.092764678795966, 0.0], [-88.23538548484848, 40.092764615917176, 0.0], [-88.23538896969696, 40.09276455303839, 0.0], [-88.23539245454545, 40.0927644901596, 0.0], [-88.23539593939392, 40.09276442728081, 0.0], [-88.23539942424242, 40.09276436440203, 0.0], [-88.2354029090909, 40.09276430152324, 0.0], [-88.23540639393939, 40.09276423864445, 0.0], [-88.23540987878786, 40.092764175765666, 0.0], [-88.23541336363635, 40.092764112886876, 0.0], [-88.23541684848483, 40.092764050008086, 0.0], [-88.23542033333332, 40.0927639871293, 0.0], [-88.2354238181818, 40.09276392425051, 0.0], [-88.23542730303029, 40.09276386137172, 0.0], [-88.23543078787878, 40.09276379849294, 0.0], [-88.23543427272726, 40.09276373561415, 0.0], [-88.23543775757575, 40.09276367273536, 0.0], [-88.23544124242423, 40.092763609856576, 0.0], [-88.23544472727272, 40.092763546977785, 0.0], [-88.2354482121212, 40.092763484098995, 0.0], [-88.23545169696969, 40.09276342122021, 0.0], [-88.23545518181817, 40.09276335834142, 0.0], [-88.23545866666666, 40.09276329546263, 0.0], [-88.23546215151514, 40.09276323258384, 0.0], [-88.23546563636363, 40.09276316970506, 0.0], [-88.2354691212121, 40.09276310682627, 0.0], [-88.2354726060606, 40.09276304394748, 0.0], [-88.23547609090909, 40.092762981068695, 0.0], [-88.23547957575757, 40.092762918189905, 0.0], [-88.23548306060606, 40.092762855311115, 0.0], [-88.23548654545453, 40.09276279243233, 0.0], [-88.23549003030303, 40.09276272955354, 0.0], [-88.2354935151515, 40.09276266667475, 0.0], [-88.235497, 40.09276260379597, 0.0], [-88.23550048484847, 40.09276254091718, 0.0], [-88.23550396969696, 40.09276247803839, 0.0], [-88.23550745454544, 40.092762415159605, 0.0], [-88.23551093939393, 40.092762352280815, 0.0], [-88.23551442424241, 40.092762289402025, 0.0], [-88.2355179090909, 40.09276222652324, 0.0], [-88.2355213939394, 40.09276216364445, 0.0], [-88.23552487878787, 40.09276210076566, 0.0], [-88.23552836363636, 40.09276203788688, 0.0], [-88.23553184848484, 40.09276197500809, 0.0], [-88.23553533333333, 40.0927619121293, 0.0], [-88.23553881818181, 40.092761849250515, 0.0], [-88.2355423030303, 40.092761786371724, 0.0], [-88.23554578787878, 40.092761723492934, 0.0], [-88.23554927272727, 40.09276166061415, 0.0], [-88.23555275757575, 40.09276159773536, 0.0], [-88.23555624242424, 40.09276153485657, 0.0], [-88.23555972727272, 40.09276147197779, 0.0], [-88.2355632121212, 40.092761409099, 0.0], [-88.2355666969697, 40.09276134622021, 0.0], [-88.23557018181818, 40.092761283341424, 0.0], [-88.23557366666667, 40.092761220462634, 0.0], [-88.23557715151514, 40.092761157583844, 0.0], [-88.23558063636364, 40.09276109470506, 0.0], [-88.23558412121211, 40.09276103182627, 0.0], [-88.2355876060606, 40.09276096894748, 0.0], [-88.23559109090908, 40.0927609060687, 0.0], [-88.23559457575757, 40.09276084318991, 0.0], [-88.23559806060605, 40.09276078031112, 0.0], [-88.23560154545454, 40.092760717432334, 0.0], [-88.23560503030302, 40.092760654553544, 0.0], [-88.23560851515151, 40.092760591674754, 0.0], [-88.235612, 40.092760528795964, 0.0], [-88.23561548484848, 40.09276046591718, 0.0], [-88.23561896969697, 40.09276040303839, 0.0], [-88.23562245454545, 40.0927603401596, 0.0], [-88.23562593939394, 40.09276027728082, 0.0], [-88.23562942424242, 40.09276021440203, 0.0], [-88.23563290909091, 40.09276015152324, 0.0], [-88.23563639393939, 40.092760088644454, 0.0], [-88.23563987878788, 40.092760025765664, 0.0], [-88.23564336363636, 40.09275996288687, 0.0], [-88.23564684848485, 40.09275990000809, 0.0], [-88.23565033333333, 40.0927598371293, 0.0], [-88.23565381818182, 40.09275977425051, 0.0], [-88.2356573030303, 40.09275971137173, 0.0], [-88.23566078787879, 40.09275964849294, 0.0], [-88.23566427272728, 40.09275958561415, 0.0], [-88.23566775757575, 40.09275952273536, 0.0], [-88.23567124242425, 40.09275945985657, 0.0], [-88.23567472727272, 40.09275939697778, 0.0], [-88.23567821212121, 40.092759334099, 0.0], [-88.23568169696969, 40.09275927122021, 0.0], [-88.23568518181818, 40.09275920834142, 0.0], [-88.23568866666666, 40.09275914546264, 0.0], [-88.23569215151515, 40.09275908258385, 0.0], [-88.23569563636363, 40.092759019705056, 0.0], [-88.23569912121212, 40.09275895682627, 0.0], [-88.2357026060606, 40.09275889394748, 0.0], [-88.23570609090909, 40.09275883106869, 0.0], [-88.23570957575758, 40.09275876818991, 0.0], [-88.23571306060606, 40.09275870531112, 0.0], [-88.23571654545455, 40.09275864243233, 0.0], [-88.23572003030303, 40.092758579553546, 0.0], [-88.23572351515152, 40.092758516674756, 0.0], [-88.235727, 40.092758453795966, 0.0], [-88.23573048484849, 40.09275839091718, 0.0], [-88.23573396969697, 40.09275832803839, 0.0], [-88.23573745454546, 40.0927582651596, 0.0], [-88.23574093939393, 40.09275820228082, 0.0], [-88.23574442424243, 40.09275813940203, 0.0], [-88.2357479090909, 40.09275807652324, 0.0], [-88.2357513939394, 40.092758013644456, 0.0], [-88.23575487878789, 40.092757950765666, 0.0], [-88.23575836363636, 40.092757887886876, 0.0], [-88.23576184848486, 40.09275782500809, 0.0], [-88.23576533333333, 40.0927577621293, 0.0], [-88.23576881818182, 40.09275769925051, 0.0], [-88.2357723030303, 40.09275763637172, 0.0], [-88.2357757878788, 40.09275757349294, 0.0], [-88.23577927272727, 40.09275751061415, 0.0], [-88.23578275757576, 40.09275744773536, 0.0], [-88.23578624242424, 40.092757384856576, 0.0], [-88.23578972727273, 40.092757321977786, 0.0], [-88.23579321212121, 40.092757259098995, 0.0], [-88.2357966969697, 40.09275719622021, 0.0], [-88.23580018181819, 40.09275713334142, 0.0], [-88.23580366666667, 40.09275707046263, 0.0], [-88.23580715151516, 40.09275700758385, 0.0], [-88.23581063636364, 40.09275694470506, 0.0], [-88.23581412121213, 40.09275688182627, 0.0], [-88.2358176060606, 40.092756818947485, 0.0], [-88.2358210909091, 40.092756756068695, 0.0], [-88.23582457575758, 40.092756693189905, 0.0], [-88.23582806060607, 40.09275663031112, 0.0], [-88.23583154545454, 40.09275656743233, 0.0], [-88.23583503030304, 40.09275650455354, 0.0], [-88.23583851515151, 40.09275644167476, 0.0], [-88.235842, 40.09275637879597, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "west_cycle_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235968, 40.09273012120404, 0.0], [-88.2359714630335, 40.092730204925324, 0.0], [-88.23597491797813, 40.09273045585916, 0.0], [-88.23597835676476, 40.09273087341949, 0.0], [-88.23598177136202, 40.092731456631086, 0.0], [-88.235985153795, 40.092732204131835, 0.0], [-88.23598849616391, 40.092733114175935, 0.0], [-88.23599179066255, 40.09273418463794, 0.0], [-88.23599502959652, 40.09273541301775, 0.0], [-88.23599820540117, 40.09273679644646, 0.0], [-88.23600131065933, 40.09273833169301, 0.0], [-88.23600433811856, 40.0927400151718, 0.0], [-88.23600728070814, 40.092741842951, 0.0], [-88.23601013155555, 40.092743810761775, 0.0], [-88.23601288400255, 40.092745914008255, 0.0], [-88.23601553162071, 40.092748147778224, 0.0], [-88.23601806822643, 40.09275050685465, 0.0], [-88.2360204878954, 40.092752985727834, 0.0], [-88.23602278497641, 40.09275557860829, 0.0], [-88.23602495410454, 40.09275827944026, 0.0], [-88.23602699021373, 40.092761081915874, 0.0], [-88.23602888854859, 40.09276397948986, 0.0], [-88.23603064467548, 40.09276696539484, 0.0], [-88.23603225449293, 40.092770032657135, 0.0], [-88.23603371424115, 40.09277317411306, 0.0], [-88.23603502051085, 40.092776382425654, 0.0], [-88.2360361702512, 40.09277965010179, 0.0], [-88.23603716077695, 40.09278296950971, 0.0], [-88.23603798977469, 40.092786332896836, 0.0], [-88.23603865530826, 40.092789732407866, 0.0], [-88.2360391558233, 40.09279316010314, 0.0], [-88.23603949015086, 40.09279660797717, 0.0], [-88.23603965751006, 40.09280006797733, 0.0], [-88.23603965751006, 40.09280353202268, 0.0], [-88.23603949015086, 40.09280699202284, 0.0], [-88.2360391558233, 40.092810439896866, 0.0], [-88.23603865530826, 40.09281386759214, 0.0], [-88.23603798977469, 40.09281726710317, 0.0], [-88.23603716077695, 40.092820630490294, 0.0], [-88.2360361702512, 40.09282394989822, 0.0], [-88.23603502051085, 40.09282721757435, 0.0], [-88.23603371424115, 40.092830425886945, 0.0], [-88.23603225449293, 40.09283356734287, 0.0], [-88.23603064467548, 40.09283663460517, 0.0], [-88.23602888854859, 40.09283962051015, 0.0], [-88.23602699021373, 40.09284251808413, 0.0], [-88.23602495410454, 40.092845320559746, 0.0], [-88.23602278497641, 40.09284802139172, 0.0], [-88.2360204878954, 40.09285061427217, 0.0], [-88.23601806822643, 40.09285309314536, 0.0], [-88.23601553162071, 40.092855452221784, 0.0], [-88.23601288400255, 40.09285768599175, 0.0], [-88.23601013155555, 40.09285978923823, 0.0], [-88.23600728070814, 40.09286175704901, 0.0], [-88.23600433811856, 40.09286358482821, 0.0], [-88.23600131065933, 40.092865268306994, 0.0], [-88.23599820540117, 40.09286680355355, 0.0], [-88.23599502959652, 40.09286818698226, 0.0], [-88.23599179066255, 40.09286941536207, 0.0], [-88.23598849616391, 40.09287048582407, 0.0], [-88.235985153795, 40.09287139586817, 0.0], [-88.23598177136202, 40.09287214336892, 0.0], [-88.23597835676476, 40.09287272658052, 0.0], [-88.23597491797813, 40.092873144140846, 0.0], [-88.2359714630335, 40.09287339507468, 0.0], [-88.235968, 40.092873478795966, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235968, 40.09275627879597, 0.0], [-88.23597140178954, 40.09275640610273, 0.0], [-88.23597478455345, 40.092756787268556, 0.0], [-88.2359781293741, 40.09275742016183, 0.0], [-88.23598141754604, 40.092758301243194, 0.0], [-88.23598463068063, 40.092759425585314, 0.0], [-88.23598775080886, 40.09276078690047, 0.0], [-88.23599076048183, 40.09276237757569, 0.0], [-88.23599364286838, 40.09276418871534, 0.0], [-88.23599638184916, 40.09276621019088, 0.0], [-88.2359989621068, 40.09276843069749, 0.0], [-88.23600136921156, 40.09277083781729, 0.0], [-88.23600358970205, 40.092773418088804, 0.0], [-88.2360056111605, 40.092776157082206, 0.0], [-88.23600742228214, 40.09277903948007, 0.0], [-88.23600901293855, 40.09278204916299, 0.0], [-88.23601037423421, 40.09278516929972, 0.0], [-88.23601149855627, 40.09278838244133, 0.0], [-88.2360123796171, 40.09279167061877, 0.0], [-88.23601301248947, 40.09279501544337, 0.0], [-88.23601339363417, 40.092798398209666, 0.0], [-88.23601352091967, 40.092801800000004, 0.0], [-88.23601339363417, 40.09280520179034, 0.0], [-88.23601301248947, 40.092808584556636, 0.0], [-88.2360123796171, 40.092811929381234, 0.0], [-88.23601149855627, 40.09281521755868, 0.0], [-88.23601037423421, 40.09281843070029, 0.0], [-88.23600901293855, 40.092821550837016, 0.0], [-88.23600742228214, 40.09282456051994, 0.0], [-88.2360056111605, 40.0928274429178, 0.0], [-88.23600358970205, 40.092830181911204, 0.0], [-88.23600136921156, 40.09283276218272, 0.0], [-88.2359989621068, 40.09283516930252, 0.0], [-88.23599638184916, 40.09283738980913, 0.0], [-88.23599364286838, 40.092839411284665, 0.0], [-88.23599076048183, 40.09284122242432, 0.0], [-88.23598775080886, 40.09284281309954, 0.0], [-88.23598463068063, 40.092844174414694, 0.0], [-88.23598141754604, 40.092845298756814, 0.0], [-88.2359781293741, 40.092846179838176, 0.0], [-88.23597478455345, 40.09284681273145, 0.0], [-88.23597140178954, 40.09284719389728, 0.0], [-88.235968, 40.09284732120404, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "west_cycle_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235968, 40.092873478795966, 0.0], [-88.23596451940529, 40.09287359409049, 0.0], [-88.23596103707816, 40.092873559016645, 0.0], [-88.23595755951179, 40.092873373639826, 0.0], [-88.23595409319047, 40.0928730383057, 0.0], [-88.23595064457756, 40.09287255363952, 0.0], [-88.23594722010333, 40.092871920545015, 0.0], [-88.23594382615309, 40.09287114020265, 0.0], [-88.23594046905524, 40.09287021406744, 0.0], [-88.23593715506944, 40.09286914386629, 0.0], [-88.23593389037497, 40.09286793159469, 0.0], [-88.23593068105922, 40.09286657951306, 0.0], [-88.23592753310626, 40.09286509014249, 0.0], [-88.23592445238585, 40.09286346626008, 0.0], [-88.23592144464227, 40.09286171089373, 0.0], [-88.23591851548382, 40.09285982731651, 0.0], [-88.23591567037221, 40.09285781904055, 0.0], [-88.23591291461246, 40.092855689810506, 0.0], [-88.23591025334298, 40.092853443596546, 0.0], [-88.235907691526, 40.092851084586975, 0.0], [-88.23590523393828, 40.09284861718044, 0.0], [-88.23590288516229, 40.09284604597766, 0.0], [-88.23590064957756, 40.09284337577293, 0.0], [-88.23589853135256, 40.092840611545135, 0.0], [-88.23589653443698, 40.092837758448475, 0.0], [-88.23589466255426, 40.09283482180285, 0.0], [-88.23589291919474, 40.09283180708396, 0.0], [-88.23589130760911, 40.09282871991307, 0.0], [-88.23588983080231, 40.092825566046535, 0.0], [-88.23588849152804, 40.092822351365086, 0.0], [-88.23588729228351, 40.09281908186284, 0.0], [-88.23588623530482, 40.09281576363613, 0.0], [-88.23588532256285, 40.09281240287216, 0.0], [-88.2358845557595, 40.092809005837424, 0.0], [-88.23588393632454, 40.092805578866056, 0.0], [-88.23588346541298, 40.09280212834802, 0.0], [-88.2358831439029, 40.09279866071718, 0.0], [-88.23588297239377, 40.092795182439296, 0.0], [-88.23588295120541, 40.0927917, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235968, 40.092847321204026, 0.0], [-88.23596461311375, 40.09284693910652, 0.0], [-88.23596126431049, 40.09284630466685, 0.0], [-88.23595797236418, 40.0928454214418, 0.0], [-88.23595475573005, 40.09284429438288, 0.0], [-88.23595163244109, 40.092842929808576, 0.0], [-88.235948620007, 40.092841335368924, 0.0], [-88.235945735316, 40.09283952000262, 0.0], [-88.23594299454015, 40.09283749388693, 0.0], [-88.23594041304473, 40.09283526838061, 0.0], [-88.23593800530206, 40.09283285596022, 0.0], [-88.23593578481032, 40.0928302701502, 0.0], [-88.235933764018, 40.092827525447056, 0.0], [-88.23593195425399, 40.09282463723806, 0.0], [-88.23593036566415, 40.09282162171501, 0.0], [-88.23592900715437, 40.09281849578344, 0.0], [-88.2359278863407, 40.09281527696787, 0.0], [-88.23592700950663, 40.09281198331352, 0.0], [-88.23592638156781, 40.09280863328519, 0.0], [-88.2359260060446, 40.092805245663705, 0.0], [-88.23592588504223, 40.09280183944067, 0.0], [-88.23592601923907, 40.092798433711934, 0.0], [-88.23592640788279, 40.09279504757062, 0.0], [-88.23592704879458, 40.0927917, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "west_inter": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.23588295120543, 40.0927917, 0.0], [-88.23588207420826, 40.09278840946364, 0.0], [-88.23588095367528, 40.09278519369633, 0.0], [-88.23587959587744, 40.092782070694795, 0.0], [-88.23587800841354, 40.09277905793661, 0.0], [-88.23587620016764, 40.09277617228238, 0.0], [-88.23587418125942, 40.09277342988139, 0.0], [-88.23587196298752, 40.092770846081216, 0.0], [-88.23586955776628, 40.09276843534185, 0.0], [-88.23586697905625, 40.09276621115476, 0.0], [-88.23586424128898, 40.09276418596739, 0.0], [-88.23586135978609, 40.0927623711135, 0.0], [-88.23585835067364, 40.09276077674975, 0.0], [-88.23585523079181, 40.09275941179883, 0.0], [-88.23585201760076, 40.09275828389956, 0.0], [-88.23584872908276, 40.09275739936413, 0.0], [-88.2358453836417, 40.09275676314275, 0.0], [-88.235842, 40.09275637879596, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.23592704879458, 40.0927917, 0.0], [-88.23592791964276, 40.09278840288894, 0.0], [-88.23592903487396, 40.092785180222776, 0.0], [-88.23593038822938, 40.09278205008748, 0.0], [-88.23593197211379, 40.09277903004973, 0.0], [-88.2359337776383, 40.09277613705835, 0.0], [-88.23593579467004, 40.09277338734913, 0.0], [-88.23593801188922, 40.092770796353776, 0.0], [-88.23594041685254, 40.09276837861325, 0.0], [-88.23594299606307, 40.0927661476962, 0.0], [-88.23594573504597, 40.092764116122794, 0.0], [-88.23594861842976, 40.092762295294456, 0.0], [-88.23595163003253, 40.092760695429895, 0.0], [-88.23595475295282, 40.092759325507735, 0.0], [-88.23595796966443, 40.09275819321615, 0.0], [-88.2359612621148, 40.092757304909675, 0.0], [-88.23596461182632, 40.0927566655736, 0.0], [-88.235968, 40.09275627879597, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}}, "regions": {}, "signs": {}, "static_obstacles": {}, "connections": []}} \ No newline at end of file +{"type": "Roadgraph", "data": {"frame": 2, "curves": {}, "lanes": {"eastward": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235842, 40.09275637879597, 0.0], [-88.23583851515151, 40.09275644167476, 0.0], [-88.23583503030304, 40.09275650455354, 0.0], [-88.23583154545454, 40.09275656743233, 0.0], [-88.23582806060607, 40.09275663031112, 0.0], [-88.23582457575758, 40.092756693189905, 0.0], [-88.2358210909091, 40.092756756068695, 0.0], [-88.2358176060606, 40.092756818947485, 0.0], [-88.23581412121213, 40.09275688182627, 0.0], [-88.23581063636364, 40.09275694470506, 0.0], [-88.23580715151516, 40.09275700758385, 0.0], [-88.23580366666667, 40.09275707046263, 0.0], [-88.23580018181819, 40.09275713334142, 0.0], [-88.2357966969697, 40.09275719622021, 0.0], [-88.23579321212121, 40.092757259098995, 0.0], [-88.23578972727273, 40.092757321977786, 0.0], [-88.23578624242424, 40.092757384856576, 0.0], [-88.23578275757576, 40.09275744773536, 0.0], [-88.23577927272727, 40.09275751061415, 0.0], [-88.2357757878788, 40.09275757349294, 0.0], [-88.2357723030303, 40.09275763637172, 0.0], [-88.23576881818182, 40.09275769925051, 0.0], [-88.23576533333333, 40.0927577621293, 0.0], [-88.23576184848486, 40.09275782500809, 0.0], [-88.23575836363636, 40.092757887886876, 0.0], [-88.23575487878789, 40.092757950765666, 0.0], [-88.2357513939394, 40.092758013644456, 0.0], [-88.2357479090909, 40.09275807652324, 0.0], [-88.23574442424243, 40.09275813940203, 0.0], [-88.23574093939393, 40.09275820228082, 0.0], [-88.23573745454546, 40.0927582651596, 0.0], [-88.23573396969697, 40.09275832803839, 0.0], [-88.23573048484849, 40.09275839091718, 0.0], [-88.235727, 40.092758453795966, 0.0], [-88.23572351515152, 40.092758516674756, 0.0], [-88.23572003030303, 40.092758579553546, 0.0], [-88.23571654545455, 40.09275864243233, 0.0], [-88.23571306060606, 40.09275870531112, 0.0], [-88.23570957575758, 40.09275876818991, 0.0], [-88.23570609090909, 40.09275883106869, 0.0], [-88.2357026060606, 40.09275889394748, 0.0], [-88.23569912121212, 40.09275895682627, 0.0], [-88.23569563636363, 40.092759019705056, 0.0], [-88.23569215151515, 40.09275908258385, 0.0], [-88.23568866666666, 40.09275914546264, 0.0], [-88.23568518181818, 40.09275920834142, 0.0], [-88.23568169696969, 40.09275927122021, 0.0], [-88.23567821212121, 40.092759334099, 0.0], [-88.23567472727272, 40.09275939697778, 0.0], [-88.23567124242425, 40.09275945985657, 0.0], [-88.23566775757575, 40.09275952273536, 0.0], [-88.23566427272728, 40.09275958561415, 0.0], [-88.23566078787879, 40.09275964849294, 0.0], [-88.2356573030303, 40.09275971137173, 0.0], [-88.23565381818182, 40.09275977425051, 0.0], [-88.23565033333333, 40.0927598371293, 0.0], [-88.23564684848485, 40.09275990000809, 0.0], [-88.23564336363636, 40.09275996288687, 0.0], [-88.23563987878788, 40.092760025765664, 0.0], [-88.23563639393939, 40.092760088644454, 0.0], [-88.23563290909091, 40.09276015152324, 0.0], [-88.23562942424242, 40.09276021440203, 0.0], [-88.23562593939394, 40.09276027728082, 0.0], [-88.23562245454545, 40.0927603401596, 0.0], [-88.23561896969697, 40.09276040303839, 0.0], [-88.23561548484848, 40.09276046591718, 0.0], [-88.235612, 40.092760528795964, 0.0], [-88.23560851515151, 40.092760591674754, 0.0], [-88.23560503030302, 40.092760654553544, 0.0], [-88.23560154545454, 40.092760717432334, 0.0], [-88.23559806060605, 40.09276078031112, 0.0], [-88.23559457575757, 40.09276084318991, 0.0], [-88.23559109090908, 40.0927609060687, 0.0], [-88.2355876060606, 40.09276096894748, 0.0], [-88.23558412121211, 40.09276103182627, 0.0], [-88.23558063636364, 40.09276109470506, 0.0], [-88.23557715151514, 40.092761157583844, 0.0], [-88.23557366666667, 40.092761220462634, 0.0], [-88.23557018181818, 40.092761283341424, 0.0], [-88.2355666969697, 40.09276134622021, 0.0], [-88.2355632121212, 40.092761409099, 0.0], [-88.23555972727272, 40.09276147197779, 0.0], [-88.23555624242424, 40.09276153485657, 0.0], [-88.23555275757575, 40.09276159773536, 0.0], [-88.23554927272727, 40.09276166061415, 0.0], [-88.23554578787878, 40.092761723492934, 0.0], [-88.2355423030303, 40.092761786371724, 0.0], [-88.23553881818181, 40.092761849250515, 0.0], [-88.23553533333333, 40.0927619121293, 0.0], [-88.23553184848484, 40.09276197500809, 0.0], [-88.23552836363636, 40.09276203788688, 0.0], [-88.23552487878787, 40.09276210076566, 0.0], [-88.2355213939394, 40.09276216364445, 0.0], [-88.2355179090909, 40.09276222652324, 0.0], [-88.23551442424241, 40.092762289402025, 0.0], [-88.23551093939393, 40.092762352280815, 0.0], [-88.23550745454544, 40.092762415159605, 0.0], [-88.23550396969696, 40.09276247803839, 0.0], [-88.23550048484847, 40.09276254091718, 0.0], [-88.235497, 40.09276260379597, 0.0], [-88.2354935151515, 40.09276266667475, 0.0], [-88.23549003030303, 40.09276272955354, 0.0], [-88.23548654545453, 40.09276279243233, 0.0], [-88.23548306060606, 40.092762855311115, 0.0], [-88.23547957575757, 40.092762918189905, 0.0], [-88.23547609090909, 40.092762981068695, 0.0], [-88.2354726060606, 40.09276304394748, 0.0], [-88.2354691212121, 40.09276310682627, 0.0], [-88.23546563636363, 40.09276316970506, 0.0], [-88.23546215151514, 40.09276323258384, 0.0], [-88.23545866666666, 40.09276329546263, 0.0], [-88.23545518181817, 40.09276335834142, 0.0], [-88.23545169696969, 40.09276342122021, 0.0], [-88.2354482121212, 40.092763484098995, 0.0], [-88.23544472727272, 40.092763546977785, 0.0], [-88.23544124242423, 40.092763609856576, 0.0], [-88.23543775757575, 40.09276367273536, 0.0], [-88.23543427272726, 40.09276373561415, 0.0], [-88.23543078787878, 40.09276379849294, 0.0], [-88.23542730303029, 40.09276386137172, 0.0], [-88.2354238181818, 40.09276392425051, 0.0], [-88.23542033333332, 40.0927639871293, 0.0], [-88.23541684848483, 40.092764050008086, 0.0], [-88.23541336363635, 40.092764112886876, 0.0], [-88.23540987878786, 40.092764175765666, 0.0], [-88.23540639393939, 40.09276423864445, 0.0], [-88.2354029090909, 40.09276430152324, 0.0], [-88.23539942424242, 40.09276436440203, 0.0], [-88.23539593939392, 40.09276442728081, 0.0], [-88.23539245454545, 40.0927644901596, 0.0], [-88.23538896969696, 40.09276455303839, 0.0], [-88.23538548484848, 40.092764615917176, 0.0], [-88.23538199999999, 40.092764678795966, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235968, 40.092730121204035, 0.0], [-88.23596452427185, 40.09273016732054, 0.0], [-88.23596104854369, 40.092730213437044, 0.0], [-88.23595757281554, 40.09273025955355, 0.0], [-88.23595409708737, 40.09273030567005, 0.0], [-88.23595062135922, 40.09273035178656, 0.0], [-88.23594714563107, 40.09273039790306, 0.0], [-88.23594366990291, 40.092730444019566, 0.0], [-88.23594019417476, 40.09273049013608, 0.0], [-88.2359367184466, 40.09273053625258, 0.0], [-88.23593324271845, 40.092730582369086, 0.0], [-88.2359297669903, 40.09273062848559, 0.0], [-88.23592629126213, 40.092730674602095, 0.0], [-88.23592281553398, 40.0927307207186, 0.0], [-88.23591933980582, 40.0927307668351, 0.0], [-88.23591586407767, 40.09273081295161, 0.0], [-88.23591238834952, 40.09273085906811, 0.0], [-88.23590891262135, 40.09273090518462, 0.0], [-88.2359054368932, 40.09273095130112, 0.0], [-88.23590196116506, 40.092730997417625, 0.0], [-88.23589848543689, 40.09273104353413, 0.0], [-88.23589500970874, 40.092731089650634, 0.0], [-88.23589153398058, 40.09273113576714, 0.0], [-88.23588805825243, 40.09273118188364, 0.0], [-88.23588458252428, 40.092731228000154, 0.0], [-88.23588110679611, 40.09273127411666, 0.0], [-88.23587763106796, 40.09273132023316, 0.0], [-88.2358741553398, 40.09273136634967, 0.0], [-88.23587067961165, 40.09273141246617, 0.0], [-88.2358672038835, 40.092731458582676, 0.0], [-88.23586372815534, 40.09273150469918, 0.0], [-88.23586025242719, 40.092731550815685, 0.0], [-88.23585677669902, 40.09273159693219, 0.0], [-88.23585330097087, 40.092731643048694, 0.0], [-88.23584982524272, 40.0927316891652, 0.0], [-88.23584634951456, 40.0927317352817, 0.0], [-88.23584287378641, 40.09273178139821, 0.0], [-88.23583939805825, 40.09273182751471, 0.0], [-88.2358359223301, 40.092731873631216, 0.0], [-88.23583244660195, 40.09273191974772, 0.0], [-88.23582897087378, 40.09273196586423, 0.0], [-88.23582549514563, 40.092732011980736, 0.0], [-88.23582201941747, 40.09273205809724, 0.0], [-88.23581854368932, 40.092732104213745, 0.0], [-88.23581506796117, 40.09273215033025, 0.0], [-88.235811592233, 40.092732196446754, 0.0], [-88.23580811650486, 40.09273224256326, 0.0], [-88.2358046407767, 40.09273228867976, 0.0], [-88.23580116504854, 40.09273233479627, 0.0], [-88.23579768932039, 40.09273238091277, 0.0], [-88.23579421359223, 40.092732427029276, 0.0], [-88.23579073786408, 40.09273247314578, 0.0], [-88.23578726213593, 40.092732519262285, 0.0], [-88.23578378640777, 40.09273256537879, 0.0], [-88.23578031067962, 40.09273261149529, 0.0], [-88.23577683495145, 40.0927326576118, 0.0], [-88.2357733592233, 40.09273270372831, 0.0], [-88.23576988349515, 40.092732749844814, 0.0], [-88.23576640776699, 40.09273279596132, 0.0], [-88.23576293203884, 40.09273284207782, 0.0], [-88.23575945631067, 40.09273288819433, 0.0], [-88.23575598058252, 40.09273293431083, 0.0], [-88.23575250485437, 40.092732980427336, 0.0], [-88.23574902912621, 40.09273302654384, 0.0], [-88.23574555339806, 40.092733072660344, 0.0], [-88.2357420776699, 40.09273311877685, 0.0], [-88.23573860194175, 40.09273316489335, 0.0], [-88.2357351262136, 40.09273321100986, 0.0], [-88.23573165048543, 40.09273325712636, 0.0], [-88.23572817475728, 40.092733303242866, 0.0], [-88.23572469902912, 40.09273334935937, 0.0], [-88.23572122330097, 40.092733395475875, 0.0], [-88.23571774757282, 40.09273344159239, 0.0], [-88.23571427184466, 40.09273348770889, 0.0], [-88.2357107961165, 40.092733533825395, 0.0], [-88.23570732038836, 40.0927335799419, 0.0], [-88.2357038446602, 40.092733626058404, 0.0], [-88.23570036893204, 40.09273367217491, 0.0], [-88.23569689320388, 40.09273371829141, 0.0], [-88.23569341747573, 40.09273376440792, 0.0], [-88.23568994174758, 40.09273381052442, 0.0], [-88.23568646601942, 40.092733856640926, 0.0], [-88.23568299029127, 40.09273390275743, 0.0], [-88.2356795145631, 40.092733948873935, 0.0], [-88.23567603883495, 40.09273399499044, 0.0], [-88.2356725631068, 40.092734041106944, 0.0], [-88.23566908737864, 40.09273408722345, 0.0], [-88.23566561165049, 40.09273413333995, 0.0], [-88.23566213592233, 40.092734179456464, 0.0], [-88.23565866019418, 40.09273422557297, 0.0], [-88.23565518446603, 40.09273427168947, 0.0], [-88.23565170873786, 40.09273431780598, 0.0], [-88.23564823300971, 40.09273436392248, 0.0], [-88.23564475728155, 40.092734410038986, 0.0], [-88.2356412815534, 40.09273445615549, 0.0], [-88.23563780582525, 40.092734502271995, 0.0], [-88.23563433009708, 40.0927345483885, 0.0], [-88.23563085436894, 40.092734594505, 0.0], [-88.23562737864077, 40.09273464062151, 0.0], [-88.23562390291262, 40.09273468673801, 0.0], [-88.23562042718447, 40.09273473285452, 0.0], [-88.23561695145631, 40.09273477897102, 0.0], [-88.23561347572816, 40.092734825087526, 0.0], [-88.23561000000001, 40.09273487120403, 0.0], [-88.23560652427184, 40.09273491732054, 0.0], [-88.2356030485437, 40.092734963437046, 0.0], [-88.23559957281553, 40.09273500955355, 0.0], [-88.23559609708738, 40.092735055670055, 0.0], [-88.23559262135923, 40.09273510178656, 0.0], [-88.23558914563107, 40.09273514790306, 0.0], [-88.23558566990292, 40.09273519401957, 0.0], [-88.23558219417475, 40.09273524013607, 0.0], [-88.2355787184466, 40.09273528625258, 0.0], [-88.23557524271845, 40.09273533236908, 0.0], [-88.23557176699029, 40.092735378485585, 0.0], [-88.23556829126214, 40.09273542460209, 0.0], [-88.23556481553398, 40.092735470718594, 0.0], [-88.23556133980583, 40.0927355168351, 0.0], [-88.23555786407768, 40.0927355629516, 0.0], [-88.23555438834951, 40.092735609068114, 0.0], [-88.23555091262136, 40.09273565518462, 0.0], [-88.2355474368932, 40.09273570130112, 0.0], [-88.23554396116505, 40.09273574741763, 0.0], [-88.2355404854369, 40.09273579353413, 0.0], [-88.23553700970874, 40.092735839650636, 0.0], [-88.23553353398059, 40.09273588576714, 0.0], [-88.23553005825242, 40.092735931883645, 0.0], [-88.23552658252427, 40.09273597800015, 0.0], [-88.23552310679612, 40.092736024116654, 0.0], [-88.23551963106796, 40.09273607023316, 0.0], [-88.23551615533981, 40.09273611634966, 0.0], [-88.23551267961165, 40.09273616246617, 0.0], [-88.2355092038835, 40.09273620858267, 0.0], [-88.23550572815535, 40.092736254699176, 0.0], [-88.23550225242718, 40.09273630081568, 0.0], [-88.23549877669903, 40.09273634693219, 0.0], [-88.23549530097088, 40.092736393048696, 0.0], [-88.23549182524272, 40.0927364391652, 0.0], [-88.23548834951457, 40.092736485281705, 0.0], [-88.2354848737864, 40.09273653139821, 0.0], [-88.23548139805825, 40.092736577514714, 0.0], [-88.2354779223301, 40.09273662363122, 0.0], [-88.23547444660194, 40.09273666974772, 0.0], [-88.23547097087379, 40.09273671586423, 0.0], [-88.23546749514563, 40.09273676198073, 0.0], [-88.23546401941748, 40.092736808097236, 0.0], [-88.23546054368933, 40.09273685421374, 0.0], [-88.23545706796116, 40.092736900330245, 0.0], [-88.23545359223301, 40.09273694644675, 0.0], [-88.23545011650485, 40.09273699256325, 0.0], [-88.2354466407767, 40.09273703867976, 0.0], [-88.23544316504855, 40.09273708479627, 0.0], [-88.23543968932039, 40.092737130912774, 0.0], [-88.23543621359224, 40.09273717702928, 0.0], [-88.23543273786407, 40.09273722314578, 0.0], [-88.23542926213592, 40.09273726926229, 0.0], [-88.23542578640777, 40.09273731537879, 0.0], [-88.23542231067961, 40.092737361495296, 0.0], [-88.23541883495146, 40.0927374076118, 0.0], [-88.2354153592233, 40.092737453728304, 0.0], [-88.23541188349515, 40.09273749984481, 0.0], [-88.235408407767, 40.09273754596131, 0.0], [-88.23540493203883, 40.09273759207782, 0.0], [-88.23540145631068, 40.09273763819432, 0.0], [-88.23539798058253, 40.092737684310826, 0.0], [-88.23539450485437, 40.09273773042733, 0.0], [-88.23539102912622, 40.092737776543835, 0.0], [-88.23538755339806, 40.09273782266035, 0.0], [-88.2353840776699, 40.09273786877685, 0.0], [-88.23538060194176, 40.092737914893355, 0.0], [-88.23537712621359, 40.09273796100986, 0.0], [-88.23537365048544, 40.092738007126364, 0.0], [-88.23537017475728, 40.09273805324287, 0.0], [-88.23536669902913, 40.09273809935937, 0.0], [-88.23536322330098, 40.09273814547588, 0.0], [-88.23535974757282, 40.09273819159238, 0.0], [-88.23535627184467, 40.092738237708886, 0.0], [-88.2353527961165, 40.09273828382539, 0.0], [-88.23534932038835, 40.092738329941895, 0.0], [-88.2353458446602, 40.0927383760584, 0.0], [-88.23534236893204, 40.092738422174904, 0.0], [-88.23533889320389, 40.09273846829141, 0.0], [-88.23533541747572, 40.09273851440791, 0.0], [-88.23533194174757, 40.092738560524424, 0.0], [-88.23532846601942, 40.09273860664093, 0.0], [-88.23532499029126, 40.09273865275743, 0.0], [-88.23532151456311, 40.09273869887394, 0.0], [-88.23531803883495, 40.09273874499044, 0.0], [-88.2353145631068, 40.092738791106946, 0.0], [-88.23531108737865, 40.09273883722345, 0.0], [-88.23530761165048, 40.092738883339955, 0.0], [-88.23530413592233, 40.09273892945646, 0.0], [-88.23530066019418, 40.09273897557296, 0.0], [-88.23529718446602, 40.09273902168947, 0.0], [-88.23529370873787, 40.09273906780597, 0.0], [-88.2352902330097, 40.09273911392248, 0.0], [-88.23528675728156, 40.09273916003898, 0.0], [-88.23528328155341, 40.092739206155485, 0.0], [-88.23527980582524, 40.09273925227199, 0.0], [-88.2352763300971, 40.0927392983885, 0.0], [-88.23527285436893, 40.092739344505006, 0.0], [-88.23526937864078, 40.09273939062151, 0.0], [-88.23526590291263, 40.092739436738015, 0.0], [-88.23526242718447, 40.09273948285452, 0.0], [-88.23525895145632, 40.09273952897102, 0.0], [-88.23525547572815, 40.09273957508753, 0.0], [-88.235252, 40.09273962120403, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "east_cycle_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235252, 40.092765778795965, 0.0], [-88.23524858166245, 40.092765928066214, 0.0], [-88.2352451893423, 40.092766374694925, 0.0], [-88.23524184885692, 40.09276711528302, 0.0], [-88.23523858562922, 40.0927681441942, 0.0], [-88.2352354244941, 40.09276945359793, 0.0], [-88.23523238950955, 40.09277103352892, 0.0], [-88.23522950377338, 40.09277287196306, 0.0], [-88.23522678924763, 40.092774954908855, 0.0], [-88.23522426659129, 40.092777266513984, 0.0], [-88.23522195500314, 40.092779789185876, 0.0], [-88.23521987207562, 40.092782503725644, 0.0], [-88.2352180336609, 40.09278538947418, 0.0], [-88.23521645375034, 40.092788424469376, 0.0], [-88.23521514436788, 40.09279158561329, 0.0], [-88.23521411547866, 40.092794848847916, 0.0], [-88.23521337491304, 40.092798189338275, 0.0], [-88.23521292830716, 40.09280158166144, 0.0], [-88.23521277905992, 40.092805, 0.0], [-88.23521292830716, 40.09280841833856, 0.0], [-88.23521337491304, 40.09281181066172, 0.0], [-88.23521411547866, 40.09281515115208, 0.0], [-88.23521514436788, 40.092818414386706, 0.0], [-88.23521645375034, 40.09282157553062, 0.0], [-88.2352180336609, 40.09282461052582, 0.0], [-88.23521987207562, 40.09282749627435, 0.0], [-88.23522195500314, 40.09283021081412, 0.0], [-88.23522426659129, 40.09283273348601, 0.0], [-88.23522678924763, 40.09283504509114, 0.0], [-88.23522950377338, 40.09283712803694, 0.0], [-88.23523238950955, 40.09283896647108, 0.0], [-88.2352354244941, 40.092840546402066, 0.0], [-88.23523858562922, 40.092841855805794, 0.0], [-88.23524184885692, 40.09284288471698, 0.0], [-88.2352451893423, 40.09284362530507, 0.0], [-88.23524858166245, 40.09284407193378, 0.0], [-88.235252, 40.09284422120403, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235252, 40.09273962120403, 0.0], [-88.23524852041031, 40.092739713883205, 0.0], [-88.2352450506848, 40.09273999162174, 0.0], [-88.23524160065871, 40.092740453632366, 0.0], [-88.23523818011145, 40.09274109860547, 0.0], [-88.23523479873887, 40.09274192471282, 0.0], [-88.23523146612578, 40.09274292961273, 0.0], [-88.23522819171876, 40.092744110456735, 0.0], [-88.23522498479943, 40.092745463897614, 0.0], [-88.23522185445808, 40.09274698609893, 0.0], [-88.23521880956794, 40.092748672745856, 0.0], [-88.23521585876001, 40.092750519057454, 0.0], [-88.23521301039867, 40.092752519800165, 0.0], [-88.2352102725578, 40.09275466930273, 0.0], [-88.23520765299808, 40.09275696147217, 0.0], [-88.2352051591449, 40.09275938981113, 0.0], [-88.23520279806728, 40.09276194743627, 0.0], [-88.23520057645794, 40.09276462709777, 0.0], [-88.2351985006142, 40.092767421199895, 0.0], [-88.23519657642026, 40.0927703218225, 0.0], [-88.2351948093304, 40.09277332074351, 0.0], [-88.23519320435358, 40.092776409462225, 0.0], [-88.23519176603928, 40.09277957922339, 0.0], [-88.23519049846452, 40.09278282104202, 0.0], [-88.23518940522236, 40.09278612572891, 0.0], [-88.23518848941167, 40.09278948391661, 0.0], [-88.23518775362842, 40.092792886086045, 0.0], [-88.23518719995825, 40.09279632259346, 0.0], [-88.23518682997059, 40.09279978369776, 0.0], [-88.23518664471419, 40.09280325958813, 0.0], [-88.23518664471419, 40.092806740411866, 0.0], [-88.23518682997059, 40.09281021630224, 0.0], [-88.23518719995825, 40.09281367740654, 0.0], [-88.23518775362842, 40.09281711391395, 0.0], [-88.23518848941167, 40.092820516083385, 0.0], [-88.23518940522236, 40.09282387427109, 0.0], [-88.23519049846452, 40.092827178957975, 0.0], [-88.23519176603928, 40.09283042077661, 0.0], [-88.23519320435358, 40.09283359053777, 0.0], [-88.2351948093304, 40.092836679256486, 0.0], [-88.23519657642026, 40.0928396781775, 0.0], [-88.2351985006142, 40.0928425788001, 0.0], [-88.23520057645794, 40.092845372902225, 0.0], [-88.23520279806728, 40.092848052563724, 0.0], [-88.2352051591449, 40.09285061018887, 0.0], [-88.23520765299808, 40.09285303852783, 0.0], [-88.2352102725578, 40.09285533069727, 0.0], [-88.23521301039867, 40.09285748019983, 0.0], [-88.23521585876001, 40.09285948094254, 0.0], [-88.23521880956794, 40.09286132725414, 0.0], [-88.23522185445808, 40.092863013901066, 0.0], [-88.23522498479943, 40.09286453610238, 0.0], [-88.23522819171876, 40.09286588954326, 0.0], [-88.23523146612578, 40.092867070387264, 0.0], [-88.23523479873887, 40.09286807528718, 0.0], [-88.23523818011145, 40.092868901394525, 0.0], [-88.23524160065871, 40.09286954636763, 0.0], [-88.2352450506848, 40.092870008378256, 0.0], [-88.23524852041031, 40.09287028611679, 0.0], [-88.235252, 40.092870378795965, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "east_cycle_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235252, 40.09284422120403, 0.0], [-88.2352554356672, 40.09284456435089, 0.0], [-88.23525888820048, 40.09284460400906, 0.0], [-88.23526233084336, 40.092844339871206, 0.0], [-88.23526573691599, 40.092843773984335, 0.0], [-88.23526908002198, 40.09284291073398, 0.0], [-88.23527233425285, 40.09284175681016, 0.0], [-88.23527547438896, 40.09284032115556, 0.0], [-88.2352784760948, 40.09283861489625, 0.0], [-88.23528131610774, 40.09283665125542, 0.0], [-88.2352839724182, 40.092834445450904, 0.0], [-88.23528642444028, 40.09283201457728, 0.0], [-88.23528865317125, 40.09282937747337, 0.0], [-88.23529064133888, 40.092826554576234, 0.0], [-88.23529237353524, 40.092823567762785, 0.0], [-88.23529383633614, 40.092820440180276, 0.0], [-88.23529501840514, 40.09281719606688, 0.0], [-88.23529591058141, 40.09281386056388, 0.0], [-88.23529650595079, 40.092810459520784, 0.0], [-88.23529679989923, 40.09280701929505, 0.0], [-88.23529679014872, 40.09280356654777, 0.0], [-88.23529647677482, 40.092800128037105, 0.0], [-88.23529586220612, 40.09279673041086, 0.0], [-88.23529495120539, 40.092793400000005, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235252, 40.092870378795965, 0.0], [-88.23525538146953, 40.09287088965463, 0.0], [-88.23525878285378, 40.09287124447567, 0.0], [-88.23526219695626, 40.09287144250836, 0.0], [-88.2352656165536, 40.09287148333374, 0.0], [-88.2352690344108, 40.09287136686541, 0.0], [-88.23527244329654, 40.0928710933498, 0.0], [-88.23527583599845, 40.092870663365595, 0.0], [-88.23527920533846, 40.09287007782253, 0.0], [-88.23528254418787, 40.09286933795948, 0.0], [-88.23528584548252, 40.09286844534179, 0.0], [-88.23528910223772, 40.09286740185804, 0.0], [-88.23529230756296, 40.09286620971595, 0.0], [-88.23529545467662, 40.09286487143781, 0.0], [-88.23529853692017, 40.092863389855076, 0.0], [-88.23530154777238, 40.0928617681024, 0.0], [-88.23530448086302, 40.092860009611016, 0.0], [-88.23530732998644, 40.092858118101425, 0.0], [-88.23531008911458, 40.092856097575606, 0.0], [-88.23531275240985, 40.092853952308474, 0.0], [-88.23531531423737, 40.09285168683888, 0.0], [-88.23531776917696, 40.09284930595997, 0.0], [-88.23532011203457, 40.09284681470911, 0.0], [-88.23532233785335, 40.09284421835714, 0.0], [-88.23532444192398, 40.0928415223973, 0.0], [-88.2353264197948, 40.092838732533544, 0.0], [-88.23532826728113, 40.09283585466854, 0.0], [-88.23532998047415, 40.09283289489112, 0.0], [-88.23533155574918, 40.09282985946342, 0.0], [-88.23533298977333, 40.092826754807646, 0.0], [-88.23533427951257, 40.092823587492475, 0.0], [-88.23533542223814, 40.092820364219136, 0.0], [-88.2353364155323, 40.09281709180727, 0.0], [-88.23533725729352, 40.092813777180474, 0.0], [-88.23533794574082, 40.09281042735167, 0.0], [-88.23533847941763, 40.09280704940824, 0.0], [-88.23533885719483, 40.09280365049708, 0.0], [-88.23533907827314, 40.09280023780941, 0.0], [-88.2353391421848, 40.09279681856563, 0.0], [-88.23533904879459, 40.0927934, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "east_inter": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.2352949512054, 40.0927934, 0.0], [-88.23529380991491, 40.092790118443446, 0.0], [-88.23529238269535, 40.09278695076264, 0.0], [-88.2352906807462, 40.09278392181455, 0.0], [-88.23528871742276, 40.09278105536754, 0.0], [-88.23528650813137, 40.09277837391479, 0.0], [-88.23528407020844, 40.09277589849782, 0.0], [-88.23528142278451, 40.09277364854138, 0.0], [-88.2352785866341, 40.09277164170102, 0.0], [-88.23527558401264, 40.092769893724544, 0.0], [-88.2352724384819, 40.092768418328426, 0.0], [-88.23526917472503, 40.09276722709019, 0.0], [-88.23526581835296, 40.09276632935756, 0.0], [-88.23526239570333, 40.092765732175096, 0.0], [-88.23525893363389, 40.09276544022892, 0.0], [-88.2352554593117, 40.09276545580997, 0.0], [-88.235252, 40.092765778795965, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.23533904879459, 40.0927934, 0.0], [-88.23534004364888, 40.09279023568675, 0.0], [-88.23534130231853, 40.092787166751414, 0.0], [-88.23534281580099, 40.09278421514436, 0.0], [-88.23534457327118, 40.092781401976765, 0.0], [-88.2353465621589, 40.09277874736963, 0.0], [-88.23534876823875, 40.09277627030987, 0.0], [-88.23535117573189, 40.09277398851449, 0.0], [-88.23535376741889, 40.092771918303896, 0.0], [-88.23535652476285, 40.092770074485124, 0.0], [-88.23535942804206, 40.092768470245986, 0.0], [-88.23536245649099, 40.09276711706069, 0.0], [-88.23536558844886, 40.09276602460781, 0.0], [-88.23536880151454, 40.09276520070105, 0.0], [-88.23537207270677, 40.09276465123335, 0.0], [-88.23537537862856, 40.09276438013474, 0.0], [-88.23537869563452, 40.09276438934423, 0.0], [-88.23538199999999, 40.092764678795966, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "west_cycle_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235968, 40.09273012120404, 0.0], [-88.2359714630335, 40.092730204925324, 0.0], [-88.23597491797813, 40.09273045585916, 0.0], [-88.23597835676476, 40.09273087341949, 0.0], [-88.23598177136202, 40.092731456631086, 0.0], [-88.235985153795, 40.092732204131835, 0.0], [-88.23598849616391, 40.092733114175935, 0.0], [-88.23599179066255, 40.09273418463794, 0.0], [-88.23599502959652, 40.09273541301775, 0.0], [-88.23599820540117, 40.09273679644646, 0.0], [-88.23600131065933, 40.09273833169301, 0.0], [-88.23600433811856, 40.0927400151718, 0.0], [-88.23600728070814, 40.092741842951, 0.0], [-88.23601013155555, 40.092743810761775, 0.0], [-88.23601288400255, 40.092745914008255, 0.0], [-88.23601553162071, 40.092748147778224, 0.0], [-88.23601806822643, 40.09275050685465, 0.0], [-88.2360204878954, 40.092752985727834, 0.0], [-88.23602278497641, 40.09275557860829, 0.0], [-88.23602495410454, 40.09275827944026, 0.0], [-88.23602699021373, 40.092761081915874, 0.0], [-88.23602888854859, 40.09276397948986, 0.0], [-88.23603064467548, 40.09276696539484, 0.0], [-88.23603225449293, 40.092770032657135, 0.0], [-88.23603371424115, 40.09277317411306, 0.0], [-88.23603502051085, 40.092776382425654, 0.0], [-88.2360361702512, 40.09277965010179, 0.0], [-88.23603716077695, 40.09278296950971, 0.0], [-88.23603798977469, 40.092786332896836, 0.0], [-88.23603865530826, 40.092789732407866, 0.0], [-88.2360391558233, 40.09279316010314, 0.0], [-88.23603949015086, 40.09279660797717, 0.0], [-88.23603965751006, 40.09280006797733, 0.0], [-88.23603965751006, 40.09280353202268, 0.0], [-88.23603949015086, 40.09280699202284, 0.0], [-88.2360391558233, 40.092810439896866, 0.0], [-88.23603865530826, 40.09281386759214, 0.0], [-88.23603798977469, 40.09281726710317, 0.0], [-88.23603716077695, 40.092820630490294, 0.0], [-88.2360361702512, 40.09282394989822, 0.0], [-88.23603502051085, 40.09282721757435, 0.0], [-88.23603371424115, 40.092830425886945, 0.0], [-88.23603225449293, 40.09283356734287, 0.0], [-88.23603064467548, 40.09283663460517, 0.0], [-88.23602888854859, 40.09283962051015, 0.0], [-88.23602699021373, 40.09284251808413, 0.0], [-88.23602495410454, 40.092845320559746, 0.0], [-88.23602278497641, 40.09284802139172, 0.0], [-88.2360204878954, 40.09285061427217, 0.0], [-88.23601806822643, 40.09285309314536, 0.0], [-88.23601553162071, 40.092855452221784, 0.0], [-88.23601288400255, 40.09285768599175, 0.0], [-88.23601013155555, 40.09285978923823, 0.0], [-88.23600728070814, 40.09286175704901, 0.0], [-88.23600433811856, 40.09286358482821, 0.0], [-88.23600131065933, 40.092865268306994, 0.0], [-88.23599820540117, 40.09286680355355, 0.0], [-88.23599502959652, 40.09286818698226, 0.0], [-88.23599179066255, 40.09286941536207, 0.0], [-88.23598849616391, 40.09287048582407, 0.0], [-88.235985153795, 40.09287139586817, 0.0], [-88.23598177136202, 40.09287214336892, 0.0], [-88.23597835676476, 40.09287272658052, 0.0], [-88.23597491797813, 40.092873144140846, 0.0], [-88.2359714630335, 40.09287339507468, 0.0], [-88.235968, 40.092873478795966, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235968, 40.09275627879597, 0.0], [-88.23597140178954, 40.09275640610273, 0.0], [-88.23597478455345, 40.092756787268556, 0.0], [-88.2359781293741, 40.09275742016183, 0.0], [-88.23598141754604, 40.092758301243194, 0.0], [-88.23598463068063, 40.092759425585314, 0.0], [-88.23598775080886, 40.09276078690047, 0.0], [-88.23599076048183, 40.09276237757569, 0.0], [-88.23599364286838, 40.09276418871534, 0.0], [-88.23599638184916, 40.09276621019088, 0.0], [-88.2359989621068, 40.09276843069749, 0.0], [-88.23600136921156, 40.09277083781729, 0.0], [-88.23600358970205, 40.092773418088804, 0.0], [-88.2360056111605, 40.092776157082206, 0.0], [-88.23600742228214, 40.09277903948007, 0.0], [-88.23600901293855, 40.09278204916299, 0.0], [-88.23601037423421, 40.09278516929972, 0.0], [-88.23601149855627, 40.09278838244133, 0.0], [-88.2360123796171, 40.09279167061877, 0.0], [-88.23601301248947, 40.09279501544337, 0.0], [-88.23601339363417, 40.092798398209666, 0.0], [-88.23601352091967, 40.092801800000004, 0.0], [-88.23601339363417, 40.09280520179034, 0.0], [-88.23601301248947, 40.092808584556636, 0.0], [-88.2360123796171, 40.092811929381234, 0.0], [-88.23601149855627, 40.09281521755868, 0.0], [-88.23601037423421, 40.09281843070029, 0.0], [-88.23600901293855, 40.092821550837016, 0.0], [-88.23600742228214, 40.09282456051994, 0.0], [-88.2360056111605, 40.0928274429178, 0.0], [-88.23600358970205, 40.092830181911204, 0.0], [-88.23600136921156, 40.09283276218272, 0.0], [-88.2359989621068, 40.09283516930252, 0.0], [-88.23599638184916, 40.09283738980913, 0.0], [-88.23599364286838, 40.092839411284665, 0.0], [-88.23599076048183, 40.09284122242432, 0.0], [-88.23598775080886, 40.09284281309954, 0.0], [-88.23598463068063, 40.092844174414694, 0.0], [-88.23598141754604, 40.092845298756814, 0.0], [-88.2359781293741, 40.092846179838176, 0.0], [-88.23597478455345, 40.09284681273145, 0.0], [-88.23597140178954, 40.09284719389728, 0.0], [-88.235968, 40.09284732120404, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "west_cycle_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.235968, 40.092873478795966, 0.0], [-88.23596451940529, 40.09287359409049, 0.0], [-88.23596103707816, 40.092873559016645, 0.0], [-88.23595755951179, 40.092873373639826, 0.0], [-88.23595409319047, 40.0928730383057, 0.0], [-88.23595064457756, 40.09287255363952, 0.0], [-88.23594722010333, 40.092871920545015, 0.0], [-88.23594382615309, 40.09287114020265, 0.0], [-88.23594046905524, 40.09287021406744, 0.0], [-88.23593715506944, 40.09286914386629, 0.0], [-88.23593389037497, 40.09286793159469, 0.0], [-88.23593068105922, 40.09286657951306, 0.0], [-88.23592753310626, 40.09286509014249, 0.0], [-88.23592445238585, 40.09286346626008, 0.0], [-88.23592144464227, 40.09286171089373, 0.0], [-88.23591851548382, 40.09285982731651, 0.0], [-88.23591567037221, 40.09285781904055, 0.0], [-88.23591291461246, 40.092855689810506, 0.0], [-88.23591025334298, 40.092853443596546, 0.0], [-88.235907691526, 40.092851084586975, 0.0], [-88.23590523393828, 40.09284861718044, 0.0], [-88.23590288516229, 40.09284604597766, 0.0], [-88.23590064957756, 40.09284337577293, 0.0], [-88.23589853135256, 40.092840611545135, 0.0], [-88.23589653443698, 40.092837758448475, 0.0], [-88.23589466255426, 40.09283482180285, 0.0], [-88.23589291919474, 40.09283180708396, 0.0], [-88.23589130760911, 40.09282871991307, 0.0], [-88.23588983080231, 40.092825566046535, 0.0], [-88.23588849152804, 40.092822351365086, 0.0], [-88.23588729228351, 40.09281908186284, 0.0], [-88.23588623530482, 40.09281576363613, 0.0], [-88.23588532256285, 40.09281240287216, 0.0], [-88.2358845557595, 40.092809005837424, 0.0], [-88.23588393632454, 40.092805578866056, 0.0], [-88.23588346541298, 40.09280212834802, 0.0], [-88.2358831439029, 40.09279866071718, 0.0], [-88.23588297239377, 40.092795182439296, 0.0], [-88.23588295120541, 40.0927917, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.235968, 40.092847321204026, 0.0], [-88.23596461311375, 40.09284693910652, 0.0], [-88.23596126431049, 40.09284630466685, 0.0], [-88.23595797236418, 40.0928454214418, 0.0], [-88.23595475573005, 40.09284429438288, 0.0], [-88.23595163244109, 40.092842929808576, 0.0], [-88.235948620007, 40.092841335368924, 0.0], [-88.235945735316, 40.09283952000262, 0.0], [-88.23594299454015, 40.09283749388693, 0.0], [-88.23594041304473, 40.09283526838061, 0.0], [-88.23593800530206, 40.09283285596022, 0.0], [-88.23593578481032, 40.0928302701502, 0.0], [-88.235933764018, 40.092827525447056, 0.0], [-88.23593195425399, 40.09282463723806, 0.0], [-88.23593036566415, 40.09282162171501, 0.0], [-88.23592900715437, 40.09281849578344, 0.0], [-88.2359278863407, 40.09281527696787, 0.0], [-88.23592700950663, 40.09281198331352, 0.0], [-88.23592638156781, 40.09280863328519, 0.0], [-88.2359260060446, 40.092805245663705, 0.0], [-88.23592588504223, 40.09280183944067, 0.0], [-88.23592601923907, 40.092798433711934, 0.0], [-88.23592640788279, 40.09279504757062, 0.0], [-88.23592704879458, 40.0927917, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "west_inter": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-88.23588295120543, 40.0927917, 0.0], [-88.23588207420826, 40.09278840946364, 0.0], [-88.23588095367528, 40.09278519369633, 0.0], [-88.23587959587744, 40.092782070694795, 0.0], [-88.23587800841354, 40.09277905793661, 0.0], [-88.23587620016764, 40.09277617228238, 0.0], [-88.23587418125942, 40.09277342988139, 0.0], [-88.23587196298752, 40.092770846081216, 0.0], [-88.23586955776628, 40.09276843534185, 0.0], [-88.23586697905625, 40.09276621115476, 0.0], [-88.23586424128898, 40.09276418596739, 0.0], [-88.23586135978609, 40.0927623711135, 0.0], [-88.23585835067364, 40.09276077674975, 0.0], [-88.23585523079181, 40.09275941179883, 0.0], [-88.23585201760076, 40.09275828389956, 0.0], [-88.23584872908276, 40.09275739936413, 0.0], [-88.2358453836417, 40.09275676314275, 0.0], [-88.235842, 40.09275637879596, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-88.23592704879458, 40.0927917, 0.0], [-88.23592791964276, 40.09278840288894, 0.0], [-88.23592903487396, 40.092785180222776, 0.0], [-88.23593038822938, 40.09278205008748, 0.0], [-88.23593197211379, 40.09277903004973, 0.0], [-88.2359337776383, 40.09277613705835, 0.0], [-88.23593579467004, 40.09277338734913, 0.0], [-88.23593801188922, 40.092770796353776, 0.0], [-88.23594041685254, 40.09276837861325, 0.0], [-88.23594299606307, 40.0927661476962, 0.0], [-88.23594573504597, 40.092764116122794, 0.0], [-88.23594861842976, 40.092762295294456, 0.0], [-88.23595163003253, 40.092760695429895, 0.0], [-88.23595475295282, 40.092759325507735, 0.0], [-88.23595796966443, 40.09275819321615, 0.0], [-88.2359612621148, 40.092757304909675, 0.0], [-88.23596461182632, 40.0927566655736, 0.0], [-88.235968, 40.09275627879597, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}}, "regions": {"lane0_parallel_parking_lot_1": {"type": 2, "outline": [[-88.2357695367405, 40.09276103839462], [-88.23568869116033, 40.09276103839462], [-88.23568869116033, 40.09278458022736], [-88.2357695367405, 40.09278458022736]], "crossable": true}, "lane0_parallel_parking_lot_2": {"type": 2, "outline": [[-88.23568869116033, 40.09276103839462], [-88.23560784558016, 40.09276103839462], [-88.23560784558016, 40.09278458022736], [-88.23568869116033, 40.09278458022736]], "crossable": true}, "lane0_parallel_parking_lot_3": {"type": 2, "outline": [[-88.23560784558018, 40.09276103839462], [-88.235527, 40.09276103839462], [-88.235527, 40.09278458022736], [-88.23560784558018, 40.09278458022736]], "crossable": true}, "lane0_parallel_parking_lot_4": {"type": 2, "outline": [[-88.235527, 40.09276103839462], [-88.23544615441983, 40.09276103839462], [-88.23544615441983, 40.09278458022736], [-88.235527, 40.09278458022736]], "crossable": true}}, "signs": {}, "static_obstacles": {}, "connections": []}} \ No newline at end of file diff --git a/GEMstack/knowledge/routes/summoning_roadgraph_sim.json b/GEMstack/knowledge/routes/summoning_roadgraph_sim.json index c134008c7..35827d640 100644 --- a/GEMstack/knowledge/routes/summoning_roadgraph_sim.json +++ b/GEMstack/knowledge/routes/summoning_roadgraph_sim.json @@ -1 +1 @@ -{"type": "Roadgraph", "data": {"frame": 0, "curves": {}, "lanes": {"lane_0": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[0.0, 1.49, 0.0], [0.4, 1.49, 0.0], [0.8, 1.49, 0.0], [1.2, 1.49, 0.0], [1.6, 1.49, 0.0], [2.0, 1.49, 0.0], [2.4, 1.49, 0.0], [2.8000000000000003, 1.49, 0.0], [3.2, 1.49, 0.0], [3.5999999999999996, 1.49, 0.0], [4.0, 1.49, 0.0], [4.4, 1.49, 0.0], [4.8, 1.49, 0.0], [5.2, 1.49, 0.0], [5.6000000000000005, 1.49, 0.0], [6.0, 1.49, 0.0], [6.4, 1.49, 0.0], [6.8, 1.49, 0.0], [7.199999999999999, 1.49, 0.0], [7.6000000000000005, 1.49, 0.0], [8.0, 1.49, 0.0], [8.4, 1.49, 0.0], [8.8, 1.49, 0.0], [9.2, 1.49, 0.0], [9.6, 1.49, 0.0], [10.0, 1.49, 0.0], [10.4, 1.49, 0.0], [10.799999999999999, 1.49, 0.0], [11.200000000000001, 1.49, 0.0], [11.6, 1.49, 0.0], [12.0, 1.49, 0.0], [12.4, 1.49, 0.0], [12.8, 1.49, 0.0], [13.2, 1.49, 0.0], [13.6, 1.49, 0.0], [14.0, 1.49, 0.0], [14.399999999999999, 1.49, 0.0], [14.8, 1.49, 0.0], [15.200000000000001, 1.49, 0.0], [15.600000000000001, 1.49, 0.0], [16.0, 1.49, 0.0], [16.4, 1.49, 0.0], [16.8, 1.49, 0.0], [17.2, 1.49, 0.0], [17.6, 1.49, 0.0], [18.0, 1.49, 0.0], [18.4, 1.49, 0.0], [18.8, 1.49, 0.0], [19.2, 1.49, 0.0], [19.6, 1.49, 0.0], [20.0, 1.49, 0.0], [20.400000000000002, 1.49, 0.0], [20.8, 1.49, 0.0], [21.2, 1.49, 0.0], [21.599999999999998, 1.49, 0.0], [22.0, 1.49, 0.0], [22.400000000000002, 1.49, 0.0], [22.8, 1.49, 0.0], [23.2, 1.49, 0.0], [23.599999999999998, 1.49, 0.0], [24.0, 1.49, 0.0], [24.400000000000002, 1.49, 0.0], [24.8, 1.49, 0.0], [25.2, 1.49, 0.0], [25.6, 1.49, 0.0], [26.0, 1.49, 0.0], [26.4, 1.49, 0.0], [26.8, 1.49, 0.0], [27.2, 1.49, 0.0], [27.6, 1.49, 0.0], [28.0, 1.49, 0.0], [28.4, 1.49, 0.0], [28.799999999999997, 1.49, 0.0], [29.200000000000003, 1.49, 0.0], [29.6, 1.49, 0.0], [30.0, 1.49, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[0.0, -1.5, 0.0], [0.4, -1.5, 0.0], [0.8, -1.5, 0.0], [1.2, -1.5, 0.0], [1.6, -1.5, 0.0], [2.0, -1.5, 0.0], [2.4, -1.5, 0.0], [2.8000000000000003, -1.5, 0.0], [3.2, -1.5, 0.0], [3.5999999999999996, -1.5, 0.0], [4.0, -1.5, 0.0], [4.4, -1.5, 0.0], [4.8, -1.5, 0.0], [5.2, -1.5, 0.0], [5.6000000000000005, -1.5, 0.0], [6.0, -1.5, 0.0], [6.4, -1.5, 0.0], [6.8, -1.5, 0.0], [7.199999999999999, -1.5, 0.0], [7.6000000000000005, -1.5, 0.0], [8.0, -1.5, 0.0], [8.4, -1.5, 0.0], [8.8, -1.5, 0.0], [9.2, -1.5, 0.0], [9.6, -1.5, 0.0], [10.0, -1.5, 0.0], [10.4, -1.5, 0.0], [10.799999999999999, -1.5, 0.0], [11.200000000000001, -1.5, 0.0], [11.6, -1.5, 0.0], [12.0, -1.5, 0.0], [12.4, -1.5, 0.0], [12.8, -1.5, 0.0], [13.2, -1.5, 0.0], [13.6, -1.5, 0.0], [14.0, -1.5, 0.0], [14.399999999999999, -1.5, 0.0], [14.8, -1.5, 0.0], [15.200000000000001, -1.5, 0.0], [15.600000000000001, -1.5, 0.0], [16.0, -1.5, 0.0], [16.4, -1.5, 0.0], [16.8, -1.5, 0.0], [17.2, -1.5, 0.0], [17.6, -1.5, 0.0], [18.0, -1.5, 0.0], [18.4, -1.5, 0.0], [18.8, -1.5, 0.0], [19.2, -1.5, 0.0], [19.6, -1.5, 0.0], [20.0, -1.5, 0.0], [20.400000000000002, -1.5, 0.0], [20.8, -1.5, 0.0], [21.2, -1.5, 0.0], [21.599999999999998, -1.5, 0.0], [22.0, -1.5, 0.0], [22.400000000000002, -1.5, 0.0], [22.8, -1.5, 0.0], [23.2, -1.5, 0.0], [23.599999999999998, -1.5, 0.0], [24.0, -1.5, 0.0], [24.400000000000002, -1.5, 0.0], [24.8, -1.5, 0.0], [25.2, -1.5, 0.0], [25.6, -1.5, 0.0], [26.0, -1.5, 0.0], [26.4, -1.5, 0.0], [26.8, -1.5, 0.0], [27.2, -1.5, 0.0], [27.6, -1.5, 0.0], [28.0, -1.5, 0.0], [28.4, -1.5, 0.0], [28.799999999999997, -1.5, 0.0], [29.200000000000003, -1.5, 0.0], [29.6, -1.5, 0.0], [30.0, -1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "arc_1_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[30.0, 1.5, 0.0], [30.392418775380857, 1.5128464605683796, 0.0], [30.78315715332031, 1.551330831757138, 0.0], [31.17054193209677, 1.6152883175806174, 0.0], [31.552914270615126, 1.70444504226559, 0.0], [31.92863679181897, 1.818419223029366, 0.0], [32.29610059419054, 1.95672280493228, 0.0], [32.65373214131401, 2.1187635508038696, 0.0], [33.0, 2.303847577293368, 0.0], [33.333421398117615, 2.511182326184729, 0.0], [33.652568574052324, 2.7398799582525886, 0.0], [33.95607489060041, 2.9889611551261357, 0.0], [34.242640687119284, 3.2573593128807152, 0.0], [34.511038844873866, 3.543925109399586, 0.0], [34.76012004174741, 3.847431425947676, 0.0], [34.98881767381527, 4.166578601882386, 0.0], [35.19615242270663, 4.5, 0.0], [35.38123644919613, 4.846267858685992, 0.0], [35.543277195067716, 5.203899405809461, 0.0], [35.681580776970634, 5.57136320818103, 0.0], [35.79555495773441, 5.947085729384875, 0.0], [35.88471168241938, 6.32945806790323, 0.0], [35.94866916824286, 6.71684284667969, 0.0], [35.98715353943162, 7.107581224619141, 0.0], [36.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[30.0, -1.5, 0.0], [30.392574486288023, -1.4914339942367203, 0.0], [30.784401684728923, -1.4657522828257097, 0.0], [31.174735729980465, -1.423003752364293, 0.0], [31.562833599002374, -1.3632697771098723, 0.0], [31.947956525442926, -1.2866640640793996, 0.0], [32.329371405922686, -1.1933324366016151, 0.0], [32.70635219553846, -1.0834525567340414, 0.0], [33.07818128993102, -0.9572335870731745, 0.0], [33.44415089128581, -0.81491579260158, 0.0], [33.803564355666296, -0.6567700833298495, 0.0], [34.155737519115306, -0.4830974986039953, 0.0], [34.5, -0.29422863405994804, 0.0], [34.835696475121416, -0.09052301231597149, 0.0], [35.162187927159415, 0.1276316013990737, 0.0], [35.47885286107849, 0.35981993737888374, 0.0], [35.785088487178854, 0.605600011929198, 0.0], [36.080311868540946, 0.8645039687088829, 0.0], [36.36396103067893, 1.1360389693210724, 0.0], [36.63549603129111, 1.4196881314590577, 0.0], [36.8943999880708, 1.7149115128211463, 0.0], [37.14018006262111, 2.0211471389215143, 0.0], [37.372368398600926, 2.3378120728405856, 0.0], [37.59052301231597, 2.6643035248785853, 0.0], [37.79422863405995, 3.0, 0.0], [37.983097498603996, 3.3442624808846935, 0.0], [38.156770083329846, 3.6964356443337056, 0.0], [38.31491579260158, 4.055849108714192, 0.0], [38.457233587073176, 4.421818710068981, 0.0], [38.583452556734045, 4.793647804461541, 0.0], [38.693332436601615, 5.170628594077314, 0.0], [38.7866640640794, 5.552043474557074, 0.0], [38.86326977710987, 5.937166400997627, 0.0], [38.923003752364295, 6.325264270019535, 0.0], [38.96575228282571, 6.715598315271075, 0.0], [38.99143399423672, 7.107425513711976, 0.0], [39.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "arc_1_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[36.0, 7.5, 0.0], [35.97433458412143, 7.891578576660155, 0.0], [35.897777478867205, 8.276457135307563, 0.0], [35.77163859753386, 8.648050297095269, 0.0], [35.598076211353316, 9.0, 0.0], [35.38006002087371, 9.326284287026162, 0.0], [35.121320343559645, 9.621320343559642, 0.0], [34.82628428702616, 9.880060020873707, 0.0], [34.5, 10.098076211353316, 0.0], [34.14805029709527, 10.27163859753386, 0.0], [33.77645713530756, 10.397777478867205, 0.0], [33.39157857666015, 10.474334584121431, 0.0], [33.0, 10.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[39.0, 7.5, 0.0], [38.98715353943162, 7.892418775380858, 0.0], [38.94866916824286, 8.28315715332031, 0.0], [38.88471168241938, 8.67054193209677, 0.0], [38.79555495773441, 9.052914270615124, 0.0], [38.681580776970634, 9.428636791818969, 0.0], [38.543277195067716, 9.796100594190538, 0.0], [38.38123644919613, 10.153732141314007, 0.0], [38.19615242270663, 10.5, 0.0], [37.98881767381527, 10.833421398117613, 0.0], [37.76012004174741, 11.152568574052324, 0.0], [37.511038844873866, 11.456074890600412, 0.0], [37.242640687119284, 11.742640687119284, 0.0], [36.95607489060041, 12.011038844873863, 0.0], [36.652568574052324, 12.260120041747411, 0.0], [36.333421398117615, 12.488817673815271, 0.0], [36.0, 12.696152422706632, 0.0], [35.65373214131401, 12.88123644919613, 0.0], [35.29610059419054, 13.04327719506772, 0.0], [34.92863679181897, 13.181580776970634, 0.0], [34.552914270615126, 13.29555495773441, 0.0], [34.17054193209677, 13.384711682419383, 0.0], [33.78315715332031, 13.448669168242862, 0.0], [33.39241877538086, 13.48715353943162, 0.0], [33.0, 13.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_1_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[33.0, 10.5, 0.0], [32.60842142333985, 10.474334584121431, 0.0], [32.22354286469244, 10.397777478867205, 0.0], [31.85194970290473, 10.27163859753386, 0.0], [31.5, 10.098076211353316, 0.0], [31.173715712973838, 9.880060020873707, 0.0], [30.878679656440358, 9.621320343559642, 0.0], [30.619939979126293, 9.326284287026162, 0.0], [30.401923788646684, 9.0, 0.0], [30.228361402466142, 8.64805029709527, 0.0], [30.102222521132795, 8.276457135307563, 0.0], [30.02566541587857, 7.891578576660155, 0.0], [30.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[33.0, 13.5, 0.0], [32.625, 13.5, 0.0], [32.25, 13.5, 0.0], [31.875, 13.5, 0.0], [31.5, 13.5, 0.0], [31.125, 13.5, 0.0], [30.75, 13.5, 0.0], [30.375, 13.5, 0.0], [30.0, 13.5, 0.0], [29.625, 13.5, 0.0], [29.25, 13.5, 0.0], [28.875, 13.5, 0.0], [28.5, 13.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_1_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[27.0, 7.5, 0.0], [26.97433458412143, 7.891578576660155, 0.0], [26.897777478867205, 8.276457135307563, 0.0], [26.771638597533858, 8.648050297095269, 0.0], [26.598076211353316, 9.0, 0.0], [26.380060020873707, 9.326284287026162, 0.0], [26.121320343559642, 9.621320343559642, 0.0], [25.826284287026162, 9.880060020873707, 0.0], [25.5, 10.098076211353316, 0.0], [25.14805029709527, 10.27163859753386, 0.0], [24.776457135307563, 10.397777478867205, 0.0], [24.391578576660155, 10.474334584121431, 0.0], [24.0, 10.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[28.5, 13.5, 0.0], [28.125, 13.5, 0.0], [27.75, 13.5, 0.0], [27.375, 13.5, 0.0], [27.0, 13.5, 0.0], [26.625, 13.5, 0.0], [26.25, 13.5, 0.0], [25.875, 13.5, 0.0], [25.5, 13.5, 0.0], [25.125, 13.5, 0.0], [24.75, 13.5, 0.0], [24.375, 13.5, 0.0], [24.0, 13.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_1_3": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[30.0, 7.5, 0.0], [29.98715353943162, 7.107581224619142, 0.0], [29.948669168242862, 6.716842846679691, 0.0], [29.884711682419383, 6.32945806790323, 0.0], [29.79555495773441, 5.947085729384876, 0.0], [29.681580776970634, 5.571363208181031, 0.0], [29.54327719506772, 5.203899405809461, 0.0], [29.38123644919613, 4.846267858685993, 0.0], [29.196152422706632, 4.5, 0.0], [28.98881767381527, 4.166578601882387, 0.0], [28.760120041747413, 3.8474314259476765, 0.0], [28.511038844873866, 3.543925109399587, 0.0], [28.242640687119284, 3.2573593128807152, 0.0], [27.956074890600412, 2.9889611551261366, 0.0], [27.652568574052324, 2.7398799582525886, 0.0], [27.333421398117615, 2.511182326184729, 0.0], [27.0, 2.303847577293368, 0.0], [26.65373214131401, 2.1187635508038705, 0.0], [26.296100594190538, 1.95672280493228, 0.0], [25.92863679181897, 1.818419223029366, 0.0], [25.552914270615126, 1.7044450422655908, 0.0], [25.17054193209677, 1.6152883175806174, 0.0], [24.78315715332031, 1.551330831757138, 0.0], [24.39241877538086, 1.5128464605683796, 0.0], [24.0, 1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[27.0, 7.5, 0.0], [26.97433458412143, 7.108421423339845, 0.0], [26.897777478867205, 6.723542864692438, 0.0], [26.771638597533858, 6.351949702904731, 0.0], [26.598076211353316, 6.0, 0.0], [26.380060020873707, 5.673715712973838, 0.0], [26.121320343559642, 5.378679656440358, 0.0], [25.826284287026162, 5.119939979126294, 0.0], [25.5, 4.901923788646684, 0.0], [25.14805029709527, 4.72836140246614, 0.0], [24.776457135307563, 4.602222521132795, 0.0], [24.391578576660155, 4.525665415878569, 0.0], [24.0, 4.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "lane_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[24.0, 1.5, 0.0], [23.6, 1.5, 0.0], [23.2, 1.5, 0.0], [22.8, 1.5, 0.0], [22.4, 1.5, 0.0], [22.0, 1.5, 0.0], [21.6, 1.5, 0.0], [21.2, 1.5, 0.0], [20.8, 1.5, 0.0], [20.4, 1.5, 0.0], [20.0, 1.5, 0.0], [19.6, 1.5, 0.0], [19.2, 1.5, 0.0], [18.8, 1.5, 0.0], [18.4, 1.5, 0.0], [18.0, 1.5, 0.0], [17.6, 1.5, 0.0], [17.2, 1.5, 0.0], [16.8, 1.5, 0.0], [16.4, 1.5, 0.0], [16.0, 1.5, 0.0], [15.6, 1.5, 0.0], [15.200000000000001, 1.5, 0.0], [14.8, 1.5, 0.0], [14.4, 1.5, 0.0], [14.0, 1.5, 0.0], [13.600000000000001, 1.5, 0.0], [13.200000000000001, 1.5, 0.0], [12.8, 1.5, 0.0], [12.399999999999999, 1.5, 0.0], [12.0, 1.5, 0.0], [11.6, 1.5, 0.0], [11.2, 1.5, 0.0], [10.8, 1.5, 0.0], [10.4, 1.5, 0.0], [10.0, 1.5, 0.0], [9.6, 1.5, 0.0], [9.200000000000001, 1.5, 0.0], [8.8, 1.5, 0.0], [8.399999999999999, 1.5, 0.0], [8.0, 1.5, 0.0], [7.600000000000001, 1.5, 0.0], [7.199999999999999, 1.5, 0.0], [6.800000000000001, 1.5, 0.0], [6.400000000000002, 1.5, 0.0], [6.0, 1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[24.0, 4.5, 0.0], [23.6, 4.5, 0.0], [23.2, 4.5, 0.0], [22.8, 4.5, 0.0], [22.4, 4.5, 0.0], [22.0, 4.5, 0.0], [21.6, 4.5, 0.0], [21.2, 4.5, 0.0], [20.8, 4.5, 0.0], [20.4, 4.5, 0.0], [20.0, 4.5, 0.0], [19.6, 4.5, 0.0], [19.2, 4.5, 0.0], [18.8, 4.5, 0.0], [18.4, 4.5, 0.0], [18.0, 4.5, 0.0], [17.6, 4.5, 0.0], [17.2, 4.5, 0.0], [16.8, 4.5, 0.0], [16.4, 4.5, 0.0], [16.0, 4.5, 0.0], [15.6, 4.5, 0.0], [15.200000000000001, 4.5, 0.0], [14.8, 4.5, 0.0], [14.4, 4.5, 0.0], [14.0, 4.5, 0.0], [13.600000000000001, 4.5, 0.0], [13.200000000000001, 4.5, 0.0], [12.8, 4.5, 0.0], [12.399999999999999, 4.5, 0.0], [12.0, 4.5, 0.0], [11.6, 4.5, 0.0], [11.2, 4.5, 0.0], [10.8, 4.5, 0.0], [10.4, 4.5, 0.0], [10.0, 4.5, 0.0], [9.6, 4.5, 0.0], [9.200000000000001, 4.5, 0.0], [8.8, 4.5, 0.0], [8.399999999999999, 4.5, 0.0], [8.0, 4.5, 0.0], [7.600000000000001, 4.5, 0.0], [7.199999999999999, 4.5, 0.0], [6.800000000000001, 4.5, 0.0], [6.400000000000002, 4.5, 0.0], [6.0, 4.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_2_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[6.0, 1.5, 0.0], [5.6075812246191425, 1.5128464605683796, 0.0], [5.216842846679691, 1.551330831757138, 0.0], [4.82945806790323, 1.6152883175806174, 0.0], [4.4470857293848765, 1.70444504226559, 0.0], [4.0713632081810305, 1.818419223029366, 0.0], [3.7038994058094614, 1.95672280493228, 0.0], [3.346267858685993, 2.1187635508038696, 0.0], [3.0000000000000013, 2.303847577293368, 0.0], [2.6665786018823883, 2.511182326184727, 0.0], [2.347431425947676, 2.7398799582525886, 0.0], [2.043925109399587, 2.9889611551261357, 0.0], [1.7573593128807152, 3.2573593128807143, 0.0], [1.4889611551261366, 3.543925109399586, 0.0], [1.2398799582525895, 3.8474314259476747, 0.0], [1.0111823261847297, 4.166578601882385, 0.0], [0.8038475772933689, 4.499999999999998, 0.0], [0.6187635508038705, 4.846267858685993, 0.0], [0.45672280493228, 5.2038994058094605, 0.0], [0.3184192230293661, 5.57136320818103, 0.0], [0.2044450422655908, 5.947085729384874, 0.0], [0.11528831758061742, 6.329458067903229, 0.0], [0.05133083175713793, 6.716842846679691, 0.0], [0.01284646056837957, 7.107581224619139, 0.0], [0.0, 7.499999999999999, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[6.0, 4.5, 0.0], [5.608421423339845, 4.525665415878569, 0.0], [5.223542864692438, 4.602222521132795, 0.0], [4.851949702904731, 4.72836140246614, 0.0], [4.500000000000001, 4.901923788646684, 0.0], [4.173715712973838, 5.119939979126294, 0.0], [3.8786796564403576, 5.378679656440357, 0.0], [3.6199399791262947, 5.673715712973838, 0.0], [3.4019237886466844, 5.999999999999999, 0.0], [3.22836140246614, 6.35194970290473, 0.0], [3.1022225211327954, 6.723542864692437, 0.0], [3.025665415878569, 7.108421423339845, 0.0], [3.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_2_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[6.0, 10.5, 0.0], [5.608421423339845, 10.474334584121431, 0.0], [5.223542864692438, 10.397777478867205, 0.0], [4.851949702904731, 10.27163859753386, 0.0], [4.500000000000001, 10.098076211353316, 0.0], [4.173715712973838, 9.880060020873707, 0.0], [3.8786796564403576, 9.621320343559642, 0.0], [3.6199399791262947, 9.326284287026162, 0.0], [3.4019237886466844, 9.0, 0.0], [3.22836140246614, 8.64805029709527, 0.0], [3.1022225211327954, 8.276457135307563, 0.0], [3.025665415878569, 7.891578576660155, 0.0], [3.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[6.0, 13.5, 0.0], [5.625, 13.5, 0.0], [5.25, 13.5, 0.0], [4.875, 13.5, 0.0], [4.5, 13.5, 0.0], [4.125, 13.5, 0.0], [3.75, 13.5, 0.0], [3.375, 13.5, 0.0], [3.0, 13.5, 0.0], [2.625, 13.5, 0.0], [2.25, 13.5, 0.0], [1.875, 13.5, 0.0], [1.5, 13.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_2_3": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[0.0, 7.5, 0.0], [-0.025665415878568965, 7.891578576660155, 0.0], [-0.10222252113279495, 8.276457135307563, 0.0], [-0.22836140246614, 8.648050297095269, 0.0], [-0.401923788646684, 9.0, 0.0], [-0.6199399791262943, 9.326284287026162, 0.0], [-0.8786796564403572, 9.621320343559642, 0.0], [-1.173715712973838, 9.880060020873707, 0.0], [-1.4999999999999996, 10.098076211353316, 0.0], [-1.8519497029047305, 10.27163859753386, 0.0], [-2.223542864692437, 10.397777478867205, 0.0], [-2.608421423339845, 10.474334584121431, 0.0], [-3.0, 10.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[1.5, 13.5, 0.0], [1.125, 13.5, 0.0], [0.75, 13.5, 0.0], [0.375, 13.5, 0.0], [0.0, 13.5, 0.0], [-0.375, 13.5, 0.0], [-0.75, 13.5, 0.0], [-1.125, 13.5, 0.0], [-1.5, 13.5, 0.0], [-1.875, 13.5, 0.0], [-2.25, 13.5, 0.0], [-2.625, 13.5, 0.0], [-3.0, 13.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "lane_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[24.0, 10.5, 0.0], [23.6, 10.5, 0.0], [23.2, 10.5, 0.0], [22.8, 10.5, 0.0], [22.4, 10.5, 0.0], [22.0, 10.5, 0.0], [21.6, 10.5, 0.0], [21.2, 10.5, 0.0], [20.8, 10.5, 0.0], [20.4, 10.5, 0.0], [20.0, 10.5, 0.0], [19.6, 10.5, 0.0], [19.2, 10.5, 0.0], [18.8, 10.5, 0.0], [18.4, 10.5, 0.0], [18.0, 10.5, 0.0], [17.6, 10.5, 0.0], [17.2, 10.5, 0.0], [16.8, 10.5, 0.0], [16.4, 10.5, 0.0], [16.0, 10.5, 0.0], [15.6, 10.5, 0.0], [15.200000000000001, 10.5, 0.0], [14.8, 10.5, 0.0], [14.4, 10.5, 0.0], [14.0, 10.5, 0.0], [13.600000000000001, 10.5, 0.0], [13.200000000000001, 10.5, 0.0], [12.8, 10.5, 0.0], [12.399999999999999, 10.5, 0.0], [12.0, 10.5, 0.0], [11.6, 10.5, 0.0], [11.2, 10.5, 0.0], [10.8, 10.5, 0.0], [10.4, 10.5, 0.0], [10.0, 10.5, 0.0], [9.6, 10.5, 0.0], [9.200000000000001, 10.5, 0.0], [8.8, 10.5, 0.0], [8.399999999999999, 10.5, 0.0], [8.0, 10.5, 0.0], [7.600000000000001, 10.5, 0.0], [7.199999999999999, 10.5, 0.0], [6.800000000000001, 10.5, 0.0], [6.400000000000002, 10.5, 0.0], [6.0, 10.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[24.0, 13.5, 0.0], [23.6, 13.5, 0.0], [23.2, 13.5, 0.0], [22.8, 13.5, 0.0], [22.4, 13.5, 0.0], [22.0, 13.5, 0.0], [21.6, 13.5, 0.0], [21.2, 13.5, 0.0], [20.8, 13.5, 0.0], [20.4, 13.5, 0.0], [20.0, 13.5, 0.0], [19.6, 13.5, 0.0], [19.2, 13.5, 0.0], [18.8, 13.5, 0.0], [18.4, 13.5, 0.0], [18.0, 13.5, 0.0], [17.6, 13.5, 0.0], [17.2, 13.5, 0.0], [16.8, 13.5, 0.0], [16.4, 13.5, 0.0], [16.0, 13.5, 0.0], [15.6, 13.5, 0.0], [15.200000000000001, 13.5, 0.0], [14.8, 13.5, 0.0], [14.4, 13.5, 0.0], [14.0, 13.5, 0.0], [13.600000000000001, 13.5, 0.0], [13.200000000000001, 13.5, 0.0], [12.8, 13.5, 0.0], [12.399999999999999, 13.5, 0.0], [12.0, 13.5, 0.0], [11.6, 13.5, 0.0], [11.2, 13.5, 0.0], [10.8, 13.5, 0.0], [10.4, 13.5, 0.0], [10.0, 13.5, 0.0], [9.6, 13.5, 0.0], [9.200000000000001, 13.5, 0.0], [8.8, 13.5, 0.0], [8.399999999999999, 13.5, 0.0], [8.0, 13.5, 0.0], [7.600000000000001, 13.5, 0.0], [7.199999999999999, 13.5, 0.0], [6.800000000000001, 13.5, 0.0], [6.400000000000002, 13.5, 0.0], [6.0, 13.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "arc_2_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-3.0, 10.5, 0.0], [-3.3915785766601547, 10.474334584121431, 0.0], [-3.7764571353075618, 10.397777478867205, 0.0], [-4.148050297095269, 10.27163859753386, 0.0], [-4.499999999999999, 10.098076211353316, 0.0], [-4.826284287026162, 9.880060020873707, 0.0], [-5.121320343559642, 9.621320343559642, 0.0], [-5.380060020873705, 9.326284287026162, 0.0], [-5.598076211353316, 9.0, 0.0], [-5.77163859753386, 8.64805029709527, 0.0], [-5.897777478867205, 8.276457135307563, 0.0], [-5.974334584121431, 7.891578576660155, 0.0], [-6.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-3.0000000000000004, 13.5, 0.0], [-3.3924187753808583, 13.48715353943162, 0.0], [-3.7831571533203103, 13.448669168242862, 0.0], [-4.17054193209677, 13.384711682419383, 0.0], [-4.552914270615124, 13.29555495773441, 0.0], [-4.928636791818969, 13.181580776970634, 0.0], [-5.2961005941905395, 13.04327719506772, 0.0], [-5.653732141314009, 12.881236449196129, 0.0], [-6.000000000000001, 12.696152422706632, 0.0], [-6.333421398117613, 12.488817673815271, 0.0], [-6.6525685740523235, 12.260120041747411, 0.0], [-6.956074890600412, 12.011038844873864, 0.0], [-7.242640687119284, 11.742640687119286, 0.0], [-7.511038844873866, 11.456074890600412, 0.0], [-7.760120041747411, 11.152568574052323, 0.0], [-7.988817673815271, 10.833421398117613, 0.0], [-8.196152422706632, 10.5, 0.0], [-8.381236449196129, 10.153732141314007, 0.0], [-8.54327719506772, 9.796100594190538, 0.0], [-8.681580776970634, 9.42863679181897, 0.0], [-8.79555495773441, 9.052914270615123, 0.0], [-8.884711682419383, 8.67054193209677, 0.0], [-8.948669168242862, 8.28315715332031, 0.0], [-8.98715353943162, 7.892418775380858, 0.0], [-9.0, 7.500000000000001, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "arc_2_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-6.0, 7.500000000000001, 0.0], [-5.98715353943162, 7.1075812246191425, 0.0], [-5.948669168242862, 6.716842846679692, 0.0], [-5.884711682419383, 6.32945806790323, 0.0], [-5.79555495773441, 5.947085729384876, 0.0], [-5.681580776970634, 5.571363208181031, 0.0], [-5.54327719506772, 5.203899405809462, 0.0], [-5.38123644919613, 4.8462678586859935, 0.0], [-5.196152422706632, 4.500000000000002, 0.0], [-4.988817673815273, 4.166578601882389, 0.0], [-4.760120041747411, 3.847431425947676, 0.0], [-4.511038844873864, 3.543925109399587, 0.0], [-4.242640687119286, 3.2573593128807152, 0.0], [-3.956074890600414, 2.9889611551261366, 0.0], [-3.652568574052325, 2.7398799582525903, 0.0], [-3.3334213981176126, 2.511182326184729, 0.0], [-3.000000000000002, 2.3038475772933698, 0.0], [-2.653732141314008, 2.1187635508038705, 0.0], [-2.2961005941905417, 1.956722804932281, 0.0], [-1.9286367918189704, 1.818419223029366, 0.0], [-1.5529142706151233, 1.70444504226559, 0.0], [-1.1705419320967716, 1.6152883175806183, 0.0], [-0.7831571533203093, 1.551330831757138, 0.0], [-0.39241877538086123, 1.5128464605683796, 0.0], [-6.580929093825553e-16, 1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-9.0, 7.500000000000001, 0.0], [-8.99143399423672, 7.107425513711978, 0.0], [-8.96575228282571, 6.7155983152710785, 0.0], [-8.923003752364295, 6.325264270019538, 0.0], [-8.863269777109874, 5.937166400997629, 0.0], [-8.7866640640794, 5.552043474557074, 0.0], [-8.693332436601615, 5.1706285940773125, 0.0], [-8.583452556734043, 4.793647804461543, 0.0], [-8.457233587073176, 4.421818710068982, 0.0], [-8.314915792601582, 4.0558491087141935, 0.0], [-8.15677008332985, 3.6964356443337065, 0.0], [-7.983097498603996, 3.344262480884696, 0.0], [-7.79422863405995, 3.0000000000000027, 0.0], [-7.590523012315971, 2.6643035248785853, 0.0], [-7.372368398600926, 2.3378120728405847, 0.0], [-7.140180062621116, 2.0211471389215143, 0.0], [-6.894399988070802, 1.7149115128211463, 0.0], [-6.635496031291117, 1.4196881314590586, 0.0], [-6.363961030678929, 1.1360389693210724, 0.0], [-6.080311868540943, 0.8645039687088856, 0.0], [-5.7850884871788555, 0.6056000119291989, 0.0], [-5.478852861078488, 0.3598199373788855, 0.0], [-5.162187927159417, 0.12763160139907548, 0.0], [-4.835696475121418, -0.09052301231596971, 0.0], [-4.5000000000000036, -0.29422863405994537, 0.0], [-4.155737519115309, -0.48309749860399354, 0.0], [-3.8035643556662926, -0.6567700833298495, 0.0], [-3.444150891285813, -0.8149157926015782, 0.0], [-3.078181289931017, -0.9572335870731763, 0.0], [-2.706352195538464, -1.0834525567340396, 0.0], [-2.3293714059226858, -1.1933324366016151, 0.0], [-1.9479565254429254, -1.2866640640793996, 0.0], [-1.562833599002373, -1.3632697771098723, 0.0], [-1.1747357299804646, -1.423003752364293, 0.0], [-0.7844016847289242, -1.4657522828257097, 0.0], [-0.39257448628802516, -1.4914339942367203, 0.0], [-1.6532731788489267e-15, -1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}}, "regions": {"lane0_parallel_parking_lot_1": {"type": 2, "outline": [[4.0, -1.5], [4.0, -4.2], [9.5, -4.2], [9.5, -1.5]], "crossable": true}, "lane0_parallel_parking_lot_2": {"type": 2, "outline": [[9.5, -1.5], [9.5, -4.2], [15.0, -4.2], [15.0, -1.5]], "crossable": true}, "lane0_parallel_parking_lot_3": {"type": 2, "outline": [[15.0, -1.5], [15.0, -4.2], [20.5, -4.2], [20.5, -1.5]], "crossable": true}, "lane0_parallel_parking_lot_4": {"type": 2, "outline": [[20.5, -1.5], [20.5, -4.2], [26.0, -4.2], [26.0, -1.5]], "crossable": true}, "lane1_parallel_parking_lot_1": {"type": 2, "outline": [[9.5, 4.5], [15.0, 4.5], [15.0, 7.2], [9.5, 7.2]], "crossable": true}, "lane1_parallel_parking_lot_2": {"type": 2, "outline": [[15.0, 4.5], [20.5, 4.5], [20.5, 7.2], [15.0, 7.2]], "crossable": true}, "lane1_parallel_parking_lot_3": {"type": 2, "outline": [[-1.5, 13.5], [4.0, 13.5], [4.0, 16.2], [-1.5, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_4": {"type": 2, "outline": [[4.0, 13.5], [9.5, 13.5], [9.5, 16.2], [4.0, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_5": {"type": 2, "outline": [[9.5, 13.5], [15.0, 13.5], [15.0, 16.2], [9.5, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_6": {"type": 2, "outline": [[15.0, 13.5], [20.5, 13.5], [20.5, 16.2], [15.0, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_7": {"type": 2, "outline": [[20.5, 13.5], [26.0, 13.5], [26.0, 16.2], [20.5, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_8": {"type": 2, "outline": [[26.0, 13.5], [31.5, 13.5], [31.5, 16.2], [26.0, 16.2]], "crossable": true}}, "signs": {}, "static_obstacles": {}, "connections": []}} \ No newline at end of file +{"type": "Roadgraph", "data": {"frame": 0, "curves": {}, "lanes": {"lane_0": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[0.0, 1.49, 0.0], [0.4, 1.49, 0.0], [0.8, 1.49, 0.0], [1.2, 1.49, 0.0], [1.6, 1.49, 0.0], [2.0, 1.49, 0.0], [2.4, 1.49, 0.0], [2.8000000000000003, 1.49, 0.0], [3.2, 1.49, 0.0], [3.5999999999999996, 1.49, 0.0], [4.0, 1.49, 0.0], [4.4, 1.49, 0.0], [4.8, 1.49, 0.0], [5.2, 1.49, 0.0], [5.6000000000000005, 1.49, 0.0], [6.0, 1.49, 0.0], [6.4, 1.49, 0.0], [6.8, 1.49, 0.0], [7.199999999999999, 1.49, 0.0], [7.6000000000000005, 1.49, 0.0], [8.0, 1.49, 0.0], [8.4, 1.49, 0.0], [8.8, 1.49, 0.0], [9.2, 1.49, 0.0], [9.6, 1.49, 0.0], [10.0, 1.49, 0.0], [10.4, 1.49, 0.0], [10.799999999999999, 1.49, 0.0], [11.200000000000001, 1.49, 0.0], [11.6, 1.49, 0.0], [12.0, 1.49, 0.0], [12.4, 1.49, 0.0], [12.8, 1.49, 0.0], [13.2, 1.49, 0.0], [13.6, 1.49, 0.0], [14.0, 1.49, 0.0], [14.399999999999999, 1.49, 0.0], [14.8, 1.49, 0.0], [15.200000000000001, 1.49, 0.0], [15.600000000000001, 1.49, 0.0], [16.0, 1.49, 0.0], [16.4, 1.49, 0.0], [16.8, 1.49, 0.0], [17.2, 1.49, 0.0], [17.6, 1.49, 0.0], [18.0, 1.49, 0.0], [18.4, 1.49, 0.0], [18.8, 1.49, 0.0], [19.2, 1.49, 0.0], [19.6, 1.49, 0.0], [20.0, 1.49, 0.0], [20.400000000000002, 1.49, 0.0], [20.8, 1.49, 0.0], [21.2, 1.49, 0.0], [21.599999999999998, 1.49, 0.0], [22.0, 1.49, 0.0], [22.400000000000002, 1.49, 0.0], [22.8, 1.49, 0.0], [23.2, 1.49, 0.0], [23.599999999999998, 1.49, 0.0], [24.0, 1.49, 0.0], [24.400000000000002, 1.49, 0.0], [24.8, 1.49, 0.0], [25.2, 1.49, 0.0], [25.6, 1.49, 0.0], [26.0, 1.49, 0.0], [26.4, 1.49, 0.0], [26.8, 1.49, 0.0], [27.2, 1.49, 0.0], [27.6, 1.49, 0.0], [28.0, 1.49, 0.0], [28.4, 1.49, 0.0], [28.799999999999997, 1.49, 0.0], [29.200000000000003, 1.49, 0.0], [29.6, 1.49, 0.0], [30.0, 1.49, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[0.0, -1.5, 0.0], [0.4, -1.5, 0.0], [0.8, -1.5, 0.0], [1.2, -1.5, 0.0], [1.6, -1.5, 0.0], [2.0, -1.5, 0.0], [2.4, -1.5, 0.0], [2.8000000000000003, -1.5, 0.0], [3.2, -1.5, 0.0], [3.5999999999999996, -1.5, 0.0], [4.0, -1.5, 0.0], [4.4, -1.5, 0.0], [4.8, -1.5, 0.0], [5.2, -1.5, 0.0], [5.6000000000000005, -1.5, 0.0], [6.0, -1.5, 0.0], [6.4, -1.5, 0.0], [6.8, -1.5, 0.0], [7.199999999999999, -1.5, 0.0], [7.6000000000000005, -1.5, 0.0], [8.0, -1.5, 0.0], [8.4, -1.5, 0.0], [8.8, -1.5, 0.0], [9.2, -1.5, 0.0], [9.6, -1.5, 0.0], [10.0, -1.5, 0.0], [10.4, -1.5, 0.0], [10.799999999999999, -1.5, 0.0], [11.200000000000001, -1.5, 0.0], [11.6, -1.5, 0.0], [12.0, -1.5, 0.0], [12.4, -1.5, 0.0], [12.8, -1.5, 0.0], [13.2, -1.5, 0.0], [13.6, -1.5, 0.0], [14.0, -1.5, 0.0], [14.399999999999999, -1.5, 0.0], [14.8, -1.5, 0.0], [15.200000000000001, -1.5, 0.0], [15.600000000000001, -1.5, 0.0], [16.0, -1.5, 0.0], [16.4, -1.5, 0.0], [16.8, -1.5, 0.0], [17.2, -1.5, 0.0], [17.6, -1.5, 0.0], [18.0, -1.5, 0.0], [18.4, -1.5, 0.0], [18.8, -1.5, 0.0], [19.2, -1.5, 0.0], [19.6, -1.5, 0.0], [20.0, -1.5, 0.0], [20.400000000000002, -1.5, 0.0], [20.8, -1.5, 0.0], [21.2, -1.5, 0.0], [21.599999999999998, -1.5, 0.0], [22.0, -1.5, 0.0], [22.400000000000002, -1.5, 0.0], [22.8, -1.5, 0.0], [23.2, -1.5, 0.0], [23.599999999999998, -1.5, 0.0], [24.0, -1.5, 0.0], [24.400000000000002, -1.5, 0.0], [24.8, -1.5, 0.0], [25.2, -1.5, 0.0], [25.6, -1.5, 0.0], [26.0, -1.5, 0.0], [26.4, -1.5, 0.0], [26.8, -1.5, 0.0], [27.2, -1.5, 0.0], [27.6, -1.5, 0.0], [28.0, -1.5, 0.0], [28.4, -1.5, 0.0], [28.799999999999997, -1.5, 0.0], [29.200000000000003, -1.5, 0.0], [29.6, -1.5, 0.0], [30.0, -1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "arc_1_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[30.0, 1.5, 0.0], [30.392418775380857, 1.5128464605683796, 0.0], [30.78315715332031, 1.551330831757138, 0.0], [31.17054193209677, 1.6152883175806174, 0.0], [31.552914270615126, 1.70444504226559, 0.0], [31.92863679181897, 1.818419223029366, 0.0], [32.29610059419054, 1.95672280493228, 0.0], [32.65373214131401, 2.1187635508038696, 0.0], [33.0, 2.303847577293368, 0.0], [33.333421398117615, 2.511182326184729, 0.0], [33.652568574052324, 2.7398799582525886, 0.0], [33.95607489060041, 2.9889611551261357, 0.0], [34.242640687119284, 3.2573593128807152, 0.0], [34.511038844873866, 3.543925109399586, 0.0], [34.76012004174741, 3.847431425947676, 0.0], [34.98881767381527, 4.166578601882386, 0.0], [35.19615242270663, 4.5, 0.0], [35.38123644919613, 4.846267858685992, 0.0], [35.543277195067716, 5.203899405809461, 0.0], [35.681580776970634, 5.57136320818103, 0.0], [35.79555495773441, 5.947085729384875, 0.0], [35.88471168241938, 6.32945806790323, 0.0], [35.94866916824286, 6.71684284667969, 0.0], [35.98715353943162, 7.107581224619141, 0.0], [36.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[30.0, -1.5, 0.0], [30.392574486288023, -1.4914339942367203, 0.0], [30.784401684728923, -1.4657522828257097, 0.0], [31.174735729980465, -1.423003752364293, 0.0], [31.562833599002374, -1.3632697771098723, 0.0], [31.947956525442926, -1.2866640640793996, 0.0], [32.329371405922686, -1.1933324366016151, 0.0], [32.70635219553846, -1.0834525567340414, 0.0], [33.07818128993102, -0.9572335870731745, 0.0], [33.44415089128581, -0.81491579260158, 0.0], [33.803564355666296, -0.6567700833298495, 0.0], [34.155737519115306, -0.4830974986039953, 0.0], [34.5, -0.29422863405994804, 0.0], [34.835696475121416, -0.09052301231597149, 0.0], [35.162187927159415, 0.1276316013990737, 0.0], [35.47885286107849, 0.35981993737888374, 0.0], [35.785088487178854, 0.605600011929198, 0.0], [36.080311868540946, 0.8645039687088829, 0.0], [36.36396103067893, 1.1360389693210724, 0.0], [36.63549603129111, 1.4196881314590577, 0.0], [36.8943999880708, 1.7149115128211463, 0.0], [37.14018006262111, 2.0211471389215143, 0.0], [37.372368398600926, 2.3378120728405856, 0.0], [37.59052301231597, 2.6643035248785853, 0.0], [37.79422863405995, 3.0, 0.0], [37.983097498603996, 3.3442624808846935, 0.0], [38.156770083329846, 3.6964356443337056, 0.0], [38.31491579260158, 4.055849108714192, 0.0], [38.457233587073176, 4.421818710068981, 0.0], [38.583452556734045, 4.793647804461541, 0.0], [38.693332436601615, 5.170628594077314, 0.0], [38.7866640640794, 5.552043474557074, 0.0], [38.86326977710987, 5.937166400997627, 0.0], [38.923003752364295, 6.325264270019535, 0.0], [38.96575228282571, 6.715598315271075, 0.0], [38.99143399423672, 7.107425513711976, 0.0], [39.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "arc_1_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[36.0, 7.5, 0.0], [35.97433458412143, 7.891578576660155, 0.0], [35.897777478867205, 8.276457135307563, 0.0], [35.77163859753386, 8.648050297095269, 0.0], [35.598076211353316, 9.0, 0.0], [35.38006002087371, 9.326284287026162, 0.0], [35.121320343559645, 9.621320343559642, 0.0], [34.82628428702616, 9.880060020873707, 0.0], [34.5, 10.098076211353316, 0.0], [34.14805029709527, 10.27163859753386, 0.0], [33.77645713530756, 10.397777478867205, 0.0], [33.39157857666015, 10.474334584121431, 0.0], [33.0, 10.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[39.0, 7.5, 0.0], [38.98715353943162, 7.892418775380858, 0.0], [38.94866916824286, 8.28315715332031, 0.0], [38.88471168241938, 8.67054193209677, 0.0], [38.79555495773441, 9.052914270615124, 0.0], [38.681580776970634, 9.428636791818969, 0.0], [38.543277195067716, 9.796100594190538, 0.0], [38.38123644919613, 10.153732141314007, 0.0], [38.19615242270663, 10.5, 0.0], [37.98881767381527, 10.833421398117613, 0.0], [37.76012004174741, 11.152568574052324, 0.0], [37.511038844873866, 11.456074890600412, 0.0], [37.242640687119284, 11.742640687119284, 0.0], [36.95607489060041, 12.011038844873863, 0.0], [36.652568574052324, 12.260120041747411, 0.0], [36.333421398117615, 12.488817673815271, 0.0], [36.0, 12.696152422706632, 0.0], [35.65373214131401, 12.88123644919613, 0.0], [35.29610059419054, 13.04327719506772, 0.0], [34.92863679181897, 13.181580776970634, 0.0], [34.552914270615126, 13.29555495773441, 0.0], [34.17054193209677, 13.384711682419383, 0.0], [33.78315715332031, 13.448669168242862, 0.0], [33.39241877538086, 13.48715353943162, 0.0], [33.0, 13.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_1_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[33.0, 10.5, 0.0], [32.60842142333985, 10.474334584121431, 0.0], [32.22354286469244, 10.397777478867205, 0.0], [31.85194970290473, 10.27163859753386, 0.0], [31.5, 10.098076211353316, 0.0], [31.173715712973838, 9.880060020873707, 0.0], [30.878679656440358, 9.621320343559642, 0.0], [30.619939979126293, 9.326284287026162, 0.0], [30.401923788646684, 9.0, 0.0], [30.228361402466142, 8.64805029709527, 0.0], [30.102222521132795, 8.276457135307563, 0.0], [30.02566541587857, 7.891578576660155, 0.0], [30.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[24.0, 10.5, 0.0], [24.391578576660155, 10.474334584121431, 0.0], [24.776457135307563, 10.397777478867205, 0.0], [25.14805029709527, 10.27163859753386, 0.0], [25.5, 10.098076211353316, 0.0], [25.826284287026162, 9.880060020873707, 0.0], [26.121320343559642, 9.621320343559642, 0.0], [26.380060020873707, 9.326284287026162, 0.0], [26.598076211353316, 9.0, 0.0], [26.771638597533858, 8.648050297095269, 0.0], [26.897777478867205, 8.276457135307563, 0.0], [26.97433458412143, 7.891578576660155, 0.0], [27.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_1_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[30.0, 7.5, 0.0], [29.98715353943162, 7.107581224619142, 0.0], [29.948669168242862, 6.716842846679691, 0.0], [29.884711682419383, 6.32945806790323, 0.0], [29.79555495773441, 5.947085729384876, 0.0], [29.681580776970634, 5.571363208181031, 0.0], [29.54327719506772, 5.203899405809461, 0.0], [29.38123644919613, 4.846267858685993, 0.0], [29.196152422706632, 4.5, 0.0], [28.98881767381527, 4.166578601882387, 0.0], [28.760120041747413, 3.8474314259476765, 0.0], [28.511038844873866, 3.543925109399587, 0.0], [28.242640687119284, 3.2573593128807152, 0.0], [27.956074890600412, 2.9889611551261366, 0.0], [27.652568574052324, 2.7398799582525886, 0.0], [27.333421398117615, 2.511182326184729, 0.0], [27.0, 2.303847577293368, 0.0], [26.65373214131401, 2.1187635508038705, 0.0], [26.296100594190538, 1.95672280493228, 0.0], [25.92863679181897, 1.818419223029366, 0.0], [25.552914270615126, 1.7044450422655908, 0.0], [25.17054193209677, 1.6152883175806174, 0.0], [24.78315715332031, 1.551330831757138, 0.0], [24.39241877538086, 1.5128464605683796, 0.0], [24.0, 1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[27.0, 7.5, 0.0], [26.97433458412143, 7.108421423339845, 0.0], [26.897777478867205, 6.723542864692438, 0.0], [26.771638597533858, 6.351949702904731, 0.0], [26.598076211353316, 6.0, 0.0], [26.380060020873707, 5.673715712973838, 0.0], [26.121320343559642, 5.378679656440358, 0.0], [25.826284287026162, 5.119939979126294, 0.0], [25.5, 4.901923788646684, 0.0], [25.14805029709527, 4.72836140246614, 0.0], [24.776457135307563, 4.602222521132795, 0.0], [24.391578576660155, 4.525665415878569, 0.0], [24.0, 4.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "lane_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[24.0, 1.5, 0.0], [23.6, 1.5, 0.0], [23.2, 1.5, 0.0], [22.8, 1.5, 0.0], [22.4, 1.5, 0.0], [22.0, 1.5, 0.0], [21.6, 1.5, 0.0], [21.2, 1.5, 0.0], [20.8, 1.5, 0.0], [20.4, 1.5, 0.0], [20.0, 1.5, 0.0], [19.6, 1.5, 0.0], [19.2, 1.5, 0.0], [18.8, 1.5, 0.0], [18.4, 1.5, 0.0], [18.0, 1.5, 0.0], [17.6, 1.5, 0.0], [17.2, 1.5, 0.0], [16.8, 1.5, 0.0], [16.4, 1.5, 0.0], [16.0, 1.5, 0.0], [15.6, 1.5, 0.0], [15.200000000000001, 1.5, 0.0], [14.8, 1.5, 0.0], [14.4, 1.5, 0.0], [14.0, 1.5, 0.0], [13.600000000000001, 1.5, 0.0], [13.200000000000001, 1.5, 0.0], [12.8, 1.5, 0.0], [12.399999999999999, 1.5, 0.0], [12.0, 1.5, 0.0], [11.6, 1.5, 0.0], [11.2, 1.5, 0.0], [10.8, 1.5, 0.0], [10.4, 1.5, 0.0], [10.0, 1.5, 0.0], [9.6, 1.5, 0.0], [9.200000000000001, 1.5, 0.0], [8.8, 1.5, 0.0], [8.399999999999999, 1.5, 0.0], [8.0, 1.5, 0.0], [7.600000000000001, 1.5, 0.0], [7.199999999999999, 1.5, 0.0], [6.800000000000001, 1.5, 0.0], [6.400000000000002, 1.5, 0.0], [6.0, 1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[24.0, 4.5, 0.0], [23.6, 4.5, 0.0], [23.2, 4.5, 0.0], [22.8, 4.5, 0.0], [22.4, 4.5, 0.0], [22.0, 4.5, 0.0], [21.6, 4.5, 0.0], [21.2, 4.5, 0.0], [20.8, 4.5, 0.0], [20.4, 4.5, 0.0], [20.0, 4.5, 0.0], [19.6, 4.5, 0.0], [19.2, 4.5, 0.0], [18.8, 4.5, 0.0], [18.4, 4.5, 0.0], [18.0, 4.5, 0.0], [17.6, 4.5, 0.0], [17.2, 4.5, 0.0], [16.8, 4.5, 0.0], [16.4, 4.5, 0.0], [16.0, 4.5, 0.0], [15.6, 4.5, 0.0], [15.200000000000001, 4.5, 0.0], [14.8, 4.5, 0.0], [14.4, 4.5, 0.0], [14.0, 4.5, 0.0], [13.600000000000001, 4.5, 0.0], [13.200000000000001, 4.5, 0.0], [12.8, 4.5, 0.0], [12.399999999999999, 4.5, 0.0], [12.0, 4.5, 0.0], [11.6, 4.5, 0.0], [11.2, 4.5, 0.0], [10.8, 4.5, 0.0], [10.4, 4.5, 0.0], [10.0, 4.5, 0.0], [9.6, 4.5, 0.0], [9.200000000000001, 4.5, 0.0], [8.8, 4.5, 0.0], [8.399999999999999, 4.5, 0.0], [8.0, 4.5, 0.0], [7.600000000000001, 4.5, 0.0], [7.199999999999999, 4.5, 0.0], [6.800000000000001, 4.5, 0.0], [6.400000000000002, 4.5, 0.0], [6.0, 4.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_2_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[6.0, 1.5, 0.0], [5.6075812246191425, 1.5128464605683796, 0.0], [5.216842846679691, 1.551330831757138, 0.0], [4.82945806790323, 1.6152883175806174, 0.0], [4.4470857293848765, 1.70444504226559, 0.0], [4.0713632081810305, 1.818419223029366, 0.0], [3.7038994058094614, 1.95672280493228, 0.0], [3.346267858685993, 2.1187635508038696, 0.0], [3.0000000000000013, 2.303847577293368, 0.0], [2.6665786018823883, 2.511182326184727, 0.0], [2.347431425947676, 2.7398799582525886, 0.0], [2.043925109399587, 2.9889611551261357, 0.0], [1.7573593128807152, 3.2573593128807143, 0.0], [1.4889611551261366, 3.543925109399586, 0.0], [1.2398799582525895, 3.8474314259476747, 0.0], [1.0111823261847297, 4.166578601882385, 0.0], [0.8038475772933689, 4.499999999999998, 0.0], [0.6187635508038705, 4.846267858685993, 0.0], [0.45672280493228, 5.2038994058094605, 0.0], [0.3184192230293661, 5.57136320818103, 0.0], [0.2044450422655908, 5.947085729384874, 0.0], [0.11528831758061742, 6.329458067903229, 0.0], [0.05133083175713793, 6.716842846679691, 0.0], [0.01284646056837957, 7.107581224619139, 0.0], [0.0, 7.499999999999999, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[6.0, 4.5, 0.0], [5.608421423339845, 4.525665415878569, 0.0], [5.223542864692438, 4.602222521132795, 0.0], [4.851949702904731, 4.72836140246614, 0.0], [4.500000000000001, 4.901923788646684, 0.0], [4.173715712973838, 5.119939979126294, 0.0], [3.8786796564403576, 5.378679656440357, 0.0], [3.6199399791262947, 5.673715712973838, 0.0], [3.4019237886466844, 5.999999999999999, 0.0], [3.22836140246614, 6.35194970290473, 0.0], [3.1022225211327954, 6.723542864692437, 0.0], [3.025665415878569, 7.108421423339845, 0.0], [3.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "t_2_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[0.0, 7.5, 0.0], [-0.025665415878568965, 7.891578576660155, 0.0], [-0.10222252113279495, 8.276457135307563, 0.0], [-0.22836140246614, 8.648050297095269, 0.0], [-0.401923788646684, 9.0, 0.0], [-0.6199399791262943, 9.326284287026162, 0.0], [-0.8786796564403572, 9.621320343559642, 0.0], [-1.173715712973838, 9.880060020873707, 0.0], [-1.4999999999999996, 10.098076211353316, 0.0], [-1.8519497029047305, 10.27163859753386, 0.0], [-2.223542864692437, 10.397777478867205, 0.0], [-2.608421423339845, 10.474334584121431, 0.0], [-3.0, 10.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[3.0, 7.5, 0.0], [3.025665415878569, 7.891578576660155, 0.0], [3.1022225211327954, 8.276457135307563, 0.0], [3.22836140246614, 8.64805029709527, 0.0], [3.401923788646684, 9.0, 0.0], [3.6199399791262947, 9.326284287026162, 0.0], [3.8786796564403576, 9.621320343559642, 0.0], [4.173715712973838, 9.880060020873707, 0.0], [4.499999999999999, 10.098076211353316, 0.0], [4.851949702904731, 10.27163859753386, 0.0], [5.223542864692438, 10.397777478867205, 0.0], [5.608421423339845, 10.474334584121431, 0.0], [6.0, 10.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "lane_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[24.0, 10.5, 0.0], [23.6, 10.5, 0.0], [23.2, 10.5, 0.0], [22.8, 10.5, 0.0], [22.4, 10.5, 0.0], [22.0, 10.5, 0.0], [21.6, 10.5, 0.0], [21.2, 10.5, 0.0], [20.8, 10.5, 0.0], [20.4, 10.5, 0.0], [20.0, 10.5, 0.0], [19.6, 10.5, 0.0], [19.2, 10.5, 0.0], [18.8, 10.5, 0.0], [18.4, 10.5, 0.0], [18.0, 10.5, 0.0], [17.6, 10.5, 0.0], [17.2, 10.5, 0.0], [16.8, 10.5, 0.0], [16.4, 10.5, 0.0], [16.0, 10.5, 0.0], [15.6, 10.5, 0.0], [15.200000000000001, 10.5, 0.0], [14.8, 10.5, 0.0], [14.4, 10.5, 0.0], [14.0, 10.5, 0.0], [13.600000000000001, 10.5, 0.0], [13.200000000000001, 10.5, 0.0], [12.8, 10.5, 0.0], [12.399999999999999, 10.5, 0.0], [12.0, 10.5, 0.0], [11.6, 10.5, 0.0], [11.2, 10.5, 0.0], [10.8, 10.5, 0.0], [10.4, 10.5, 0.0], [10.0, 10.5, 0.0], [9.6, 10.5, 0.0], [9.200000000000001, 10.5, 0.0], [8.8, 10.5, 0.0], [8.399999999999999, 10.5, 0.0], [8.0, 10.5, 0.0], [7.600000000000001, 10.5, 0.0], [7.199999999999999, 10.5, 0.0], [6.800000000000001, 10.5, 0.0], [6.400000000000002, 10.5, 0.0], [6.0, 10.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[33.0, 13.5, 0.0], [32.6, 13.5, 0.0], [32.2, 13.5, 0.0], [31.8, 13.5, 0.0], [31.4, 13.5, 0.0], [31.0, 13.5, 0.0], [30.6, 13.5, 0.0], [30.2, 13.5, 0.0], [29.8, 13.5, 0.0], [29.4, 13.5, 0.0], [29.0, 13.5, 0.0], [28.6, 13.5, 0.0], [28.2, 13.5, 0.0], [27.8, 13.5, 0.0], [27.4, 13.5, 0.0], [27.0, 13.5, 0.0], [26.6, 13.5, 0.0], [26.2, 13.5, 0.0], [25.8, 13.5, 0.0], [25.4, 13.5, 0.0], [25.0, 13.5, 0.0], [24.6, 13.5, 0.0], [24.200000000000003, 13.5, 0.0], [23.8, 13.5, 0.0], [23.4, 13.5, 0.0], [23.0, 13.5, 0.0], [22.6, 13.5, 0.0], [22.200000000000003, 13.5, 0.0], [21.8, 13.5, 0.0], [21.4, 13.5, 0.0], [21.0, 13.5, 0.0], [20.6, 13.5, 0.0], [20.2, 13.5, 0.0], [19.8, 13.5, 0.0], [19.4, 13.5, 0.0], [19.0, 13.5, 0.0], [18.6, 13.5, 0.0], [18.200000000000003, 13.5, 0.0], [17.8, 13.5, 0.0], [17.4, 13.5, 0.0], [17.0, 13.5, 0.0], [16.6, 13.5, 0.0], [16.2, 13.5, 0.0], [15.8, 13.5, 0.0], [15.400000000000002, 13.5, 0.0], [15.0, 13.5, 0.0], [14.600000000000001, 13.5, 0.0], [14.2, 13.5, 0.0], [13.8, 13.5, 0.0], [13.400000000000002, 13.5, 0.0], [13.0, 13.5, 0.0], [12.600000000000001, 13.5, 0.0], [12.200000000000003, 13.5, 0.0], [11.8, 13.5, 0.0], [11.400000000000002, 13.5, 0.0], [11.0, 13.5, 0.0], [10.600000000000001, 13.5, 0.0], [10.200000000000003, 13.5, 0.0], [9.799999999999997, 13.5, 0.0], [9.399999999999999, 13.5, 0.0], [9.0, 13.5, 0.0], [8.599999999999998, 13.5, 0.0], [8.2, 13.5, 0.0], [7.800000000000001, 13.5, 0.0], [7.399999999999999, 13.5, 0.0], [7.0, 13.5, 0.0], [6.600000000000001, 13.5, 0.0], [6.199999999999999, 13.5, 0.0], [5.800000000000001, 13.5, 0.0], [5.399999999999999, 13.5, 0.0], [5.0, 13.5, 0.0], [4.600000000000001, 13.5, 0.0], [4.199999999999999, 13.5, 0.0], [3.8000000000000007, 13.5, 0.0], [3.400000000000002, 13.5, 0.0], [3.0, 13.5, 0.0], [2.6000000000000014, 13.5, 0.0], [2.200000000000003, 13.5, 0.0], [1.7999999999999972, 13.5, 0.0], [1.3999999999999986, 13.5, 0.0], [1.0, 13.5, 0.0], [0.6000000000000014, 13.5, 0.0], [0.20000000000000284, 13.5, 0.0], [-0.20000000000000284, 13.5, 0.0], [-0.6000000000000014, 13.5, 0.0], [-1.0, 13.5, 0.0], [-1.3999999999999986, 13.5, 0.0], [-1.7999999999999972, 13.5, 0.0], [-2.1999999999999957, 13.5, 0.0], [-2.6000000000000014, 13.5, 0.0], [-3.0, 13.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "arc_2_1": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-3.0, 10.5, 0.0], [-3.3915785766601547, 10.474334584121431, 0.0], [-3.7764571353075618, 10.397777478867205, 0.0], [-4.148050297095269, 10.27163859753386, 0.0], [-4.499999999999999, 10.098076211353316, 0.0], [-4.826284287026162, 9.880060020873707, 0.0], [-5.121320343559642, 9.621320343559642, 0.0], [-5.380060020873705, 9.326284287026162, 0.0], [-5.598076211353316, 9.0, 0.0], [-5.77163859753386, 8.64805029709527, 0.0], [-5.897777478867205, 8.276457135307563, 0.0], [-5.974334584121431, 7.891578576660155, 0.0], [-6.0, 7.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-3.0000000000000004, 13.5, 0.0], [-3.3924187753808583, 13.48715353943162, 0.0], [-3.7831571533203103, 13.448669168242862, 0.0], [-4.17054193209677, 13.384711682419383, 0.0], [-4.552914270615124, 13.29555495773441, 0.0], [-4.928636791818969, 13.181580776970634, 0.0], [-5.2961005941905395, 13.04327719506772, 0.0], [-5.653732141314009, 12.881236449196129, 0.0], [-6.000000000000001, 12.696152422706632, 0.0], [-6.333421398117613, 12.488817673815271, 0.0], [-6.6525685740523235, 12.260120041747411, 0.0], [-6.956074890600412, 12.011038844873864, 0.0], [-7.242640687119284, 11.742640687119286, 0.0], [-7.511038844873866, 11.456074890600412, 0.0], [-7.760120041747411, 11.152568574052323, 0.0], [-7.988817673815271, 10.833421398117613, 0.0], [-8.196152422706632, 10.5, 0.0], [-8.381236449196129, 10.153732141314007, 0.0], [-8.54327719506772, 9.796100594190538, 0.0], [-8.681580776970634, 9.42863679181897, 0.0], [-8.79555495773441, 9.052914270615123, 0.0], [-8.884711682419383, 8.67054193209677, 0.0], [-8.948669168242862, 8.28315715332031, 0.0], [-8.98715353943162, 7.892418775380858, 0.0], [-9.0, 7.500000000000001, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}, "arc_2_2": {"type": 0, "surface": 0, "route_name": "", "left": {"type": 0, "segments": [[[-6.0, 7.500000000000001, 0.0], [-5.98715353943162, 7.1075812246191425, 0.0], [-5.948669168242862, 6.716842846679692, 0.0], [-5.884711682419383, 6.32945806790323, 0.0], [-5.79555495773441, 5.947085729384876, 0.0], [-5.681580776970634, 5.571363208181031, 0.0], [-5.54327719506772, 5.203899405809462, 0.0], [-5.38123644919613, 4.8462678586859935, 0.0], [-5.196152422706632, 4.500000000000002, 0.0], [-4.988817673815273, 4.166578601882389, 0.0], [-4.760120041747411, 3.847431425947676, 0.0], [-4.511038844873864, 3.543925109399587, 0.0], [-4.242640687119286, 3.2573593128807152, 0.0], [-3.956074890600414, 2.9889611551261366, 0.0], [-3.652568574052325, 2.7398799582525903, 0.0], [-3.3334213981176126, 2.511182326184729, 0.0], [-3.000000000000002, 2.3038475772933698, 0.0], [-2.653732141314008, 2.1187635508038705, 0.0], [-2.2961005941905417, 1.956722804932281, 0.0], [-1.9286367918189704, 1.818419223029366, 0.0], [-1.5529142706151233, 1.70444504226559, 0.0], [-1.1705419320967716, 1.6152883175806183, 0.0], [-0.7831571533203093, 1.551330831757138, 0.0], [-0.39241877538086123, 1.5128464605683796, 0.0], [-6.580929093825553e-16, 1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "right": {"type": 0, "segments": [[[-9.0, 7.500000000000001, 0.0], [-8.99143399423672, 7.107425513711978, 0.0], [-8.96575228282571, 6.7155983152710785, 0.0], [-8.923003752364295, 6.325264270019538, 0.0], [-8.863269777109874, 5.937166400997629, 0.0], [-8.7866640640794, 5.552043474557074, 0.0], [-8.693332436601615, 5.1706285940773125, 0.0], [-8.583452556734043, 4.793647804461543, 0.0], [-8.457233587073176, 4.421818710068982, 0.0], [-8.314915792601582, 4.0558491087141935, 0.0], [-8.15677008332985, 3.6964356443337065, 0.0], [-7.983097498603996, 3.344262480884696, 0.0], [-7.79422863405995, 3.0000000000000027, 0.0], [-7.590523012315971, 2.6643035248785853, 0.0], [-7.372368398600926, 2.3378120728405847, 0.0], [-7.140180062621116, 2.0211471389215143, 0.0], [-6.894399988070802, 1.7149115128211463, 0.0], [-6.635496031291117, 1.4196881314590586, 0.0], [-6.363961030678929, 1.1360389693210724, 0.0], [-6.080311868540943, 0.8645039687088856, 0.0], [-5.7850884871788555, 0.6056000119291989, 0.0], [-5.478852861078488, 0.3598199373788855, 0.0], [-5.162187927159417, 0.12763160139907548, 0.0], [-4.835696475121418, -0.09052301231596971, 0.0], [-4.5000000000000036, -0.29422863405994537, 0.0], [-4.155737519115309, -0.48309749860399354, 0.0], [-3.8035643556662926, -0.6567700833298495, 0.0], [-3.444150891285813, -0.8149157926015782, 0.0], [-3.078181289931017, -0.9572335870731763, 0.0], [-2.706352195538464, -1.0834525567340396, 0.0], [-2.3293714059226858, -1.1933324366016151, 0.0], [-1.9479565254429254, -1.2866640640793996, 0.0], [-1.562833599002373, -1.3632697771098723, 0.0], [-1.1747357299804646, -1.423003752364293, 0.0], [-0.7844016847289242, -1.4657522828257097, 0.0], [-0.39257448628802516, -1.4914339942367203, 0.0], [-1.6532731788489267e-15, -1.5, 0.0]]], "crossable": false, "elevation": null, "height": null}, "center": null, "begin": null, "end": null}}, "regions": {"lane0_parallel_parking_lot_1": {"type": 2, "outline": [[4.0, -1.5], [4.0, -4.2], [9.5, -4.2], [9.5, -1.5]], "crossable": true}, "lane0_parallel_parking_lot_2": {"type": 2, "outline": [[9.5, -1.5], [9.5, -4.2], [15.0, -4.2], [15.0, -1.5]], "crossable": true}, "lane0_parallel_parking_lot_3": {"type": 2, "outline": [[15.0, -1.5], [15.0, -4.2], [20.5, -4.2], [20.5, -1.5]], "crossable": true}, "lane0_parallel_parking_lot_4": {"type": 2, "outline": [[20.5, -1.5], [20.5, -4.2], [26.0, -4.2], [26.0, -1.5]], "crossable": true}, "lane1_parallel_parking_lot_1": {"type": 2, "outline": [[9.5, 4.5], [15.0, 4.5], [15.0, 7.2], [9.5, 7.2]], "crossable": true}, "lane1_parallel_parking_lot_2": {"type": 2, "outline": [[15.0, 4.5], [20.5, 4.5], [20.5, 7.2], [15.0, 7.2]], "crossable": true}, "lane1_parallel_parking_lot_3": {"type": 2, "outline": [[-1.5, 13.5], [4.0, 13.5], [4.0, 16.2], [-1.5, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_4": {"type": 2, "outline": [[4.0, 13.5], [9.5, 13.5], [9.5, 16.2], [4.0, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_5": {"type": 2, "outline": [[9.5, 13.5], [15.0, 13.5], [15.0, 16.2], [9.5, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_6": {"type": 2, "outline": [[15.0, 13.5], [20.5, 13.5], [20.5, 16.2], [15.0, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_7": {"type": 2, "outline": [[20.5, 13.5], [26.0, 13.5], [26.0, 16.2], [20.5, 16.2]], "crossable": true}, "lane2_parallel_parking_lot_8": {"type": 2, "outline": [[26.0, 13.5], [31.5, 13.5], [31.5, 16.2], [26.0, 16.2]], "crossable": true}}, "signs": {}, "static_obstacles": {}, "connections": []}} \ No newline at end of file diff --git a/GEMstack/onboard/planning/mission_planning.py b/GEMstack/onboard/planning/mission_planning.py index aa7075d4b..80d235ebf 100644 --- a/GEMstack/onboard/planning/mission_planning.py +++ b/GEMstack/onboard/planning/mission_planning.py @@ -1,12 +1,11 @@ from typing import List, Union from klampt.vis import scene from ..component import Component -from ...utils import serialization from ...state import Route, ObjectFrameEnum, AllState, VehicleState, Roadgraph, MissionObjective, MissionEnum, ObjectPose import numpy as np import requests -import json import time +import yaml def check_distance(goal_pose: Union[ObjectPose, list], current_pose : ObjectPose): @@ -35,14 +34,18 @@ def next_state(self): class SummoningMissionPlanner(Component): - def __init__(self, use_webapp, webapp_url, goal, state_machine): + def __init__(self, use_webapp, webapp_url, goal=None, state_machine=None): self.state_machine = StateMachine([eval(s) for s in state_machine]) - self.goal_location = goal['location'] - self.goal_frame = goal['frame'] + + # if use_webapp is True, goal should be None + self.goal_location = goal['location'] if not use_webapp else None + self.goal_frame = goal['frame'] if not use_webapp else None self.new_goal = False self.goal_pose = None self.start_pose = None self.start_time = time.time() + self.end_of_driving_route = None + self.search_count = 0 self.flag_use_webapp = use_webapp self.url_status = f"{webapp_url}/api/status" @@ -94,7 +97,7 @@ def update(self, state: AllState): goal_location = None goal_frame = None else: - goal_location = [data['lat'] , data['lon']] + goal_location = [data['lon'] , data['lat']] goal_frame = 'global' print("Goal location:", goal_location) print("Goal frame:", goal_frame) @@ -110,6 +113,8 @@ def update(self, state: AllState): goal_location = self.goal_location goal_frame = self.goal_frame + start_vehicle_pose = state.start_vehicle_pose + if goal_frame == 'global': self.goal_pose = ObjectPose(t=time.time(), x=goal_location[0], y=goal_location[1], frame=ObjectFrameEnum.GLOBAL) @@ -125,7 +130,16 @@ def update(self, state: AllState): raise ValueError("Invalid frame argument") if self.goal_pose: - self.goal_pose = self.goal_pose.to_frame(ObjectFrameEnum.START, start_pose_abs=state.start_vehicle_pose) + if start_vehicle_pose.frame == ObjectFrameEnum.ABSOLUTE_CARTESIAN and goal_frame == 'global': + # For global map simulation test + with open("scenes/summoning_map_sim_setting.yaml", "r") as f: + data = yaml.safe_load(f) + start= data['start_pose_global'] + start_pose_global = ObjectPose(frame=ObjectFrameEnum.GLOBAL, t=start_vehicle_pose.t, x=start[0], y=start[1], yaw=start[2]) + self.goal_pose = self.goal_pose.to_frame(ObjectFrameEnum.START, start_pose_abs=start_pose_global) + else: + self.goal_pose = self.goal_pose.to_frame(ObjectFrameEnum.START, start_pose_abs=start_vehicle_pose) + print("Goal pose:", self.goal_pose) # Initiate state if mission is None: @@ -137,34 +151,52 @@ def update(self, state: AllState): if self.new_goal: mission.goal_pose = self.goal_pose mission.type = self.state_machine.next_state() + self.new_goal = False print("============== Next state:", mission.type) # Reach the end of the route, begin to search for parking - elif mission.type == MissionEnum.SUMMONING_DRIVE: + # elif mission.type == MissionEnum.SUMMONING_DRIVE: + elif mission.type == MissionEnum.SUMMON_DRIVING: mission.goal_pose = self.goal_pose if route: _, closest_index = route.closest_point([vehicle.pose.x, vehicle.pose.y], edges=False) - if closest_index == len(route.points) - 1 or check_distance(mission.goal_pose, vehicle.pose) < 1: - mission.type = self.state_machine.next_state() - print("============== Next state:", mission.type) + if closest_index == len(route.points) - 1 or check_distance(mission.goal_pose, vehicle.pose) < 5: + if vehicle.v < 0.1: + mission.type = self.state_machine.next_state() + print("============== Next state:", mission.type) + self.end_of_driving_route = route.points[-1] + else: + self.search_count += 1 # Finish parking, back to idle and wait for the next goal location elif mission.type == MissionEnum.PARALLEL_PARKING: if route: - _, closest_index = route.closest_point([vehicle.pose.x, vehicle.pose.y], edges=False) - if closest_index == len(route.points) - 1 or check_distance(route.points[-1], vehicle.pose) < 0.1: - mission.type = self.state_machine.next_state() - self.goal_pose = None - mission.goal_pose = self.goal_pose - print("============== Next state:", mission.type) + if route.points[-1] != self.end_of_driving_route: + _, closest_index = route.closest_point([vehicle.pose.x, vehicle.pose.y], edges=False) + if vehicle.v < 0.01 and (closest_index >= len(route.points) - 1 or check_distance(route.points[-1], vehicle.pose) < 0.5): + # Set everything to idle + mission.type = self.state_machine.next_state() + print("============== Next state:", mission.type) + else: + self.search_count += 1 else: raise ValueError("Invalid mission type") + # Can not find a path, stop mission. + if mission.type != MissionEnum.IDLE: + print("Route searching times:", self.search_count) + if self.search_count > 10: + mission.type = MissionEnum.IDLE + self.goal_pose = None + self.goal_location = None + self.goal_frame = None + self.search_count = 0 + if self.flag_use_webapp: data = { - "status": mission.planner_type.name + "status": mission.type.name } print("POST:", data) response = requests.post(url=self.url_status, json=data) diff --git a/GEMstack/onboard/planning/reeds_shepp_parking.py b/GEMstack/onboard/planning/reeds_shepp_parking.py index 1d95f48b1..ec890ffc9 100644 --- a/GEMstack/onboard/planning/reeds_shepp_parking.py +++ b/GEMstack/onboard/planning/reeds_shepp_parking.py @@ -204,6 +204,7 @@ def all_parking_spots_in_parking_lot(self, List of (x, y, yaw) poses for each parking spot. """ if len(static_horizontal_curb) != 2: + return None raise ValueError("Exactly two curb endpoints are required.") # Extract center points of the curb rectangles @@ -225,6 +226,7 @@ def all_parking_spots_in_parking_lot(self, spacing = spot_length if total_length < spot_length: + return None raise ValueError("Insufficient curb length to place even one spot.") # Number of full spots that can fit along the curb @@ -398,6 +400,7 @@ def shift_points_perpendicular_ccw(self, p1, p2, shift_amount): # 2) Compute its magnitude |v| length = math.hypot(v_x, v_y) if length == 0: + return None, None, None raise ValueError("p1 and p2 must be distinct points to define a direction.") # 3) Normalize v to get unit direction v̂ = (v_x, v_y) / |v| @@ -453,6 +456,7 @@ def project_point_on_axis(self, p1, p2, p3): dot_vv = v_x * v_x + v_y * v_y # v · v if dot_vv == 0: + return (None, None) raise ValueError("p1 and p2 must be distinct to define an axis.") # Parameter t gives the position along the line: p_proj = p1 + t * v @@ -486,6 +490,7 @@ def move_point_along_vector(self, p0, direction, step, positive_direction=True): # Compute the length of the direction vector length = math.hypot(dx, dy) if length == 0: + print(None, None) raise ValueError("Direction vector must be non-zero to define a movement direction.") # Normalize the direction vector to unit length @@ -627,12 +632,18 @@ def find_available_parking_spots_and_search_vector(self, detected_cones=[], vehi self.parking_lot_axis_shift_margin ) + if self.curb_0_xy_shifted is None: + return + # Horizontal axis search direction _ , _, self.horizontal_search_axis_direction = self.shift_points_perpendicular_ccw( self.static_horizontal_curb_xy_coordinates[0], self.curb_0_xy_shifted, self.parking_lot_axis_shift_margin ) + + if self.horizontal_search_axis_direction is None: + return # Project vehicle pose onto the search axis self.vehicle_pose_proj = self.project_point_on_axis( @@ -640,7 +651,9 @@ def find_available_parking_spots_and_search_vector(self, detected_cones=[], vehi self.curb_1_xy_shifted, self.vehicle_pose[0:2] ) - + + if self.vehicle_pose_proj is None: + return # Compute bounds for the search axis self.upper_bound_xy = self.move_point_along_vector( self.curb_1_xy_shifted, @@ -680,7 +693,9 @@ def find_collision_free_trajectory_to_park(self, detected_cones=[], vehicle_pose self.vehicle_pose[0:2] ) - + if self.vehicle_pose_proj is None: + return + while True: # Move projected pose along the search axis self.vehicle_pose_proj = self.move_point_along_vector( @@ -751,7 +766,8 @@ def find_collision_free_trajectory_to_park(self, detected_cones=[], vehicle_pose # Use self.horizontal_search_axis_direction_var break # Give up in this direction - # If both directions fail + # If both directions fail + return raise ValueError("No collision-free trajectory available in either direction for parking.") @@ -767,7 +783,9 @@ def find_collision_free_trajectory_to_unpark(self, detected_cones=[], vehicle_po self.curb_0_xy_shifted, self.curb_1_xy_shifted, self.vehicle_pose[0:2] - ) + ) + if self.vehicle_pose_proj is None: + return # Move projected pose along the search axis self.vehicle_pose_proj = self.move_point_along_vector( @@ -824,5 +842,6 @@ def find_collision_free_trajectory_to_unpark(self, detected_cones=[], vehicle_po if dist_to_upper_bound < self.search_bound_threshold or dist_to_lower_bound < self.search_bound_threshold: break # Give up in this direction - # If both directions fail + # If both directions fail + return raise ValueError("No collision-free trajectory available for unparking.") \ No newline at end of file diff --git a/GEMstack/onboard/planning/route_planning.py b/GEMstack/onboard/planning/route_planning.py index 91c33fee7..6d1812c85 100644 --- a/GEMstack/onboard/planning/route_planning.py +++ b/GEMstack/onboard/planning/route_planning.py @@ -5,6 +5,8 @@ import os import numpy as np from .RRT import BiRRT +import yaml +import os class StaticRoutePlanner(Component): @@ -64,43 +66,53 @@ def get_lane_points_from_roadgraph(roadgraph: Roadgraph) -> List: def find_available_pose_in_lane(position: list, roadgraph: Roadgraph, goal_yaw=None, map_type='roadgraph'): goal = np.array(position) if map_type == 'roadgraph': - left_x, left_y = goal - right_x, right_y = goal goal_lane = None min_right_dist = np.inf + goal_lane_right_seg_idx = None min_right_idx = None for lane in roadgraph.lanes.values(): - for pts in lane.right.segments: - pts = np.array(pts) - dists = np.linalg.norm(pts[:, :2] - goal, axis=1) - min_right_idx = np.argmin(dists) - dist = dists[min_right_idx] + for seg_idx, right_pts in enumerate(lane.right.segments): + right_pts = np.array(right_pts) + dists = np.linalg.norm(right_pts[:, :2] - goal, axis=1) + min_idx = np.argmin(dists) + dist = dists[min_idx] if dist < min_right_dist: min_right_dist = dist - right_x, right_y, _ = pts[min_right_idx] + min_right_idx = min_idx + goal_lane_right_seg_idx = seg_idx goal_lane = lane + goal_lane_right_boundary = goal_lane.right.segments[goal_lane_right_seg_idx] + right_x, right_y = goal_lane_right_boundary[min_right_idx][:2] # Find the closest point in left boundary to the point in right boundary min_left_dist = np.inf - for pts in goal_lane.left.segments: - pts = np.array(pts) - dists = np.linalg.norm(pts[:, :2] - np.array([right_x, right_y]), axis=1) - min_left_idx = np.argmin(dists) - dist = dists[min_left_idx] + goal_lane_left_seg_idx = None + min_left_idx = None + for seg_idx, left_pts in enumerate(goal_lane.left.segments): + left_pts = np.array(left_pts) + dists = np.linalg.norm(left_pts[:, :2] - np.array([right_x, right_y]), axis=1) + min_idx = np.argmin(dists) + dist = dists[min_idx] if dist < min_left_dist: - left_x, left_y, _ = pts[min_left_idx] + min_left_dist = dist + min_left_idx = min_idx + goal_lane_left_seg_idx = seg_idx + goal_lane_left_boundary = goal_lane.left.segments[goal_lane_left_seg_idx] + left_x, left_y = goal_lane_left_boundary[min_left_idx][:2] goal_x = (left_x + right_x) / 2 goal_y = (left_y + right_y) / 2 + # Find the heading along the lane if goal_yaw is None: # Find orientation - if 0 < min_right_idx < len(pts) - 1: - tangent = pts[min_right_idx + 1] - pts[min_right_idx - 1] + goal_lane_right_boundary = np.array(goal_lane_right_boundary) + if 0 < min_right_idx < len(goal_lane_right_boundary) - 1: + tangent = goal_lane_right_boundary[min_right_idx + 1] - goal_lane_right_boundary[min_right_idx - 1] elif min_right_idx == 0: - tangent = pts[1] - pts[0] + tangent = goal_lane_right_boundary[1] - goal_lane_right_boundary[0] else: # idx == last point - tangent = pts[-1] - pts[-2] + tangent = goal_lane_right_boundary[-1] - goal_lane_right_boundary[-2] tangent_unit = tangent / np.linalg.norm(tangent) goal_yaw = np.arctan2(tangent_unit[1], tangent_unit[0]) @@ -150,32 +162,41 @@ def find_closest_lane(position: list, roadgraph: Roadgraph, traffic_rule='right' return closest_lane -def find_parallel_parking_lots(roadgraph: Roadgraph, goal_pose: ObjectPose, max_lane_to_parking_lot_gap=1.0): +def find_parallel_parking_lots(roadgraph: Roadgraph, goal_pose: ObjectPose, start_vehicle_pose, farthest_parking_distance=40): # Find the lane where the goal position is. goal_lane = find_closest_lane([goal_pose.x, goal_pose.y], roadgraph) goal_lane_points = np.array(goal_lane.right.segments[0]) - # Find the parking lots that attached to the lane + closest_lot = None + farthest_lot = None + closest_point = None + farthest_point = None + closest_idx = None + farthest_idx = None + min_dist = np.inf + max_dist = -np.inf + # Find the parking lots attached to the lane in current frame of the goal pose parking_lots = [] for region in roadgraph.regions.values(): if region.type == RoadgraphRegionEnum.PARKING_LOT: - for pt in region.outline: - dist = np.linalg.norm(goal_lane_points[:, :2] - np.array(pt[:2]), axis=1) - if np.min(dist) < max_lane_to_parking_lot_gap: - parking_lots.append(region.outline) - break - - # Find the closest and farthest parking lots and the middle points of the start and end curves as the parking area - # Assume that the closest lot is close to the start of the lane, and the farthest lot is close to the end. - closest_lot = None - farthest_lot = None - closest_start_point = None - closest_start_index = None - closest_end_point = None - closest_end_index = None - min_start_dist = np.inf - min_end_dist = np.inf - parking_area_start_end = None + region_current = region.to_frame(roadgraph.frame, ObjectFrameEnum.CURRENT, current_origin=goal_pose, global_origin=start_vehicle_pose) + available = True + for pt in region_current.outline: + # Remove not available regions + if pt[1] > 0 or pt[1] < -10 or pt[0] > farthest_parking_distance or pt[0] < 3: + available = False + if available: + parking_lots.append(region.outline) + for i, pt in enumerate(region_current.outline): + dist = np.sqrt(pt[0]**2 + pt[1]**2) + if dist > max_dist: + max_dist = dist + farthest_idx = i + farthest_lot = region.outline + if dist < min_dist: + min_dist = dist + closest_idx = i + closest_lot = region.outline def next_point(index, outline, direction='ccw'): if direction == 'ccw': @@ -186,26 +207,16 @@ def next_point(index, outline, direction='ccw'): next_index = 0 return outline[next_index] + # Find the closest and farthest parking lots and the middle points of the start and end curves as the parking area + parking_area_start_end = None if len(parking_lots) > 0: - for outline in parking_lots: - for idx, pt in enumerate(outline): - start_dist = np.linalg.norm(goal_lane_points[0, :2] - np.array(pt[:2])) - end_dist = np.linalg.norm(goal_lane_points[-1, :2] - np.array(pt[:2])) - if start_dist < min_start_dist: - min_start_dist = start_dist - closest_start_point = pt - closest_start_index = idx - closest_lot = outline - if end_dist < min_end_dist: - min_end_dist = end_dist - closest_end_point = pt - closest_end_index = idx - farthest_lot = outline # Find the middle point of the start curve and the end curve of the parking area - parking_area_start = (np.array(closest_start_point) + np.array( - next_point(closest_start_index, closest_lot, direction='ccw'))) / 2 - parking_area_end = (np.array(closest_end_point) + np.array( - next_point(closest_end_index, farthest_lot, direction='cw'))) / 2 + closest_point = closest_lot[closest_idx] + closest_next = next_point(closest_idx, closest_lot, direction='ccw') + parking_area_start = [(closest_point[0]+closest_next[0])/2, (closest_point[1]+closest_next[1])/2] + farthest_point = farthest_lot[farthest_idx] + farthest_next = next_point(farthest_idx, farthest_lot, direction='ccw') + parking_area_end = [(farthest_point[0]+farthest_next[0])/2, (farthest_point[1]+farthest_next[1])/2] parking_area_start_end = [parking_area_start, parking_area_end] return parking_lots, parking_area_start_end @@ -222,6 +233,8 @@ def __init__(self, roadgraphfn: str = None, map_type: str = 'roadgraph', map_fra self.map_type = map_type self.lane_points = [] self.map_boundary = None + self.obstacle_list = [] + self.goal_pose = None print(map_type, map_frame) @@ -282,9 +295,19 @@ def update(self, state: AllState): print("Vehicle pose:", vehicle.pose) """ Transform offline map to start frame """ - # if self.roadgraph.frame is not ObjectFrameEnum.START: - print("=+++++++++++++++++++++++++",state.start_vehicle_pose) - self.roadgraph = self.roadgraph.to_frame(ObjectFrameEnum.START, start_pose_abs=state.start_vehicle_pose) + start_vehicle_pose = state.start_vehicle_pose + if start_vehicle_pose.frame == ObjectFrameEnum.ABSOLUTE_CARTESIAN and self.map_frame == ObjectFrameEnum.GLOBAL: + # For global map simulation test + print(os.getcwd()) + with open("scenes/summoning_map_sim_setting.yaml", "r") as f: + data = yaml.safe_load(f) + start = data['start_pose_global'] + # Convert roadgraph to start frame + start_vehicle_pose = ObjectPose(frame=ObjectFrameEnum.GLOBAL, t=start_vehicle_pose.t, + x=start[0], y=start[1], yaw=start[2]) + + self.roadgraph = self.roadgraph.to_frame(ObjectFrameEnum.START, start_pose_abs=start_vehicle_pose) + # Get all the points of lanes if self.map_type == 'roadgraph': self.lane_points = get_lane_points_from_roadgraph(self.roadgraph) @@ -299,10 +322,27 @@ def update(self, state: AllState): """ Get obstacle list """ # TODO: Include dimension - obstacle_list = [] + # Predefined offline obstacles + with open("scenes/summoning_map_sim_setting.yaml", "r") as f: + data = yaml.safe_load(f) + obs_frame = data['obstacles']['frame'] + offline_obstacles = data['obstacles']['positions'] + # Convert obstacles ot start frame + for obstacle in obstacles: + if obs_frame == 'cartesian': + obs_pose = ObjectPose(frame=ObjectFrameEnum.ABSOLUTE_CARTESIAN, t=start_vehicle_pose.t, x=offline_obstacles[0], y=offline_obstacles[1]) + elif obs_frame == 'start': + obs_pose = ObjectPose(frame=ObjectFrameEnum.START, t=start_vehicle_pose.t, x=offline_obstacles[0], y=offline_obstacles[1]) + elif obs_frame == 'global': + obs_pose = ObjectPose(frame=ObjectFrameEnum.GLOBAL, t=start_vehicle_pose.t, x=offline_obstacles[0], y=offline_obstacles[1]) + else: + raise ValueError("Unknown obstacle frame", obs_frame) + obs_pose = obs_pose.to_frame(ObjectFrameEnum.START, start_pose_abs=start_vehicle_pose) + self.obstacle_list.append([obs_pose.x, obs_pose.y]) + + # Online obstacles for obstacle in obstacles.values(): - obstacle_list.append([obstacle.pose.x, obstacle.pose.y]) - self.obstacle_list = np.array(obstacle_list) + self.obstacle_list.append([obstacle.pose.x, obstacle.pose.y]) """ Route planing in different mission states """ # Idle mode. No mission, no driving. (Added by Summoning) @@ -312,22 +352,42 @@ def update(self, state: AllState): self.route = None # Summoning driving mode. - elif mission.type == MissionEnum.SUMMONING_DRIVE: + elif mission.type == MissionEnum.SUMMON_DRIVING: print("I am in SUMMON_DRIVING mode") if self.route is None: # Find appropri ate start and goal points that are on the lanes and fix for searching start_pose = find_available_pose_in_lane([vehicle.pose.x, vehicle.pose.y], self.roadgraph, goal_yaw=vehicle.pose.yaw, map_type=self.map_type) - goal_pose = find_available_pose_in_lane([mission.goal_pose.x, mission.goal_pose.y], + goal_pose1 = find_available_pose_in_lane([mission.goal_pose.x, mission.goal_pose.y], self.roadgraph, map_type=self.map_type) - print('Start pose:', start_pose) - print('Goal pose:', goal_pose) + # Reverse direction of goal_pose1 + goal_pose2 = [goal_pose1[0], goal_pose1[1], (goal_pose1[2] + np.pi*2) % (2 * np.pi) - np.pi] - # Search for waypoints + # Search for waypoints. search for two goal yaws and choose the shorter path. searcher = BiRRT(self.lane_points, self.map_boundary, update_rate=self.update_rate) - waypoints = searcher.search(start_pose, goal_pose, obstacle_list=self.obstacle_list.tolist()) + waypoints1 = searcher.search(start_pose, goal_pose1, obstacle_list=self.obstacle_list) + waypoints2 = searcher.search(start_pose, goal_pose2, obstacle_list=self.obstacle_list) + if len(waypoints1) != 0 and len(waypoints2) != 0: + if len(waypoints1) <= len(waypoints2): + waypoints = waypoints1 + goal_pose = goal_pose1 + else: + waypoints = waypoints2 + goal_pose = goal_pose2 + elif len(waypoints1) != 0: + waypoints = waypoints1 + goal_pose = goal_pose1 + elif len(waypoints2) != 0: + waypoints = waypoints2 + goal_pose = goal_pose2 + else: + waypoints = [] + goal_pose = goal_pose1 + print('Start pose:', start_pose) + print('Goal pose:', goal_pose) + self.goal_pose = ObjectPose(frame=ObjectFrameEnum.START, t=start_vehicle_pose.t, x=goal_pose[0], y=goal_pose[1], yaw=goal_pose[2]) # For now, waypoints of [x, y, heading] is not working in longitudinal_planning. Use [x, y] instead. if waypoints: waypoints = np.array(waypoints) @@ -345,23 +405,24 @@ def update(self, state: AllState): print("I am in PARALLEL_PARKING mode") if self.parking_velocity_is_zero == False and state.vehicle.v > 0.01: - print("Vehicle is moving, stop it first.") - return None + print("Vehicle is moving, wait to stop.") + self.route = Route(frame=ObjectFrameEnum.START, points=[[vehicle.pose.x, vehicle.pose.y],[vehicle.pose.x, vehicle.pose.y]]) - if self.map_type == 'roadgraph': - parking_lots, parking_area_start_end = find_parallel_parking_lots(self.roadgraph, vehicle.pose) + elif self.map_type == 'roadgraph': + parking_lots, parking_area_start_end = find_parallel_parking_lots(self.roadgraph, self.goal_pose, start_vehicle_pose) self.reedssheppparking.static_horizontal_curb_xy_coordinates = parking_area_start_end self.parking_velocity_is_zero = True - print("Parking lots:", parking_lots) - print("Parking area start and end:", parking_area_start_end) + print("Parking area start and end:", self.reedssheppparking.static_horizontal_curb_xy_coordinates) + print("Obstacle list:", self.obstacle_list) - if not self.parking_route_existed: - self.current_pose = [vehicle.pose.x, vehicle.pose.y, vehicle.pose.yaw] - print("Current pose:", self.current_pose) - print("Obstacle list:", self.obstacle_list) + if not self.reedssheppparking.static_horizontal_curb_xy_coordinates: + print("No parking area found, stop.") + self.route = None + elif not self.parking_route_existed: + self.current_pose = [vehicle.pose.x, vehicle.pose.y, vehicle.pose.yaw] self.reedssheppparking.find_available_parking_spots_and_search_vector(self.obstacle_list, self.current_pose) self.reedssheppparking.find_collision_free_trajectory_to_park(self.obstacle_list, self.current_pose, True) @@ -369,8 +430,14 @@ def update(self, state: AllState): else: self.waypoints_to_go = self.reedssheppparking.waypoints_to_go - self.route = Route(frame=ObjectFrameEnum.START, points=self.waypoints_to_go.tolist()) - print("Route:", self.route) + if len(self.waypoints_to_go) > 0: + self.route = Route(frame=ObjectFrameEnum.START, points=self.waypoints_to_go.tolist()) + else: + self.route = None + print("No route found, stop.") + else: + print("No parking lots, stop.") + self.route = None else: print("Unknown mode") diff --git a/GEMstack/state/mission.py b/GEMstack/state/mission.py index 2a3e73b78..eb48a4c7f 100644 --- a/GEMstack/state/mission.py +++ b/GEMstack/state/mission.py @@ -14,7 +14,7 @@ class MissionEnum(Enum): TELEOP = 3 # manual teleop control RECOVERY_STOP = 4 # abnormal condition detected, must stop now ESTOP = 5 # estop pressed, must stop now - SUMMONING_DRIVE = 6 + SUMMON_DRIVING = 6 PARALLEL_PARKING = 7 INSPECT = 8 INSPECT_UPLOAD = 9 diff --git a/GEMstack/state/roadgraph.py b/GEMstack/state/roadgraph.py index 3fff54dfc..670307d57 100644 --- a/GEMstack/state/roadgraph.py +++ b/GEMstack/state/roadgraph.py @@ -107,7 +107,7 @@ class RoadgraphLane: end : Optional[RoadgraphCurve] = None # Optional curve that ends at the end of the lane def to_frame(self, orig_frame : ObjectFrameEnum, new_frame : ObjectFrameEnum, - current_origin = None, global_origin = None) -> RoadgraphCurve: + current_origin = None, global_origin = None) -> RoadgraphLane: return replace(self,left=self.left.to_frame(orig_frame,new_frame,current_origin,global_origin) if self.left is not None else None, right=self.right.to_frame(orig_frame,new_frame,current_origin,global_origin) if self.right is not None else None, center=self.center.to_frame(orig_frame,new_frame,current_origin,global_origin) if self.center is not None else None, @@ -145,7 +145,7 @@ class RoadgraphRegion: crossable : bool = True def to_frame(self, orig_frame : ObjectFrameEnum, new_frame : ObjectFrameEnum, - current_origin = None, global_origin = None) -> RoadgraphCurve: + current_origin = None, global_origin = None) -> RoadgraphRegion: return replace(self,outline=[convert_point(p,orig_frame,new_frame,current_origin,global_origin) for p in self.outline]) @@ -160,7 +160,7 @@ class RoadgraphConnection: location : List[Tuple[float,float]] = field(default_factory=list) # a polyline defining when this transition occurs def to_frame(self, orig_frame : ObjectFrameEnum, new_frame : ObjectFrameEnum, - current_origin = None, global_origin = None) -> RoadgraphCurve: + current_origin = None, global_origin = None) -> RoadgraphConnection: return replace(self,location=[convert_point(p,orig_frame,new_frame,current_origin,global_origin) for p in self.location]) diff --git a/launch/summoning.yaml b/launch/summoning.yaml index bd1ffb4c7..364facca8 100644 --- a/launch/summoning.yaml +++ b/launch/summoning.yaml @@ -12,23 +12,24 @@ recovery: drive: perception: state_estimation : GNSSStateEstimator -# agent_detection : cone_detection.ConeDetector3D + agent_detection : cone_detection.ConeDetector3D perception_normalization : StandardPerceptionNormalizer planning: -# relations_estimation: pedestrian_yield_logic.PedestrianYielder + relations_estimation: pedestrian_yield_logic.PedestrianYielder mission_planning: type: SummoningMissionPlanner args: - use_webapp: false # goal should be defined when use_webapp is false - webapp_url: 'https://summon-app-production.up.railway.app/' + use_webapp: True # goal should be defined when use_webapp is false + webapp_url: 'https://cs588-prod.up.railway.app/' # https://summon-app.vercel.app/map for the webapp UI # Goal test points for summoning_roadgraph_sim.json, frame is 'start' or 'cartesian'. # Key points:[0, 0], [0, 30], [37.5, 7.5], [33, 12],[28.5, 7.5],[15, 3], [1.5, 7.5], [15, 12], [-3, 12], [-7.5, 7.5] # Points not in the lane:[15, -3], [15, 6], [15, 9], [15, 15] - # Goal test points for summoning_roadgraph_highbay.json, frame is 'global'. + # Goal test points for summoning_roadgraph_highbay.json, frame i s 'global'. # Key points: [-88.235317, 40.0927934], [-88.235252, 40.0927527], [-88.235164, 40.0927934], [-88.235211, 40.0928573], # [-88.235527, 40.0927436], [-88.235968, 40.0927432], [-88.236046, 40.0927917], [-88.236008, 40.0928604], [-88.235905, 40.0927917] - goal: {'location':[5, -3], 'frame':'cartesian'} - state_machine: [MissionEnum.IDLE, MissionEnum.SUMMONING_DRIVE, MissionEnum.PARALLEL_PARKING] +# goal: {'location':[32.5, 12], 'frame':'cartesian'} + goal: {'location':[-88.235317, 40.0928516], 'frame':'global'} + state_machine: [MissionEnum.IDLE, MissionEnum.SUMMON_DRIVING, MissionEnum.PARALLEL_PARKING] route_planning: type: SummoningRoutePlanner # Arguments: [path/to/roadgraph, map_type, map_frame] @@ -37,8 +38,8 @@ drive: # Make sure 'roadgraph' map_type match the structure of Roadgraph object. # 'pointlist' is a list of points, carefully define the goal to make sure it is in the lanes. # Map_frame should be 'global', 'cartesian, or 'start'. - args: [!relative_path '../GEMstack/knowledge/routes/summoning_roadgraph_sim.json', 'roadgraph', 'cartesian'] - # args: [!relative_path '../GEMstack/knowledge/routes/summoning_roadgraph_highbay.json', 'roadgraph', 'global'] + # args: [!relative_path '../GEMstack/knowledge/routes/summoning_roadgraph_sim.json', 'roadgraph', 'cartesian'] + args: [!relative_path '../GEMstack/knowledge/routes/summoning_roadgraph_highbay.json', 'roadgraph', 'global'] motion_planning: longitudinal_planning.YieldTrajectoryPlanner trajectory_tracking: type: pure_pursuit.PurePursuitTrajectoryTracker diff --git a/scenes/summoning_demo.yaml b/scenes/summoning_demo.yaml index c9b5bc86e..26a1ad72b 100644 --- a/scenes/summoning_demo.yaml +++ b/scenes/summoning_demo.yaml @@ -1,4 +1,4 @@ -vehicle_state: [15.0, 14.0, 3.14, 0.0, 0.0] +vehicle_state: [10.0, 0.0, 0.0, 0.0, 0.0] agents: car1: type: car diff --git a/scenes/summoning_map_sim_setting.yaml b/scenes/summoning_map_sim_setting.yaml new file mode 100644 index 000000000..6d2b3f56d --- /dev/null +++ b/scenes/summoning_map_sim_setting.yaml @@ -0,0 +1,4 @@ +start_pose_global: [-88.235317, 40.0927934, 0.0] # Global pose for global map simulation +obstacles: + frame: 'global' + positions: [[-88.235500, 40.0927650]] \ No newline at end of file diff --git a/testing/roadgraph_generator.py b/testing/roadgraph_generator.py index cdbe6f0a5..f671f1570 100644 --- a/testing/roadgraph_generator.py +++ b/testing/roadgraph_generator.py @@ -217,20 +217,13 @@ def create_lane(left_back : Tuple, left_forward : Tuple, route_name='' ) roadgraph.lanes['t_1_1'] = create_lane(left_back=(33.0, 10.5, 0.0), left_forward=(30.0, 7.5, 0.0), - right_back=(33.0, 13.5, 0.0), right_forward=(28.5, 13.5, 0.0), + right_back=(24.0, 10.5, 0.0), right_forward=(27.0, 7.5, 0.0), left_crossable=False, left_type='arc', left_radius=3.0, left_direction='ccw', - right_crossable=False, - resolution=resolution, - route_name='' - ) - roadgraph.lanes['t_1_2'] = create_lane(left_back=(27.0, 7.5, 0.0), left_forward=(24.0, 10.5, 0.0), - right_back=(28.5, 13.5, 0.0), right_forward=(24.0, 13.5, 0.0), - left_crossable=False, left_type='arc', left_radius=3.0, left_direction='ccw', - right_crossable=False, + right_crossable=False, right_type='arc', right_radius=3.0, right_direction='cw', resolution=resolution, route_name='' ) - roadgraph.lanes['t_1_3'] = create_lane(left_back=(30.0, 7.5, 0.0), left_forward=(24.0, 1.5, 0.0), + roadgraph.lanes['t_1_2'] = create_lane(left_back=(30.0, 7.5, 0.0), left_forward=(24.0, 1.5, 0.0), right_back=(27.0, 7.5, 0.0), right_forward=(24.0, 4.5, 0.0), left_crossable=False, left_type='arc', left_radius=6.0, left_direction='cw', right_crossable=False, right_type='arc', right_radius=3.0, right_direction='cw', @@ -251,22 +244,16 @@ def create_lane(left_back : Tuple, left_forward : Tuple, resolution=resolution, route_name='' ) - roadgraph.lanes['t_2_2'] = create_lane(left_back=(6.0, 10.5, 0.0), left_forward=(3.0, 7.5, 0.0), - right_back=(6.0, 13.5, 0.0), right_forward=(1.5, 13.5, 0.0), + roadgraph.lanes['t_2_2'] = create_lane(left_back=(0.0, 7.5, 0.0), left_forward=(-3.0, 10.5, 0.0), + right_back=(3.0, 7.5, 0.0), right_forward=(6.0, 10.5, 0.0), left_crossable=False, left_type='arc', left_radius=3.0, left_direction='ccw', - right_crossable=False, - resolution=resolution, - route_name='' - ) - roadgraph.lanes['t_2_3'] = create_lane(left_back=(0.0, 7.5, 0.0), left_forward=(-3.0, 10.5, 0.0), - right_back=(1.5, 13.5, 0.0), right_forward=(-3.0, 13.5, 0.0), - left_crossable=False, left_type='arc', left_radius=3.0, left_direction='ccw', - right_crossable=False, + right_crossable=False, right_type='arc', right_radius=3.0, right_direction='cw', resolution=resolution, route_name='' ) roadgraph.lanes['lane_2'] = create_lane(left_back=(24.0, 10.5, 0.0), left_forward=(6.0, 10.5, 0.0), - right_back=(24.0, 13.5, 0.0), right_forward=(6.0, 13.5, 0.0), + # right_back=(24.0, 13.5, 0.0), right_forward=(6.0, 13.5, 0.0), + right_back=(33.0, 13.5, 0.0), right_forward=(-3.0, 13.5, 0.0), left_crossable=False, right_crossable=False, resolution=resolution, @@ -405,15 +392,15 @@ def create_rectangle_region(start, width, height, direction, enum_type=Roadgraph resolution=resolution, route_name='' ) - roadgraph.lanes['westward'] = create_lane(right_forward=(-88.235905*2-(-88.235968), 40.0927433+lat_ratio*1.5, 0.0), - right_back=(-88.235317*2+88.235252, 40.0927516+lat_ratio*1.5, 0.0), - left_forward=(-88.235968, 40.0927432-lat_ratio*1.5, 0.0), - left_back=(-88.235252, 40.0927527-lat_ratio*1.5, 0.0), - left_crossable=False, - right_crossable=False, - resolution=resolution, - route_name='' - ) + # roadgraph.lanes['westward'] = create_lane(right_forward=(-88.235905*2-(-88.235968), 40.0927433+lat_ratio*1.5, 0.0), + # right_back=(-88.235317*2+88.235252, 40.0927516+lat_ratio*1.5, 0.0), + # left_forward=(-88.235968, 40.0927432-lat_ratio*1.5, 0.0), + # left_back=(-88.235252, 40.0927527-lat_ratio*1.5, 0.0), + # left_crossable=False, + # right_crossable=False, + # resolution=resolution, + # route_name='' + # ) roadgraph.lanes['west_cycle_1'] = create_lane(left_back=(-88.235968, 40.0927432-lat_ratio*1.5, 0.0), left_forward=(-88.235968, 40.0928604+lat_ratio*1.5, 0.0), right_back=(-88.235968, 40.0927432+lat_ratio*1.5, 0.0), @@ -448,7 +435,13 @@ def create_rectangle_region(start, width, height, direction, enum_type=Roadgraph route_name='' ) + parking_edge_lat = 40.0927436 + 2 * lat_ratio + print(parking_edge_lat) + roadgraph.regions['lane0_parallel_parking_lot_1'] = create_rectangle_region([-88.235527-p_l*lon_ratio*3, parking_edge_lat], p_l*lon_ratio, p_w*lat_ratio, 'right') + roadgraph.regions['lane0_parallel_parking_lot_2'] = create_rectangle_region([-88.235527-p_l*lon_ratio*2, parking_edge_lat], p_l*lon_ratio, p_w*lat_ratio, 'right') + roadgraph.regions['lane0_parallel_parking_lot_3'] = create_rectangle_region([-88.235527-p_l*lon_ratio, parking_edge_lat], p_l*lon_ratio, p_w*lat_ratio, 'right') + roadgraph.regions['lane0_parallel_parking_lot_4'] = create_rectangle_region([-88.235527, parking_edge_lat], p_l*lon_ratio, p_w*lat_ratio, 'right') + with open(filename, 'w') as f: serialization.save(roadgraph, f) print('File saved:', filename) - diff --git a/testing/roadgraph_lane_reader.py b/testing/roadgraph_lane_reader.py index 8bd4cc673..e7b75b416 100644 --- a/testing/roadgraph_lane_reader.py +++ b/testing/roadgraph_lane_reader.py @@ -53,8 +53,8 @@ def plot_roadgraph(roadgraphfn, scale) -> None: if map_type == 'roadgraph': if len(outlines) > 0: outlines = np.array(outlines) - p_x = outlines[:, 0] - p_y = outlines[:, 1] + p_x = outlines[:, 0] * scale + p_y = outlines[:, 1] * scale plt.scatter(p_x, p_y) plt.show()