Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web...

33
Balayeuse autonomne Gabriel Gagné, Samuel Dussault, Danny Groleau 13 Décembre 2016 GSD

Transcript of Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web...

Page 1: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Balayeuse autonomne

Gabriel Gagné, Samuel Dussault, Danny Groleau13 Décembre 2016

GSD

Page 2: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Sommaire

Matériel

Microcontrôleur

Kinect

Intéractions Web

Rétrospective

Vision original

Page 3: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Vision original

Page 4: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Fonctionnalités prévues du robot

● Déplacement autonomne

○ Éviter les obstacles (objets et escalier)

○ Optimiser son travail

● Intéractions web

○ Envoyer à une application les informations relatives à son fonctionnement

○ Capable de recevoir des commandes

● Fonctionnalitées générales

○ Génération d’une carte 2D

○ Étiquetage des zones

Page 5: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Fonctionnalités obtenues du robot

● Déplacement autonomne

○ Éviter les obstacles (objets et escalier) Partiellement

○ Optimiser son travail

● Intéractions web

○ Envoyer à une application les informations relatives à son fonctionnement

○ Capable de recevoir des commandes

● Fonctionnalitées générales

○ Génération d’une carte 2D

○ Étiquetage des zones

Page 6: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Modularité

Page 7: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

MicrocontrôlleurProblèmes et solutions

Page 8: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Microcontrôlleur

Avantages

● Simple● Rapide● Bonne documentation● Interface électronique pratique● Abstraction des composantes

matérielles

Désavantages

● Pas de système d’exploitation● Pas beaucoup de puissance de calcul● Peu de librairies disponibles

Page 9: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Parallélisme

Page 10: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Parallélisme

Page 11: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Circuit électronique

Page 12: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Sonar

Page 13: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Magnétomètre - Accéléromètre - Gyroscope

Page 14: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographieProblèmes et solutions

Page 15: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographie

● But : Utiliser la caméra de profondeur pour produire une carte de l’environnement

Page 16: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographie

● Étapes de production d’un maillage

○ Prendre une photo de profondeur

○ Ignorer les points qui se trouvent hors de porté

○ Grouper les points qui font partie d’un même objet/obstacle

○ Produire un maillage avec les groupes de points

○ Lisser le maillage

○ Ajouter le maillage à la carte (environnement de travail)

○ Fusionner les maillages “équivalent”

○ Fusionner les extrémités des maillages (assembler le maillage)

Page 17: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographie

Page 18: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographie

Page 19: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographie

DBSCAN(density-based spatial clustering of applications with noise)

● O(n²), trop lent … ~15 secondes

● Résultat intéressant

● Les points sont ordonnées...

● Solution modifier l’algorithme

● Ne recule pas dans le conteneur

● N’avance plus lorsque non nécessaire

● < 1 seconde :)

Page 20: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographie

● Production du maillage avec plusieurs échantillons

○ Maillage imprécis

○ Bruit d’un échantillons à l’autre

○ Fusion du maillage inexistante

○ Paramètres non optimaux

Page 21: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographie

● Production du maillage avec des paramètre plus “sensible”

○ Beaucoup trop de mailles

○ Beaucoup de bruit

○ Potentiellement long à fusionner pour la carte

○ On doit lisser le maillage

Page 22: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Kinect et cartographie

Page 23: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Intéractions webProblèmes et solutions

Page 24: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Intéractions web● Technologies front-end

○ MeteorJS

○ ReactJS

○ Stylus

Robot

MongoDB

MeteorJS

Client

Client

Client

Page 25: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Intéractions web

● Mongocxx c++ driver

○ Difficile à installer pour Raspbian

○ Séquentiel

● Commandes

○ Performances raspberry / serveur web

Page 26: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Demo

Page 27: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

MatérielProblèmes et solutions

Page 28: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Châssis

● Support du poid

● Stabilité

● Angle des roues

Page 29: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Déplacement

● Poid inégale sur les roues

● Moteurs trop faibles

Page 30: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Rétrospective

Page 31: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

DépensesCoût Note

Kit Arduino 100$ Plusieurs composante non utilisées

Kit Raspberry 120$ Quelque fils et LED non utilisés

Boussole/accéléromètre 30$ Module du kit Arduino pas adéquat

Moteurs et sonar 10$ Moteur

Baterie raspberry+fil 30$

Baterie kinect 25$

Mécano 35$

Kinect 0$ Fournit par le DOMUS

Total 350$

Page 32: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Revue des pièces et technologie

● Kinect

○ ER sensor

● Moteurs

○ Plus fort, sans brosse

● Capteur

○ 2 sonar

● Chassis imprimé

● Meilleurs roues

Page 33: Habriel Hagné, Samuel Dussault, Danny Hroleau...MeteorJS Client Client Client Intéractions web Mongocxx c++ driver Difficile à installer pour Raspbian Séquentiel Commandes Performances

Merci !