Changer de langue :   English version   Version française  

jdhp.org

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.

Contenu

Projets Académiques Open Source  

PyArm  

Vidéo
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 pour la version française.
Fichiers sources : Explorer ce projet sur Github  

Botsim.org  

Image
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:
  1. 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;
  2. améliorer le contrôle de robots existants en générant un grand nombre de simulations in-silico;
  3. 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.
Fichiers sources : Explorer ce projet sur Github  
Télécharger : Sources  

Principaux Projets Personnels  

Artificial Intelligence frameworks for Python  

Plusieurs bibliothèques d'Intelligence Artificielle pour Python. Contient notamment une bibliothèque centrée sur la résolution de Processus Décisionnels Markoviens (PDM), une bibliothèque dédiée à l'apprentissage artificiel et une bibliothèque d'optimisation stochastique non-linéaire.
Fichiers sources : Explorer ce projet sur Github  

PyAX-12  

Image
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.
Fichiers sources : Explorer ce projet sur Github  
Télécharger : Sources  

VoR12  

Image
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.
Fichiers sources : Explorer ce projet sur Github  
Télécharger : Sources  

Snippets  

Image
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, ...
Fichiers sources : Explorer ce projet sur Github  
Télécharger : Sources  

Projets Secondaires  

JWumpus  

Image
JWumpus est un exemple d'utilisation de la plate-forme Jade et de l'algorithme de Q-Learning (apprentissage par renforcement) pour résoudre le problème du Wumpus (tel que présenté dans le livre "Intelligence Artificielle" de Russell et Norvig). L'algorithme explore l'espace des états-actions jusqu'à la 2000e itération, après quoi il passe en mode exploitation.
Télécharger : Sources   Paquet Debian (all)  

Chef  

Chef est un exemple de projet multi-agents utilisant l'architecture BDI (Belief Desire and Intention) et l'interprète Jason.
Fichiers sources : Explorer ce projet sur Github  
Télécharger : Sources  

Perceptron simple  

Ce script PHP sert uniquement à mieux comprendre les étapes de calcul conduisant à l'équilibre d'un réseau de neurones fonctionnant suivant le modèle du Perceptron. Il n'a pas d'autre intérêt que de servir de support pédagogique.
Télécharger : Sources  

LibDynamixel  

Image
LibDynamixel 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. LibDynamixel est écrit en C et fonctionne sur les systèmes Gnu/Linux.
Télécharger : Sources  

Dtools  

Un ensemble d'outils pour faciliter le contrôle des servomoteurs Dynamixel AX-12.
Fichiers sources : Explorer ce projet sur Github  
Télécharger : Sources  

Bioloid  

Vidéo
Quelques exemples d'utilisation de la libdynamixel pour contrôler un bioloid.
Télécharger : Sources  

PyDuplicateFileManager  

PyDuplicateFileManager recherche les fichiers et les répertoires dupliqués dans une arborescence.
Fichiers sources : Explorer ce projet sur Github  

DSPP (Dual Screen PDF Presenter)  

DSPP est un logiciel de présentation (comme Microsoft PowerPoint, Libre Office Impress et Apple Keynote). Il permet de présenter des fichiers PDF sur plusieurs écrans. Tout comme le logiciel Keynote d'Apple, DSPP exploite les configurations multi-écrans pour fournir des métadonnées à l'orateur. Il peut ainsi afficher la présentation à destination de l'auditoire sur un écran (généralement un vidéo projecteur) et des notes personnelles pour le locuteur sur un autre écran (généralement l'écran d'un ordinateur portable utilisé pour faire la présentation). DSPP est écrit en Python et distribué selon la licence MIT.
Fichiers sources : Explorer ce projet sur Github  
Télécharger : Sources  

Latex2png  

Image
Convertit des fichiers latex en images PNG (permet par exemple d'exporter une formule mathématique isolée en image).
Fichiers sources : Explorer ce projet sur Github  
Télécharger : Sources   Paquet Debian (all)  

Objets 3D  

Image
Une collection de plans de conception d'objets imprimables en 3 dimensions (réalisés avec OpenSCAD).
Télécharger : Sources  

Circuits Imprimés  

Image
Une collection de plans de conception de circuits imprimés prêts à être fabriqués (réalisés avec KiCad).
Télécharger : Sources  

PyPong  

Image
PyPong est un clone du célèbre Pong. Ce jeu est écrit en Python et utilise les modules PyGame.
Télécharger : Sources  

JDHP  

Le code source et les scripts de compilation du site jdhp.org (écrit en XML/XSLT/CSS).
Fichiers sources : Explorer ce projet sur Github  

Autres projets non répertoriés  

De nombreux autres projets sont disponibles sur mon compte github !