2014
08.15

Préambule

Je vais tenter dans la suite de ce billet d’expliquer un projet qui me tient à cœur depuis 2010 puisqu’il a prit naissance dans ma passion du cyclisme et est devenu, au fil des mois et des années, l’un des moteurs de cette passion.

Ingé méca de formation, ce projet m’aura amené à affiner ma compréhension de ce sport mais aussi à découvrir la programmation informatique en repoussant sans cesse mes limites dans ce domaine, de la même manière que le cyclisme appel à se dépasser physiquement et moralement.

Il me fallait donc une épreuve à la hauteur d’un projet vieux de 4ans déjà pour illustrer ce billet et c’est tout naturellement que mon choix s’est porté sur celle des Fondus de l’Ubaye. Cette épreuve, à laquelle j’ai participé le 28 juin dernier, propose d’escalader les cols de la vallée de l’Ubaye dans le but de récolter de l’argent au profit de l’association « Vaincre la Mucoviscidose« . Une organisation sans faille, des panoramas sublimes et le sentiments de pédaler pour quelque chose d’utile en font l’un des événements que je ne peux que vous conseiller.

Statistiques sportive, veuillez performer svp!

Pour progresser en vélo, il est primordial de pouvoir déterminer la qualité d’un entraînement pour pouvoir le comparer à ceux réaliser sur une période antérieure et se fixer ainsi des objectifs. De nombreuses marques l’ont d’ailleurs bien comprit et propose aujourd’hui à leur clients des applications toujours plus perfectionnées permettant de générer, analyser et partager des statistiques liées à la pratique du cyclisme.  Strava, Garmin-Connect ,… .

Strava_Garmin

Mais ces applications, aussi utiles et efficaces soient elles, sont le plus souvent conçues de manière à orienter l’amateur vers la recherche de la performance et la démonstration auprès de la communauté. Le monde étant ce qu’il est, n’oublions également pas que leur mise à disposition souvent gratuite reste motivé par le business qu’elles génèrent puisqu’elles impliquent l’utilisation d’un matériel toujours plus coûteux pour fonctionner.

Les chemins de la liberté…

Touareg-modif1Concevant le vélo avant tout comme un vecteur de liberté, j’ai pour ma part cherché dès 2010 à mettre en place un système permettant de stocker de façon sûr et pérenne mes sorties pour pouvoir ensuite les analyser de manière graphique. La perte du fichier excel dans lequel était consigné ma saison 2008 (crash disque dur 🙁 ) y étant probablement pour beaucoup.

L’idée de présenter ces sorties sous la forme de récits ou de diaporama est de fait apparue naturelle avec l’avènement récent des CMS comme WordPress ou encore Drupal.

Mes connaissances limitées en programmation (autodidacte) ne me permettent bien sûr pas de prétendre au même niveau de qualité que les applications sus-citées, mais la satisfaction d’observer le résultat d’une démarche DIY complète en gomme aisément les petits défauts.

Outre son aspect formateur, la démarche présente aussi des avantages : le programme conçue de bout en bout à la main reste en effet modifiable à tout moment ce qui permettra d’en optimiser le fonctionnement et/ou d’ajouter des fonctionnalités en fonction des besoins. Je dispose également pleinement de mes données ce qui est important à un moment où les internautes s’inquiètent de la protection de leur données personnelles.

Mais assez discuté, passons désormais à la présentation de l’application.


« G’Cycle », panel de gestion des sorties

G’Cycle est intégré à la partie intranet du projet et permet d’enregistrer de nouvelles sorties, tout en permettant d’accéder rapidement aux entrées archivées.

  • Il se présente en premier lieu sous la forme d’un calendrier dynamique donnant accès aux différentes sorties et à un bouton « Ajouter une nouvelle sortie ».

Gcycle_calendrier

  • Un clic sur ce dernier bouton ouvre un formulaire permettant de renseigner les caractéristiques de la dernière sortie effectuée.

Ce formulaire permet ainsi de saisir le titre, la date et les points de passage du parcours réalisé, mais aussi les différents paramètres qui seront utilisés pour déterminer l’indice de difficulté utiles à la classification de la sortie (voir § suivant). Ces données d’entrées sont accessibles sur tout compteur d’entrée de gamme, exception faite du dénivelé qui pourra être déteriné grâce à Openrunner.
Duree_{tot} = Duree_{sortie} (info compteur) [en min] ;
Distance_{tot} = Distance_{totale parcourue} (info compteur) [en km] ;
Denivele_{tot} = Somme(D+) (info compteur ou openrunner) [en m] ;
t_{abrite} (estimation du temps passé dans les roues) [en %].

Gcycle_formulaire

  • Un panel d’administration s’ouvre lors d’un clic sur la date de la sortie considérée et permet de la modifier, voir de la supprimer.

Cet écran rappel les différentes données saisies lors de sa création tout en permettant de lier de nouvelles données :
– Adresse de l’article du Blog ;
– Trace GPS stockée sous la forme d’un fichier GPX ;
– Photocopie d’un éventuel diplôme.

Gcycle_gestion_sortie


L’indice de difficulté comme mode de classification

Stocker les différentes sorties effectuées au cours de la saison et pouvoir y accéder rapidement est bien sûr important mais il s’avère indispensable de pouvoir les comparer entre elles pour pouvoir évaluer sa qualité s’il s’agit d’un entraînement ou la performance réalisée dans le cas d’une course.

Les données d’entrées brutes saisies ci-dessus permettent déjà de réaliser différents classement qui s’avéreront intéressant pour comparer des sorties de même type :
– Classement par distance pour les sorties longue distance ;
– Classement par dénivelé pour les sorties de montagnes ;
– Classement par vitesse pour les contre-la-montre ;
– Classement par durée pour les épreuves de fonds ;

Chaque sortie est cependant un tout indivisible faisant intervenir simultanément la distance, le profil de la route, la vitesse ou autres conditions particulières (Ex : sortie solo ou en peloton) et il est difficile de dire qu’elle est la plus dure en considérant indépendamment chaque paramètre.

L’objectif est donc bien de trouver un moyen de lier ces différents paramètres dans une seule et même variable, cette variable devenant ainsi suffisante pour qualifier une sortie. La comparaison de ces variables permettant ensuite de réaliser un classement entre des sorties de type différents.

Une façon de définir cette variable est de revenir au modèle mathématique définissant le mouvement du cycliste. Ce modèle, même simplifié, sera en effet toujours plus précis et objectif qu’une détermination par cotation consistant à attribuer une note à chaque paramètre, puis à les moyenner de manière à faire ressortir une note globale.

La construction de ce modèle de calcul est détaillée dans l’article [MeDiaN@Sports – « L’Indice de difficultée à vélo »]. Il nous conduit à établir un indice répondant  à l’équation ci-dessous qui qualifie la difficulté du parcours considéré. Cet indice varie entre 1 et 100 et est propre à chacun puisqu’il compare chaque sortie à une sortie de référence, c’est à dire la plus dure effectuée dans sa vie :

 I_{MeDiaN} = 100.\frac{E_{m_{fournie}}}{E_{max}}

Ou E_{m_{fournie}} est l’énergie mécanique fournie lors de la sortie
Et E_{max} est l’énergie de référence, c’est à dire la sortie durant laquelle l’énergie fournie a été maximum.

Dans la relation précédente, il est à noter que E_{m_{fournie}} et E_{max} sont déterminées de la même manière.

La détermination de cet indice nous amène donc à un cinquième mode de classement :
– Classement par Indice pour la comparaison d’épreuves de tout types ;

Les principales relations permettant de réaliser le calcul de E_{m_{fournie}} sont récapitulés ici :

E_{m_{fournie}} = P_{m}.Duree_{tot}


P_{m} = 1,03.(M_{tot}.g.a.t.sin(\alpha) + k_{corr}.C_{aero_{p}} + C_{r_{p}}).\frac{\Pi. N}{30}


M_{tot} = \left (M+M_{1}+M_{2}+m_{P}+2m_{p}+M_{Cycliste} \right )

M = Masse_{cadre}+ Masse_{peripherique} + Masse_{accessoire}

M_{1} = Masse_{roueAV}
M_{2} = Masse_{roueAR}

m_{P} = Masse_{Pedalier}
m_{p} = Masse_{pedale}

M_{Cycliste} = Masse_{Cycliste} + Masse_{equipement}

g = 9.81m/s^{2}

a = Rayon_{Roues} = 350

t=\frac{Ndents_{plateau} }{Ndents_{pignon}}

sin(\alpha) = \frac{Denivele_{tot}}{Distance_{tot}} : Données d’entrée


k_{corr} = 1-\frac{t_{abrite}}{100}*0.3 ou t_{abrite} : Donnée d’entrée

C_{aero_{p}}=t.C_{aero_{roues}}=a.t.R_{aero}

R_{aero}=R_{C_{x}}+R_{friction_{air}}=(\frac{1}{2}\rho.S.C_{x}+C_{f}).(V_{Vent}+a.t.\dot{\theta_{p}})^{2}

\rho = 1.204 : Hyp (20°C et pression normale)

S.C_{x} = 0.4 : Hyp (car adepte d’une position haute)

C_{f} = 0.0027 : Hyp (roues standards avec des pneus 700x23C)

V_{Vent} = 2.5m/s : Hyp (léger vent (9km/h) mais tj de face)

\dot{\theta_{p}} = \frac{\Pi. N}{30}


C_{r_{p}}=t.C_{r_{roues}}=a.t.R_{r}

R_{r}=Crr.M_{tot}.g.cos(\alpha)

Crr = Coeff_{route}*Coef_{pneu}*p^{-0.426}

Coeff_{route} = 1.20 : Hyp (2/3 Route bonne)

Coeff_{pneu} = 0.011454649 : Hyp (Krylion Carb.)

p = 6.5bars : Hyp (1 bars/10kg)

cos(\alpha)=\sqrt{1-sin(\alpha)^{2}}


N = 70tr/minbars : Hyp (cyclotouriste(70) / cyclosportif (90)


Duree_{tot} : Donnée d’entrée

Les différents articles ayant permis de construire cette relation sont eux listés ci-dessous :

1. MeDiaN@Sports – « L’Énergie cinétique à vélo » (voir)
2. MeDiaN@Sports – « L’Équation de mouvement à vélo » (voir)
3. MeDiaN@Sports – « L’Aérodynamisme à vélo » (voir)
4. MeDiaN@Sports – « La Résistance au Roulement à vélo » (voir)
5. MeDiaN@Sports – « Les Frottements à vélo » (voir)
6. MeDiaN@Sports – « Puissance et Energie à vélo » (voir)
7. MeDiaN@Sports – « L’indice de difficultée à vélo » (voir)

On constate aisément que la complexité de cette équation, même simplifiée, impose un traitement informatisé pour que l’estimation de l’indice proposé soit utilisable au quotidien. Outre les 4 données entrante devant être rempli à chaque sortie, le renseignement préalable d’une base de donnée décrivant le matériel utilisé et le cycliste (masses) doit être réalisé. Pour affiner encore le modèle, il pourrait en être de même pour les autres paramètres, comme le rayon des roues ou le type de pédalier. Le programme ira ensuite piocher ces informations lors de chaque enregistrement de manière à déterminer l’indice de la sortie.

Mais il est important de souligner que seul l’E_{m_{fournie}} doit être enregistrer dans la base de donnée. La valeur de E_{max} (sortie de référence) n’est en effet valable qu’à un instant donné et la performance alors réalisée est nécessairement appelée à être battue. Par conséquent, l’indice associé à une sortie sera calculé au moment de la consultation seulement, de manière à pouvoir prendre en compte la dernière sortie de référence.

Nous pouvons enfin proposer 2 utilisations découlant de l’estimation de cet indice de difficulté :

1. De la même manière qu’il est courant de sommer les km sur le mois ou sur l’année, ces indices pourront êtres sommés de manière à avoir une idée de la difficulté liée à l’enchaînement des sorties sur le mois ou l’année :

I_{MeDiaN_{mensuel}} = \sum_{i=0}^{30} I_{MeDiaN}(i)

I_{MeDiaN_{annuel}} = \sum_{m=1}^{12} I_{MeDiaN_{mensuel}}(i)

2. Les saisons ne se ressemblant pas toujours (disponibilité, météo, santé), il pourrait être intéressant de définir un indice basé uniquement sur la sortie de référence de l’année en cours :

I_{annee} = 100.\frac{E_{m_{fournie}}}{E_{max_{annee}}}


MeDiaN@Sport, visualisation de statistiques partage

Nous avons désormais tout ce qu’il nous faut pour gérer correctement nos sortie et nos entraînements, et ce à partir d’un compteur basique et d’un peu de temps pour renseigner le module G’Cycle. Le programme prend alors le relais pour stocker et ordonner ces données, tout en réalisant une estimation de l’énergie qui a dû être fournie pour réaliser le parcours à partir des équations formulées ci-dessus.

Il ne manque donc plus qu’une interface graphique qui permettra d’extraire et de présenter de manière synthétique les différentes statistiques enregistrées. Cet interface se nomme désormais MeDiaN@Sports et s’intègre directement au Blog.

Outre la présentation de statistiques, cet interface se comporte aussi comme un sommaire qui permet d’optimiser  la navigation entre les différents articles traitant du cyclisme. Il devient ainsi possible de les classer suivant les différents modes de classement mis en place au paragraphe précédent. Un filtre par discipline ainsi qu’un moteur de recherche est prévu pour retrouver une sortie en particulier.

Voici un petit aperçu de l’interface MeDiaN@Sports en ce 15 août 2014, même si je vous invite plutôt à aller l’essayer directement depuis la barre des menus :

  • L’écran d’accueil propose des statistiques globales par année.

MeDiaNSport_accueil

  • L’onglet TOP donne accès aux différents modes de classement (ici l’indice) présentés précédemment avec possibilité de filtrer les résultats.

MeDiaNSport_top-indice

La série d’icônes précédant l’indice et le nom de la sortie donne accès à du contenu avancé. Un clic sur le dernier icône permet comme le montre la capture ci-dessus d’afficher une photo du diplôme obtenu. Le premier icône (+) donne lui directement accès à l’article dans le blog (MeDiaN@Blog).

MeDiaNSport_medianBlog

Mais l’informatique est magnifique et ses évolutions permanente mettent à la disposition du plus grand nombre des fonctionnalités autrefois réservées aux professionnels. La Mappemonde de la seconde colonne ouvre ainsi un petit viewer GPX (MeDiaN@GPX) adapté d’un script WordPress permettant d’afficher et de télécharger la trace GPS du parcours.

MeDiaNSport_medianGPX

L’œil de la troisième colonne affichera dans la même fenêtre les diaporama créés pour le blog (MeDiaN@Spot). Toutes les photos affichées ne sont évidement pas toutes de moi, car il serait difficile de profiter du vélo en s’arrêtant constamment. Mon seul objectif restant de faire découvrir les endroits que j’ai aimé à d’autres pour leur donné envie de les découvrir ensuite par eux même.
La plupart ayant été glanée sur internet, je me ferais un plaisir d’indiquer le nom de l’auteur dans la légende si celui-ci en revendique la propriété – en espérant que ces pages lui donneront la visibilité que ces photographies mérite (contact en pied de page).

MeDiaNSport_medianSpot

  • L’onglet Chrono représente les paramètres (km, D+, Vmoy, Durée, Indice) de chaque sorties sous la forme d’une frise chronologique (ici les indices pour l’année 2014 : seul ceux supérieur à 50 étant représenté).

MeDiaNSport_chrono

  • L’onglet Graph représente sous la forme d’histogramme les indices évoqués plus haut : I_{MeDiaN_{mensuel}} = \sum_{i=0}^{30} I_{MeDiaN}(i) et I_{MeDiaN_{annuel}} = \sum_{m=1}^{12} I_{MeDiaN_{mensuel}}(i)

Nota : Les différents modes de classement ayant été mis en route successivement, les classements du kilométrage, de la vitesse moyenne et par temps sont ok depuis 2009. Celui concernant le dénivelé ne l’est que depuis l’année 2011. Le classement par indice n’a été mis en place de manière systématique que depuis la saison 2012.

MeDiaNSport_Graph

  • L’onglet Spad enfin n’en est qu’à ces balbutiement mais est appelé à mettre en valeur les machines sur lesquels j’aime à rouler comme par exemple ce vélo de rêve, un LOOK-Kg186 de 92′ (l’un des tout premiers cadre monobloc carbone) !

MeDiaNSport_SpadMeDiaNSport_SpadGallery

L’intégration de galeries d’images est possible, tout comme la possibilité d’afficher un viewer 3D de mon vélo préféré, ici mon Gitane FdJ modélisé grâce au logiciel de CAD SolidWorks !

MeDiaNSport_3DViewer

 


G’Cycle&MeDiaN@Sport resteront un projet MeDiaN

Je vous ai livré ici mon alternative à certaines solutions commerciales pour rendre ma pratique du cyclisme encore plus palpitante. J’espère que vous trouverez comme moi le résultat sympa, même si tout n’est pas parfait, et que peut-être même, vous aimeriez l’utiliser. Par manque de temps et de compétences cependant, ce projet restera une initiative personnel et par conséquent mono-utilisateur.

Ce projet étant uniquement construit autour de solutions libres (HTML/CSS, PHP, MySQL et Javascript, CMS WordPress), j’invite cependant quiconque en aurait envie à réutiliser les informations de ce site pour construire sa propre vision du cyclisme.

C’est en roulant que naît l’envie de rouler… !

 

Aucun commentaire.

Ajoutez votre commentaire

Les commentaires sont fermés