Explication des paramètres de raceline - vaul-ulaval/vaul-wiki GitHub Wiki

Fichier de paramètres

Il y a beaucoup de paramètres avec lesquels on peut jouer pour générer une raceline. Voici une courte description pour donner une idée de ce que fait chaque paramètre.

Stepsize options

Ces options seront toujours à changer en fonction de la piste puisqu'ils servent à fine-tuner l'interpolation afin d'avoir des splines qui représente le plus possible la piste sans trop que l'optimisation soit longue. Il faut tuner ces paramètres avant de tuner quoi que ce soit d'autres.

stepsize_prep (m): C'est pour l'interpolation linéaire qui est réalisé avant l'optimisation. Parmi tous les points qu'on passe en entrée, les points seront interpolés linéairement à chaque stepsize_prep. Plus c'est bas, plus c'est précis (Et lent!).

stepsize_reg (m): C'est pour l'interpolation de splines qui est réalisé pendant l'optimisation. C'est ce paramètre qui a le plus d'impact sur le temps que ca prend à optimiser. Plus c'est bas, plus c'est précis (Et lent!).

stepsize_interp_after_opt (m): C'est pour l'interpolation de splines qui est réalisé après l'optimisation. Puisque les splines sont déjà toutes calculé, ce paramètre n'affecte donc pas le temps d'optimisation. Si on met 0.1, cela veut dire qu'on aura un point à tous les 0.1 m dans le fichier de raceline obtenu. (Par expérimentation avec un pure_pursuit, on veut toujours avoir beaucoup beaucoup de points pour que ce soit plus smooth à suivre pour le robot)

Spline regression smoothing options

Ces options servent à smoother les courbes avant l'optimisation (De ce que j'ai compris). On se sert juste de ces options lorsqu'on a des normales qui se recoupe afin de smoother plus les courbes.

k_reg: Ordre des B-splines. On ne sait pas c'est quoi, on laisse toujours 3

s_reg: Facteur de smoothing [1.0-100.0]. C'est avec ce paramètre qu'on joue lorsqu'on a des normales qui se recoupe afin de smoother plus les courbes. Si les normales se recoupe, augmenter ce paramètre

Curvature calculation options

On a jamais expérimenté avec ca, to do

General vehicle parameters

Ces options sont pour décrire les caractéristiques principales du véhicule. Elles ne devrait pas beaucoup changer.

v_max (m/s): Vitesse maximale qu'on permet le véhicule d'atteindre sur la course

length (m): Longueur du véhicule

width (m): Largeur du véhicule

mass (kg): Masse du véhicule

dragcoeff (kg*m^2/m^3): Coefficient de drag. On croit que c'est négligeable pour un f1tenth, mais à valider avec les mécaniques!

curvlim (rad/m): Curvature max du véhicule. Faire faire un demi-cercle au véhicule en étant steer au max et calculer la limite de curvature avec le diamètre du demi-cercle.

g (m/s^2): Constante gravitationnelle (Si jamais on veut faire rouler le f1tenth sur Mars un jour!)

Vehicule profile calculation

Jamais trop expérimenter avec ca, to do

Mintime options

Ce sont les options pour jouer avec l'algorithme d'optimisation mintime. On ne comprend pas beaucoup de paramètres là dedans. Pour comprendre plus en détails, il faut lire le papier "Time-Optimal Trajectory Planning for a Race Car Considering Variable Tire-Road Friction Coefficients".

width_opt (m): Largeur du véhicule pour l'optimisation (Incluant la safety_distance). Donc on peut mettre le véhicule un peu plus large pour prendre les virages un peu moins serré

penalty_delta (-): Pénalité de la dérivé delta pour plus de smoothness et de contrôle [0.0-50.0]. Jamais trop expérimenter avec, todo

penalty_F (-): Pénalité de la dérivé F pour plus de smoothness et de contrôle [0.0-2.0]. Jamais expérimenter avec, todo

mue (-): Coefficient de friction. Plus c'est haut, plus ca grip. Le coefficient D de la magic formula doit être calculer avec D=F_z * mue.

n_gauss (-): Nombre de gaussian basis function de chaque côté. Aucune idée de ce que ca fait, todo

dn (m): Distance des points équidistants sur les vecteurs normales pour extraire la friction. Aussi aucune idée de ce que ca fait, todo

safe_traj: Mettre à true si on veut utiliser le ggv où nous même limiter certaines accélérations. En ce moment on met toujours false, mais il serait intéressant de jouer avec pour utiliser un ggv et respecter le cercle de friction

ax_pos_safe (m/s^2): Accélération longitudinale positive (gaz) maximale sans qu'on commence à drifter. Voir la théorie sur le cercle de friction dans les course de F1.

ax_neg_safe (m/s^2): Accélération longitudinale négative (break) maximale sans qu'on commence à drifter. Voir la théorie sur le cercle de friction dans les course de F1.

ay_safe (m/s^2): Accélération latérale maximale. Plus on prend un virage vite, plus l'accélération latérale augmente. Voir la théorie sur le cercle de friction dans les course de F1.

w_tr_reopt (m): Largeur totale de la piste de course en cas de réoptimisation (Une solution optimale n'est pas trouvé pour un point particulier). Ce sera réoptimiser avec de l'Iterative Quadratic Programming (IQP) qui va sortir la curvature minimale (je pense). En général, on met ce paramètre à la largeur maximale de la piste.

w_veh_reopt (m): Largeur du véhicule en cas de réoptimisation (Une solution optimale n'est pas trouvé pour un point particulier). Ce sera réoptimiser avec de l'Iterative Quadratic Programming (IQP) qui va sortir la curvature minimale (je pense). En général, on laisse ce paramètre avec la même valeur que width_opt

w_add_spl_regr (m): Largeur ajouté pour compenser la deuxième régression de spline en cas de réoptimisation (Une solution optimale n'est pas trouvé pour un point particulier). Aucune idée de l'effet, todo

step_non_reg (-): Définit combien de points on skip lors d'un point sampling non-régulier (dépend de la curvature). Aucune idée de ce que ca fait, mais j'aime pas skipper des points donc je laisse à 0 hihi

eps_kappa (rad/m): Utiliser si step_non_reg > 0. Thresold de curvature pour skip la discrétisation des points sur les lignes droites.

Vehicule parameters for mintime optimization

Paramètres à mesurer sur le véhicule pour l'optimisation mintime. Quelques paramètres là dedans sont à mesurer pour de vrai sur le bolide parce qu'ils ont été estimé.

wheelbase_front (m): Longueur entre les roues du devant

wheelbase_rear (m): Longueur entre les roues de derrière

track_width_front (m): Longueur entre les deux extrémités des roues avants

track_width_rear (m): Longueur entre les deux extrémités des roues arrières

cog_z (m): Centre de gravité en z. À mesurer! todo

I_z (kgm^2): Inertie en z. À mesurer! todo

liftcoeff_front (kg*m^2/m^3): Coefficient de lift du devant. Probablement très négligeable à notre scale et notre vitesse, on met 0.

liftcoeff_front (kg*m^2/m^3): Coefficient de lift du derrière. Probablement très négligeable à notre scale et notre vitesse, on met 0.

k_brake_front (-): Partie de la force de break totale qui est sur les roues du devant [0.0-1.0]. On assume que c'est égal, alors on met 0.5

k_drive_front (-): Partie de la force d'accélération totale qui est sur les roues du devant [0.0-1.0]. On assume que c'est égal, alors on met 0.5.

k_roll (-): Partie du roll moment total qui est sur les roues du devant [0.0-1.0]. On assume que c'est égal, alors on met 0.5.

t_delta (s): Temps de délai entre le moment ou on steer et ou les roues tourne pour vrai. Après expérimentation, c'est négligeable pour notre scale.

t_drive (s): Temps de délai entre le moment ou on pèse sur le gaz et ou le véhicule accélère. Après expérimentation, c'est négligeable pour notre scale.

t_brake (s): Temps de délai entre le moment ou on pèse sur le break et ou le véhicule déccélère. Après expérimentation, c'est négligeable pour notre scale.

power_max (W): Puissance maximale du moteur. À mesurer, todo

f_drive_max (N): Force d'accélération maximale.

f_break_max (N): Force de break maximale.

delta_max (rad): Steering maximum du véhicule.

Tire parameters

Ce sont les paramètres pour les pneus pour l'optimisation mintime. Pour comprendre ce qu'ils font, il faut lire sur la Magic Formula de la friction. Actuellement on ne mesure pas du tout ces paramètres sur le bolide, on fait du essaie erreur.

c_roll (-): Coefficient de résistance au roulement

f_z0 (N): Force normale nominale. Idk what that is.

B_front (-): Coefficient B pour les tires du devant.

C_front (-): Coefficient C pour les tires du devant.

eps_front (-): Dépendence du poids du coefficient D sur les tires du devant.

E_front (-): Coefficient E pour les tires du devant.

B_rear (-): Coefficient B pour les tires du derrière.

C_rear (-): Coefficient C pour les tires du derrière.

eps_rear (-): Dépendence du poids du coefficient D sur les tires du derrière.

E_rear (-): Coefficient E pour les tires du derrière.