IMA4 2018/2019 P35 : Différence entre versions

De Wiki de Projets IMA
(Liste des tâches à effectuer)
(Liste des tâches à effectuer)
Ligne 87 : Ligne 87 :
  
 
==Liste des tâches à effectuer==
 
==Liste des tâches à effectuer==
* Conception du schéma global des différentes parties :
+
Conception du schéma global des différentes parties :
**1. Apprentissage des logicielles (programmable, robotique)
+
**Apprentissage des logicielles (programmable, robotique)
**2.Génération de trajectoires avec un algorithme
+
**Génération de trajectoires avec un algorithme
**3.Exécution de trajectoire
+
**Exécution de trajectoire
**4. Validation du modèle
+
**Validation du modèle
  
 
==Calendrier prévisionnel==
 
==Calendrier prévisionnel==

Version du 13 janvier 2019 à 20:41


Présentation générale

Nom du projet : Machine Learning pour navigation autonome de robots mobiles

Résumé : Le but du projet est d'améliorer l'algorithme pour réaliser un robot mobile autonome

Etudiants : Wenjing CHEN et Puyuan LIN

Description

Cette année, nous avons choisi le sujet, Machine Learning pour navigation autonome de robots mobiles pour notre projet de filière IMA (Informatique Microélectronique et Automatique) de l'école Polytech Lille. Ce projet s'inspire du concours Robo Cup qu'il faudra mettre en place un système autonome de production à l'aide de Robotinos (robots mobiles de Festo ayant un système d'exploitation Linux). Robotino est basé sur un ensemble d'entraînement omnidirectionnel, qui permet au système de se déplacer librement. Le robot est contrôlé par un système PC standard, suffisamment modéré pour permettre de planifier des itinéraires pour une conduite totalement autonome. Via un lien WLAN, Robotino peut envoyer toutes les lectures du capteur sur un PC externe dans l’autre sens, les commandes de contrôle peuvent être émises par le PC externe, ce qui permet aux programmes de contrôle de s’exécuter directement sur le PC externe ou directement sur Robotino. Un mode mixte ou un contrôle partagé sont également possibles. Robotino peut être facilement programmé dans son environnement de programmation «RobotinoView 2» . Les programmeurs plus expérimentés trouveront peut-être utile que le robot puisse également être programmé en C, C ++, Java, .NET, Matlab, Simulink. , Labview et Microsoft Robotics Developer Studio.

Nous traiterons dans ce projet de l'aspect navigation autonome de robot, composé d'une partie localisation, d'une partie déplacement et d'une partie de détection d'objets.

Objectifs

robotino

Dans le but de réaliser notre projet nous devrons remplir les objectifs suivants:

Utilisation de Python en programmant les algorithmes de Machine Learning pour que le robot puisse réaliser la navigation autonome.

Analyse du projet

Positionnement par rapport à l'existant

Il existe actuellement une grande tendance de robots mobiles de navigation autonome, dont certaines utilisent la carte intégrée pour atteindre la destination, tandis que d’autres obtiennent le chemin en avant via le code à barres attaché au sol. Mais pour éviter les obstacles, il s’agit essentiellement de capteurs pour surveiller les obstacles environnants.

Analyse du premier concurrent

Aethon Robot
Aethon Inc,un fournisseur mondial de robots de transport mobiles autonomes, a été fondé en 2001.Sa technologie principale comprend les robots mobiles automatiques(TUG). Le TUG est un robot mobile autonome et intelligent doté de devenir une phénomène normale dans les hôpitaux car il délivre matériaux et fournitures. TUG livre efficacement des chariots de fournitures là où ils sont nécessaires, y compris les repas, linge de maison, ainsi que l'enlèvement des ordures.Contrairement aux autres robots de navigation autonomes, il utilise des cartes intégrées et une gamme de capteurs embarqués pour la navigation. Les développeurs utilisent des cartes de haute précision des installations hospitalières, puis programment leur agencement, y compris l’utilisation des ascenseurs, l’ouverture automatique des portes, les points de livraison et les stations de recharge. La carte programmée est chargée dans la mémoire du TUG. TUG utilise des cartes embarquées à des fins de guidage et calcule sa position en temps réel à l'aide de l'algorithme d'odométrie breveté d'Aethon. Il utilise des capteurs embarqués pour ajuster les corridors dynamiques et changeants en temps réel, naviguant en toute sécurité autour des personnes et des obstacles, tout en utilisant toujours sa carte intégrée pour le suivi.



https://aethon.com/products/

Analyse du second concurrent

Kiva Robot
Amazon Robotics, anciennement Kiva Systems, est une entreprise du Massachusetts qui fabrique des systèmes d'exécution robotiques mobiles. Traditionnellement, les marchandises sont déplacées autour d’un centre de distribution à l’aide d’un système de convoyage ou de machines actionnées par l’homme (comme des chariots élévateurs). Dans l’approche de Kiva, les articles sont stockés sur des unités de stockage portables. Lorsqu'une commande est validée dans le système de base de données Kiva, le logiciel localise le robot mobile le plus proche de l'article et lui ordonne de le récupérer. Les robots mobiles naviguent dans l’entrepôt en suivant une série d’autocollants de codes à barres informatisés posés au sol. Chaque unité d’entraînement est équipée d’un capteur qui l’empêche de se heurter aux autres. Lorsque l'unité d’entraînement arrive à l'endroit objectif, elle glisse sous la nacelle et la soulève du sol grâce à un tire-bouchon. Le robot transporte ensuite la nacelle vers l'opérateur pour prendre les articles.

Kiva a deux modèles de robots. Le plus petit modèle mesure environ 2 pieds sur 2,5 pieds et un pied de haut et peut soulever 1 000 livres. Le plus grand modèle peut transporter des palettes et des charges pesant jusqu'à 3 000 livres. La vitesse maximale d'un robot est de 1,3 mètre par seconde. Les robots mobiles sont alimentés par batterie et doivent être rechargés toutes les heures pendant cinq minutes.


https://www.amazonrobotics.com/

Scénario d'usage du produit ou du concept envisagé

  • Nos produits sont adaptés à les entreprise logistiques ou les entreprises de commerce électronique. Le robot peut traiter lui-même la commande afin de terminer la livraison des marchandises, en réduisant les coûts de main-d'œuvre et en améliorant l'efficacité.
  • Nos produits conviennent également à la gestion des entrepôts de l'entreprise.
  • La perspective de cette voiture intelligente peut également être utilisée dans les futures voitures intelligentes. Nous pouvons planifier le point de départ et la destination de la voiture, puis la voiture fonctionne de manière autonome pour éviter les obstacles et atteindre la fin.

Réponse à la question difficile

Est-ce qu'on commence à zéro ou utilise des bibliothèque?

Nous n'avons pas besoin d'écrire le programme entier à partir de zéro. Parce que ce sujet est trop grand, il peut se diviser en plusieurs parties, par exemple la partie de création de la carte d'endroit, la partie de connaissance des obstacles statiques, la partie de détections des gens et des robots, la partie de navigation, etc. C'est difficile pour nous de réaliser tous pour le temps limité. Tout ce que nous devons faire est de créer une algorithme de machine learning pour réaliser un seul but, la navigation autonome. Pour les restes, nous pouvons utiliser les code précédent pour apporter des améliorations en fonction de cela.


Est-ce que la mémoire de robot est assez suiffissant pour stocker le base de donnée de machine learning?

La taille de la mémoire de robot n'arrive pas à réaliser nombreux de calcul, nous devons utiliser intel neural compute stick pour calculer et stocker des données.

Préparation du projet

Cahier des charges

Le robot mobile autonome devra entre autre répondre aux critères suivant:

  • Localiser correctement le robot
  • Localiser les éléments fixes (Murs, Machines)
  • la détection d'obstacles dynamiques (robots)
  • Générer une trajectoire automatiquement selon les demandes du manager

Phase d'apprentissage

  • Prise de connaissance des langages de programmation (Python, C++)
  • Prise de connaissance de machine learning
  • Recherche de solution pour la génération de trajectoire
  • Familiarisation avec l'environnement logiciel ROS

Choix techniques : matériel et logiciel

Technique Matérielle:

  • Utilisation 3 Robotinos équipés chacun de:
    • 1 détecteur laser pouvant réaliser des mesures à 240°
    • 1 gyroscope
    • 9 capteurs SHARP (télémètres infrarouges)
    • 3 codeurs incrémentaux présents en sortie de chaque moteur du Robotino

Techniques Logicielles:

  • Utilisation de ROS Hydro
  • Utilisation de différents languages: C++ ou Python
  • Utilisation de Linux

Liste des tâches à effectuer

Conception du schéma global des différentes parties :

    • Apprentissage des logicielles (programmable, robotique)
    • Génération de trajectoires avec un algorithme
    • Exécution de trajectoire
    • Validation du modèle

Calendrier prévisionnel

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Analyse du projet 0


Prologue

Semaine 1

Semaine 2

Documents Rendus