-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplot-racing-line-waypoints.py
160 lines (126 loc) · 20.8 KB
/
plot-racing-line-waypoints.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
import matplotlib.pyplot as plt
import numpy as np
# Shapely Library
from shapely.geometry import Point, Polygon
from shapely.geometry.polygon import LinearRing, LineString
# SciPy Interpolation https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html
from scipy import interpolate
# Track Name from Tracks List
# track_name = "New_York_Track"
# track_name = "Mexico_track"
# track_name = "Canada_Eval"
track_name = "Canada_Training"
# Toronto Turnpike track waypoints
#center_line_waypoints = [[4.609185457229614,1.643046498298645],[4.504319190979004,1.67146497964859],[4.399074554443359,1.6984639763832092],[4.293483018875122,1.724132478237152],[4.187655448913574,1.7487720251083374],[4.081698417663574,1.7727230191230774],[3.97563099861145,1.7962635159492493],[3.869505524635315,1.8197744488716125],[3.763600468635559,1.8441064953804016],[3.6581575870513916,1.8700284957885742],[3.553057551383972,1.8975245356559753],[3.4481170177459717,1.926171064376831],[3.3432644605636597,1.9547145366668701],[3.2383874654769897,1.982143521308899],[3.1319295167922974,2.0092655420303345],[3.02654492855072,2.0406585335731506],[2.9239845275878906,2.07964950799942],[2.8259520530700684,2.12832248210907],[2.732545971870422,2.185194075107575],[2.6429165601730347,2.2447015047073364],[2.5543090105056763,2.3058074712753296],[2.4664459228515625,2.365598440170288],[2.3773385286331177,2.4274550676345825],[2.2884784936904907,2.4898605346679688],[2.197836995124817,2.5495954751968384],[2.102916955947876,2.6027674674987793],[2.002554476261139,2.645362973213196],[1.897580981254578,2.6736689805984497],[1.789713978767395,2.686097025871277],[1.6813725233078003,2.6819549798965454],[1.5749970078468323,2.660743474960327],[1.4726009964942932,2.6243544816970825],[1.3748530149459839,2.5758700370788574],[1.281750500202179,2.518436908721924],[1.1937781870365143,2.453410029411316],[1.1129567921161652,2.3800384998321533],[1.0421969592571259,2.297893524169922],[0.9861142337322235,2.205552577972412],[0.947014570236206,2.104879081249237],[0.9247994124889374,1.9987910389900208],[0.9167823195457458,1.8902974724769592],[0.9209622740745544,1.7814240455627441],[0.936503678560257,1.6736440062522888],[0.9632556438446045,1.568269968032837],[1.0001376271247864,1.465837001800537],[1.0447850227355957,1.3665714859962463],[1.093875676393509,1.2697779536247253],[1.1451406478881836,1.1739444732666016],[1.1981981694698334,1.0790521800518036],[1.253183275461197,0.985353022813797],[1.3102859854698181,0.8929578363895416],[1.3698010444641118,0.8020434081554405],[1.4323539733886719,0.7131966054439545],[1.4986765384674072,0.6271558403968811],[1.569568514823913,0.5448682457208642],[1.6453405022621155,0.4669097065925598],[1.7242580056190497,0.39215361326932846],[1.804488003253936,0.3192039653658873],[1.8858450651168823,0.24728101963410154],[1.9680349230766296,0.17558056116104126],[2.0486620664596558,0.10257739573717117],[2.1293065547943115,0.02980794757604599],[2.2090935111045837,-0.04387355595827103],[2.2870789766311646,-0.11935244500637054],[2.3589104413986206,-0.19992218585684896],[2.416489601135254,-0.29014210030436516],[2.457169532775879,-0.3888736441731453],[2.4800769090652466,-0.49412575364112854],[2.4912240505218506,-0.602191299200058],[2.4985815286636353,-0.710907906293869],[2.509809970855713,-0.8190776705741882],[2.5317574739456177,-0.9251802265644073],[2.5677324533462524,-1.0271103382110596],[2.6162115335464478,-1.1239750683307648],[2.674426555633545,-1.2161155343055725],[2.735548973083496,-1.3058364987373352],[2.7990576028823853,-1.3936030268669128],[2.8660950660705566,-1.4792065024375916],[2.9362080097198486,-1.5624719858169556],[3.008868455886841,-1.6431390047073364],[3.084826946258545,-1.7206114530563354],[3.164761543273926,-1.7943825125694275],[3.2477575540542603,-1.8646840453147888],[3.332667589187622,-1.9321004748344421],[3.4189904928207397,-1.997926950454712],[3.506491541862488,-2.0630074739456177],[3.5949885845184326,-2.1266459822654724],[3.684191584587097,-2.18951553106308],[3.775633454322815,-2.248464524745941],[3.8714624643325806,-2.2978655099868774],[3.972942352294922,-2.3312435150146484],[4.078174591064453,-2.34393048286438],[4.1832311153411865,-2.332993984222412],[4.284292936325073,-2.300551950931549],[4.379820346832275,-2.2515174746513367],[4.47145414352417,-2.193326473236084],[4.56273341178894,-2.1337549686431885],[4.657216787338257,-2.080012023448944],[4.756945610046387,-2.0384190678596497],[4.862459659576418,-2.013380467891693],[4.970647573471069,-2.0032860040664673],[5.0793156623840305,-2.0059640407562256],[5.186042070388794,-2.022897481918335],[5.289485216140747,-2.054390013217926],[5.388495683670044,-2.098896026611328],[5.484181880950926,-2.1510540246963488],[5.57831859588623,-2.2052585482597347],[5.672954559326174,-2.2585664987564096],[5.769561052322388,-2.308664560317993],[5.86968994140625,-2.350277543067932],[5.973845958709717,-2.3786829710006714],[6.080930948257446,-2.39066743850708],[6.1891584396362305,-2.3882399797439575],[6.2973949909210205,-2.376492500305176],[6.405588388442993,-2.362933039665222],[6.514252901077269,-2.3558554649353027],[6.6224071979522705,-2.3618520498275757],[6.72736668586731,-2.385164499282837],[6.8269994258880615,-2.4255974292755127],[6.919412136077883,-2.4812730550766],[7.0064451694488525,-2.5462489128112793],[7.092819452285767,-2.6122244596481323],[7.183058977127073,-2.672051072120665],[7.280209541320801,-2.7190674543380737],[7.3827290534973145,-2.7531665563583374],[7.488784551620483,-2.7765880823135376],[7.596723556518555,-2.7887380123138428],[7.705402851104736,-2.790287494659424],[7.813960552215576,-2.7823420763015747],[7.921756505966188,-2.7679904699325557],[8.02846646308899,-2.746973991394043],[8.133998394012451,-2.7196990251541138],[8.23613452911377,-2.6825735569000244],[8.332922458648682,-2.633623957633972],[8.422791957855225,-2.5729780197143555],[8.505171775817871,-2.504824995994568],[8.580915927886963,-2.4276044368743896],[8.651664733886719,-2.344859480857849],[8.719083309173584,-2.2570735216140756],[8.784222602844238,-2.1693264842033386],[8.844747543334961,-2.079285979270935],[8.89870309829712,-1.9854525327682495],[8.941900730133057,-1.886442482471466],[8.973433494567871,-1.7830125093460083],[8.99543809890747,-1.67678302526474],[9.011030197143555,-1.5691459774971008],[9.019242286682129,-1.460712492465973],[9.020208358764648,-1.3520789742469788],[9.011768817901611,-1.2437620162963867],[8.993597030639648,-1.1366320252418518],[8.963536739349365,-1.0319579541683197],[8.92065954208374,-0.9316902160644531],[8.865981578826904,-0.8372134864330292],[8.798622131347656,-0.7516090571880341],[8.719659805297852,-0.6770026534795761],[8.630758285522461,-0.6159686893224716],[8.532961368560791,-0.5721200853586197],[8.429037094116211,-0.547596201300621],[8.322094917297363,-0.5419068858027458],[8.214502334594727,-0.5509504973888397],[8.107054710388184,-0.5676377415657043],[7.99943470954895,-0.5833219960331917],[7.891502141952515,-0.5876642614603043],[7.784543991088867,-0.5754548460245132],[7.680687427520752,-0.5468097031116486],[7.580629825592041,-0.5049368590116501],[7.485086441040039,-0.4528762549161911],[7.393003940582275,-0.3945930488407612],[7.302894353866577,-0.3335093390196562],[7.215418338775635,-0.2687771514974884],[7.131267786026001,-0.19994257017970085],[7.048273086547852,-0.12489104643464088],[6.968200922012329,-0.053852058947086334],[6.89148736000061,0.024007253348827362],[6.82938289642334,0.10758724808692932],[6.775941610336304,0.199321030639112],[6.737826824188232,0.29889320209622383],[6.709502935409546,0.40252915769815445],[6.681049823760986,0.5060942023992538],[6.644915580749512,0.6065077483654022],[6.594740629196167,0.6999478936195374],[6.529064416885376,0.7834510207176208],[6.450721025466919,0.8565658330917358],[6.365326881408691,0.9224684834480286],[6.278306007385254,0.9864456653594971],[6.18789529800415,1.0452293157577515],[6.092773914337158,1.097053974866867],[5.9950110912323,1.143466979265213],[5.8969035148620605,1.1911115050315857],[5.805736064910889,1.2341663241386414],[5.71117639541626,1.277884155511856],[5.619248390197754,1.3166009783744812],[5.526684045791626,1.3507930040359497],[5.526684045791626,1.3507930040359497],[5.429593563079834,1.3841480016708374],[5.332087993621826,1.416323959827423],[5.230463981628418,1.4498534798622131],[5.127819061279297,1.4835450053215027],[5.025057554244995,1.5168744921684265],[4.921543598175049,1.549900472164154],[4.817766904830933,1.5820860266685486],[4.713661432266235,1.6132075190544128],[4.609185457229614,1.643046498298645]]
# Interpolate racing lane waypoints
# racing_line_waypoints = [
# [3.02972, 2.39258],
# [1.37140, 2.19255],
# [1.02819, 0.811976],
# [2.17091, -0.407792],
# [3.34307, -1.66041],
# [5.00628, -2.29431],
# [6.87052, -2.74535],
# [8.63335, -1.91387],
# [8.43055, -0.556831],
# [7.82420, -0.282285],
# [6.77468, 0.192287],
# [4.49962, 1.66699],
# #[6.64431, 0.588418],
# [3.02972, 2.39258]]
# #[3.09133, 2.31021]]
# points = np.array(racing_line_waypoints)
# x = points[:,0]
# y = points[:,1]
# tck, u = interpolate.splprep([x, y], s=0)
# unew = np.arange(0, 1.01, 0.01)
# out = interpolate.splev(unew, tck)
# Location of tracks folder
absolute_path = "."
# Get waypoints from numpy file
waypoints = np.load("%s/tracks-npy/%s.npy" % (absolute_path, track_name))
waypoints.shape
# Get number of waypoints
print("Number of waypoints[0] = " + str(waypoints.shape[0]))
print("Number of waypoints[1] = " + str(waypoints.shape[1]))
print("waypoints.shape = " + str(waypoints.shape))
l_center_line = LineString(waypoints[:,0:2])
l_inner_border = LineString(waypoints[:,2:4])
l_outer_border = LineString(waypoints[:,4:6])
# rescale waypoints to centimeter scale
center_line = waypoints[:,0:2] *100
inner_border = waypoints[:,2:4] *100
outer_border = waypoints[:,4:6] *100
print('Training waypoints length:', len(waypoints))
# Plot waypoints
for i, point in enumerate(waypoints):
# print("point.shape = " + str(point.shape))
waypoint_center_line = (point[0], point[1]) * 10
waypoint_inner_line = (point[2], point[3]) * 10
waypoint_outer_line = (point[4], point[5]) * 10
# plt.scatter(waypoint_outer_line[0], waypoint_outer_line[1])
# plt.scatter(waypoint_center_line[0], waypoint_center_line[1])
# plt.scatter(waypoint_inner_line[0], waypoint_inner_line[1])
plt.scatter(waypoint_inner_line[0], waypoint_inner_line[1], color='green', marker='o', s=1, linewidths=0)
plt.scatter(waypoint_center_line[0], waypoint_center_line[1], color='red', marker='o', s=8, linewidths=0)
plt.scatter(waypoint_outer_line[0], waypoint_outer_line[1], color='blue', marker='o', s=1, linewidths=0)
# print("Waypoint " + str(i) + ": " + str(waypoint_center_line))
# plt.plot(x, y, 'x', out[0], out[1])
# for point in center_line_waypoints:
# plt.scatter(point[0], point[1], c='w', marker='.', s=4, linewidths=0)
track_name = "Canada_Eval"
# Get waypoints from numpy file
waypoints = np.load("%s/tracks-npy/%s.npy" % (absolute_path, track_name))
waypoints.shape
# Get number of waypoints
print("Number of waypoints[0] = " + str(waypoints.shape[0]))
print("Number of waypoints[1] = " + str(waypoints.shape[1]))
print("waypoints.shape = " + str(waypoints.shape))
l_center_line = LineString(waypoints[:,0:2])
l_inner_border = LineString(waypoints[:,2:4])
l_outer_border = LineString(waypoints[:,4:6])
# rescale waypoints to centimeter scale
center_line = waypoints[:,0:2] *100
inner_border = waypoints[:,2:4] *100
outer_border = waypoints[:,4:6] *100
print('Eval waypoints length:', len(waypoints))
# Plot waypoints
for i, point in enumerate(waypoints):
# print("point.shape = " + str(point.shape))
waypoint_center_line = (point[0], point[1]) * 10
waypoint_inner_line = (point[2], point[3]) * 10
waypoint_outer_line = (point[4], point[5]) * 10
# plt.scatter(waypoint_outer_line[0], waypoint_outer_line[1])
# plt.scatter(waypoint_center_line[0], waypoint_center_line[1])
# plt.scatter(waypoint_inner_line[0], waypoint_inner_line[1])
plt.scatter(waypoint_inner_line[0], waypoint_inner_line[1], color='cyan', marker='x', s=1, linewidths=0)
plt.scatter(waypoint_center_line[0], waypoint_center_line[1], color='purple', marker='x', s=8, linewidths=0)
plt.scatter(waypoint_outer_line[0], waypoint_outer_line[1], color='black', marker='x', s=1, linewidths=0)
# print("Waypoint " + str(i) + ": " + str(waypoint_center_line))
racing_line_waypoints = [
[4.62055 , 1.61558],
[3.03053 , 2.36438],
[1.38568 , 2.22003],
[1.04757 , 0.767549],
[2.12586 , -0.423305],
[5.01349 , -2.30882],
[7.09697 , -1.56905],
[7.04214 , 0.298425],
[6.29282 , 0.975046],
[4.62055 , 1.61558]]
points = np.array(racing_line_waypoints)
x = points[:,0]
y = points[:,1]
tck, u = interpolate.splprep([x, y], s=0)
unew = np.arange(0, 2.02, 0.02)
out = interpolate.splev(unew, tck)
plt.plot(x, y, 'x', out[0], out[1])
eval_racing_line_waypoints = [[4.62055,1.61558],[4.528456312699658,1.678613303642827],[4.418679536976235,1.7480396176440933],[4.292970844562764,1.822241101692638],[4.153081407192286,1.8995999154772987],[4.000762396597841,1.9784982186869151],[3.837764984512462,2.057318171010324],[3.6658403426691923,2.1344419321363657],[3.4867396428010666,2.208251661753877],[3.302214056641126,2.2771295195516985],[3.114014755922405,2.339457665218666],[2.9238929123779465,2.3936182584436203],[2.7335996977407846,2.4379934589153986],[2.544886283743959,2.4709654263228398],[2.359503842120508,2.4909163203547826],[2.17920354460347,2.4962283007000647],[2.0057365629258834,2.485283527047526],[1.8408540688207846,2.456464159086003],[1.6863072340212142,2.4081523565043366],[1.5438472302602086,2.338730278991362],[1.4152252292708063,2.2465800862359204],[1.3021119464099786,2.13050104181933],[1.2054826495193813,1.9928977651670092],[1.12595655823515,1.8380207094305712],[1.0641500097870864,1.6701352708023118],[1.0206793414049933,1.4935068454745284],[0.9961608903186733,1.3124008296395178],[0.9912109937579285,1.1310826194895773],[1.0064459889525619,0.9538176112170034],[1.042482213132375,0.7848712010140942],[1.0995616312640324,0.6278058000277219],[1.1758608517797535,0.4823055546396165],[1.2688481154364262,0.34672445958446757],[1.3759910295117455,0.21941532006867373],[1.4947572012834078,0.09873094129863497],[1.622614238029108,-0.016975871519249924],[1.757029747026542,-0.12935231317858054],[1.8954713355534065,-0.24004557847295882],[2.0354066108873967,-0.3507028621959849],[2.1743244605949466,-0.4629545753291371],[2.310843912847834,-0.5775397843883261],[2.445256208649994,-0.6938786778258427],[2.5779875281706452,-0.8112850172674432],[2.7094640515790096,-0.9290725643388863],[2.840111959044305,-1.0465550806659283],[2.970357430735751,-1.1630463278743266],[3.100626646822567,-1.2778600675898377],[3.231345787473972,-1.390310061438219],[3.3629410328591853,-1.4997100710452267],[3.4958385631474282,-1.6053738580366197],[3.6304645585079167,-1.7066151840381534],[3.7672451991098743,-1.802747810675586],[3.9066066651225175,-1.8930854995746744],[4.048975136715067,-1.9769420123611754],[4.194776794056741,-2.053631110660846],[4.344437817316759,-2.122466556099443],[4.498384386664341,-2.1827621103027237],[4.657042682268708,-2.233831534896446],[4.820838884299076,-2.274988591506366],[4.990199172924665,-2.305547041758241],[5.165300393413072,-2.324875478880872],[5.344818301131806,-2.332672602979375],[5.526869596692619,-2.328760056708216],[5.70957003600194,-2.312959690473387],[5.891035374966205,-2.2850933546808845],[6.069381369491841,-2.244982899736701],[6.242723775485281,-2.192450176046831],[6.4091783488529535,-2.1273170340172665],[6.566860845501293,-2.049405324054004],[6.713887021336731,-1.958536896563037],[6.848372632265695,-1.8545336019503578],[6.968433434194617,-1.7372172906219632],[7.07218518302993,-1.6064098129838436],[7.1578948398524735,-1.4621011539407633],[7.225227131855216,-1.3058355620368012],[7.2746026612726755,-1.1399977905920078],[7.30644944145686,-0.9669808338119034],[7.3211954857597705,-0.7891776859020069],[7.3192688075334145,-0.6089813410678377],[7.301097420129799,-0.4287847935149158],[7.267109336900928,-0.25098103744876016],[7.217732571198811,-0.07796306707489009],[7.153395136375448,0.08787612340117434],[7.07452504578285,0.24414353977391434],[6.9815888841333225,0.38858471971375047],[6.8755586427450375,0.520760405869025],[6.757761669520036,0.6415076301816528],[6.629532701598473,0.7516899635854192],[6.492206476120495,0.8521709770141079],[6.34711773022626,0.9438142414015047],[6.195601201055917,1.0274833276813937],[6.038991625749617,1.10404180678756],[5.878623741447514,1.1743532496537878],[5.715832285289759,1.2392812272138622],[5.551951994416505,1.2996893104015679],[5.388317605967901,1.3564410701506895],[5.226263857084106,1.4104000773950112],[5.067125484905265,1.4624299030683185],[4.912237226571532,1.513394118104396],[4.76293381922306,1.5641562934370283],[4.62055,1.61558]]
# Plot eval_racing_line_waypoints
for i, point in enumerate(eval_racing_line_waypoints):
plt.scatter(point[0], point[1], color='blue', s=5, linewidths=0)
training_racing_line_waypoints = [[4.610694188110224,1.5974245612301852],[4.443427506132032,1.7015939253761174],[4.274621121321145,1.8029289773193637],[4.104035215245068,1.900949555164127],[3.9314299694713086,1.9951754970146118],[3.7565655655673753,2.0851266409750213],[3.5792021851007703,2.1703228251495617],[3.3991000096390023,2.250283887642436],[3.2160192207495766,2.324529666557847],[3.02972,2.39258],[3.0297199999999997,2.3925799999999997],[2.798708803577319,2.5372070050025863],[2.573161961433688,2.626534681925149],[2.354964400260106,2.6653730226893373],[2.14600104674757,2.6585320192168016],[1.948156827587081,2.610821663429194],[1.7633166694696374,2.527051947248163],[1.5933654990862385,2.4120328625953595],[1.4401882431278832,2.2705744013924347],[1.3056698282855708,2.1074865555610396],[1.1916951812503,1.927579317022823],[1.1001492287130705,1.7356626776994366],[1.0329168973648812,1.5365466295125314],[0.9918831138967312,1.3350411643837565],[0.9789328049996193,1.1359562742347633],[0.9959508973645449,0.9441019509872026],[1.044798078951825,0.7642624921058092],[1.1249825972220133,0.5987284720192982],[1.2317269295689983,0.44524730092187503],[1.359798472925999,0.30108397738962805],[1.5039646242262354,0.16350349999864644],[1.6589927804029259,0.02977086732501913],[1.8196503383892897,-0.10284892205516542],[1.9807046951185467,-0.23709086956581854],[2.136923247523915,-0.37568997663085074],[2.2836853527950014,-0.5209653084463035],[2.4212788207214957,-0.6718997605176993],[2.552351981091149,-0.8258718336638821],[2.679568205639299,-0.9802498050153516],[2.805590866101286,-1.1324019517026067],[2.9330833342124514,-1.279696550856149],[3.064708981708133,-1.4195018796064771],[3.203131180323671,-1.5491862150840912],[3.3510132001819564,-1.6661179442044192],[3.5101705665096383,-1.768581381142832],[3.679515064282163,-1.8579981221316841],[3.8573372757293716,-1.936460928197329],[4.041927783081109,-2.0060625603661206],[4.231577168567218,-2.0688957796644134],[4.424576014417541,-2.1270533471185606],[4.619214902861922,-2.1826280237549156],[4.813784416130202,-2.2377125705998338],[5.006575136453917,-2.29439974867723],[5.196341463331871,-2.3541157064551386],[5.383684499833583,-2.415632452777759],[5.569664893423848,-2.4770615250375076],[5.755343291567449,-2.5365144606267993],[5.941780341729181,-2.592102796938051],[6.130036691373827,-2.6419380713636755],[6.321172987966185,-2.6841318212960927],[6.516249878971037,-2.716795584127714],[6.716328011853177,-2.738040897250958],[6.922455265921544,-2.7459817495230943],[7.134118729492807,-2.7390317990968187],[7.347765643216972,-2.716188349861479],[7.559492791110572,-2.676515992801849],[7.765396957190141,-2.6190793189027],[7.961574925472205,-2.542942919148803],[8.144123479973292,-2.447171384524931],[8.309139404709939,-2.330829306015854],[8.452719483698669,-2.1929812746063435],[8.570960500956021,-2.0326918812811736],[8.659982776537007,-1.8490928648362086],[8.717267752445474,-1.6451992156835062],[8.74237777339815,-1.429962694874883],[8.735050858105193,-1.2128362575833054],[8.695025025276767,-1.0032728589817397],[8.622038293623024,-0.8107254542431523],[8.515828681854133,-0.6446469985405101],[8.376227693942859,-0.5143031362165641],[8.207679722120547,-0.4197169432636213],[8.021258505517087,-0.34762866973205336],[7.82855126100044,-0.2837497410346633],[7.639243647486314,-0.21607996384315026],[7.454879594727739,-0.14241710045215192],[7.274824433395521,-0.0631806924738802],[7.098443470423415,0.02120968991371836],[6.925102012745181,0.1103344765326969],[6.754165482836021,0.203774079475799],[6.585091460325954,0.30109476973921584],[6.417595374605607,0.40182325244529443],[6.251437407242485,0.505479365698239],[6.0863777398041,0.6115829476022536],[5.9221765538579545,0.7196538362615419],[5.758594030971558,0.8292118697803071],[5.595390352712413,0.9397768862627551],[5.432325700648028,1.050868723813089],[5.269160256345909,1.162007220535513],[5.105654201373564,1.2727122145342307],[4.941567717298496,1.3825035439134457],[4.776660985688214,1.4909010467773622]]
# Plot training_racing_line_waypoints
for i, point in enumerate(training_racing_line_waypoints):
plt.scatter(point[0], point[1], color='cyan', s=3, linewidths=0)
plt.show()