Quick guide: scroll down the list of jobs (tutored projects, master internship (M1 or M2), Ph.D thesis and post-doc). The list is not exhaustive, contact me if you are interested with the research topics. To contact me, please include a 1-page curriculum and please specify what is it that you are interested in. In general, I am looking for excellent candidates with social and technical skills, and a keen interest in research.

Mode d'emploi: cf. ci-dessous pour tous les sujets actuellement disponibles (M1, M2, thèse, post-doc, ingé).

Contact:

  • nicolas.bredeche at sorbonne-universite . fr
  • merci de mettre "[jobs]" dans le sujet, et de préciser l'offre qui vous intéresse (et pourquoi).
  • please put "[jobs]" in the subject, and provide some details on which offer you are interested in (and why).


Engineering position / Ingénieur recherche



Open positon for an mechatronics and/or electronic R&D engineer for swarm robotics

  • 1+1 years engineering position (junior and senior are welcome)
  • Institute of Intelligent Systems and Robotics (ISIR/CNRS), Sorbonne Université, Paris
  • Project lead by Nicolas Bredeche (ISIR) and Olivier Dauchot (ESPCI)
  • Date of publication: 1/12/2018
  • PDF

The AMAC team at ISIR has an open position for a R&D mechatronics and/or electronic engineer, for a one year contract (+ possible extension), starting as soon as possible. The location is at Sorbonne Université, campus Pierre et Marie Curie in central Paris, France (Metro: Jussieu, RER C: gare d'Austerlitz).

The successful candidate will participate to a swarm robotics project at the crossroad of robotics, computer science and active matter. His/her role will be to design a new kind of small-scale cost-effective simple robot for large swarm robotics experiments. These miniaturised mobile robots will be able of simple communication and self-propulsion, and function in swarms of 1000+ units.

Required qualifications: Ph.D. (doctorat) or engineering degree (ingénieur grande école) from a respected institution, with a background in mechatronics and/or electronic engineering, preferably with additional background with working with cheap sensors, actuators and micro-controllers, as well as the ability to design production-ready PCB. The candidate will have to study existing open-source PCB designs, improve or design new ones, build and test prototypes and prepare production-ready models PCB and supervise external production. All production done in the project will be open-source (software and hardware).

Gross salary per month depends on the level of diploma and experience: 2350-3000 euros per month (~1800-2300 euros net, ie. after taxes). Full time is preferred, but half-time is possible for experienced candidates.

We are looking for candidate with skills in:

  • embedded system design including: sensors, micro-controller, actuators
  • exposure to programming micro-controllers, motor controllers, programming and debugging, IO and communication protocols
  • good practical experience with PCB design, fabrication and manufacturing (ie. production-ready PCB design)
  • good practical experience with 3D printers
  • strong communication skills and a desire to work in a small research-oriented multidisciplinary team

How to apply?

Applicants should send a CV, letter of motivation (max. 2 pages) via e-mail -- Please put "[MSR engineer application]" in the subject of the mail. Review of applicants will begin immediately, and will continue until the position is filled.



Master 2 internship/stage



Matière active et robotique en essaim: exploration du lien entre calcul morphologique et comportements collectifs

  • Stage de 6 mois, niveau M2
  • Encadrant: Nicolas Bredeche (ISIR) et Olivier Dauchot (ESPCI)
  • Date de publication: 1/12/2018

En robotique en essaim, la démonstration de comportements collectifs repose essentiellement sur la programmation logicielle des comportements des robots, les spécificités physiques des robots étant considérées comme des contraintes fixées au préalable. Pourtant, les travaux récents en physique dans le domaine de la matière active montrent que la morphologie des particules considérées permet déjà d'obtenir des comportements d'auto-organisation avec une capacité de calcul nulle (pour peu que les particules soient auto-propulsées).

Dans le cadre de ce stage, on souhaite aborder la conception de comportement pour la robotique en essaim d'un point de vue essentiellement morphologique, en modifiant la forme physique des robots pour observer la diversité des comportements possibles. Pour cela, on utilisera:

  • un simulateur physique de particules de petites tailles, initialement développé pour la simulation de collisions entre pallets auto-propulsés, et validé par comparaison avec des expériences réelles impliquant plus d'un millier de pallets auto-propulsés où l'alignement entre particules émerge du fait des collisions répétées (ie. déplacement en essaim).
  • un algorithme d'illumination (QD - quality diversity, Map-Elite) permettant d'explorer l'espace des solutions en fonction d'une mesure de performance et de descripteur comportementaux (alignement moyen, distance moyenne entre individus, densité, nombre de collisions, etc).

Après avoir identifié les comportements émergents des interactions physiques seules, on étudiera les possibilités offertes par la modulation du comportement par une action endogène (ex.: contrôle d'un moteur embarqué sur la particule). L'objectif plus général du stage étant de démontrer que l'on peut obtenir des comportements collectifs complexes avec un minimum de contrôle.

Enfin, si le temps le permet, on étudiera aussi la conception d'exosquelettes imprimés en 3D pour "habiller" des robots de type Kilobots (3cm de diamètre) afin de tester en situation réelle les effets de la morphologie sur les comportements collectifs d'un groupe de robots (nous disposons de >100 robots Kilobots au laboratoire).

Le stage aura lieu de février à juillet 2019 à l'ISIR, en collaboration avec le laboratoire Gulliver de l'ESPCI. Le stage s'inscrit dans le cadre du projet ANR "Morpho-functional Swarm Robotics" (2019-2022).



HIT-EE : un algorithme ultra-léger d'apprentissage distribué en ligne pour la robotique en essaim

  • Stage de 6 mois, niveau M2
  • Encadrant: Nicolas Bredeche (ISIR) et Olivier Dauchot (ESPCI)
  • Date de publication: 1/12/2018

On parle de robotique en essaim dès lors que l'on considère un groupe compris de nombreux (typiquement >100) robots aux capacités de communication et de calcul limitées. L'objectif est alors de programmer les robots individuellement afin qu'ils réalisent collectivement un comportement souhaité. On fait alors face à un problème de grande difficulté, puisque le résultat entre les multiples interactions entre robots et l'environnement est très difficile à prévoir. Il est alors naturel de recourir à l'apprentissage et/ou l'optimisation des stratégies comportementales individuelles en définissant une fonction capable d'évaluer la performance globale de l'essaim.

Dans le cadre de ce stage, on s'intéresse au cas particulier où l'environnement est ouvert, c'est à dire qu'il n'est pas possible d'optimiser avant déploiement le comportement des robots. De plus, on souhaite implémenter une solution qui fonctionnera sur des robots aux capacités très limitées: un essaim de 120 robots Kilobots dont nous disposons à l'ISIR. Il s'agit de robots de 3cm de diamètre programmable par infra-rouge. La limitation des Kilobots est le prix a payer pour disposer d'un essaim de grande taille, toutes les expériences impliquant de l'apprentissage distribué en ligne étant pour l'instant limitée à des groupes inférieurs à 20 robots.

Les algorithmes dit d'"embodied evolution" apportent des éléments de réponse au problème que nous nous posons, mais sont partiellement inadaptés pour des robots limités comme les Kilobots. Nous souhaitons donc développer un nouvel algorithme, que l'on nommera HIT-EE (Horizontal Information Transfer for Embodied Evolution) qui s'inspire du mécanisme biologique de transfert horizontal de gènes (ie. pour simplifier outrageusement, un gène peut passer d'une bactérie à l'autre au cours de la vie des deux bactéries, permettant un brassage génétique en sus de la mutation lors de la réplication).

L'intérêt d'un tel algorithme est double: (1) il est plus léger et plus facile à implémenter en réduisant la quantité d'information transmise et (2) considéré un transfert partiel au cours de la "vie" du robot permet de sortir de la métaphore de l'évolution naturelle et d'aborder des problématiques propres à l'apprentissage social. En particulier, nous étudierons les modalités du transfert d'information: quantité d'information transmise, influence de l'heuristique utilisée pour l'émission et pour la réception, influence de l'asymétrie dans la communication, modulation de la fréquence de transmission en fonction de la performance, etc.

Dans un deuxième temps, on évaluera la qualité de ce nouvel algorithme par rapport à l'état de l'art dans un cadre plus général. On mettra en place un protocole d'évaluation de la qualité de l'algorithme, basés sur des problèmes classiques de théorie de jeux évolutionnaires dans un environnement multi-robots (dilemme du prisonnier, chasse au cerf, etc.). Dans une forme simplifiée, il s'agira d'abord de modéliser les interactions entre robots sous la forme d'un graphe d'interaction, puis d'étendre la simulation en intégrant les déplacements. Cette partie du travail sera réalisée en simulation pour permettre un grand nombre d'expériences.

Le stage sera réalisé à l'ISIR, en utilisant la plateforme robotique déjà disponible. Le stage se déroulera à l'ISIR de février à juillet 2019. Le stage s'inscrit dans le cadre du projet ANR "Morpho-functional Swarm Robotics" (2019-2022).



Conception mécanique et électronique d'un robot de petites tailles à bas prix

  • Stage de 6 mois, niveau M2
  • Encadrants: Nicolas Bredeche (ISIR) et Sinan Haliyo (ISIR)
  • Date de publication: 12/12/2018

La robotique en essaim est définie par l'utilisation d'un grand nombre de robots autonomes aux capacités de communication et de calcul limitées. A partir des interactions entre robots voisins, on observe l'émergence de comportements macroscopiques, généralement difficiles à prédire à l'avance. Une illustration évidente est de comparer un essaim de robot avec le fonctionnement des fourmis: chaque fourmi n'a qu'une perception limitée de son environnement, et pourtant, les fourmis toutes ensemble sont capables de construire et défendre une fourmilière, de chasser et d'explorer le monde qui les entoure.

Ce stage s'insère dans un projet mené à l'ISIR et qui porte sur le développement d'algorithmes d'apprentissage pour la robotique en essaim. Face à un environnement ouvert et inconnu, il est en effet indispensable que les robots soient capables de s'adapter à des situations qui n'ont pas été prévue par l'opérateur afin d'accomplir la tâche qui leur a été fixée au préalable.

Nous souhaitons concevoir un robot mobile de petite taille (inférieure à 3cm) s'inspirant des robots "Hexbug" (i.e. un sorte de tête de brosse à dent surmonté d'un moteur dont les vibrations permettent l'auto-propulsion), mais doté de capacité proche des robots "Kilobot" (communication IR, modulation du déplacement). Il s'agira des éléments capables de mouvement sur au moins 2 degrés de liberté et de communication à courte portée, par exemple par des moyens optiques.

Ce projet est le premier pas vers la construction d'un essaim de robots à bas coût proposant le minimum pour implémenter des comportements collectifs. L'objectif à terme (et qui dépasse le présent projet) est de construire plusieurs centaines de robots autonomes et adaptatifs. La simplicité de la conception et les coûts sont donc un aspect important.

On partira d'un design open-source [1][2], il s'agira pour l'étudiant de proposer un robot disposant des capacités suivantes:

  • communication infra-rouge directionnelle (4 capteurs/émetteurs placés autour du robot)
  • communication infra-rouge par le sol (capteur en hauteur, diffusion autour du robot)
  • système de recharge sans contact
  • programmation par IR
  • 2 capteurs de luminosité (devant/derrière)
  • système de propulsion par vibration (type Hexbug Nano [3])
  • ~3 cm de diamètre (sur le modèle des Kilobots [1])
  • éventuellement, un système d'accroche physique pour pouvoir imprimer des "exo-squelettes" clipable autour du robot.

Le déroulement du stage suivra les étapes suivantes: 1. conception et fabrication de 2 prototypes (pour test de communication) 2. préparation d'une PCB pour production 3. développement firmware, compatible Kilobot 4. si le temps le permet, gestion de l'externalisation de la production

Le stage aura lieu à l'ISIR, qui dispose d'une arène pour la robotique collective et d'un atelier de conception (y compris imprimante 3D). Nous cherchons un étudiant avec un profil mécatronique, électronique et/ou robotique.

[1] https://kilobot.wcu.edu/ [2] http://shape.stanford.edu/research/swarm/ [3] https://www.hexbug.com/nano



Master 1 internship/stage & Projet Androide/IMA/...



interaction gestuelle humain-machine pour le contrôle d'un essaim de drones volants

  • projet P-androide (binôme) et/ou stage M1 (2 mois) voire M2 (nous consulter)
  • Encadrants: G. Bailly (ISIR), N. Bredeche (ISIR), Collaborations extérieures: Jessica Cauchard (IDC Herzliya)
  • Date de publication: 1/12/2018

On souhaite développer une interface humain-machine pour le contrôle par gestes d'une flotte de drones. Le contrôle se fera d'abord via une une interface de type tablette tactile et disposera d'un vocabulaire limité au départ des actions de (1) sélection d'un groupe de drones, (2) déplacement du groupe, (3) division du groupe en sous-groupes, (4) fusion de groupes en un seul groupe.

L'objectif de ce projet est de mettre en place en environnement de simulation modélisant le comportement normatif d'une flotte de drones, puis de concevoir, implémenter et évaluer le lexique de gestes mis à disposition de l'humain pour contrôler la flotte de robots.

Du point de vue de la modélisation du comportement, on prendra comme modèle celui du comportement d'un liquide en suspension (comme une goutte d'eau). C'est à dire (1) chaque drone est considéré comme une particule qui reste proche des autres et (2) l'ensemble des drones adoptent une configuration en cercle (ou sphère, en 3D) à l'image d'une goutte d'eau sans effet de gravité. La physique de la goutte d'eau sera implémentée pour contrôlée la dynamique de la configuration de la flotte lors d'un déplacement (allongement de la goutte d'eau), d'une séparation (division en deux gouttes d'eau sphérique) et de la fusion (constitution d'une nouvelle goutte d'eau sphérique à partir de 2+ gouttes d'eau). Ce modèle de comportement devra être implémenté de manière distribuée, chaque robot n'ayant qu'une capacité de perception limitée de son environnement (ie. direction et vitesse relative par rapport à ses voisins immédiats).

Du point de vue de l'interaction humain-machine, on étudiera les modalités d'interaction existantes dans la littérature pour le contrôle d'un essaim de robots par un opérateur humain. Il s'agit ensuite de développer un vocabulaire de gestes permettant un contrôle du déplacement de la flotte de drone dans des tâches de type search-and-rescue, c'est à dire ou la flotte de drones peut-être envoyé en un point pour réalisée une tâche de surveillance de zone ou de patrouille sur zone (p.ex. explorer une zone sinistrée à la recherche d'un signal particulier), de constitution d'un pont de communication (p.ex. communication entre deux points éloignés de l'espace nécessitant un relais point-à-point), de partage de tâche (p.ex. division en deux sous-groupes pour l'exploration de deux zones en parallèle). Le niveau d'abstraction de l'interaction sera celui du groupe plutôt que de l'individu afin de permettre une action rapide et intuitive de l'opérateur.>

Le stage sera réalisé à l'ISIR et impliquera un travail de développement en Python/Pygame/PyQt, Android, Unity3D ou Swing (à déterminer ensemble lors de la première réunion). On s'intéressera d'abord à une flotte d'agents sur un plan 2D (ex.: une flotte de drones à altitude fixe). Le périphérique d'interaction privilégié dans un premier temps sera celui de la tablette ou d’une touchpad multitouch (ou sa simulation par écran/souris), mais il est envisageable d'utiliser des casques virtuels pour une interaction immersive si le temps le permet.

Bibliographie:

Human Interaction With Robot Swarms: A Survey Andreas Kolling et al. IEEE trans. on human-machine systems, vol.46, no.1, 2016

Control of Robotic Swarm Behaviors Based on Smoothed Particle Hydrodynamics Muhammed R. Pac et al. IROS 2007

Human Control of Bioinspired Swarms Robotic Swarms as Solids, Liquids and Gasses Thomas B. Apker∗ and Mitchell A. Potter AAAI Technical Report FS-12-04

An Overview of Physicomimetics William M. Spears et al. Technical report 2004



Estimation de la contribution marginale dans un essaim de robots

  • projet P-androide (binôme) et/ou stage M1 (2 mois)
  • Encadrants: Nicolas Bredeche (ISIR) et Nicolas Maudet (LIP6)
  • Date de publication: 1/12/2018

On s'intéresse à l'estimation de la contribution de chaque robot dans un essaim de robots devant réaliser une tâche fixée au préalable par l'utilisateur (par exemple du ramassage de balles). La performance de l'essaim de robots est considérée comme connue (par exemple, une valeur réelle entre 0 et 1). Cependant, la contribution de chaque robot à cette performance globale est inconnue, et peut varier grandement en fonction du rôle pris par le robot. Par exemple, un robot qui ne fait rien bénéficiera d'une bonne note sans contribuer, au même titre qu'un robot qui réalise une action essentielle.

Dans le cadre de ce projet, on souhaite mettre en place une méthode pour identifier la contribution de chaque robot. On dispose alors d'un ensemble de robots, et d'un simulateur qui permet d'estimer la performance globale d'un groupe constitué de l'ensemble des robots, d'une partie, voire d'un seul individu. Le but de ce projet est de mettre en place cet environnement de test et, dans un premier temps, d'implémenter une méthode naïve d'estimation de la contribution marginale (valeur de Shapley, indice de Banzhaf), en commençant par implémenter la méthode décrite dans l'article [1].

Bien qu'elle donne un résultat exact, la complexité d'une telle méthode la rend difficile à appliquer en pratique pour de grande taille d'essaim. Ainsi, dans un second temps, on explorera comment obtenir une estimation approximée de la contribution de chaque individu, par exemple en se basant sur des heuristiques comme par exemple celles utilisées dans les sports collectifs (ex.: le score d'un individu est déterminé par le nombre de parties que son équipe a gagné avec lui par rapport au nombre de parties perdues).

Le simulateur utilisé est codé en C++. Une partie du code pourra être faîte en Python.

[1] P. Stone, G. Kaminka, S. Kraus, J. RosenscheinAd hoc autonomous agent teams: Collaboration without pre-coordination Proceedings of the International Conference on Artificial Intelligence (2010)



algorithme d'illumination pour l'exploration de solutions sous contrainte de fonctions d'évaluations stochastiques

  • projet P-androide (binôme) et/ou stage M1 (2 mois)
  • Encadrants: Nicolas Bredeche (ISIR), Stephane Doncieux (ISIR), Leo Cazenille (LIED)
  • Date de publication: 6/12/2018

Les algorithmes d'illumination (ou Quality-Diversity) permettent d'explorer de grands espaces de recherche. Ces algorithmes sont typiquement très utiles en robotique, où il existe souvent des solutions très différentes présentant toutes un intérêt très fort pour le concepteur. L'algorithme MAP-elite [1] a par exemple été utilisée pour la découverte de stratégie de marche robuste pour un robot hexapode [2].

Cependant, il arrive fréquemment que l'évaluation d'une solution candidate soit difficile à réaliser, la performance mesurée pouvant varier grandement entre deux évaluations. Il est alors nécessaire d'estimer la fidélité d'une évaluation, voire d'évaluer plusieurs fois une même solution pour estimer correctement sa valeur. On fait donc face à un compromis entre (1) une évaluation peu coûteuse mais potentiellement imprécise et (2) une évaluation précise mais coûteuse. De plus, le compromis "idéal" n'est pas forcément le même selon la solution à évaluer (p.ex.: deux configurations de robots peuvent être très différentes en terme de stabilité).

Dans le cadre de ce stage, on souhaite étendre l'algorithme MAP-elite pour prendre en compte la confiance accordées aux performances mesurées, et d'opérer un compromis entre la réévaluation d'une solution déjà connue et l'exploration d'une nouvelle solution. On combinera un algorithme de type epsilon-greedy pour trancher entre réévaluation et exploration, et un algorithme de type bandit manchot pour choisir quel individu réévaluer.

On étudiera aussi l'opportunité d'appliquer cette méthode à l'algorithme SAIL [3], qui suit approche dîte surrogate applicable à l'algorithme MAP-elite [3]. Le modèle surrogate tend à construire un prédicteur de performances en fonction des évaluations précédentes, ce qui permet d'obtenir une approximation très peu couteuse de la qualité d'une solution. Cette approximation (et plus généralement le modèle surrogate) nécessite bien sûr une excellente confiance dans les évaluations réelles utilisée pour construire le modèle surrogate (ie. la qualité d'une solution donnée peut être interpolée à partir d'évaluations réelles, pour peu qu'elles soient fiables).

On utilisera dans un premier temps une fonction artificielle f(x)=(y,z), tel que x soit la description d'une solution candidate, y la performance mesurée et z le bruit applicable à la performance. La performance mesurée sera donc une fonction g(y,z) (ie. application d'un bruit sur la mesure de f(x)). Dans un second temps, on utilisera un simulateur de micro-robotique en essaim et programmation moléculaire, qui présente un problème typique avec une fonction d'évaluation coûteuse pouvant bénéficier d'une approche surrogate et d'une exploration type MAP-elite.

Le code sera fait en Python en utilisant la librairie QDpy [4].

[1] Mouret, Clune (2015) Illuminating search spaces by mapping elites. https://arxiv.org/abs/1504.04909 [2] Cully, Clune, Tarapore, Mouret (2015) Robots that can adapt like natural animals. http://www.isir.upmc.fr/files/2015ACLI3468.pdf [3] Gaier, Asteroth, Mouret (2018) Data-Efficient Design Exploration through Surrogate-Assisted Illumination. https://hal.inria.fr/hal-01817505/document [4] https://gitlab.com/leo.cazenille/qdpy



mise en place d'un système de tracking visuel et réalité augmentée pour robotique en essaim

  • Projet P-ima et/ou stage M1 (2 mois)
  • Encadrant: N. Bredeche
  • Date de publication: 1/12/2018

Nous disposons d'un essaim de 100 robots Kilobots de petites tailles. Chaque robot fait environ 2 cm de diamètre et peut communiquer avec ses voisins immédiats via infrarouge. Ces robots sont faciles à utiliser car on peut les programmer directement, et tous ensemble, via un émetteur infrarouge placé au dessus d'une arène.

L'objectif de ce projet est de mettre en place une solution de tracking et de réalité augmentée sur cette plateforme expérimentale. Dans un premier temps, il s'agit de mettre en place une solution existante de tracking temps réel d'objets mobiles : ARK [1]. Dans un second temps, on souhaite modifier le dispositif en place pour intégrer la reconnaissance de blocs actifs développés en interne, ainsi que des bords d'arène. Enfin, on souhaite que l'application puisse s'auto-calibrer en fonction des conditions environnementales par l'ajout d'une grille de couleur et de niveau de gris, utilisé comme référence pour la calibration.

Le stage aura lieu à l'ISIR. Nous utiliserons l'arène de robotique collective en place dans les salles expérimentales de l'ISIR (arène et robots kilobots). Le système de caméra est composé de plusieurs Webcam déjà sur place.

[1] https://diode.group.shef.ac.uk/kilobots/index.php/ARK