Bonjour à tous,
Je poste ma 1ère petite contribution sur ce forum.
J'ai un projet en cours (distributeur automatique de friandises pour le chat de ma copine) piloté depuis un navigateur web.
Les fonctions du robot sont assez simples:
- permettre à l'utilisateur de donner 1 friandise(répétable jusqu'à ce que le réservoir soit vide)
- permettre à l'utilisateur de recharger le réservoir (Le réservoir se vide, puis l'utilisateur doit manuellement recharger les 6 emplacements)
- permettre à l'utilisateur de jouer un son au format .midi sur un buzzer (pour attirer le chat ou éventuellement le dresser: un son -> 1 action du chat -> 1 friandise si action effectuée)
- transmettre un retour vidéo à l'utilisateur (pour vérifier que le chat est là ou qu'il a fait l'action)
Remarque: le réservoir contient 6 friandises.
L'idée c'est que l'utilisateur se connecte à un page web, sur laquelle il peut voir le nombre de friandises restantes, donner des friandises, recharger le réservoir, voir le retour vidéo.
La page web n'est pas prévue d'être rendue publique par soucis de simplification et de sécurité.
Au cours de la réalisation je suis tombé sur quelques liens sympas que je vous mets ci-dessous et qui permettent de réalisé le projet décrit ci-dessous:
ROS:
- C'est quoi ? : J'imagine que beaucoup de monde connaît déjà mais tant pis . C'est un middleWare qui simplifie énormément le développement logiciel en proposant déjà des "briques" toutes faites qui permettent de réaliser des fonctions et de structurer proprement le code. Les tutoriels sont très bien faits et je vous recommande de les suivre, c'est 10h qui vont peut être changer votre vie
- Tutoriels : http://wiki.ros.org/ROS/Tutorial
ROS DEVELOPMENT STUDIO:
- C'est quoi ?: Un site qui propose aux utilisateurs de créer une machine virtuelle (hébergée sur leurs serveurs) avec un environnement ROS complet pré-installés. L'option gratuite permet d'utiliser 1 machine virtuelle (2 CPU, 8Go RAM, pas de GPU) pendant 8h tous les jours. Ce site permet de gagner beaucoup de temps d'installation, et facilite grandement la prise en main de ROS. C'est une trés bonne option pour développer rapidement des projets sous ROS avant de les tester sur une cible réelle (Pi ou autre). Le site propose aussi beaucoup de contenu pédagogique pour la prise en main de ROS.
- Lien : https://www.theconst...lopment-studio/
ROSLIB.JS:
- C'est quoi ?: Il faut connaitre ROS pour comprendre ROSLIB.js mais en gros, pour résumer, c'est une librairie qui fournit une interface (API) en javascript pour permettre à une page web (html) d'appeler des services ROS et de recevoir ou d'envoyer des messages sur ROS. Elle repose sur le concept de "websocket".
- Lien : http://wiki.ros.org/roslibjs#API_Documentation
ROSBRIDGE:
- C'est quoi ? : Là aussi il faut connaître ROS. C'est un noeud ROS qui permet d'interfacer ROS avec d'autres systèmes non-ROS (et notamment avec des pages web pour le biais de websocket)
- Lien : http://wiki.ros.org/rosbridge_suite
Pour relier ces éléments entre eux, je vous conseille l'excellent tutoriel suivant : https://www.youtube....wgOJPRJE&t=509s
En parallèle, je vous conseille le repo GitHub suivant (mis à jour trés récemment jusqu'à la partie 06-xc-opencv.md incluse, en cours de MAJ pour le reste):
CROSS COMPILATION RASPBERRY PI:
- C'est quoi ? : La raspberry Pi n'étant pas une bête de course, la compilation et le développement peuvent prendre un temps considérable s'ils sont réalisés directement sur la PI. Une solution alternative est de développer et de compiler sur un PC (plus puissant) et de ne transférer que les exécutables et éventuellement les librairies nécessaires à l'exécution sur la Pi. Le lien suivant décrit l'ensemble des étapes pour faire cela. C'est très bien expliqué, je l'ai utilisé (jusqu'à la partie 6 pour l'instant) et ça marche très bien.
- Lien : https://github.com/H...rpicross_notes/
Voilà, c'est tout pour l'instant, je reviendrais peut être vers vous pour vous montrer le résultat quand tout sera terminé.
@+