Trilateration

Comment trouver un point a partir de ses distances a des references connues ? La trilateration est le principe mathematique au coeur du GPS. Decouvrez les equations qui permettent de vous localiser a quelques metres pres !

Difficulte:
45 min
+45 XP

Objectifs du cours

  • Comprendre le principe mathematique de la trilateration
  • Differencier trilateration (distances) et triangulation (angles)
  • Maitriser les equations de la trilateration 2D et 3D
  • Implementer un algorithme de trilateration en Python
  • Comprendre les limites et sources d'erreurs de la trilateration

Erreurs courantes a eviter

  • Confondre trilateration (mesure de distances) et triangulation (mesure d'angles)
  • Oublier que la trilateration 3D necessite 4 points et non 3
  • Ignorer les erreurs de mesure qui degradent la precision
  • Penser que l'intersection est toujours un point unique

**Deux methodes differentes pour se localiser**

Ces deux termes sont souvent confondus, mais ils designent des principes differents :

**TRILATERATION** (utilisee par le GPS) : - Base sur la mesure de DISTANCES - On connait la distance a plusieurs points de reference - On cherche l'intersection de cercles (2D) ou spheres (3D) - Exemple : "Je suis a 5 km de A, 3 km de B, 4 km de C"

**TRIANGULATION** (methode historique) : - Basee sur la mesure d'ANGLES - On mesure les angles depuis des points de reference connus - On trace des droites et on cherche leur intersection - Utilisee par les geometres, les arpenteurs

**Pourquoi le GPS utilise la trilateration ?**

Mesurer des angles depuis un satellite a 20 000 km est extremement difficile. Mesurer des temps de trajet (donc des distances) est beaucoup plus precis.

**Analogie de la vie courante** :

Trilateration : "Le restaurant est a 10 minutes a pied de chez moi, 5 minutes de la gare, et 8 minutes du parc."

Triangulation : "Le restaurant est plein nord depuis chez moi, et plein est depuis la gare."

**Resume** :

| Methode | Mesure | Figures | Usage principal | |---------|--------|---------|-----------------| | Trilateration | Distances | Cercles/Spheres | GPS, WiFi | | Triangulation | Angles | Droites | Topographie |

Python
# Trilateration vs Triangulation
import math

print("=== TRILATERATION vs TRIANGULATION ===\n")

print("TRILATERATION (mesure de DISTANCES):")
print("  - Principe : On connait la distance a plusieurs points")
print("  - Geometrie : Intersection de cercles (2D) ou spheres (3D)")
print("  - Usage : GPS, localisation WiFi, sonar")
print()

print("TRIANGULATION (mesure d'ANGLES):")
print("  - Principe : On mesure les angles depuis des points connus")
print("  - Geometrie : Intersection de droites")
print("  - Usage : Topographie, arpentage, astronomie")
print()

# Exemple de trilateration 2D simple
print("\n=== EXEMPLE DE TRILATERATION 2D ===\n")

# Trois points de reference (tours de telecom)
points_ref = [
    ("Antenne A", 0, 0),
    ("Antenne B", 10, 0),
    ("Antenne C", 5, 8)
]

# Position a trouver (inconnue du recepteur)
position_cible = (4, 3)

print("Points de reference (positions connues) :")
for nom, x, y in points_ref:
    print(f"  {nom} : ({x}, {y})")

print(f"\nPosition a trouver : {position_cible}")
print("(Le recepteur ne connait PAS cette position !)")

# Calcul des distances
print("\nDistances mesurees par le recepteur :")
distances = []
for nom, x, y in points_ref:
    d = math.sqrt((position_cible[0] - x)**2 + (position_cible[1] - y)**2)
    distances.append(d)
    print(f"  Distance a {nom} : {d:.2f} unites")

print("\n=> Avec ces 3 distances, on peut retrouver la position !")

# Exemple de triangulation
print("\n\n=== EXEMPLE DE TRIANGULATION ===\n")

# Deux points d'observation
obs_A = (0, 0)
obs_B = (10, 0)

# Angles vers la cible (en degres)
angle_A = 45  # 45 degres depuis A
angle_B = 120  # 120 degres depuis B

print("Points d'observation :")
print(f"  Observateur A : {obs_A}")
print(f"  Observateur B : {obs_B}")
print()
print("Angles mesures vers la cible :")
print(f"  Depuis A : {angle_A} degres")
print(f"  Depuis B : {angle_B} degres")
print()
print("=> L'intersection des deux droites donne la position de la cible")

Quiz de validation

1. Quelle est la difference entre trilateration et triangulation ?

2. Combien de points de reference sont necessaires pour la trilateration 2D ?

3. En trilateration 2D, connaitre la distance a un point definit quelle figure geometrique ?

4. Pourquoi le GPS utilise-t-il 4 satellites au minimum ?

5. Quelle technologie permet d'atteindre une precision centimetrique ?

Pixel