Skip to main content

Description

This repository provides some helper functions we frequently use in our trajectory planning software stack at FTM/TUM. Many of the functions are based on third order splines because we use them as a basis for our path planning. Please keep in mind that some of the functions are designed to work on a closed (race-) track and might therefore not work properly on a common street network.

List of components

  • angle3pt: Calculates angle by turning from a to c around b.
  • calc_ax_profile: Calculate the longitudinal acceleration profile for a given velocity profile.
  • calc_head_curv_an: Analytical curvature calculation on the basis of third order splines.
  • calc_head_curv_num: Numerical curvature calculation.
  • calc_normal_vectors: Calculate normalized normal vectors on the basis of headings psi (psi - pi/2).
  • calc_normal_vectors_ahead: Calculate normalized normal vectors on the basis of headings psi (psi + pi/2).
  • calc_spline_lengths: Calculate spline lengths.
  • calc_splines: Calculate splines for a (closable) path.
  • calc_t_profile: Calculate the temporal duration profile for a given velocity profile.
  • calc_tangent_vectors: Calculate normalized tangent vectors on the basis of headings psi.
  • calc_vel_profile: Calculate velocity profile on the basis of a forward/backward solver. Important: ax_max_machines input must be inserted without drag resistance, i.e. simply by calculating F_x_drivetrain / m_veh
  • calc_vel_profile_brake: Calculate velocity profile on the basis of a pure forward solver.
  • check_normals_crossing: Check if normal vectors of a given track have at least one crossing.
  • conv_filt: Filter a given signal using a 1D convolution (moving average) filter.
  • create_raceline: Function to create a raceline on the basis of the reference line and an optimization result.
  • get_rel_path_part: Get relevant part of a given path on the basis of a s position and a specified range.
  • import_veh_dyn_info: Imports the required vehicle dynamics information from several files: ggv and ax_max_machines.
  • import_veh_dyn_info_2: Imports local gg diagrams, required for local friction consideration.
  • interp_splines: Interpolate splines to get points with a desired stepsize.
  • interp_track: Interpolate track to get points with a desired stepsize.
  • interp_track_widths: Interpolation function for track widths.
  • iqp_handler: Handler function to iteratively call the minimum curvature optimization.
  • nonreg_sampling: Function to sample in non-regular intervals (based on curvature) from a given track.
  • normalize_psi: Normalize heading psi such that the interval [-pi, pi[ holds.
  • opt_min_curv: Minimum curvature optimization.
  • opt_shortest_path: Shortest path optimization.
  • path_matching_global: Match own vehicle position to a global (i.e. closed) path.
  • path_matching_local: Match own vehicle position to a local (i.e. unclosed) path.
  • progressbar: Commandline progressbar (to be called in a for loop).
  • side_of_line: Function determines if a point is on the left or right side of a line.
  • spline_approximation: Function used to obtain a smoothed track on the basis of a spline approximation.

Example files

The folder example_files contains an exemplary track file (berlin_2018.csv), ggv (ggv.csv) and ax_ax_machines file (ax_max_machines.csv). The two latter files can be easily imported (with checks) using import_veh_dyn_info. The files are taken from our global trajectory planner repository which can be found on https://github.com/TUMFTM/global_racetrajectory_optimization.

Solutions for possible installation problems (Windows)

cvxpy, cython or any other package requires a Visual C++ compiler -> Download the build tools for Visual Studio 2019 (https://visualstudio.microsoft.com/de/downloads/ -> tools for Visual Studio 2019 -> build tools), install them and chose the C++ build tools option to install the required C++ compiler and its dependencies

Solutions for possible installation problems (Ubuntu)

  1. matplotlib requires tkinter -> can be solved by sudo apt install python3-tk
  2. Python.h required quadprog -> can be solved by sudo apt install python3-dev

Contact persons: Alexander Heilmeier, Tim Stahl.

Metadata

Release files for trajectory-planning-helpers 0.79

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trajectory-planning-helpers 0.79
File Size Uploaded
trajectory-planning-helpers-0.79.tar.gz 39.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for trajectory-planning-helpers 0.79
File Interpreter ABI Platform
trajectory_planning_helpers-0.79-py3-none-any.whl Python 3 none any Details

Total release size: 99.9 kB

Release files / trajectory-planning-helpers-0.79.tar.gz

Download URL trajectory-planning-helpers-0.79.tar.gz
Size 39.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8a73ef3c55bfb0324142750dbf1049ae8d87d0e44fc5bc574c26088b7208f9c8
BLAKE2b-256 checksum
How to use checksums
39b8ca2f3c5018eb10d171b2391c13ec9c878602987e2f053ce36f9688aef0d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.6

Release files / trajectory_planning_helpers-0.79-py3-none-any.whl

Download URL trajectory_planning_helpers-0.79-py3-none-any.whl
Size 60.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d81e161227dbdd7a89968d977dada10d316a315ccdb3a7bc491ab6d799572784
BLAKE2b-256 checksum
How to use checksums
9cc647025182ec785856c4b7531a00fba177b405886bc5b338e199f70046aab3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.79 This release

2 release files

0.78

2 release files

0.77

2 release files

0.76

2 release files

0.75

2 release files

0.74

2 release files

0.71

2 release files

0.70

2 release files

0.67

2 release files

0.66

2 release files

0.65

2 release files

0.64

2 release files

0.63

2 release files

0.62

2 release files

0.58

2 release files

0.57

2 release files

0.56

2 release files

0.55

2 release files

0.54

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page