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

Upload: others

Post on 19-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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 !