Articles les plus consultés

samedi 3 octobre 2015

Visualisation fichier xml Quatos

la structure du fichier quatos xml est la suivante :

Définir la configuration du châssis

  • quad_plus
  • quad_x
  • hex_plus
  • hex_x
  • octo_plus
  • octo_x
  • custom
<Quatos_configuration>
   <engin id = "mon_quad_en_x" config = "quad_x">


Définir le sens de rotation des moteurs

 <Ports> 
  <rotation de port = "+ 1"> 1 </port> 
  <rotation de port = "- 1"> 2 </port> 
  <rotation de port = "+ 1"> 3 </port> 
  <rotation de port = " -1"> 4 </port> 
 </ports>


Définir la longueur des bras et la position des ESC

 <Distance> 
   <moteur> 0,33 </moteur>   -  Moteur à 33 cm du centre 
   <esc> 0,33 </esc>         -  ESC est sous le moteur.  
 </Distance>

Définir les masses des moteurs, bras et ESC

<Masse> 
 <moteur> 120 </moteur> - Masse du moteur + support + hélice
  <bras> 30 </bras>     -  Masse du bras et du câblage
  <esc> 20 </esc>       -  Masse de l'ESC

Si l'ESC n'est pas dans les bras :
  • définir valeur à zéro pour sa masse et sa distance par rapport au centre 
  • définir les ESC comme des éléments cubiques isolés

Définir les composants isolés sous forme de cube


Pour les composants isolés (tels que les batteries, les caméras, platines centrale, carte de contrôle et similaires).  Nous pouvons définir des cubes ou des points de masse.
  • Un cube est défini par leur dimension, le décalage par rapport au centre  et sa masse. 
  • Un point de masse est un cube avec un volume nul (dim X / Y / Z est 0)
Les principes sont les suivantes :
  • Les distances sont en mètres, les masses sont en grammes
  • Toutes les dimensions et la position de coordonnées est constitué de coordonnée X (le long de l'axe de roulis), Y (suivant l'axe de tangage) et Z (selon l'axe de lacet)
  • Les coordonnées devant, à droite et vers le bas sont positifs. Celles en arrière, à gauche et en haut sont négatifs
  • Les coordonnées de position sont mesurées par rapport au centre de masse du cube ou du point
Exemple pour la carte M4

<Nom du cube = "M4" dimx = "0,036" dimy = "0,036" DimZ = "0,0016" offsetx = "0" offsety = "0" offsetz = "- 0,01"> 6.0 </cube>


Le format VRML


Le Virtual Reality Modeling Language (abrégé en VRML) ou Virtual Reality Markup Language est un langage de description d'univers virtuels en 3 dimensions. Ce langage interprété est une norme internationale ISO et les fichiers VRML ont habituellement pour extension .wrl.

Les programmes VRML peuvent décrire des formes simples (points, lignes, polygones) ou complexes (sphères, cubes, cônes, cylindres...), du texte, des images, des animations, des éclairages, des sons, des hyperliens, ainsi que leur agencement dans l'espace, leur texture, leur couleur, leur matériau..

Les coordonnées du système VRML fonctionne suivant le schéma suivant :
Dans notre vie, nous sommes immergés dans un monde en 3 dimensions, mais il est important de rappeler quelles sont ces dimensions.
  • la largeur (X)
  • la hauteur (Y)
  • la profondeur (Z)
Par rapport au coordonnée du fichier xml quatos nous avons la correspondance suivante :

Dimension :
  • Tangage dim X vrml  = dim Y quatos
  • Lacet      dim Y vrml  = dim Z quatos
  • Roulis    dim  Z vrml  = dim X quatos
Offset :
  • Tangage vrml  offsetX   =   offsetY quatos
  • Lacet      vrml  offsetY   = - offsetZ quatos
  • Roulis    vrml   offsetZ   = - offsetX quatos

Le programme consiste à traduire la description des composants isolés vers des cubes au format VRML


<cube name="M4" dimx="0.036" dimy="0.036" dimz="0.0016" offsetx="0" offsety="0" offsetz="-0.007">10.0</cube>

Devient ( avec comme unité le cm )

Transform {
 translation 0.0 0.7 0.0
   children[
     Shape {
       appearance Appearance { material Material { diffuseColor 1 0 0 } }
       geometry Box { size 3.6 0.16 3.6 }
      }
    ]
}

les bras sont représentés sous forme de long rectangle.

Le programme de conversion : quatos-xml-to-wrml.exe

Le programme s'utilise en ligne de commande :

quatos-xml-to-wrml.exe  fichier_in.xml  fichier_out.wrl

Exemple de résultat



Lien :