Aout 2020 - Aujourd'hui
Client : ESTACA
Position : Maitrise d’œuvre, Architecte système, ingénieur logiciel
Dans un but pédagogique de transmettre une vision appliqué des notions ferroviaires étudiées lors du cursus, le responsable de la filière ferroviaire de l'ESTACA, en relation avec le corps enseignant et quelques alumni, se sont donnés pour objectif de concevoir, construire et développer un simulateur de dimensionnement et de conduite de train.
Mon role est de spécifier, concevoir et développer les aspects techniques et logiciels du projets en cohérence avec les enjeux de la formation tout en m'occupant de la gestion d'équipes de recherches pour l'amélioration continue du projet.
Instaurer la norme management de la qualité (Quality Management System) ISO9001:2015 et appliquer ses critères avec l’écriture de documentation technique et la traçabilité des versions des différents aspects du projet ;
Gérer une équipe de 8 à 12 membres répartis sur des projets de 3 à 4 personnes ;
Créer une charte graphique multi-projets uniformisée pour communiquer et évoluer sur une base commune ;
Construire une architecture de programmation robuste et ouverte pour faciliter son utilisation et son développement futur ;
Créer une base de données des systèmes et infrastructures ferroviaires, au format GMAO (Gestion de la Maintenance Assistée par Ordinateur) ;
Développer des modules tel que l'ETCS, la dynamique (traction et freinage) et une application d’initialisation et de dimensionnement train ;
Modéliser en 3D l’intérieur d’une cabine de train Regio2N, en suivant un OTP (Organigramme Technique de Produit).
Implémentation d'un système d'historique des versions pour le code (avec Git/Github) et la documentation (avec Office365) ;
Création de règles de programmation pour assurer une base de code lisible et maintenable ;
Création d'un template de documentation suivant les contraintes de la norme ISO;
Écriture de documentation technique ferroviaire et logiciel selon la structure des documentations ERTMS de l'ERA.
Création d'une structure graphique et logique simplifiée pour s'adapter à l'évolution du simulateur ;
Ajout d'une page "Général" pour donner du contexte à la simulation (pupitre, systèmes de bord, IHM, ...) ;
Ajout d'une page "Boutons" pour paramétrer précisément (type, fonctionnement, délais, ...) chaque composants du pupitre ;
Ajout d'une page "Train" pour un paramétrage simple ou poussé du matériel roulant utilisé divisé en 3 parties :
Paramétrage simple (page principale) : développée en accord avec les enseignants permettant aux étudiants de tester leur propre matériel roulant dans le cadre d'un projet de dimensionnement de 3ème année. Le simulateur est utilisé pour valider ou non leur design ;
Paramétrage complexe : développé en accord avec des professionnels du secteur permettant de paramétrer chaque systèmes du train en détail. Des systèmes électriques (position et portées des pantographes, DJC/DJM) aux systèmes de motorisation et de freinages (position, puissance, type...) et ce grâce à la création d'une interface graphique interactive et dynamique ;
Systèmes de freinages : pour paramétrer en détail chaque systèmes de freinages (plaquettes, disques, patins magnétiques, récupération/rhéostatique).
Ajout d'une page "Ligne" pour sélectionner ou générer la ligne ferroviaires;
Ajout d'une page "Écrans" pour positionner chacune des fenêtres de simulation automatiquement ;
Écriture de documentation sur les composants, le fonctionnement et les informations d'entrées ;
Développement d'un module de conversion d'unités pour s'adapter aux cahiers des charges de différents constructeurs ;
Création d'un clavier virtuel spécifique pour la mise en compatibilité au tactile complète du simulateur.
Librairies utilisées :
Interface graphique et clavier virtuel : PyQt6 (Python) QML/JavaScript
Lecture des courbes des systèmes de freinage : openCV (Python)
Création d'une base de données divisé en sous-systèmes (motorisation, freinage, électrique, ...) utilisant une structure similaire au GMAO ;
Implémentation de la dynamique ferroviaire de traction et de freinage à partir des entrées définies dans l'application d'initialisation ;
Prise en compte du tracé de la ligne et de ses paramètres ;
Utilisation du module de visualisation de données pour faire le rapprochement avec les notions étudiées en cours.
Recréation du DMI (Interface Homme Conducteur) en suivant la série de spécifications de la baseline 3 décrite par l'ERA ;
Implémentation des fonctions principales de l'EVC (European Vital Computer) pour générer les courbes de freinage.
Librairies utilisées :
Interface graphique du DMI : PyQt6 (Python) ; QML/JavaScript
Créations de la structure du module pour prendre en compte les différents pupitres (lourd, léger et clavier pour le développement) et permettre le développement de fonctions variés et adaptés à chaque matériel roulant ;
Implémentation des fonctions pour le fonctionnement d'un TGV et d'autres types de trains ;
Ajout d'une page "Boutons" pour paramétrer précisément (type, fonctionnement, délais, ...) chaque composants du pupitre.
Librairies utilisées :
Communication entrer le pupitre et la base de code : PyFirmata (Python)
Interface graphique pour le paramétrage du pupitre : PyQt6 (Python) ; QML/JavaScript
Utilisation des bases de données Open Data SNCF ;
Récupération et traitement des données;
Génération de fichiers CSV ligne à partir des équations utilisé par SNCF Réseau en France ;
Utilisation des fichiers CSV pour la génération de la voie et des infrastructures sur UE5.
Librairies utilisées :
Gestion de bases de données : Pandas (Python)
Traitement de données : Numpy/regex (Python)