Forum Flightgear France

Une communauté prend son envol

Vous n'êtes pas identifié(e).

Annonce

Futur nouvel inscrit, tu dois au préalable lire l'intégralité des 10 articles des règles, s'il te plaît. Tout nouveau compte qui ne respecte pas les règles sera supprimé par l'administration.

#1 24/07/2026 11:34:31

damad
Membre
Inscription : 31/01/2026
Messages : 46

Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Bonjour à toutes et à tous big_smile !!

Lorsque l'autopilot suit une route de waypoint en waypoint, il anticipe le virage à venir de sorte à couper l'angle entre les waypoints par un arc de cercle. Or, cet arc de cercle est toujours un peu trop serré pour que le 777 puisse le suivre. Résultat, la trajectoire est toujours trop large et l'avion doit corriger plusieurs fois pour retrouver sa route. C'est gênant pour des waypoints rapprochés avec forts changements de direction.

J'imagine que le rayon de cet arc de cercle est calculé, et que ce calcul est quelque part dans un fichier. D'où ma question : où est fait ce calcul afin de le modifier ?

Merci d'avance pour vos réponses wink !!


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#2 24/07/2026 18:03:50

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 764

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Bonjour damad,

damad a écrit :

J'imagine que le rayon de cet arc de cercle est calculé, et que ce calcul est quelque part dans un fichier. D'où ma question : où est fait ce calcul afin de le modifier ?

A priori le calcul est fait dans le fichier "AFDS.nas".
Mais il y a un avertissement en lignes 26 à 31 :

# Todo:
# - Further refactor the code
# - LNAV is now relying on FG route manager for flightplan management, but this
#   code is doing sequencing and turn anticipation. This might conflict with the 
#   route manager's own sequencing.
# - Turn anticipation needs to be improved - Sidi Liang, 20250808

Donc ce pourrait être Fg qui gèrerait le "turn anticipation". hmm
Je trouve tout de même un peu de code aux lignes 1513 à 1538, dans ce même fichier, qui pourrait peut-être être modifié pour améliorer l'anticipation des waypoints, notamment :

 1528  var final_track_error = (geocoord.distance_to(courseCoord) / 1852) + 1;

en remplaçant le +1 par +2 par exemple, ou :

 1532 final_track_error += (change_wp / 20);

en remplaçant 20 par une autre valeur.

A tester car je n'ai pas eu le temps de le faire wink


Fg 2024.1.7 - Linux Mint 22.3 Zena - Cinnamon et W11 en dual boot - CM MSI B860M - CPU ULTRA 9 285K - 16 Go Ram - Nvidia Geforce RTX5070Ti - Driver Nvidia 580
+ Hp notebook-15 - Linux Mint 22.3 Zena -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#3 25/07/2026 11:13:08

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Clm76 a écrit :
 1528  var final_track_error = (geocoord.distance_to(courseCoord) / 1852) + 1;

en remplaçant le +1 par +2 par exemple

Merci Clm76, tu es un génie big_smile !!

C'est bien cette ligne qu'il faut modifier et + 2 est un bon compromis. Une valeur plus élevée amène à trop d'anticipation et l'avion met trop de temps à rejoindre la route après le virage.

Je vais encore faire des tests en modifiant cette fois le 1852 en quelque chose de plus petit. Comme ça, le calcul reste relatif plutôt que d'ajouter chaque fois le + 2, qui est absolu. En espérant être assez clair roll ...

Je teste et je reviens wink !!


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#4 25/07/2026 17:37:38

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 764

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

damad a écrit :

Je vais encore faire des tests en modifiant cette fois le 1852

Non, surtout pas: 1852 c'est la conversion des nautical miles en m (1nm = 1852 m). yikes

+1 ou +2 c'est une distance en nm par rapport au waypoint pour anticiper le virage. wink


Fg 2024.1.7 - Linux Mint 22.3 Zena - Cinnamon et W11 en dual boot - CM MSI B860M - CPU ULTRA 9 285K - 16 Go Ram - Nvidia Geforce RTX5070Ti - Driver Nvidia 580
+ Hp notebook-15 - Linux Mint 22.3 Zena -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#5 26/07/2026 12:41:25

franck
Membre
Inscription : 1/05/2020
Messages : 172

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Bonjour damad

tu peux aussi utiliser le direct to ou supprimer le ou les points trop serer 

bonne journée

https://youtu.be/xdhmSlzH6lE?si=zinC1x5Qfz8GA5Qs


Linux Mint 22 Cinnamon , 2x 960 gtx 4go , 16 Go RAM , 8-core model: AMD FX-8320E , FG 2024.1.3 , Callsign : F-VMD

Boeing 777 pour FlightGear https://github.com/franck-vmd/Boeing-777-Flightgear
Discusion Boeing-777-FlightGear  https://github.com/franck-vmd/Boeing-77 … cussions/2

Hors ligne

#6 26/07/2026 13:57:34

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Clm76 a écrit :

Non, surtout pas: 1852 c'est la conversion des nautical miles en m (1nm = 1852 m). yikes

Effectivement, ça donne n'importe quoi lol lol lol !! Et merci au passage pour l’explication du pourquoi 1852, je n'avais pas fait le lien wink ...

Après pas mal d'essais, j'ai gardé + 2.5, dans un premier temps.

Par contre, j'ai remarqué que le calcul d'anticipation ne tient pas compte de la vitesse de l'avion. Ce qui est gênant car le rayon de l'arc de cercle est plus grand si on va plus vite, donc il faut plus anticiper.

J'ai donc décidé de remplacer + 2.5 par un calcul relatif à la vitesse au sol. La ligne 1528 devient donc :


1528  var final_track_error = (geocoord.distance_to(courseCoord) / 1852) + (groundspeed / XXX);

où XXX est encore à déterminer. Pour le moment, 100 est pas mal, mais il faut encore que je peaufine.

Pour être parfait, il faudrait encore intégrer au calcul l'angle d'inclinaison qu'on autorise à l'avion lors des virages (par défaut en auto). Mais les waypoints avec forts changement de direction ne se font pas à 30000 pieds à mach 0.8... Donc ce n'est pas grave dans ce cas.

@franck

Le problème est que je ne peux pas supprimer les waypoints avec beaucoup d'angle car je vole et atterri en terrain montagneux en dessous des cimes, donc il faut être précis. Après, je peux aussi régler le cap manuellement et anticiper moi-même, mais je pense que l'autopilot peut le faire tout seul. Et je suis sûr que le logiciel original du 777 comporte ce facteur de vitesse au sol et encore beaucoup d'autres, alors je teste wink !!


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#7 27/07/2026 8:59:20

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 764

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

damad a écrit :

Par contre, j'ai remarqué que le calcul d'anticipation ne tient pas compte de la vitesse de l'avion. Ce qui est gênant car le rayon de l'arc de cercle est plus grand si on va plus vite, donc il faut plus anticiper.

Ci-dessous le code du "turn anticipate" qui fonctionne bien. C'est sur le 737-800 (autopilot.nas).

# Calculating turn anticipation distance
var turn_anticipate = maketimer(5,func() {
  gnd_kt = getprop("/instrumentation/gps/indicated-ground-speed-kt") * 0.514;
  current_course = getprop("/instrumentation/gps/wp/leg-true-course-deg");
  if (getprop("autopilot/route-manager/wp/id") == "T/C")
    next_wp = getprop("/autopilot/route-manager/current-wp") + 2;
  else next_wp = getprop("/autopilot/route-manager/current-wp") + 1;
  if (next_wp >= getprop("/autopilot/route-manager/route/num")) return;
  if (next_wp < 0) next_wp = 0;
  next_course = getprop("/autopilot/route-manager/route/wp["~next_wp~"]/leg-bearing-true-deg");
  max_bank_limit = getprop("/autopilot/settings/maximum-bank-limit");

  delta_angle = math.abs(geo.normdeg180(current_course - next_course));
  max_bank = delta_angle * 1.5;
  if (max_bank > max_bank_limit) max_bank = max_bank_limit;
  radius = (gnd_kt * gnd_kt) / (9.81 * math.tan(max_bank/57.3));
  time = 0.64 * gnd_kt * delta_angle * 0.7 / (360 * math.tan(max_bank/57.3));
  delta_angle_rad = (180 - delta_angle) / 114.6;
  rad = radius/math.sin(delta_angle_rad);
  dist_coeff = delta_angle * -0.011111 + 2;
  if (dist_coeff < 1) dist_coeff = 1;
  turn_dist = math.cos(delta_angle_rad) * rad * dist_coeff / 1852;
  setprop("/instrumentation/gps/config/over-flight-distance-nm", turn_dist);

Fg 2024.1.7 - Linux Mint 22.3 Zena - Cinnamon et W11 en dual boot - CM MSI B860M - CPU ULTRA 9 285K - 16 Go Ram - Nvidia Geforce RTX5070Ti - Driver Nvidia 580
+ Hp notebook-15 - Linux Mint 22.3 Zena -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#8 28/07/2026 9:23:22

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Merci Clm76 pour ce bout de code très intéressant. On voit que l'anticipation tient compte de la vitesse au sol, de l'angle d'inclinaison de l'avion et de l'angle entre les waypoints. Je vais approfondir tout ça pour faire évoluer mon calcul.

Par contre en tâtonnant, j'ai découvert que l'angle d'inclinaison du 777 et l'angle entre les waypoints semblent bien être pris en compte mais pas dans l'anticipation, probablement dans le route-manager ou ailleurs. Et ça donne du sens à l'avertissement que tu avais relevé dans ta première réponse :

Clm76 a écrit :

Mais il y a un avertissement en lignes 26 à 31 :

# Todo:
# - Further refactor the code
# - LNAV is now relying on FG route manager for flightplan management, but this
#   code is doing sequencing and turn anticipation. This might conflict with the 
#   route manager's own sequencing.
# - Turn anticipation needs to be improved - Sidi Liang, 20250808

Donc ce pourrait être Fg qui gèrerait le "turn anticipation". hmm

Je vais donc en rester à n'inclure que la relation à la vitesse au sol (pour le moment), ce qui est déjà pas mal. Mais je vais complexifier mon calcul, car je ne suis pas encore satisfait.

Je continue mes tests et je reviens wink .


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#9 28/07/2026 14:22:37

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Petite question intermédiaire :

J'ai introduit une nouvelle variable dans mon calcul que j'ai nommée calcgs. Et j'aimerais pouvoir la voir en vol pour tester mon calcul. Y a-t-il un moyen qui permet d'afficher sa valeur en temps réel ?


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#10 28/07/2026 17:09:31

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 764

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

damad a écrit :

J'ai introduit une nouvelle variable dans mon calcul que j'ai nommée calcgs. Et j'aimerais pouvoir la voir en vol pour tester mon calcul. Y a-t-il un moyen qui permet d'afficher sa valeur en temps réel ?

Bien sûr smile
- Si tu utilises Linux, tu actives le "terminal" et, dans ton code, tu rajoutes une ligne supplémentaire :

print("calcgs = ",calcgs);

Ta valeur sera alors affichée sur le "terminal".

- Tu peux aussi mettre ta variable dans une propriété que tu mets où tu veux dans l'arbre des propriétés, par exemple dans "/debug" :

setprop("/debug/_calcgs",calcgs)

Pour la lire en permanence, tu appelles l'arbre des propriétés par la touche "/" puis tu vas dans "/debug" et tu cliques sur ta propriété "_calcgs" en appuyant en même temps sur la touche "Maj". Ta valeur sera alors affichée en haut et à gauche de l'écran de Fg. Tu peux aussi laisser l'arbre des propriétés ouvert pour voir ta valeur mais ça prend un peu de place sur l'écran.

Dernière modification par Clm76 (28/07/2026 17:12:46)


Fg 2024.1.7 - Linux Mint 22.3 Zena - Cinnamon et W11 en dual boot - CM MSI B860M - CPU ULTRA 9 285K - 16 Go Ram - Nvidia Geforce RTX5070Ti - Driver Nvidia 580
+ Hp notebook-15 - Linux Mint 22.3 Zena -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#11 29/07/2026 11:21:31

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Clm76 a écrit :

- Tu peux aussi mettre ta variable dans une propriété que tu mets où tu veux dans l'arbre des propriétés, par exemple dans "/debug" :

setprop("/debug/_calcgs",calcgs)

Pour la lire en permanence, tu appelles l'arbre des propriétés par la touche "/" puis tu vas dans "/debug" et tu cliques sur ta propriété "_calcgs" en appuyant en même temps sur la touche "Maj". Ta valeur sera alors affichée en haut et à gauche de l'écran de Fg. Tu peux aussi laisser l'arbre des propriétés ouvert pour voir ta valeur mais ça prend un peu de place sur l'écran.


Merci Clm76 big_smile !!

Comme j'ai installé Flightgear sur Windows, je garde donc cette deuxième solution qui marche très bien avec le « _ » avant debug et sans oublier le « ; » à la fin de la ligne wink :

setprop("/_debug/_calcgs",calcgs);

Voilà donc ce que donne mon calcul actuellement :

if (((groundspeed /100) -0.5) <= 1) {
	var calcgs = 1;
} elsif ((((groundspeed /100) -0.5) > 1) and (((groundspeed /100) -0.5) < 3)) {
	var calcgs = ((groundspeed /100) -0.5);
} elsif (((groundspeed /100) -0.5) >= 3) {
	var calcgs = 3;
}

setprop("/_debug/_calcgs",calcgs);

var final_track_error = (geocoord.distance_to(courseCoord) / 1852) + calcgs;

à coller à la place de la ligne 1528 originelle qui était :

var final_track_error = (geocoord.distance_to(courseCoord) / 1852) + 1;

En gros, si la vitesse au sol est inférieure ou égale à 150kts, calcgs est égal à 1, comme à l'origine (ce qui arrive seulement en phase finale d'approche et très brièvement au décollage). Si la vitesse au sol est supérieure à 150kts et inférieure à 350kts, calcgs est égal à (groundspeed /100) -0.5, donc entre 1 et 3. Et si la vitesse au sol est supérieure ou égale à 350kts, calcgs reste égal à 3.

Je suis assez satisfait du résultat, mais je vais encore voir si je garde la formule (groundspeed /100) -0.5 ou si je modifie légèrement les valeurs. En l'état, qu'en pensez-vous ?

Dernière modification par damad (29/07/2026 11:30:00)


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#12 29/07/2026 17:28:11

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 764

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

damad a écrit :

setprop("/_debug/_calcgs",calcgs);

Oui bien sûr, j'ai été un peu trop vite et oublié de me relire. sad

damad a écrit :

Voilà donc ce que donne mon calcul actuellement :

Et pourquoi tu ne remplacerais pas toutes ces lignes par :

var calcgs = groundspeed/100;

Ça te donnerait une valeur directement proportionnelle à ta vitesse, même si ce n'est plus un nombre entier.

Dernière modification par Clm76 (29/07/2026 17:39:42)


Fg 2024.1.7 - Linux Mint 22.3 Zena - Cinnamon et W11 en dual boot - CM MSI B860M - CPU ULTRA 9 285K - 16 Go Ram - Nvidia Geforce RTX5070Ti - Driver Nvidia 580
+ Hp notebook-15 - Linux Mint 22.3 Zena -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#13 30/07/2026 10:33:25

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Clm76 a écrit :

Oui bien sûr, j'ai été un peu trop vite et oublié de me relire. sad

Ça arrive même aux meilleurs wink !!

Clm76 a écrit :

Et pourquoi tu ne remplacerais pas toutes ces lignes par :

var calcgs = groundspeed/100;

Dans ce cas, je n'aurais pas besoin de calcgs et le calcul se résumerait à une seule ligne :

var final_track_error = (geocoord.distance_to(courseCoord) / 1852) + (groundspeed / 100);

C'est de là que j'étais parti, selon le post #6 de cette discussion. Or ce que je voulais, en premier lieu, c'est « borner » mon calcul pour que calcgs ne soit jamais inférieur à 1 et jamais supérieur à 3. Pour ne pas trop dénaturer le fonctionnement original.

Et surtout, je voulais que calcgs soit égal à 1 quand je suis encore en vol, car avec ta proposition, c'est à 100kt que ça arrive, donc au sol... D'où le « -0.5 » dans mon calcul qui ramène cette vitesse à 150kts.

Clm76 a écrit :

Ça te donnerait une valeur directement proportionnelle à ta vitesse, même si ce n'est plus un nombre entier.

Je ne vois pas ce que tu veux dire. Mon calcul reste proportionnel à la vitesse au sol, entre 150kts et 350kts. Et entre ces deux vitesses, calcgs n'est pas un nombre entier, sauf à la vitesse de 250kts, où calcgs est égal à 2.


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#14 30/07/2026 11:02:00

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 764

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

damad a écrit :

ce que je voulais, en premier lieu, c'est « borner » mon calcul pour que calcgs ne soit jamais inférieur à 1 et jamais supérieur à 3. Pour ne pas trop dénaturer le fonctionnement original.
Et surtout, je voulais que calcgs soit égal à 1 quand je suis encore en vol, car avec ta proposition, c'est à 100kt que ça arrive, donc au sol... D'où le « -0.5 » dans mon calcul qui ramène cette vitesse à 150kts.

OK, ton point de vue est valable. wink Je n'avais pas envisagé le cas où l'avion est encore au sol, mais ce cas peut être contourné en testant la propriété "wow".


Fg 2024.1.7 - Linux Mint 22.3 Zena - Cinnamon et W11 en dual boot - CM MSI B860M - CPU ULTRA 9 285K - 16 Go Ram - Nvidia Geforce RTX5070Ti - Driver Nvidia 580
+ Hp notebook-15 - Linux Mint 22.3 Zena -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#15 31/07/2026 7:36:37

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Clm76 a écrit :

OK, ton point de vue est valable. wink

Ouf, ça me rassure wink ...

J'imagine que wow renvoie à « est-ce que les roues touchent le sol » (et pas à World Of Warcraft, bravo Google lol lol lol !!), ce qui peut être intéressant, voire nécessaire (sûrement utilisé, notamment, pour empêcher de rentrer les trains d’atterrissage quand on est au sol ou pour empêcher d'activer les inverseurs de poussée en vol).

Mais dans ce cas, calcgs pourrait être inférieur à 1 (en laissant ma formule telle quelle). Ce que je ne veux pas. Je veux un palier à 1 de 0kt à la borne inférieure, une montée progressive à 3 jusqu'à la borne supérieure, puis un palier à 3 de la borne supérieure à « l'infini ». Et je veux une marge de vol avec calcgs = 1 de 0kts à la borne inférieure.

Voici un petit graphique qui illustre le résultat de mon calcul, dans son état actuel, c'est plus parlant :

https://www.mediafire.com/view/9jvninpr … s.jpg/file

Il y a bien une marge de vol où calcgs reste égal à 1 entre « Avion en vol » et « Borne inférieure ». Certes, petite, mais elle est là (je pense d'ailleurs l'agrandir un peu).

Alors évidemment, tu pourrais me demander pourquoi je veux absolument mettre un palier inférieur avec calcgs = 1. C'est parce qu'en phase finale d'approche, le calcul original (donc calcgs = 1) suffit amplement, car l'avion est assez réactif à ces faibles vitesses.


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#16 21/08/2026 10:58:52

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 4 090

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Bonjour vous deux,

damad a écrit :

J'imagine que wow renvoie à « est-ce que les roues touchent le sol

WOW = Weight-On-Wheels

FG Aircraft properties reference, Gear

JSBSim Reference Manual
Voir 4.2.1 Conditions (p.73 ou PDF 84/158)

<condition>
sim-time-sec gt 0.50
<condition logic=”OR”>
aero/qbar-psf gt 4.5
gear/unit/WOW eq 0
</condition>
</condition>

This conditional test will evaluate to true if (...) the nose gear WOW (Weight-On-Wheels) flag is 0 (meaning
that the nose gear has lifted off)

Dernière modification par dany93 (25/08/2026 11:16:56)


FG 2020.4.0, Linux Mint 20.3, Intel Core i7-11700F @ 2.50GHz, RAM 32 GB DDR4, NVIDIA GeForce RTX 3060 (12 GB)
Boeing 787-8 (YASim, avec nickyivyca, aco)
Hangar avions Patten (PAF) Robin  DR400 JSBSim, Douglas DC3 JSBSim, CAP10B, Tecnam P92 JSBSim.

Hors ligne

#17 23/08/2026 11:42:02

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Hello dany93 big_smile !! Merci pour tes précisions et ces deux liens très intéressants, que je garde sous le coude wink !!

Concernant mon calcul et après plein d'essais, je vais en rester à ce que j'ai écrit au post #11 de ce sujet. C'est suffisant et ça ne détourne pas trop le comportement d'origine.

Je reste néanmoins frustré de ne pas arriver à inclure l'angle entre les waypoints dans mon calcul. De même pour l'angle d'inclinaison dans les virages. Ce sera l'étape d'après. Mais ça va demander du boulot, donc du temps... Et très probablement plein de questions wink !!


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#18 23/08/2026 16:46:27

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 764

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Bonjour à tous,

damad a écrit :

Je reste néanmoins frustré de ne pas arriver à inclure l'angle entre les waypoints dans mon calcul

Pour trouver l'angle entre 2 waypoints :

var current_course = getprop("/instrumentation/gps/wp/leg-true-course-deg");
var next_wp = getprop("/autopilot/route-manager/current-wp") + 1;
var next_course = getprop("/autopilot/route-manager/route/wp["~next_wp~"]/leg-bearing-true-deg");
var delta_angle = math.abs(geo.normdeg180(current_course - next_course));

Fg 2024.1.7 - Linux Mint 22.3 Zena - Cinnamon et W11 en dual boot - CM MSI B860M - CPU ULTRA 9 285K - 16 Go Ram - Nvidia Geforce RTX5070Ti - Driver Nvidia 580
+ Hp notebook-15 - Linux Mint 22.3 Zena -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#19 24/08/2026 11:02:04

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Merci Clm76 big_smile !! Ça va m'être très utile wink !!


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#20 24/08/2026 14:49:15

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

@Clm76 :

Ton bout de code fonctionne parfaitement quand un waypoint futur existe sur la route. Mais quand le dernier waypoint est actif, il n'y a plus de waypoint suivant pour faire le calcul et ça plante tout l'autopilote. Et comme le dernier waypoint est généralement un aéroport, c'est très gênant neutral ...

Il faut donc rajouter une condition qui dit « si c'est le dernier waypoint, alors next_wp est égal au waypoint actuel », ou quelque chose du genre. Mais comment savoir qu'on est au dernier waypoint ? J'ai cherché mais je n'ai pas trouvé... Il me semble avoir vu une fois une propriété qui indiquait le nombre de waypoint d'une route, mais je ne la retrouve pas hmm ...


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

#21 24/08/2026 17:28:44

Clm76
Membre
Lieu : LFOH - LFOY
Inscription : 22/10/2012
Messages : 1 764

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

damad a écrit :

Il me semble avoir vu une fois une propriété qui indiquait le nombre de waypoint d'une route, mais je ne la retrouve pas

La propriété est celle-ci : "autopilot/route-manager/route/num".

Le code peut alors devenir :

if (getprop("/autopilot/route-manager/current-wp") < getprop("/autopilot/route-manager/route/num")-1) {
  var current_course = getprop("/instrumentation/gps/wp/leg-true-course-deg");
  var next_wp = getprop("/autopilot/route-manager/current-wp") + 1;
  var next_course = getprop("/autopilot/route-manager/route/wp["~next_wp~"]/leg-bearing-true-deg");
  var delta_angle = math.abs(geo.normdeg180(current_course - next_course));
}

Une autre manière de faire, en faisant attention aux majuscules et minuscules :

var fp = flightplan();
if (fp.current < fp.getPlanSize() - 1) {
........
}

Fg 2024.1.7 - Linux Mint 22.3 Zena - Cinnamon et W11 en dual boot - CM MSI B860M - CPU ULTRA 9 285K - 16 Go Ram - Nvidia Geforce RTX5070Ti - Driver Nvidia 580
+ Hp notebook-15 - Linux Mint 22.3 Zena -  CPU i3-7020u - Ram 4Go - Intel Graphics 620.

Hors ligne

#22 25/08/2026 11:36:42

damad
Membre
Inscription : 31/01/2026
Messages : 46

Re : Comment modifier l'anticipation des virages en autopilot sur le 777 ?

Hello Clm76 big_smile !!

Clm76 a écrit :

La propriété est celle-ci : "autopilot/route-manager/route/num".

C'est exactement ça que je cherchais, merci wink !!

Clm76 a écrit :

Le code peut alors devenir :

if (getprop("/autopilot/route-manager/current-wp") < getprop("/autopilot/route-manager/route/num")-1) {
  var current_course = getprop("/instrumentation/gps/wp/leg-true-course-deg");
  var next_wp = getprop("/autopilot/route-manager/current-wp") + 1;
  var next_course = getprop("/autopilot/route-manager/route/wp["~next_wp~"]/leg-bearing-true-deg");
  var delta_angle = math.abs(geo.normdeg180(current_course - next_course));
}

En l'état, l'autopilote plante toujours à l'arrivée au dernier waypoint. J'ai donc rajouté un « else » et là, tout fonctionne normalement. Le code devient :

if (getprop("/autopilot/route-manager/current-wp") < getprop("/autopilot/route-manager/route/num") -1) {
  var current_course = getprop("/instrumentation/gps/wp/leg-true-course-deg");
  var next_wp = getprop("/autopilot/route-manager/current-wp") + 1;
  var next_course = getprop("/autopilot/route-manager/route/wp["~next_wp~"]/leg-bearing-true-deg");
  var delta_angle = math.abs(geo.normdeg180(current_course - next_course));
} else {
  var delta_angle = 0;
}

Maintenant, je peux reprendre mes tests et affiner mon calcul avec ce nouveau paramètre. Et c'est très prometteur big_smile !!

Dernière modification par damad (25/08/2026 11:43:27)


Portable Acer Predator PH18-72 v: V1.06 | dual boot Windows 11 - Linux Mint 22 Xfce | Intel Core i9-14900HX | 32 Go RAM | 1: Intel Raptor Lake-S UHD Graphics 2: NVIDIA AD104M [GeForce RTX 4080 Max-Q / Mobile]
Flightgear 2024.1.4

Hors ligne

Pied de page des forums