Cette page contient certains de mes projets et travaux
open source en
informatique, électronique et robotique.
Ceci n'est pas une liste exhaustive, de nombreux projets professionnels ne peuvent pas être partagées ici.
Un référentiel est disponible pour les utilisateurs de Gnu/Linux Debian et d'Ubuntu.
Il permet de simplifier l'installation de la plupart des logiciels présentés sur cette page.
Cliquez ici pour plus d'informations.
Projets Académiques Open Source
PyWI
PyWI est une bibliothèque de traitement du signal écrite en Python utilisée pour supprimer le bruit de fond d'image à l'aide de transformées en ondelettes.
Le projet PyWI dispose d'un site web dédié à l'adresse suivante :
http://www.pywi.org.
PyArm
Pyarm est un simulateur utilisé dans le cadre d'expériences sur
l'apprentissage du contrôle moteur humain avec un modèle de bras
anthropomorphique.
Le modèle physique utilisé est décrit dans
ce rapport technique
(
sources).
Pyarm a été utilisé à l'
Institut des Systèmes Intelligents
et de Robotique pour conduire des expériences sur les systèmes adaptatifs.
Ces expériences sont décrites dans l'article suivant
"Learning
cost-efficient control policies with XCSF: generalization capabilities and
further improvement" par Didier Marin, Jérémie Decock, Lionel Rigoux and Olivier
Sigaud.
Cette contribution scientifique a été publié dans les
"Actes de la 13e conférence annuelle sur le calcul génétique et évolutionnaire (GECCO'11)",
la principale conférence internationale sur le calcul génétique et évolutionnaire.
Ces expériences ont également été présentées en français aux
Sixièmes journées francophones MFI/JFPDA.
Ces articles peuvent être téléchargés
ici
pour la version anglaise et
là pour la version française.
Botsim.org
Botsim.org est un simulateur de robots utilisé dans le cadre de
travaux sur des algorithmes bio-inspirés (apprentissage
artificiel, algorithmes évolutionnaires, apprentissage par
renforcement, ...).
Nos motivations : utiliser des méthodes bio-inspirées pour
générer in-silico des formes de vie artificielles originales et
performantes dans l'accomplissement d'une tache donnée (se
déplacer, modifier son environnement, survivre, ...).
Plus particulièrement, Botsim.org a été écrit pour:
- reproduire les expériences et les résultats du projet Golem:
optimiser la morphologie et le contrôle de robots en simulation via des méthodes bio-inspirées (algorithmes évolutionnaires et réseaux de neurones) puis
matérialiser ces organismes auto-générés à l'aide d'une imprimante 3D;
- améliorer le contrôle de robots existants en générant un grand nombre de simulations in-silico;
- reproduire certaines expériences de l'équipe Inria Flowers sur la curiosité artificielle.
Botsim.org utilise la bibliothèque opensource Bullet pour
simuler la physique.
Le projet Botsim.org dispose d'un site web dédié à l'adresse suivante :
www.botsim.org.
Principaux Projets Personnels
Snippets
Une collection de centaines de
snippets, c'est à dire
des petits morceaux de codes que j'ai écrit pour tester un aspect spécifique
d'un langage de programmation, d'une bibliothèque de
programmation, d'un format de description, d'un protocole, etc.
Ici vous trouverez des exemples de code pour:
- Langages de programmation
- C/C++, Java, Python, scripts Shell, Octave (un clone de Matlab), Javascript
- Programmation Unix
-
appels systèmes Unix/Linux en C et
création de paquets Debian
- Bibliothèques de programmation scientifique
-
bibliothèques de calcul scientifique GSL (GNU Scientific Library) (C) et Scipy (Python),
bibliothèque de programmation mathématique GLPK (GNU Linear Programming Kit) (programmation linéaire et programmation en nombre entiers),
bibliothèques d'algèbre linéaire Eigen (C++) et Numpy (Python),
bibliothèques de visualisation de fonctions et de données scientifiques Matplotlib (Python) et Gnuplot,
bibliothèque de visualisation de données scientifiques en 3D Mayavi
- Calcul parallèle et calcul haute performance
-
bibliothèque de programmation parallèle en mémoire distribuée MPI (Message Passing Interface) et
bibliothèque de programmation parallèle en mémoire partagée OpenMP
- Bibliothèques de traitement d'images
-
bibliothèque de traitement d'images et de reconnaissance de formes OpenCV (C/C++ et Python) et
bibliothèque de traitement d'images PIL (Python Imaging Library)
- API généralistes
-
bibliothèques généralistes Boost (C++)
- Outils de programmation
-
moteurs de production multi-langages Gnu Make,
CMake et
Ant
- XML et développement web
-
SAX (Simple API for XML) pour Java, C++ et Python,
langages HTML5,
CSS,
XML,
DOM,
Xpath,
Xinclude,
Xquery,
SVG,
XSD (XML Schema)
et XSLT
- Systèmes embarqués
-
plate-formes Android (Google),
programmation de micro-contrôleurs Atmel AVR (en C),
bibliothèques de manipulation des GPIO du Raspberry Pi,
programmation sur Arduino
- Bibliothèques d'interface graphiques
-
bibliothèques d'interfaces graphiques GTK+ (C et Python),
Qt (C++ et Python),
Swing (Java),
SWT (Standard Widget Toolkit) (Java) et
TKinter (Python)
- Bibliothèques 2D, 3D et multimédia
-
moteur physique (simulations mécaniques) Bullet,
bibliothèque de rendu 3D Open Scene Graph,
bibliothèque de rendu 2D Cairo en C et Python,
bibliothèque multimédia SDL (Simple DirectMedia Layer) en C et Python (Pygame),
bibliothèque multimédia C++ SFML
- Autres
-
Design patterns en C++ et Java,
langage LaTeX,
outil de CAO OpenScad,
formats de fichier DBM et
JSON,
Pickle,
...
PyAX-12
PyAX-12 est une librairie qui permet de contrôler des
servomoteurs
Dynamixel
AX-12 directement depuis un ordinateur (via une brique
USB2Dynamixel).
Elle peut être utilisée pour dépasser les limites des
contrôleurs types
CM-5 ou
pour remplacer les logiciels propriétaires fournis par
Robotis. PyAX-12 est
écrite en Python.
VoR12
Le projet VoR12 est une caméra mobile qui utilise deux servomoteurs
Dynamixel
AX-12 et la bibliothèque de traitement d'image
OpenCV
pour effectuer des expériences de suivi d'objets.
Projets Secondaires
Bioloid
PyDuplicateFileManager
PyDuplicateFileManager recherche les fichiers et les
répertoires dupliqués dans une arborescence.
Objets 3D
Une collection de plans de conception d'objets imprimables en 3 dimensions (réalisés avec
OpenSCAD).
Circuits Imprimés
Une collection de plans de conception de circuits imprimés prêts à être fabriqués (réalisés avec
KiCad).
Autres projets non répertoriés
De nombreux autres projets sont disponibles sur mon
compte github !