From 5cf039a6132f5f5672ca236d23f2b5533593932d Mon Sep 17 00:00:00 2001 From: 488_MP-4 <488_MP-4@iastate.edu> Date: Mon, 13 Nov 2023 18:54:39 +0100 Subject: [PATCH] writing points to file --- cflib_groundstation/LogfileHandler.py | 51 +++++++++++++++--- .../__pycache__/LogfileHandler.cpython-38.pyc | Bin 3148 -> 4769 bytes .../crazyflie_connection.cpython-38.pyc | Bin 9845 -> 10694 bytes cflib_groundstation/crazyflie_connection.py | 51 ++++++++++++++---- .../logs/cflie1_2023_11_13_18:10:24.txt | 0 .../logs/cflie1_2023_11_13_18:12:13.txt | 0 .../logs/cflie1_2023_11_13_18:13:15.txt | 0 .../logs/cflie1_2023_11_13_18:14:15.txt | 1 + .../logs/cflie1_2023_11_13_18:15:17.txt | 0 .../logs/cflie1_2023_11_13_18:17:02.txt | 0 .../logs/cflie1_2023_11_13_18:17:50.txt | 1 + .../logs/cflie1_2023_11_13_18:43:23.txt | 1 + .../logs/cflie1_2023_11_13_18:45:48.txt | 1 + .../logs/cflie1_2023_11_13_18:51:23.txt | 1 + .../logs/cflie1_2023_11_13_18:51:55.txt | 1 + .../logs/cflie1_2023_11_13_18:52:26.txt | 1 + 16 files changed, 92 insertions(+), 17 deletions(-) create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:10:24.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:12:13.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:13:15.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:14:15.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:15:17.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:17:02.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:17:50.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:43:23.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:45:48.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:51:23.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:51:55.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:52:26.txt diff --git a/cflib_groundstation/LogfileHandler.py b/cflib_groundstation/LogfileHandler.py index 59fea4953..71220df02 100644 --- a/cflib_groundstation/LogfileHandler.py +++ b/cflib_groundstation/LogfileHandler.py @@ -1,10 +1,13 @@ from datetime import datetime from email.utils import localtime +from threading import Thread from time import time from typing import List import time import struct +from venv import create +import os import cflib.crtp from cflib.crazyflie import Crazyflie @@ -41,7 +44,11 @@ class LogfileHandler: self.is_connected = False self.param_callback_count = 0 self.logging_configs = [] - self.data_log = "" + self.data_log = None + self.data_log_name = "" + self.header_id = 0 + + self.create_log_data_file() @@ -110,15 +117,35 @@ class LogfileHandler: raise Exception("loggingBlocks.txt is not formatted correctly") config = LogConfig(data[1], data[2]) for i in range(3, len(data)): - config.add_variable(data[i]) + config.add_variable(data[i], 'float') active_blocks.append(config) + self.add_config_headers(active_blocks) return active_blocks def create_log_data_file(self): - raise Exception + self.data_log_name = os.getcwd() + self.data_log_name += f"/logs/cflie1_{time.strftime('%Y_%m_%d_%H:%M:%S', time.localtime())}.txt" + self.data_log = open(self.data_log_name, 'w') + self.data_log.close() + self.data_log = open(self.data_log_name, 'a') + self.data_log.write("#Crazyflie\r") + self.data_log.write("#Controller:Unknown\r") + self.data_log.close() + + def add_config_headers(self, config_list: List[LogConfig]): + self.data_log = open(self.data_log_name, 'a') + header = "#" + str(self.header_id) + "\ttime" + for config in config_list: + print(config) + for variable in config.variables: + print("Var: " + variable.name) + header += "\t" + variable.name + self.data_log.write(header + "\r") + self.header_id += 1 + self.data_log.close() + + - def add_config_headers(self): - raise Exception def start_logging(self): raise Exception @@ -126,8 +153,18 @@ class LogfileHandler: def stop_logging(self): raise Exception - def write_data_point(self): - raise Exception + def write_data_points(self, data, timestamp): + self.data_log = open(self.data_log_name, 'a') + line = str(timestamp) + " " + for group in data: + for data in group.values(): + line += str(data) + "\t" + line += "\r" + self.data_log.write(line) + self.data_log.close() + + + diff --git a/cflib_groundstation/__pycache__/LogfileHandler.cpython-38.pyc b/cflib_groundstation/__pycache__/LogfileHandler.cpython-38.pyc index 6467201807fee9556118b139b0fd672116df9b80..38c58eb95bad0da7d7cb58dabaca510ba2832a5c 100644 GIT binary patch delta 2450 zcmZ`)&2QX96rb_e+TM>On{75t(vT)y!KNq`qH1XRK_OKsA_<75Al!oM>^RA$_U>lv zq-3>WQB#Q{R7OaMBJCn^h&XWQAHf069DGIMKj0EByf?d{`DktV=QnTO_&vY(dozCw zwhNit>9k4U`grL>cVOUgW`zFv`0RL7u@p)eVTz~vs-+59^)x?WC4{VbpoMwO(=8p| z3D59N%k0i2t)!SsS!sCdUdHdSdc>UJ_4<8QpO8&2>-Ssz-8DHY2ewJ?gg;;n%m`)5 z%lmmN?+;poVx0C)`a{-GcfqhV@(y7c*7Jz4o*l_L#k5<b*!%eJ)8pFWDt8@Lq_Gl~ zeHY(z<se)DK`X&b=td{#7xZ5AEj@REnU9F2yM}9?1piMcOR@AL1^z&M+Dfrr)&~}8 zmSz3$&afP~IT8IvEqW~)mtG!i5L;skV1mhjdV{o#Hi0N97^+X_C7Eh5DVki37Ug$u z#5!|A$M&i#ae7~}D~|8R#wrBua=XmpTqjJlvW3xd*>iW{KLXcV-X(k_+Lh;rPeI{= zESAqS6^$OarKg5+g--6J&%qahbERdk?7n7OsvTBK_FiA%6T9Hs1!fm+&J^Zn3b*#6 zn)(-o0JWRiFno`{6#b-K8XZAV0J@6Pv(?(xVzsnby#e7&NB?ReeLJcpM(O$J>%>2= z4{U1<y=6Akh6cIJv?WTuq3gX3+5&x>QnH?f<Rlvu<p!pwC;COdqwrorqJ(ibKZ*W| z2xk%A04S#TwP?e*NHfu|#^7L_br`ct)yi^t#qQ)QC>ne?`rVj+^+>n_NCMmOJliRS z<xSUK@~Wl#!5#Q&a5=heUQ}~5Ma}3-^Oa_af_DExS%+s9p5SwUkhEx<Kyjr8QOKIa zXehT7CIPB#(w2T8O#V@xCK6bLS_3VV9k8_%ASYTn(xIzY59kf1iA<2SW};=VM0e0# zzz8HrU*O{q0G~iOgD`_|380>wnB`7=3u~LM=O$*Wm5^6G&*d|>EB7na2bDCC?h2Y; zMaUzl2yY_D2-gq>2x$`jHi~Z{3?UrOB|izeZFmAG6(Q85<1_=9fdr;#ePXV<f(*Us zR2cZ5dLDbB`I6nbdC-g{2|v`m)FucRn#lM=5JJfI8f8>uOTtXUSlOX@$aJ1;OAUIR ze0qLc4%LRdgKU!5G|-G~E1?R_sH`ROMCc`^c1F{%YW>3c8LUoAZ%CbFLp2qqO*gT0 z(8Dm*>0QiyVnO7Ye*p2+RRgz@y84mBXU6uZA!rKuy#|w=)Iu6bEC(UygQ#1?p|R=k zva{s50iQ#q$S-EPsB+O~_s~jPZHmt4pW#T~Uvsnu7R-JHPmlv3kozpv;l?Utp$ZvV zKYgSQ$9v@%&ynl1P=692<3sY0BJXzT!Y<{vLGwH|#OWY(c!;~xO1ZM~9he28oU}f2 zB!WYRFK`a4n+KiqW%Rr9BIl_ftk(8@e}BOD@G;-d>`F-Y{R^4)Kie1#!sa2m0okM- z$|N9~EQmI~4U}prZ2}a_ZPSJf78ERiia;xQeR6%YAu|PK!66`Jx0j`sCe8xnliK0a z9v$NjINhV^Vxr3*<UjTy;Y$Fqw&{2qz?oxoxr?)ciI7;o#&Iv>?;#xS*SPNiFNbdD z?5I`Cl`wb$R^9H!uGQhm39OIJRZkyk-(zbRaHBS-nxp7mVdYZD=h3N+fLjCC5HbkJ zQof2%MyMb>3r<LQnD8C|Y!q>T=~Pklq0AY5TsN~lx~$7$zBtN}S8>wyow7F-olTlE z@cZI)2jX!BKZKQxwQ#G38jK^>pb0lhVXSPrl}(;NBisg~_mc&xM;pnBw1H;o`i8sV zax?llIoV92RSF@EbNzT^F2P3D-C(DH>*D`nwX)&YwqmJL6CpnD-(vl;Uu7GfdljP( YaNEXhvU6k0Li!~{xW&7dDxi}818B||+5i9m delta 828 zcmZuuId2m|6yDjLU9b1>?Oa^pSb~GF0Rd9NQGf`Egd-t`f&ppecsACGS=*UiBiYzc zgn}~B^e8DQXov(Q4Fv^hDYoS=K+ntu0R=PCd*A!sHS^w{^K~lo(6$YUpX$;B?|pVB za}<2oIe+S<f)pTO2}1${6{!hU31>N{5)EmIP9dFZjidtu8A(ivn1O|?1na~OGAQ#q zH;b}7HcfIt9_16xAcdfS3PBMS6Wb)Epp41_&+sM_X!4$fEo{G%u)QUtDXcc6N``6R zWClil;8j2j@B3l2%2vP&P-S004e|(sU62tt%U;WK!i4(=vI1a5qmX@5RxFVfdSv6R zL`%$r_2LZweVEL^FrWs+-9Lag!Tiv!k#0MzwKj<FU2>7?M%|V>%sY=<CvY9?I?Ibr zebH$Q*%j?OfNUzYtQC1RI>|Ot*N>M3OhlQZ*uK;44c5A?weFHnyc+wIie|3?Noq@D z5J?zdc}pJ4SQ#rL1;eMxHlUYTL;pEf8fznc*BGfIZCcs`K-vbIxe?gqtgto<BajT{ zdHOMkS)6`SI3YS87h;x+ib=1sy0LJ~;zq2}W~c4NRug0QS(EzBb>dahw8%ahb@QJm zv#fbUYw(P4kzF(wlmf6=$2_O3R&@3*SG_wSib3qRB6^!cx+cWm{6GJuHg|{tggO^G zfKV@I&LnJQn$`1@GZb=1tVM&K-)U1dF~W%UTM>JccYww|=TF-yL93g6ukTTv{m9Rc z)10AVZ`2gNqFB><wMCo5fmm3T?~We+xYG}MgIMnLlCJ-IWUSu^y0}lgTQaW|iqTo% Q@ajO9^+TNK9LKuy3(kzP$^ZZW diff --git a/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc b/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc index a880844f863cc0e4376eae434e19710590875b17..c8b8d69dfd7a79b2ef07b4e7cc8c8446aa446fb0 100644 GIT binary patch delta 4323 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 delta 3514 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 ZXl^m2LT$kx))yK64QS2<nf@pj`46B_5*+{l diff --git a/cflib_groundstation/crazyflie_connection.py b/cflib_groundstation/crazyflie_connection.py index 4e414f4ed..6030a4464 100644 --- a/cflib_groundstation/crazyflie_connection.py +++ b/cflib_groundstation/crazyflie_connection.py @@ -7,7 +7,8 @@ cflib library. from datetime import datetime from email.utils import localtime -from time import time +from threading import Thread +from time import sleep, time from typing import List import time import struct @@ -45,15 +46,15 @@ class CrazyflieConnection: # be in seconds since startup. self.start_time = time.time() - self.logging_queue = Queue() - self.scf = None self.is_connected = False self.param_callback_count = 0 self.logging_configs = [] - + self.logging_thread = None + self.stop_thread = False self.setpoint_handler = SetpointHandler() self.logfile_handler = LogfileHandler() + self.timestamp = 0 # self.timer = QTimer() # self.timer.timeout.connect(self.update_plot) @@ -253,8 +254,16 @@ class CrazyflieConnection: id = command['data'][0] print(id) if id == 0: # logdata? - for config in self.logging_configs: - self.simple_log(self.scf, config) + filename = self.logfile_handler.data_log_name + data = bytearray() + data += bytes(filename, 'utf-8') + responsedata = { + "msg_type": (MessageTypeID.RESPLOGFILE_ID), + "msg_id": command['msg_id'], + "data_len": len(data), + "data": data + } + outputQueue.put(responsedata) elif id == 1: # param toc params = self.get_param_toc() filename = self.logfile_handler.CopyTocToFile(params, True) @@ -304,24 +313,28 @@ class CrazyflieConnection: self.enable_logging() elif id == 5: self.disable_logging() + elif id == 8: + self.start_logging() + elif id == 9: + self.stop_logging() def simple_log(self, scf, logconf): print("Logging...") with SyncLogger(scf, logconf) as logger: for log_entry in logger: - timestamp = log_entry[0] + self.timestamp = log_entry[0] data = log_entry[1] logconf_name = log_entry[2] - print('[%d][%s]: %s' % (timestamp, logconf_name, data)) - - break + #print('[%d][%s]: %s' % (self.timestamp, logconf_name, data)) + return data def enable_logging(self): """ Begins logging all configured logging blocks. This is used from the controls tab when hitting begin logging. """ for i in range(0, len(self.logging_configs)): self.logging_configs[i].start() + def disable_logging(self): """ Stops logging all configured logging blocks. This is used from @@ -333,6 +346,24 @@ class CrazyflieConnection: for block in self.logging_configs: block.delete() self.logging_configs.remove(block) + + def start_logging(self): + self.stop_thread = False + self.logging_thread = Thread(target=self.continous_log) + self.logging_thread.start() + + def stop_logging(self): + self.stop_thread = True + + def continous_log(self): + while not self.stop_thread: + data = [] + for config in self.logging_configs: + data.append(self.simple_log(self.scf, config)) + print(data) + self.logfile_handler.write_data_points(data, self.timestamp / 1000) + sleep(0.3) + diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:10:24.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:10:24.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:12:13.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:12:13.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:13:15.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:13:15.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:14:15.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:14:15.txt new file mode 100644 index 000000000..c1e1cb035 --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:14:15.txt @@ -0,0 +1 @@ +#Crazyflie#Controller:Unknown \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:15:17.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:15:17.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:17:02.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:17:02.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:17:50.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:17:50.txt new file mode 100644 index 000000000..498dffdd1 --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:17:50.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown #0 time stateEstimate.roll stateEstimate.pitch stateEstimate.yaw ctrlStdnt.r_roll ctrlStdnt.r_pitch ctrlStdnt.r_yaw ctrlStdnt.rollRate ctrlStdnt.pitchRate ctrlStdnt.yawRate ctrlStdnt.roll ctrlStdnt.pitch ctrlStdnt.yaw \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:43:23.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:43:23.txt new file mode 100644 index 000000000..498dffdd1 --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:43:23.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown #0 time stateEstimate.roll stateEstimate.pitch stateEstimate.yaw ctrlStdnt.r_roll ctrlStdnt.r_pitch ctrlStdnt.r_yaw ctrlStdnt.rollRate ctrlStdnt.pitchRate ctrlStdnt.yawRate ctrlStdnt.roll ctrlStdnt.pitch ctrlStdnt.yaw \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:45:48.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:45:48.txt new file mode 100644 index 000000000..891e2c4a3 --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:45:48.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown #0 time stateEstimate.roll stateEstimate.pitch stateEstimate.yaw ctrlStdnt.r_roll ctrlStdnt.r_pitch ctrlStdnt.r_yaw ctrlStdnt.rollRate ctrlStdnt.pitchRate ctrlStdnt.yawRate ctrlStdnt.roll ctrlStdnt.pitch ctrlStdnt.yawstateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw stateEstimate.roll stateEstimate.pitch stateEstimate.yaw \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:51:23.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:51:23.txt new file mode 100644 index 000000000..f2deb3d7f --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:51:23.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:51:55.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:51:55.txt new file mode 100644 index 000000000..498dffdd1 --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:51:55.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown #0 time stateEstimate.roll stateEstimate.pitch stateEstimate.yaw ctrlStdnt.r_roll ctrlStdnt.r_pitch ctrlStdnt.r_yaw ctrlStdnt.rollRate ctrlStdnt.pitchRate ctrlStdnt.yawRate ctrlStdnt.roll ctrlStdnt.pitch ctrlStdnt.yaw \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:52:26.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:52:26.txt new file mode 100644 index 000000000..24cf99abd --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:52:26.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown #0 time stateEstimate.roll stateEstimate.pitch stateEstimate.yaw ctrlStdnt.r_roll ctrlStdnt.r_pitch ctrlStdnt.r_yaw ctrlStdnt.rollRate ctrlStdnt.pitchRate ctrlStdnt.yawRate ctrlStdnt.roll ctrlStdnt.pitch ctrlStdnt.yaw2664.527 -0.2249341905117035 0.1795833259820938 -20.655818939208984 0.0630495622754097 -0.019611896947026253 -0.021850405260920525 0.0 0.0 0.0 0.0 0.0 -20.662267684936523 2665.559 -0.22593162953853607 0.17787422239780426 -20.668827056884766 -0.003237646771594882 -0.06716358661651611 -0.1893502026796341 0.0 0.0 0.0 0.0 0.0 -20.665260314941406 2666.608 -0.232166588306427 0.1993357241153717 -20.671485900878906 -0.15982186794281006 -0.14582476019859314 0.21151892840862274 0.0 0.0 0.0 0.0 0.0 -20.670024871826172 2667.666 -0.23002538084983826 0.20136956870555878 -20.67282485961914 -0.1109040230512619 0.16435162723064423 0.19461053609848022 0.0 0.0 0.0 0.0 0.0 -20.678686141967773 2668.717 -0.24088990688323975 0.1908612698316574 -20.68611717224121 -0.05335886403918266 0.25089824199676514 0.03748396039009094 0.0 0.0 0.0 0.0 0.0 -20.681615829467773 2669.788 -0.2471611648797989 0.18524512648582458 -20.680728912353516 0.029240721836686134 0.07677371054887772 0.14828798174858093 0.0 0.0 0.0 0.0 0.0 -20.68077278137207 2670.836 -0.24013113975524902 0.1678890585899353 -20.677570343017578 0.0710749700665474 0.10382790118455887 0.08601564168930054 0.0 0.0 0.0 0.0 0.0 -20.67952537536621 2671.903 -0.23463235795497894 0.1790095418691635 -20.68352508544922 0.037242621183395386 0.038598258048295975 -0.171991229057312 0.0 0.0 0.0 0.0 0.0 -20.701509475708008 2672.956 -0.2289217859506607 0.19495955109596252 -20.708011627197266 -0.21793454885482788 0.0018176068551838398 -0.140023872256279 0.0 0.0 0.0 0.0 0.0 -20.71295738220215 2674.007 -0.2356119155883789 0.18666185438632965 -20.723102569580078 -0.04160384088754654 0.5091188549995422 -0.2663525938987732 0.0 0.0 0.0 0.0 0.0 -20.731910705566406 2675.079 -0.23103639483451843 0.18645061552524567 -20.73302459716797 -0.04817742854356766 0.003122511552646756 -0.03841472044587135 0.0 0.0 0.0 0.0 0.0 -20.731088638305664 2676.137 -0.21975839138031006 0.1698170006275177 -20.736764907836914 0.009844992309808731 0.1422719806432724 0.10667766630649567 0.0 0.0 0.0 0.0 0.0 -20.744792938232422 \ No newline at end of file -- GitLab