Utilitaire en C de traitement et formatage de données numériques : calculs, mise en forme et affichage de résultats.
Telecharger & tester
- WebAssembly: Testable directement dans le navigateur ci-dessus.
make && ./ai (simulation/IA en ligne de commande, affiche le deroulement de la simulation sur la sortie standard)
Need4Stek (n4s) est un projet Epitech de Tek1 qui consiste a ecrire en C un programme d'intelligence artificielle (binaire nomme ai) capable de piloter une voiture autonome sur un circuit simule dans CoppeliaSim, sans jamais toucher les murs ni rouler a contresens.
Le pilotage ne se fait pas directement sur le simulateur : un binaire fourni nomme n4s ouvre une socket vers CoppeliaSim et expose un protocole texte sur son entree et sa sortie standard, et un script pipes.sh chaine ce binaire avec le programme de l'etudiant. L'IA doit donc lire les reponses de n4s sur son entree standard et ecrire ses commandes sur sa sortie standard, chaque commande devant se terminer par un retour a la ligne et etant insensible a la casse.
Les commandes disponibles couvrent le demarrage et l'arret de la simulation, la propulsion (CAR_FORWARD, CAR_BACKWARDS), la direction des roues (WHEELS_DIR), la lecture du LIDAR (32 distances en millimetres plafonnees a 3010, une valeur au-dela signifiant qu'aucun obstacle n'est detecte dans les 3 metres) et des informations de vitesse ou de temps ecoule. Chaque reponse suit un format VALUE_ID:STATUS:CODE_STR[:donnees]:INFO_SUPPLEMENTAIRE, ou INFO_SUPPLEMENTAIRE signale le franchissement d'un checkpoint (premier checkpoint, checkpoint intermediaire, tour complet ou fin de circuit).
Les caracteristiques physiques du vehicule (poids, dimensions, vitesse maximale, angle de braquage) ne sont volontairement pas communiquees et doivent etre deduites empiriquement au demarrage si necessaire. L'evaluation porte sur la capacite de l'IA a boucler rapidement le circuit et a s'arreter proprement, a au moins un metre du mur, dans une impasse plutot que de percuter un obstacle. Seules les fonctions de la libc et de libmath sont autorisees, ce qui impose d'ecrire soi-meme toute la logique de navigation.
Projet suivant
