[Projet] [Camera] Conception d'une Gyro Cam embarquée

Ici on parle de tout et de rien, de la pluie et du beau temps, du boulot, des vacances, etc...
Répondre
magikmeuh
Pilote 250 cm3
Pilote 250 cm3
Messages : 931
Enregistré le : jeu. 16 févr., 2012 22:19
Moto : SV650S 2003
Localisation : Paris

[Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par magikmeuh »

Voici un topic sur mon nouveau projet moto : la conception et construction d'une gyro cam !

Tout a commencé lors de mes premiers films à moto, j'ai d'abord essayé de réfléchir à ce qu'il pourrait être malin de faire pour obtenir des plans qui sortent de l'ordinaire, des points de vues sur la moto qui en jète vraiment !
Et au fil de mes réflexions j'ai commencé à m'imaginer un support pour caméra embarquée (j'ai une GoPro) qui puisse rester à l'horizontal quel que soit l'angle de la moto. Exactement comme le fonctionnement d'un cardan hébergeant un compas ou autre instrument de navigation dans un bateau.

Image

J'ai d'abord essayer d'imaginer un support à base de cardan, en regardant ce qui existait au niveau des stabilisateurs d'appareils photos et de caméras (très connu sous le nom de steadycam).

Image

Mais le problème majeur étant la force centrifuge ! Le principe d'un steadycam est le contrepoids qui sert de balancier et donc de stabilisateur. Ce contrepoids ne peut qu'être poussé vers l'extérieur dans un virage en moto et donc provoquerait une prise d'angle de la caméra.
Après m'être torturé l'esprit dans tous les sens pour annuler cette force centrifuge (et surtout après avoir écremé le web) je me suis rendu à l'évidence que c'était impossible ! Cette force n'est pas contrable !

Il fallait donc employé les grands moyens : avoir recours à l'électronique !
Alors les recherches reprirent... d'abord les micro contrôleur, les servo moteurs de modélisme, le possibilité d'utiliser mon iphone pour utiliser le gyroscope intégré, l'accéléromètre ou autre micro composant barbare et inconnu.

Après de multiple aller retour, je me suis laisser convaincre par une plateforme open source avec une grande communauté : Arduino ! http://arduino.cc/fr/
Les plaquettes offres la possibilité de se mettre le pied à l'étrier rapidement et donc j'ai commandé sur internet les composants suivant :

1 arduino uno :
Image

1 plaquette avec acceleromètre + gyroscope :
Image

1 servo moteur sur ebay :
Image


L'idée étant théoriquement simple :

Le gyroscope et l'accéléromètre détecte l'angle de la moto -> l'arduino lit l'information, l'analyse et la traite -> puis envoie la commande au servo moteur pour compenser l'angle. La caméra étant fixé sur le servo moteur ou un support adapté -> la caméra penche.

Fier de mon idée révolutionnaire j'ai commencé à regarder sur internet si je pouvais pas m'inspirer de travaux similaire. Et j'ai trouvé à ma plus grande déception que mon projet avait déjà été fait... Cela s'appel une gyrocam (j'avais enfin un nom sur mon concept, qui au final n'était pas le mien). Mais après étude des différentes vidéos je me me suis rendu compte que seul les équipes de Yamaha et Kawa on abouti sur ce projet et que seul Rossi ou autre grand pilote on eu un jour une caméra comme celle là sur leur moto.

Donc après tout, cela reste assez marginale : je me lance !!

Pour vous rendre compte de l'effet, voici une super vidéo (attention ça décoiffe) :

phpBB [video]



Voici le programme et l'avancé du projet :

1/ Conception : premier pas avec l'électronique : FAIT
2/ Conception : dessin sur ordinateur du support En cours... : 1ère version
3/ Réalisation : réalisation d'une première maquette du support
4/ Réalisation : soudure et amélioration de la planche de test et montage sur le support
5/ Les premiers tests en vélo / roller / ou voir même à pied
6/ Réalisation : support définitif ou 2ème itération
7/ Retests
8/ Etude : étude de faisabilité de l'impression d'un support avec une imprimante 3D pour miniaturisation
SV s = new SV(650);
s.start();
s.run();
magikmeuh
Pilote 250 cm3
Pilote 250 cm3
Messages : 931
Enregistré le : jeu. 16 févr., 2012 22:19
Moto : SV650S 2003
Localisation : Paris

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par magikmeuh »

Conception : premier pas avec l'électronique :

Une planche de polystyrène, 3/4 fil, 1 fer à souder, un cable USB, un logiciel sur l'ordi et c'est parti !!

Voilà les premiers essai :

1/ Utiliser le microcontrolleur pour faire bouger le servo :




2/ Utiliser une entrée analogique pour impacter sur le mouvement du servo :

Pour cela j'ai récupéré un viel haut parleur d'ordi, décortiqué, récupéré la planche avec le bouton du volume sonore, je me suis branché dessus, et hop le tour est joué :



3/ Première utilisation du gyro :



:ghee: ça commence à rendre !!


4/ Et pour finir, le dernier test : Accéléromètre + Gyroscope

phpBB [video]



Un peu de théorie :

La grande question est qui fait quoi entre l'accéléromètre et le gyroscope !

Au début, ma logique me dictait la chose suivant :
- Un accéléromètre ça capte les accélérations ! Quand tu exerces une force ponctuelle, ça te donne l'information de l'axe sur lequel l'accéléro a senti cette force soudaine !
- Un gyroscope, il y a gyro dedant, donc ça me semblait logique que ça retourne l'angle pris par le système...
Donc l'objectif était de se dire : le gyro me donne l'angle de la moto et l'accéléro ba... je sais pas trop quoi en faire on verra plus tard...

Bon et bien j'avais tout faut....

Après quelques discutions avec des personnes un peu plus éclairées que moi sur le sujet, je me suis rendu compte que le gyro ne se comportait pas du tout comme prévu !
Si je prends le gyro posé sur une table, dans un repère à 3 axes, les 3 valeurs de sorties x y z seront nulle !
Un peu contrariant donc.... et on se rend compte en échantillonnant à 10 ou 100 ms par exemple (fréquence de lecture des données) que le gyro ne donne pas l'angle mais la vitesse angulaire a laquelle le système est soumis.
Donc plus on le fait tourner vite plus la valeur sera importante, et dès qu'on arrête le mouvement, la valeur retombe à zero.

Le concept est donc simple mais juste inattendu !

Pour une fréquence de 500 ms par exemple (je prélève une valeur toutes les demi secondes) si la valeur me retourne (après de multiples retraitements... dont je vous épargne les formules) : 30°, cela signifie que mon système tourne à une vitesse de 60°/sec.
Tout en sachant qu'une fréquence de 500ms c'est bcp trop grand mais c'est pour l'exemple.
Et tout en sachant aussi que je vulgarise pour l'explication car la donnée retournée est en radian (vitesse angulaire).


En clair : si je reste sur l’angle dans un grand parabolique, le gyro me retournera aucune valeur, et l’expérience des autres montres que le gyro dérive énormément avec le temps, les vibrations etc...


Maintenant au tour de l’accéléro :

Une connaissance m’a fait rencontrer quelqu’un qui s’était déjà amusé avec un accéléromètre pour d’autre projet. Au cours de la discussion et de nombreux désaccords de logique, j’ai dû me rendre à l’évidence que l’accéléro ne fonctionnait pas non plus comme prévu… ou presque !

En fait, celui qui va me donner l’angle de la moto : c’est lui !

Image

Comment ça marche : un accéléromètre sur 3 axes donne la force exercé sur ses 3 axes. Si on le pose sur la table on va donc avoir 2 valeurs à nulle, et 1 (axe Z sur le schéma) ayant une valeur de -9.81.
Ça vous dit quelque chose ? Tous ceux qui ont étudié la physique ça devrait leur rappeler la constante universelle de…. De ….. !?? La gravité !!
Bingo !

Si je penche l’accéléro à 45°, en le tournant sur l’axe Y, la force gravitationnelle va être partagée entre l’axe X et Z.
On aura donc environ 4.9 sur X, et -4.9 sur Z.
Et encore une fois je vous épargne la formule mathématique (google : la norme d’un vecteur) mais à partir de ces données on obtient l’angle du système dans un repère à 3 dimensions.



Et pour finir : la combinaison des deux !

Encore une fois, après mes recherches notamment autour des projets de drones, hélicoptère, parot, quadcopter, hexacopter et j’en passe… en clair tout ce qui vole et qui doit tenir en l’air sans se casser la gueule.
Un accéléromètre n’est jamais utilisé seul car lui aussi dérive mais c’est surtout qu’il gère mal les rotations. Il faut donc combiner les deux outils en une formule qui ressemble à ça :

Toutes les 10/20/50 ms :

Code : Tout sélectionner

angleX = (0.900)*(angleX + dataGyroY*0.10) + (0.10)*(dataAccelX);
angleX = l’angle de la moto
dataGyroY = la vitesse de rotation du système sur l’axe Y
dataAccelX = la valeur de la force exercé sur l’axe X

L’angle de la moto est donc égale à
10% de la valeur de l’accéléromètre
+
90% de l’ancien angle + 10% de la valeur retournée par le gyro

L’idée est donc de récupérer l’ancienne valeur, la corriger en fonction du gyro, puis y ajouter la valeur de l’accéléro.
Le 90%/10% signifie donc que le gyro est plus important, mais que lorsque le gyro ne tourne plus (valeur 0 renvoyée), l’accéléromètre corrige l’angle à l’aide des 10% de correction à chaque itération.

C’est cette formule qui est utilisée dans la vidéo 4.

Elle n’est pas satisfaisante mais largement suffisante pour la suite de la conception.

Des questions ? ;)
Modifié en dernier par magikmeuh le ven. 10 août, 2012 10:15, modifié 4 fois.
SV s = new SV(650);
s.start();
s.run();
magikmeuh
Pilote 250 cm3
Pilote 250 cm3
Messages : 931
Enregistré le : jeu. 16 févr., 2012 22:19
Moto : SV650S 2003
Localisation : Paris

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par magikmeuh »

Conception : dessin sur ordinateur du support

1ère version :

Alors alors, pour ma première version, j'ai utilisé google sketch up qui est de loin le logiciel le plus simple pour faire de la CAO (surtout que j'ai un mac). Et surtout je peux disposer du coup d'une très grande librairie de modèle déjà conçu (GoPro, Servo etc...). L'idée étant d'avoir une base de travail et de pouvoir étudier en 3D les améliorations à apporter.

Pour la liste des composants que le support doit pouvoir accueillir :
1/ Une GoPro
2/ La board arduino
3/ la board gyro/accel
4/ une batterie 5V (je vais utiliser la batterie iphone iBike Easy Rider, c'est parfait ça délivre la bonne tension)
5/ le servo moteur

Un objectif secondaire mais tout aussi important : la compacité ! Cela doit prendre le moins de place possible. Car il peut être assez facile de caser le dispositif sur le réservoir de la moto mais je souhaite quelque chose d'assez petit pour pouvoir le placer sur le passage de roue, fourche ou autre emplacement ou la taille et le poids de l'ensemble est important.


Alors voilà la bête :

Image
Image
Image
Image

Et pour ceux qui veulent, le fichier du projet : http://www.grignotephoto.fr/img/gyrocam.skp


Alors on peut déjà voir que le support à bascule (hébergeant la GoPro) est bcp trop fragile et peut difficilement tenir de cette manière, il faut que je réflechisse à un meilleur concept.

En attendant voilà les questions que je me pose :

1/ Est ce grave si la rotation ne se fait pas dans l'axe de la caméra (dans l'axe de l'optique)

2/ Le servo supporterai t'il que l'on fixe la caméra directement sur sa sortie ? En modélisme je n'ai jamais vu quoi que ce soit fixé directement sur un servo... il doit y avoir une raison... quel est la limite matériel ?

3/ Quelqu'un aurait il une idée de support optimisé permettant la rotation de la caméra d'une amplitude de -60° / + 60° ?
Modifié en dernier par magikmeuh le ven. 10 août, 2012 17:55, modifié 1 fois.
SV s = new SV(650);
s.start();
s.run();
Avatar du membre
FrEdO
Légende vivante
Légende vivante
Messages : 12422
Enregistré le : sam. 13 nov., 2010 8:15
Moto : Street Triple RS
Localisation : Antipolis

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par FrEdO »

:popcorn:
Image
Avatar du membre
Grobill
Pilote Supersport
Pilote Supersport
Messages : 2834
Enregistré le : mar. 28 août, 2007 11:32
Moto : SV 650 CR K2 Jaune Pioupiou + SV 650 N K0 Noire
Localisation : Bordeaux

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par Grobill »

ah ok, donc en fait t'es un psychopathe...


c'est un compliment venant de moi hein ;)

Je vais suivre ça avec beaucoup d'intérêt! :)

Bon courage.

@++
V
ifto
Pilote 50 cm3
Pilote 50 cm3
Messages : 11
Enregistré le : lun. 18 juin, 2012 13:44

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par ifto »

vraiment excélent !

(perso a ta place, j'aurai gardé la conseption pour moi, et une fois le tout abouti, vidéo de démo, et commercialisation artisanal !! )

il faut compter quel budjet pour réaliser ça ? (hors main d'oeuvre et heures de recherches ? )

ça fait longtemps que tu planche dessus ? tu doit ètre doué dans le domaine "électronique" pour faire ça !
Avatar du membre
Baby
Pilote Superbike
Pilote Superbike
Messages : 3349
Enregistré le : mer. 21 déc., 2011 22:02
Moto : SV650 Pink Team Limited Edition
Localisation : Lyon capitale du crime

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par Baby »

Ouuuuuuuh ça va me plaire ça ! :popcorn:
Image
JEJ a écrit :Le retour du prodige. :perv: :ghee:
Ride In Peace J&B
magikmeuh
Pilote 250 cm3
Pilote 250 cm3
Messages : 931
Enregistré le : jeu. 16 févr., 2012 22:19
Moto : SV650S 2003
Localisation : Paris

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par magikmeuh »

ifto a écrit :vraiment excélent !

(perso a ta place, j'aurai gardé la conseption pour moi, et une fois le tout abouti, vidéo de démo, et commercialisation artisanal !! )

il faut compter quel budjet pour réaliser ça ? (hors main d'oeuvre et heures de recherches ? )

ça fait longtemps que tu planche dessus ? tu doit ètre doué dans le domaine "électronique" pour faire ça !
Il faut penser open source et partage ;)
Mais c'est vrai que si je commence à me rendre compte que le résultat commence à devenir très intéressant je passe de Google sketch up à solidworks pour la conception 3D et je commencerai à réfléchir à une étude de coût.

Pour info : je m'y connais pas du tout en électronique, mais j'ai tjrs voulu m'y mettre donc c'était l'occasion rêver ;)
Et encore une fois: arduino c'est de la macro électronique, ça te facilite énormément la tâche.
Du point de vue composant du coup ça coûte plus cher qu'un truc vraiment fait de À à Z.
La board arduino c'est 25€, le gyro/accelero 20€, le servo 10€.

Le support 3D arrive ;) faut que je rédige un peu avant ;)
SV s = new SV(650);
s.start();
s.run();
Avatar du membre
Pimouss'
Pilote 125 cm3
Pilote 125 cm3
Messages : 289
Enregistré le : mer. 05 avr., 2006 20:47
Localisation : Breizh Land :)

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par Pimouss' »

Beau projet :) A suvre avec attention :ghee:
Image
Avatar du membre
BasiliK
Pilote 125 cm3
Pilote 125 cm3
Messages : 489
Enregistré le : jeu. 30 déc., 2010 15:36
Moto : TL1000S

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par BasiliK »

Super boulot ;) en autodidacte c'est une belle perf, je vais suivre ca de près aussi :ghee:

Une idée du temps de réaction entre l'accel/gyro et le servo? Ca te semble compatible avec les usages qu'on attend de ce support?

Bon courage, on attend la suite :ghee: Mais clairement, vu le prix de la gyroscopique a l'heure actuelle, un support de ce genre devrait pouvoir se vendre :cote:
Image
magikmeuh
Pilote 250 cm3
Pilote 250 cm3
Messages : 931
Enregistré le : jeu. 16 févr., 2012 22:19
Moto : SV650S 2003
Localisation : Paris

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par magikmeuh »

Hello boyz,

Petite mise à jour de la partie conception : premiers pas avec l'élec !

J'explique toutes la théorie du gyro et de l'accéléro ;)
SV s = new SV(650);
s.start();
s.run();
magikmeuh
Pilote 250 cm3
Pilote 250 cm3
Messages : 931
Enregistré le : jeu. 16 févr., 2012 22:19
Moto : SV650S 2003
Localisation : Paris

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par magikmeuh »

BasiliK a écrit :Super boulot ;) en autodidacte c'est une belle perf, je vais suivre ca de près aussi :ghee:

Une idée du temps de réaction entre l'accel/gyro et le servo? Ca te semble compatible avec les usages qu'on attend de ce support?

Bon courage, on attend la suite :ghee: Mais clairement, vu le prix de la gyroscopique a l'heure actuelle, un support de ce genre devrait pouvoir se vendre :cote:

merci ;)

Pour le temps de réaction j'ai pas encore étudié, j'en reparlerais plus tard en fonction du tunning de la formule de calcul de l'angle. Ce qui m'inquiète le plus c'est surtout les vibrations, sachant que le système est extrêmement sensible, j'ai peur que les vibrations brouille complètement les capteurs. On verra ça à l'étape 4 ou 5 ;)

(par exemple : les données retournées par le gyro varient déjà quand le système est immobile sur mon bureau... donc bon :s)
SV s = new SV(650);
s.start();
s.run();
Avatar du membre
mayel
Pilote 50 cm3
Pilote 50 cm3
Messages : 61
Enregistré le : jeu. 06 oct., 2011 23:06
Moto : SV 650 S k6
Localisation : Ile de France

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par mayel »

Grobill a écrit :ah ok, donc en fait t'es un psychopathe...
Ça resume assez bien mon sentiment aussi.
loïc95 a écrit :Mayel, non seulement t'es un parasite pour dormir, mais en plus, t'es une raclure de premier!
Avatar du membre
Tom34
Ange gardien du forum - RIP
Ange gardien du forum - RIP
Messages : 4640
Enregistré le : sam. 01 oct., 2011 20:57
Moto : SVSXR650 K3 Jaune
Localisation : Sète

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par Tom34 »

:popcorn:

bon courage :cote:
Avatar du membre
NoNo75
Légende vivante
Légende vivante
Messages : 16644
Enregistré le : sam. 28 juil., 2007 14:57
Moto : Sv1000RR Piste
Localisation : 75 4Ever !

Re: [Projet] [Camera] Conception d'une Gyro Cam embarquée

Message par NoNo75 »

Quand j'étais en BTS on avait fait un projet de de stabilisateur de caméra embarqué pour que la caméra reste droite sans transmettre les vibrations !

Même principe que toi gyroscope + servos par contre je sais plus si on avait des accèl ! Je sais que j'ai tous les fichiers encore je vais te les rechercher si ça t'intéresse et on avait tout fait sur Solidworks après aussi donc toutes les 3D ;)

magikmeuh a écrit :Il faut penser open source et partage ;)
+1 et puis tout seul dans ton coin c'est parfois dur d'arriver à quelque chose de bien, l'avis des autres permets aussi d'avancer :cote: Et je suis à fond pour le partage des connaissances super ton projet !




J'ai lu tes explications sur les capteurs en effet le gyroscope ne sort pas l'angle par contre un inclinomètre (ou capteur d'angle) tout bête le fait, ça se trouve ça suffirait pour ce projet :cote:
Répondre