Calcul des angles d'Euler avec un accéléromètre

Les angles d’Euler sont 3 angles qui permettent de décrire l’orientation d’un objet dans un espace tridimensionnel.

Si nous prenons par exemple un objet quelconque, le centre de masse \(m\) de cet objet est une coordonnée dans notre espace à 3 dimensions. Tout point dans un espace à \(n\) dimensions peut être atteint par \(n\) translations. Ainsi, le point \(m\) est atteint par 3 translations, quelque soit l’origine du repère.

De façon semblable à une coordonnée, une orientation dans cet espace tridimensionnel est obtenue par trois rotations. Ces rotations sont effectuées successivement dans un ordre arbitraire, chacune autour d’un des trois axes du repère. Cela revient à effectuer une rotation dans le plan formé par deux axes autour d’un troisième, et cela trois fois de suite.

Nous allons ici chercher à démontrer qu’il est possible de calculer les angles d’Euler (et donc l’orientation de l’objet) en utilisant uniquement un accéléromètre triaxial (c’est à dire 3 accéléromètres 1 axe montés orthogonalement). Pour rappel, un accéléromètre permet de mesurer l’accélération linéaire que subit un corps auquel ce capteur serait attaché.

La sortie de l’accéléromètre peut être modélisée de la façon suivante :

Read more Physique Accéléromètre, Euler

[Docker] Votre script Python laisse anormalement la sortie standard vide

Lors de l’exécution d’un programme écrit en Python dans un conteneur Docker, il arrive régulièrement que la sortie standard reste anormalement vide :

$ docker logs my-app
$

La raison est généralement que par défaut, l’interpréteur Python utilise une mémoire tampon pour les écritures vers stdout. Les écritures sont donc différées et cela peut prendre un moment avant de voir apparaitre la moindre ligne d’écriture (selon la verbosité de votre programme).

Une solution est d’utiliser l’option -u lors de l’appel à l’interpréteur Python. Votre Dockerfile devra contenir une ligne ressemblant à ceci :

CMD ["python3", "-u", "my-app.py"]

Et ainsi :

$ docker logs my-app
It works !
$
SysAdmin Docker, Python

[Fedora] Installer de quoi utiliser le Leap Motion

L’utilisation du Leap Motion sur les systèmes GNU/Linux est officiellement supportée mais seul un paquet DEB est fourni. Nous allons donc voir comment le convertir en paquet RPM fonctionnel pour Fedora.

Tout d’abord, vous devez télécharger la dernière version du Leap Motion Setup pour Linux :

wget https://warehouse.leapmotion.com/apps/4143/download -O leap-setup.tgz
tar zxvf leap-setup.tgz
cd Leap_Motion_Installer_Packages_release_public_linux/

Ensuite, nous allons utiliser l’outil alien pour faire la conversion. Si ce dernier n’est pas installé :

# Pour Fedora <= 21
sudo yum install alien
# Pour Fedora > 21
sudo dnf install alien
Read more Logiciel Leap Motion, RPM

Compresser un dossier local à travers un lien FTP

J’ai récemment dû faire une sauvegarde d’un dossier se trouvant sur un serveur distant afin de l’envoyer sur un serveur FTP. Cependant, il m’a été impossible de créer une archive compressée de ce dossier sur le serveur distant car pas assez d’espace libre. La solution a été de ne pas stocker le résultat de la compression en local sur le serveur sur lequel se trouve le dossier à sauvegarder, mais de l’envoyer directement sur le FTP.

Pour ce faire, une fois connecté au serveur FTP depuis le serveur distant en utilisant l’outil ftp :

ftp> put "| tar cvf - folder/ | gzip " folder.tar.gz

folder correspond donc au dossier local à sauvegarder et folder.tar.gz au nom de l’archive compressée qui résultera de ce procédé (placée sur le FTP donc).

SysAdmin FTP, Backup

Quelle est la différence entre chiffrer et coder une information ?

Dans un précédent article, j’avais expliqué pourquoi le mot “crypter” n’a aucun sens en français. Je vais continuer sur ma lancée pour maintenant expliquer la différence entre chiffrer et coder un message.

Lorsque l’on parle de coder un message, on sous-entend l’utilisation d’un code de référence qui va permettre aux personnes le connaissant de transformer le message de notre langue commune à une forme codée et vice versa. Un des exemples les plus connus est le Morse. Toute personne connaissant le Morse est capable de comprendre les messages codés avec ce dernier.

Contrairement aux codes comme le Morse, les algorithmes de chiffrement assurent une confidentialité des messages, que le système cryptographique soit connu ou non. En effet, dans le cas du chiffrement, seule la clé est confidentielle. C’est ce qu’énonce le principe de Kerckhoffs, également repris par Shannon avec sa maxime :

L’adversaire connaît le système

Il est donc évident qu’utiliser un algorithme de chiffrement est bien plus judicieux qu’utiliser un code pour rendre ses données confidentielles.

Culture IT, Cryptologie Kerckhoffs, Shannon, Vocabulaire