-
Notifications
You must be signed in to change notification settings - Fork 0
Explication des paramètres de raceline
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.
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)
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
On a jamais expérimenté avec ca, to do
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!)
Jamais trop expérimenter avec ca, to do
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.
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.
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.