Source code for velocity_optimization.opt_postproc.src.read_ltpl_raw

import sys
import os
import numpy as np
import linecache
import csv
import json
from matplotlib import pyplot as plt
try:
    import tikzplotlib
except ImportError:
    print('Warning: No module tikzplotlib found. Not necessary on car but for development.')

# custom modules
vel_opt_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(vel_opt_path)


[docs]def read_ltpl_raw(csv_name: str) -> tuple: """ Python version: 3.5 Created by: Thomas Herrmann (thomas.herrmann@tum.de) Created on: 01.02.2020 Documentation: Read log data from TUM trajectory planner module Inputs: csv_name: Path and file name to log file Outputs: s_glob_arr: array filled with global s coordinate values [m] v_arr: array containing the driven velocity [m/s] ax_arr: array containing the driven longitudinal acceleration [m/s^2] ay_arr: array containing the driven lateral acceleration [m/s^2] """ # [m] s_glob_arr = [] # [m/s] v_arr = [] # [m/s^2] ax_arr = [] # [rad/m] kappa_arr = [] with open(csv_name) as csvfile: row_count = sum(1 for row in csv.reader(csvfile, delimiter=';', lineterminator='\n')) for i in range(3, row_count): row_lc = linecache.getline(csv_name, i) row_lc = row_lc[:-1].rsplit(';') s_glob = json.loads(row_lc[1]) s_glob_arr.append(s_glob) v = json.loads(row_lc[8])['straight'][0][0] v_arr.append(v) ax = json.loads(row_lc[9])['straight'][0][0] ax_arr.append(ax) kappa = json.loads(row_lc[11])['straight'][0][0] kappa_arr.append(kappa) ################################################################################################################ # Calculations with LTPL log data ################################################################################################################ ay_arr = kappa_arr * np.square(v_arr) plt.figure() plt.subplot(2, 1, 1) plt.plot(s_glob_arr, v_arr) plt.xlabel(r's in m') plt.ylabel(r'v in m/s') plt.subplot(2, 1, 2) plt.plot(s_glob_arr, ay_arr) plt.xlabel(r's in m') plt.ylabel(r'a_y in m/s2') tikzplotlib.save('ltpl.tex') plt.show() return s_glob_arr, v_arr, ax_arr, ay_arr
if __name__ == '__main__': csv_name = vel_opt_path + '/../logs/ltpl/2020_04_01/18_47_51_data.csv' read_ltpl_raw(csv_name=csv_name)