Ingenieur R&D Biomecanique & Enseignant
🎯 Contexte et objectifs
- Le périmètre fourni montre une activité de R&D biomécanique orientée course à pied et analyse du mouvement, avec une contrainte récurrente : exploiter des acquisitions issues de plusieurs outils de mesure, comparer des conditions ou des profils, puis restituer les résultats dans un format actionnable pour des partenaires non développeurs ou pour des étudiants en montée en compétences. Les objectifs observables vont de la construction d’un protocole expérimental et de chaînes de traitement reproductibles à la mise à disposition d’une interface utilisateur et à la transmission de méthodes d’analyse à des étudiants de 2e année de Licence.
🧪 Réalisations
Projets
- Classification de coureurs et pipeline Toutes foulées — #projet-chaire3
- Interface Python Running Analysis — #projet-chaire4
- Cours biomécanique L2 et encadrement expérimental — #projet-cours-fss
🧭 Cadrage scientifique et protocole
- Chaire3 : j’ai cadré une étude visant à établir des familles de coureurs à partir de variables temporelles continues et discrètes, avec une logique de pré-étude destinée à comparer plusieurs méthodes de classification non supervisée avant généralisation sur un panel plus large. Le protocole visible combine participants, instrumentation, filtrage des forces, détection de phase d’appui, interpolation et structuration des variables pour clustering. Source: Presentation_Projet Toute foulees Pre manip.tex
\begin{frame}\setlength{\parindent}{0.5cm}
L'objectif de l'étude est d'établir des familles de coureurs à partir d'un grand panel de participants (N=200) sur la base de variables temporelles continues et discrètes ("Time Series" type angle d'eversion-inversion au cours du temps et variables ponctuelles type angle Pied-Sol à l'impact). Il s'agira donc de réaliser des classifications dites "non supervisées".\\~\\
Pour la réalisation des futurs clustering, une pré étude est réalisée pour tester les différentes méthodes de clustering utilisées dans la littérature. Cette présentation portera sur la réalisation de la pré étude.\\~\\
\end{frame}
\begin{frame}
\begin{itemize}
\item \underline{Participants} : 50 (actuellement : 47)
- Chaire4 : j’ai structuré une interface destinée à faire gagner du temps sur l’organisation des données, le chargement de fichiers Qualisys et Visual3D, la détection d’événements de course, le filtrage, l’interpolation et la sauvegarde des résultats. La documentation montre une volonté claire d’industrialiser une chaîne d’analyse auparavant scriptée pour la rendre exploitable par un public non spécialiste du code. Source: User_Guide_Interface_Running_Analysis.tex
The purpose of this document is to describe :
\begin{itemize}
\item Why that interface can help you and can save you time in your data processing
\item How to organize Biomechanic Project Folder with subfolder and files stem from Qualisys \logoQTM{} and Visual3D \logoVisual{}
\item How to loading files in order to process data thanks to this interface
\end{itemize}
This interface will help you to save time thanks to a bunch of processing data such as :
\begin{itemize}
\item Loading txt files from Visual3D
\item Loading tsv files from Qualisys
- Cours_FSS : j’ai formulé les séances comme un apprentissage de démarche d’ingénieur d’étude, où les étudiants doivent définir un sujet, construire un protocole, manipuler plusieurs appareils et produire un rapport argumenté. Les jalons de cours montrent une montée en autonomie progressive sur Qualisys, plateforme de force et EMG. Source: Slides_Cours_Biomeca_L2.tex
L'objectif du cours est de réussir à mettre en place un protocole de mesure en précisant toute la démarche (les étapes à réaliser, consignes à respecter, notes , précautions à prendre).
Il vous sera demandé d'établir un sujet d'étude que vous aurez défini en groupe et si possible de présenter brièvement les résultats de cette étude.
\begin{itemize}
\item Travailler en groupe de 2 ou 3
\item Adopter une démarche d'ingénieur d'étude
\item Répondre à une éventuelle demande de réalisation d'étude (...) de manière autonome.
\item Manipuler 2 à 3 appareils
\item Établir un rapport de 5 pages sur la mise en place d'un protocole
📊 Analyse des données
- Matlab / R / Python : j’ai mis en place dans
Chaire3une chaîne Matlab qui enchaîne détection de foulées, filtrage, moyenne glissante, suppression des virages, interpolation à 200 points et création de tables qualitatives, quantitatives et temporelles pour l’analyse. Ce même projet est prolongé par des scripts R qui automatisent les tests de normalité, l’homogénéité des variances et les ANOVA sur les groupes issus des méthodes de clustering. DansChaire4, j’ai transposé cette logique en Python en orchestrant le chargement de données Visual3D et Qualisys, la détection des événements de course, l’extraction de phases et la sauvegarde en.mat,.pklet.csv, ce qui démontre une vraie capacité de migration d’une chaîne d’analyse scientifique vers un outil plus accessible. Source: Traitement_Signaux_IMU.m
[DataFoulee,Event]=Detection_Foulee2(Data);
fe=500;
Fcl=5;
Fch=40;
[Data,DataFilt]=Signaux_Filtre(Data,fe,Fch,Fcl);
move=3000;
DataMeanMove=Signaux_MoveMean(Data,move);
[DataLigneDroite,Data2,RawData]=Detection_Virage(Data,DataMeanMove,DataFoulee,Event,SeuilMin,SeuilMax);
[DataInterp,DataInterpNan,MaxNan,Var0d,Ev,Mean_Ev]= Interpolation(DataLigneDroite,NbInterp,Var0d,Event_GaitCycle0,fe);
[TimeFoulee,Quali_Table,Quanti_Table,Quanti_Table15F,TimeSeries_Table,TimeSeriesNan_Table,~]=Create_Base_SsTable(...)
Source: Script_R_ANOVA.R
model <- lm(JDD2[[Name_Var_Anova[i]]] ~ groups , data=JDD2)
Normality=shapiro.test(residuals(model))
Homogeneity=bartlett.test(JDD2[[Name_Var_Anova[i]]], JDD2$groups)
if (Homogeneity_Var$Homogeneite[i]=='Homogeneite des variances' & LoiNormal_Var$Normalite[i]=='Normal'){
model_aovsum[[i]] <- AovSum(JDD2[[Name_Var_Anova[i]]]~ groups,data=JDD2)
model_aov[[i]] <- aov(JDD2[[Name_Var_Anova[i]]]~ groups,data=JDD2)
model_ezanov= ezANOVA(data = JDD2, wid = Sujet, dv = Cadence, between = .(groups), return_aov = TRUE, detailed = TRUE)
}
- Traitements, statistiques, visualisations : j’ai industrialisé en Python une logique de traitement très proche de celle utilisée en biomécanique appliquée, avec chargement multi-formats, détection du heel strike, mid-stance, heel rise et toe-off, filtrage paramétrable, interpolation et concaténation par phase. Côté pédagogie, les supports et la grille de notation montrent que j’ai aussi explicité aux étudiants les attendus sur l’analyse des données, le choix des filtres, l’EMG, la plateforme de force et l’analyse statistique, ce qui confirme une capacité à transmettre la chaîne analytique et pas seulement à l’exécuter. Source: Code_Python_Tsv.py
from Packages.Interpolation import interp
from Packages.Get_idx_hs_toeoff import Get_idx_ToeOFF, Get_idx_HS, Get_idx_HRise, Get_idx_MidStance
from Packages.Open_BiomecFiles_Qualisys import Open_Files_Qualisys
from Packages.Filter_Signal import Filter_Signal
from Packages.Open_TxtFiles_Visual3D import Open_TxtFiles_Visual3D
from Packages.Concatenation_Data import Concatenation_Data
from Packages.Concatenation_Phase import Concatenation_Phase
from Packages.Get_Stride import Get_Stride
from Packages.Get_Stance import Get_Stance
from Packages.Get_Flight import Get_Flight
Source: Grille_Notation.xlsx
Grille de notation
Objectif étude
Méthode
Protocole
Synchronisation outils
Analyse des données
Filtre (30 Hz)
Filtre Passe bande
Rectification du signal (valeur absolue)
Analyse statistique
Discussion/Conclusion
🧠 Interprétation et vulgarisation
- Dans
Chaire3, j’ai relié les traitements de signaux et les méthodes de clustering à une question compréhensible pour des interlocuteurs non spécialistes : comment identifier des familles de coureurs et comparer des stratégies de locomotion à partir de variables continues et discrètes. Les rapports LaTeX, figures de clustering et présentations montrent un effort de restitution scientifique au-delà du seul calcul. - Dans
Chaire4, j’ai transformé une chaîne d’analyse biomécanique potentiellement opaque en interface documentée, avec organisation de dossiers, réglages d’import, visualisation des données et sauvegarde des sorties. Cette démarche relève autant de l’industrialisation que de la vulgarisation technique, puisqu’elle rend les traitements réutilisables par des profils moins familiers de Matlab ou de Python. - Dans
Cours_FSS, j’ai adapté le discours et les attendus à un public de Licence 2 en structurant les séances autour d’objectifs progressifs, de consignes explicites, d’une prise en main autonome des outils et d’une grille de notation centrée sur le protocole, l’analyse et la discussion. Les supports réemploient des figures issues de la R&D sur le clustering, ce qui montre une continuité forte entre recherche appliquée et transmission pédagogique.
🧾 Livrables
Chaire3: scripts Matlab de traitement IMU et de structuration des tables, scripts R d’ANOVA et de comparaison de méthodes de clustering, rapports et présentations LaTeX/PDF sur le projetToutes foulées, figures de protocole et de classification.Chaire4: base de code Python dédiée àRunning Analysis, interface distribuée pour Windows et MacOS, version script-only, guide utilisateur, environnement Conda, exemples de données et logique de sauvegarde vers.mat,.pklet.csv.Cours_FSS: slides Beamer du coursBiomécanique - L2, supports graphiques sur le protocole et le clustering, grille de notation détaillée, ainsi que trois dossiers étudiants remis en fin de séquence, ce qui documente l’encadrement, l’évaluation et l’autonomisation progressive des groupes.
📈 Résultats
- J’ai mené ici trois projets complémentaires qui couvrent toute la chaîne de valeur d’une activité biomécanique appliquée : cadrer un protocole, traiter et interpréter des données, outiller leur exploitation, puis transmettre la méthode à un public étudiant. Les productions disponibles montrent une continuité forte entre R&D, industrialisation logicielle et pédagogie scientifique, avec des sorties réutilisables aussi bien pour des partenaires techniques que pour des apprenants. L’ensemble met en place un socle robuste pour réduire le temps entre acquisition, analyse et restitution, tout en améliorant l’appropriation des méthodes par des publics non experts.
Projet Chaire3
- Nb commits: non disponible, le dossier fourni n’inclut pas d’historique Git exploitable.
- Période: novembre 2018 à juillet 2019 sur la base des présentations de pré-étude, des rapports LaTeX/PDF et des versions d’article observables.
- Livrables / sorties: pipeline Matlab de détection, filtrage, interpolation et tabulation, scripts R de statistiques, présentations et rapports
Toutes foulées, figures de clustering et de protocole. Bénéfice : j’ai structuré une chaîne d’analyse réutilisable pour passer de signaux bruts et variables sujet à des familles de coureurs interprétables.
Projet Chaire4
- Nb commits: non disponible, le dossier fourni n’inclut pas d’historique Git exploitable.
- Période: février 2019 à octobre 2019 sur la base des fichiers de conception, du code Python, du guide utilisateur et des builds distribués, avec des fichiers d’environnement mis à jour en janvier 2022.
- Livrables / sorties: interface
Running Analysis, version scriptée, packages de filtrage et détection d’événements, documentation utilisateur, exécutable Windows et arborescences Windows/MacOS. Bénéfice : j’ai transformé une chaîne biomécanique experte en outil plus directement exploitable, ce qui vise à limiter les retraitements manuels et à accélérer la production d’analyses.
Projet Cours FSS
- Nb commits: non disponible, le dossier fourni n’inclut pas d’historique Git exploitable.
- Période: février 2019 à mai 2019 pour le déroulé du cours et les rendus, avec réutilisation de figures analytiques produites entre novembre 2017 et janvier 2018.
- Livrables / sorties: support de cours L2, séquençage des séances du 26/02, 12/03 et 19/03, grille de notation, dossiers finaux de trois groupes. Bénéfice : j’ai relié théorie biomécanique, manipulation instrumentale et analyse de données dans un dispositif qui pousse les étudiants vers l’autonomie méthodologique et la formalisation scientifique.
🔧 Environnement technique
- Matlab pour le traitement de signaux, l’interpolation, la structuration de jeux de données et les visualisations ; R pour les tests de normalité, Bartlett, ANOVA et comparaisons entre groupes ; Python pour l’industrialisation de la chaîne d’analyse. Instrumentation et écosystème observables dans les productions : IMU, Qualisys, Visual3D, EMG Delsys, plateformes de force, LaTeX/Beamer, PDF et Excel. Source: Filter_Signal.py
import numpy as np
import scipy
import matplotlib.pyplot as plt
import pandas as pd
from Class_object.ProgressBar_perso2 import Ui_progressbar_window
def Filter_Signal(data0,
datatype=('Kinem'),
variable_choosen={'Kinem':['rmt1_z']},
Technologies utilisées
Sciences & R&D
Delsys EMG
Kistler
Qualisys
Visual3D
Data Science
MATLAB
Matplotlib
NumPy
Pandas
R
SciPy
Backend
Python