Aller au contenu

Le projet final

Le projet final met bout à bout tout ce que vous avez construit pendant la semaine : un système autonome complet qui détecte, saisit et transporte un objet.

  1. Perception — la caméra identifie un objet et sa classe (couleur, label, forme…). Une IA de vision (Jour 4) distingue 3 à 6 classes. Sortie : la classe + la pose de l’objet.

  2. Manipulation — le SO-101 (Jour 3) saisit l’objet à la pose détectée et le dépose sur le robot mobile (ou une position connue).

  3. Navigation — le LeKiwi (Jour 2) se déplace jusqu’à l’objet, le prend en charge, puis le transporte jusqu’au point de dépôt associé à la classe détectée.

Tout le système est orchestré par un nœud coordinateur central qui relie les trois sous-systèmes via des topics, services et actions (à titre d’exemple) :

Pour que les sous-systèmes s’assemblent sans réécriture, figez vos interfaces dès maintenant : une fois définies, on n’y touche plus. Voici une forme possible (la vôtre, conçue au Jour 1, peut différer — l’essentiel est qu’elle reste stable ; un exemple complet est donné dans le contrat des briques) :

InterfaceFormeProducteur → consommateur
topic de détections (Detection.msg)string class_name + int32 class_id + geometry_msgs/Pose pose (+ score, boîte 2D)détection (J4) → coordinateur
service de saisie (PickRequest.srv)requête Pose target → réponse bool successcoordinateur → bras (J3)
action de navigation (NavigateToPose)goal PoseStampedcoordinateur → base (J2)
  1. Repartez du graphe factice que vous avez conçu au Jour 1 : vos interfaces, votre nœud coordinateur paramétré et votre launch file.

  2. Remplacez les nœuds factices, un par un, par les vrais sous-systèmes :

    • le nœud de détection factice → la perception du Jour 4 ;
    • le nœud factice du bras → le pick MoveIt 2 du Jour 3 ;
    • le nœud factice de navigation → Nav2 sur le LeKiwi (Jour 2).
  3. Validez le pipeline complet, puis soignez la robustesse (reprises, cas d’échec).

Soutenance, rapport et grille de notation sont détaillés dans la page suivante : Déroulé & livrables.

Cours conçu et animé par Etienne Schmitz