Useful functions used for path and trajectory planning at TUM/FTM
Project description
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.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_vel_profile
: Calculate velocity profile on the basis of a forward/backward solver.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
: Import the required vehicle dynamics information from several files: ggv and ax_max_machines.interp_splines
: Interpolate splines 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.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
- (Ubuntu)
matplotlib
requirestkinter
-> can be solved bysudo apt install python3-tk
- (Ubuntu)
Python.h
required forquadprog
-> can be solved bysudo apt install python3-dev
Contact persons: Alexander Heilmeier, Tim Stahl.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for trajectory-planning-helpers-0.62.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c163ac5639b2bfda5b1ea62ef2f1ed439446fc5ddafe59ec63ae0693b96351da |
|
MD5 | 7a368906352a42196bd7f56c9134d538 |
|
BLAKE2b-256 | 0ed63d7ca0e4c85158965d23f5de5de43f3be8b4b3f69c8a983327981ccaf954 |
Hashes for trajectory_planning_helpers-0.62-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21c7ab328fab8ee741244c3fceed0e0f1f57097bbf7c774d97d33feb09579f15 |
|
MD5 | 8097d85b227d581e7ae2228ec0332188 |
|
BLAKE2b-256 | a89178c3c1790108a848b7be3a5601bfcbaa51480324c043bdfd4f8041ba9f23 |