Rovio's Robot

See the videos at the end. Voir les vidéos à la fin

To downLoad the software for Qt5 Click here : ROVIODETECT

PRESENTATION DE L’APPLICATION DEVELLOPPEE POUR AMELIORER LES FONCTIONNALITES DU ROBOT

 

Rovio est un robot mobile vendu dans le commerce pouvant être programmée librement en C++.

Vous pouvez voir ci-dessus (photo 1 et 3) le robot sur sa base de chargement, photo 2 le robot en déplacement caméra levée.

 

Il est vendu avec un logiciel limité notamment parce qu’il n’intègre pas certaines fonctionnalités comme la détection de mouvement.

 

Avec le Framework Qt, j’ai donc développé une application spécifique qui permet :

-         le déplacement du Robot ;

-         l’enregistrement de parcours types et leur restitution ;

-         la prise de photos et le traitement d’image notamment les couleurs ;

-         la détection de la forme d’un objet et de sa grosseur ;

-         l’enregistrement vidéo ;

-         la surveillance d’une zone associée à la détection de mouvement avec toutes options possibles, envoi d’email, enregistrement vidéo, prise d’une photo

-         la recherche d’un objet ;

-         le suivi d’une ligne blanche continue ;

-         le suivi d’un objet spécifique qui se déplace

 

Enfin, le Robot peut être commandé depuis le réseau interne ou de n’importe quel ordinateur dans le monde moyennant de connaître les codes d’accès.

 

 

LE PLAN

 

A) LANCEMENT DE L’APPLICATION

 

B) DESCRIPTIF DU TABLEAU DE BORD

  - B1) Les commandes de déplacements, d’actions immédiates et les informations associées ;

 

   - B2) Les commandes de sauvegardes, d’actions immédiates et les informations associées ;

 

   - B3) Les commandes de traitement d’image, la détection de forme, la détection de mouvement, la recherche et la poursuite d’objet.

B3.1) Le panneau spécifique pour le traitement de l’image ;

B3.2) Le panneau spécifique pour la détection de forme, la recherche et la poursuite d’objet

B3.2.1) la détection de forme

B3.2.2) La recherche et la poursuite d’objet ou le suivi d’une ligne blanche brisée

B3.2.3) La détection de mouvement

 

A) LANCEMENT DE L’APPLICATION

Lorsque vous lancez l’application vous obtenez la fenêtre suivante :

 

- La première ligne correspond à l’adresse interne de votre réseau ou de votre nom de domaine si vous voulez commander votre robot depuis l’extérieur.

- La seconde ligne correspond au numéro de port du réseau interne donnant accès à votre robot

- La troisième  et la quatrième correspondent à votre nom d’utilisateur et au mot de passe autorisant l’utilisation du robot et de la vidéo en particulier.

- La dernière ligne est l’adresse mail à laquelle vous souhaitez envoyer vos alertes et photos enregistrés par le robot.

 

Une fois que tous vos paramètres sont entrés, cliquez sur OK pour obtenir le tableau de bord suivant :

Il comprend entre autres en  haut à gauche la vidéo transmise par la caméra du robot, en haut à droite une zone actuellement vide qui permet d'afficher une photo prise à un moment donné

En bas trois panneaux spécifiques : "Deplacement Control Aera, Status Control Aera, Status Control Image" que nous allons décrirent en détail dans les praragraphes suivants.

 

 

B) DESCRIPTIF DU TABLEAU DE BORD

 

B1) Les commandes de déplacements, d’actions immédiates et les informations associées

*Chaque bouton sur fond jaune avec des mots en rouge correspond à une commande de déplacement du robot.

*Les boutons sur fond bleus permettent 3 actions immédiates : « l’envoi d’une photo par email, l’enregistrement d’une photo, l’enregistrement d’une vidéo sur le disque dur de l’ordinateur ».

*Les boutons avec des mots en noir sont des informations qui apparaissent à des moments opportuns pour indiquer l’état du robot. Dans le cas présent, on voit q’il est en train de se recharger et que le signal de navigation qu’il reçoit est faible.

 

B2) Les commandes de sauvegardes, d’actions immédiates et les informations associées

Lorsque l’on clique sur le bouton :

* "Go to Dock" le robot retourne seul sur sa base ;

* "Stop arrête" le robot immédiatement ;

*"SaveHomePos" le robot sort seul de sa base puis y retourne seul pour mémoriser la position de la base afin de revenir de façon autonome sur sa base si on clique sur Go to Dock ou si sa batterie est faible ;

* Actuellement noté « Docked » donne le statut du robot ;

*en jaune, cela permet de baisser ou lèver la caméra sur le robot

* Les boutons de la colonne numéro2 permettent d’enregistrer ("Record Path") des parcours et de les rejouer ("Play the path"). « "Rename the path" » permet de renommer le chemin mentionné (ici path1). "Delete a path " permet de supprimer le chemin mentionné (ici path1). Pour sélectionner un chemin il suffit de cliquer sur le bouton 3 afin de faire défiler l’ensemble des chemins déjà enregistrés.

*Les boutons de la dernière colonne permettent de gérer certains paramètres de la vidéo taux de compression de l’image, sa clarté, sa dimension, le nombre d’image par seconde.

 

 

B3) Les commandes de traitement d’image, la détection de forme, la détection de mouvement, la recherche et la poursuite d’objet.

*Le bouton « Captured Image » permet de saisir à un moment donné une image issue de la vidéo (vidéo à gauche, photo saisie à un moment donné à droite).

 

Cette image pourra être modifiée avec certains boutons du panneau "Status Control Image".

*Le bouton last image permet de revenir à l’image initiale après avoir fait certains traitements comme ici l’image de gauche a été obtenue en cliquant sur le bouton « Binairy Image » ;

 

ou en cliquant dans le cas présent sur le bouton « Inv Binairy Image ».

B3.1) Le panneau spécifique pour le traitement de l’image

Mais on peut faire plus traitement d’image en cliquant sur le bouton « Change Image ». Il permet d’ouvrir la fenêtre suivante :

Cette fenêtre permet de travailler les couleurs la brillance et le contraste de l’image, de la transformer en niveau de gris ou en noir et blanc. Quelques exemple ci-dessous

*Notez que le sapin derrière la vitre est maintenant à feuille rouge.

 

Vous trouverez ci-dessous une série de photos traitées à partir d’une photo initiale (à gauche) saisie en instantané avec la caméra du robot.

 

B3.2) Le panneau spécifique pour la détection de forme, la recherche et la poursuite d’objet

A partir  du paneau "Status Control Image" ci-dessous,

 

Si l’on veut obtenir des détections de forme sans passer par un panneau spécifique il suffit de cliquer sur l’un des trois boutons nommés « Form1 Detect », « Form 2 Detect », « Form 3 Detect »  pour entre autres détecter les contours des objets..

 

B3.2.1) la détection de forme

Si on veut faire un traitement plus spécifique, on clique sur le bouton « Detect Form » dans le panneau "Status Control Image" pour obtenir la fenêtre suivante :

Vous noterez la qualité de détection des contours (ex le radiateur)

 

 

 

 

Résultat obtenu après avoir cliqué sur le bouton "Lissage"

B3.2.2) La recherche et la poursuite d’objet ou le suivi d’une ligne blanche brisée

Lorsque l’on tape sur le bouton « Research/Track », on obtient aussi

Qui permet de régler les seuils (en haut) avant de cliquer sur le bouton « Research » pour chercher un objet  à partir d’une position ou sur le bouton « Path+Research » pour rechercher un objet en exécutant successivement les parcours préalablement enregistrés.

 

Des exemples sont donnés sur youtube aux adresses suivantes :

Recherche et suivi d’une bille de billard.

 

Recherche d’une bille de billard cachée dans une pièce.

 

Recherche et poursuite d’une bille de billard.

 

Le Robot suit le déplacement d’une lampe solaire.

  Le Robot suit une ligne blanche brisée et s’arrête devant un objet .

 

 

 

B3.2.3) La détection de mouvement

Lorsque l’on clique sur le bouton « Detect Mouvement »

 

 

Une nouvelle fenêtre s’ouvre et l’on obtient

En haut, vous avez la photo saisie avec la zone actuelle de détection (carré rouge). Le tableau de bord du bas permet de fixer tous les paramètres avant de lancer une détection de mouvement.

*A partir des boutons sur fond jaunes, la fenêtre en rouge sur la photo ci-dessus) peut être déplacée et dimensionnée afin de l’adapter à la zone que l’on souhaite surveiller (Cf image ci-dessous).

 

*Si l’on veut faire une détection sur une photo noir et blanc (en général, la plus efficace). Il faut régler le seuil « binairy traitement ». lorsque l’on change le seuil la photo change en conséquence afin de faciliter le choix du seuil.

 

Dans l’exemple ci-dessus, le carré rouge a été positionné sur la fenêtre de la porte. Cela permet de détecter l’éventuelle ouverture de celle-ci.

*Le bouton du dessous (rouge et verts) permettent : « le bouton 1= choix de la sensibilité de détection (ici High Sensibility), le bouton 2 définit la durée avant la détection (permet de quitter la pièce concernée ici 35s), le bouton 3 = choix de la durée d’enregistrement d’une vidéo en cas de détection ici 20s».

* La ligne suivante permet de définir les actions en cas d’une détection de mouvement bouton1 = envoi email ; bouton2=sauver l’image, bouton 3 enregistrer une vidéo, bouton réaliser un parcours ( Nota durant le déplacement la détection de mouvement est désactivé).

* Le deux boutons du  bas permettent effectivement de  lancer la détection soit sur une photo en niveau de gris « Gray Detection GO » soit sur une photo en noir et blanc « Binairy Detection Go ». Dans notre exemple, on appuiera sur le bouton « Binairy Detection Go ».

 

 

Vous pouvez voir les résultats obtenus sur le vidéo youtube ci-dessous.

  

Dès que le robot détecte mon mouvement, il va chercher une bille de billard blanche.

 

Dès la détection de l’ouverture de la porte d’entrée, le robot exécute un parcours pré-enregistré. 

 

Le robot est capable de détecter un mouvement à plus de 15 m (preuve de la qualité de mon programme). Dans de bonne condition la détection atteint les 30 m.