MIRO - une plateforme robotique intérieure ouverte

Je veux parler de mon travail et de notre projet collectif pour animaux de compagnie - un robot d'intérieur mobile basé sur un tas de cartes à microprocesseur ARDUINO (ATMEGA328 - comme vous le voyez mieux), ESP8266 et Raspberry Pi. Mes amis et moi l'avons appelé MIRO - de "Mobile Intelligent RObot".

image

Table des matières: Partie 1 , Partie 2 , Partie 3 , Partie 4 , Partie 5 .

Je suis le chef du centre de formation et de recherche en robotique de la Pacific State University et en même temps notre petit hackspace local EastMaker. Notre centre universitaire existe depuis la cinquième année. Formellement, nous sommes une unité structurelle de l'université qui a deux vecteurs d'activité principaux (de manière inattendue): académique et scientifique. Jusqu'à présent, l'activité scientifique est principalement liée aux bagages disponibles - systèmes de navigation et de communication pour la robotique sous-marine. Avant même l'apparition de notre centre, le Laboratoire des technologies et systèmes intelligents (LITiS) existait au Département de génie informatique, un laboratoire commun avec l'Institut des problèmes de technologie marine, branche extrême-orientale de l'Académie russe des sciences. Et ça existe toujours. Lorsque le centre a été créé, le chef de ce laboratoire est devenu son superviseur scientifique et le centre de robotique est devenu une base de ressources pour LITiS.

La deuxième composante de l'activité est l'éducation. Le processus éducatif du Centre est en cours d'élaboration dans le cadre des activités de projet des étudiants et des écoliers (nous impliquons les écoliers dans un certain nombre de projets). Des étudiants de premier cycle et des cycles supérieurs de presque tous les domaines techniques travaillent sur des projets.

image

image

Notre centre est interministériel et n'est rattaché à aucun département. Les projets, la recherche et le développement sur notre base technique peuvent être réalisés par des étudiants et des employés de toute l'université. Si seulement il y avait un désir et cette base était suffisante.

Parallèlement à cette activité, mes amis et moi avons créé une école privée de robotique et de connaissances en ingénierie appliquée pour les enfants de Khabarovsk. Et pour les activités éducatives à l'école et au Centre de robotique, il est devenu presque immédiatement clair qu'une sorte de cours pour les jeunes combattants était nécessaire, révélant les bases dans les domaines suivants:

  • bases de la technologie des microprocesseurs;
  • capteurs simples (principes de fonctionnement, caractéristiques d'utilisation);
  • principes de base des technologies de traitement des matériaux (fraisage, découpe laser, impression 3D);
  • scénarios de contrôle et algorithmes simples du domaine de la robotique mobile.

Ensuite, il m'a semblé très correct que l'objet de ce cours devrait être une sorte de robot ARDUINO bon marché.

Nous avons commencé à regarder ce qui est sur le marché. Et ils ont découvert l'étrangeté suivante. Il y avait de très bons robots et kits ARDUINO. Souvent assez cher. Mais ils avaient généralement deux gros inconvénients:

  • l'utilisation d'un certain fer "original" (souvent le même ARDUINO, mais dans la version de l'auteur, impliquant l'achat de planches exclusivement auprès d'un seul fabricant);
  • manque de matériel éducatif (c'est généralement une chose intéressante - les gens font d'excellents kits et kits pour l'éducation, mais ne se soucient pas du tout de publier des éléments élémentaires: manuels, leçons, classeurs (si nécessaire)).

Il y a donc près de quatre ans, MIRO est apparu. Mais vient d'apparaître. Au fil du temps, la logique de ce projet a complètement changé.

Au départ, nous avons créé un complexe éducatif basé sur notre robot. Et il n'y avait ni ESP ni Raspberry Pi. Il y avait ARDUINO et un module Bluetooth. Voici le tout premier chariot:

image

Avec ce chariot, nous savions quoi faire avec les étudiants. Eh bien, même au festival ROBOMECH que nous avons organisé à Khabarovsk, ils ont assemblé un petit ballon de football pour les visiteurs.

image

Après un certain temps, nous avons fait la deuxième version, qui n'était pas différente en principe, à l'exception de la forme et de quelques améliorations dans la mise en page. À ce stade, nous avons également complètement abandonné l'impression 3D - tous les supports et supports étaient faits de deux matériaux en feuille (acrylique et contreplaqué) par découpe laser.

image

Nous avions déjà une excellente instruction illustrée pour assembler le kit, une sorte de programme éducatif avec des manuels et des cahiers, et nous avons activement formé des écoliers et des étudiants, organisé des master classes lors de journées portes ouvertes et de vacances en ville.

A cette époque, le marché a été inondé de différentes décisions sur ce sujet. Et les capacités d'ATMEGA328 en robotique réelle, même pour l'enseignement, sont devenues trop insignifiantes. Puis le nouveau concept de robot d'intérieur MIRO est né, qui est une solution ouverte pour le prototypage rapide de robots mobiles intérieurs et extérieurs avec un matériel suffisamment fonctionnel qui vous permet de plonger dans OpenCV et ROS et toutes sortes d'IOT.

Ainsi, l'essence du concept MIRO d'aujourd'hui.

Premièrement , MIRO est un petit robot mobile, avec une source complètement ouverte (jusqu'aux composants et cartes série prêts à l'emploi utilisés - si le fabricant ne fournit pas de source, nous ne les avons pas non plus), distribué sous licence CC Attribution Share Alike 4.0.

Le corps du robot est réalisé par impression 3D et découpe laser. Après la première version du robot, afin de réduire les coûts, nous ne voulions généralement pas utiliser l'impression 3D dans la technologie de production. Mais ayant souffert des matériaux en feuille dans la deuxième version, j'ai complètement abandonné l'idée de réduire les coûts au détriment de la qualité et de la fonctionnalité. Et aujourd'hui, MIRO est terminé à 90% grâce à l'impression 3D. Beaucoup plus fiable mécaniquement et agréable à utiliser. La seule aspiration que nous avons soutenue dans le processus de conception des parties du corps est la facilité d'impression. Je voulais éviter les supports compliqués et les sections «tordues» - afin que même sur une imprimante 3D bon marché, nous obtenions un bon résultat. Pour l'avenir, je dirai que nous y sommes parvenus - l'impression de contrôle sans aucune modification sur les biens de consommation absolus ANET A6 l'a confirmé.

MIRO a une certaine modularité.

image

Le module capteur avant peut être remplacé assez facilement sans démonter le robot. De plus, la conception du robot est conçue de sorte que presque tous les composants sont facilement accessibles et facilement remplaçables. Ils recherchaient précisément la commodité de fonctionnement et de modification. J'en parlerai un peu plus tard.

Deuxièmement , MIRO sont des outils logiciels développés:

  • API de robot pour ATMEGA328 avec une bibliothèque de communication avec Raspberry Pi (toujours en cours de développement) ou avec un hôte via UART (mais c'est prêt).
  • Exemples de leçons et de programmes allant des rotations de moteurs les plus simples à la vision technique avec la transmission d'un flux vidéo ou des résultats du traitement vidéo à un hôte. Dans un avenir proche, faites un tas d'exemples sous ROS.
  • Images Raspbian prêtes à l'emploi avec bibliothèques et logiciels préinstallés, machines virtuelles VirtualBox également avec logiciel de développement préinstallé.

De plus, nous écrivons une carte détaillée de la production du robot afin que n'importe qui puisse l'assembler à la maison / en cercle / CMIT / université.

Actuellement, en beta test, un site avec la possibilité de publier ses projets pour MIRO. Jusqu'à présent, seuls de petits fichiers peuvent y être hébergés, mais avec le temps, je pense que nous allons déboucher.

Maintenant, il y aura une série d'articles sur MIRO, dans laquelle j'en parlerai plus en détail, avec tous les détails.

Franchement, le volume de matériel est déjà tel qu'il m'est difficile de suivre la mise à jour des référentiels à temps (ce n'est toujours pas le travail principal). Pour cette raison, il peut y avoir des erreurs et des omissions dans les documents. De plus, je n'ai absolument aucune expérience dans le support de projets open source. J'espère apprendre tout cela bientôt.

Prévoit également de traduire tous les documents en anglais. C'est un gros travail séparé pour nous et nous n'avons tout simplement pas encore eu le temps de le faire.

Certains des documents de la série d'articles seront reproduits par mes instructions des référentiels, mais à certains endroits, ils seront plus détaillés.

Aujourd'hui, passons en revue le matériel du robot.

Le robot MIRO est basé sur un ensemble de trois systèmes de microprocesseurs populaires:

  • ARDUINO (basé sur Atmel ATMEGA328, noyau AVR)
  • ESP8266
  • Raspberry Pi (quelle version n'est pas importante pour le moment).

Le robot MIRO est alimenté par une batterie avec une tension d'alimentation nominale de 7,4 V (Li-Ion 2S). Pour obtenir les 5 V requis par la plupart des dispositifs à microprocesseur du robot, un convertisseur LM2596S est utilisé.

En standard, tous les capteurs et actionneurs sont contrôlés par ATMEGA328.

L'ESP8266 permet la programmation sans fil de la puce ATMEGA328 à partir de l'environnement ARDUINO IDE, et sert également de pont SERIAL-WIFI qui permet l'échange de données avec le port série ATMEGA328 (UART) sans fil à l'aide du protocole TELNET. De toute évidence, ATMEGA328 et ESP8266 sont connectés via des lignes RX / TX.

De plus, pour implémenter la puce ATMEGA328 sans fil, la ligne RESET de cette puce est connectée à la ligne GPIO2 du microcontrôleur ESP8266.

Ainsi, même sans Raspberry Pi, MIRO contient une architecture développée et pratique pour le développement.

Dans la configuration de base du robot avec le module frontal SENS1, les capteurs et appareils suivants sont connectés au microcontrôleur ATMEGA328:

  1. Capteurs numériques d'odomètre (roue gauche et droite)
  2. Pilote des moteurs gauche et droit sur puces L9110S
  3. Capteur de ligne à ultrasons HC-SR04
  4. Capteurs de lumière photorésistifs (gauche et droite)
  5. Émetteur de son piézo
  6. LED pour lumière avant (gauche et droite)
  7. Capteurs de ligne (gauche, droite et centre)
  8. Servomoteur d'inclinaison de la caméra

Les appareils 3-7 sont facultatifs et peuvent être remplacés par n'importe quel capteur ou appareil. Vous pouvez concevoir et fabriquer votre propre module frontal en échange du module proposé (il s'appelle SENS1 dans les documents) avec vos tâches et appareils.

Les appareils 1, 2 et 8 sont obligatoires pour le fonctionnement du robot et n'impliquent pas d'arrêt. C'est compréhensible - sans les pilotes du moteur, le robot ne pourra pas bouger, et sans capteurs d'odométrie vous ne pouvez rien dire sur la nature du mouvement du robot et vous ne pourrez pas contrôler avec précision son mouvement. Eh bien, la suspension de la caméra (si vous pouvez l'appeler ainsi) fait probablement également partie intégrante.

Le Raspberry Pi est connecté à l'ATMEGA328 via I2C (TWI). Une caméra Raspberry Pi Camera v1.3 est connectée à la carte Raspberry Pi.

Je veux prêter attention aux composants série qui sont maintenant utilisés dans MIRO. Fondamentalement, nous nous sommes concentrés sur un fabricant sino-russe (sur la carte de production, dans la liste des composants série, vous pouvez voir le nom de la société). Cela a été fait en partie exprès. Les Chinois ont beaucoup de modules de tweeters, sifflets et autres biens de consommation. Ces mêmes gars représentent au moins une marque avec des désignations de nomenclature. Et vous pouvez au moins d'une manière ou d'une autre indiquer ce que le morceau de fer devrait être exactement dans l'un ou l'autre nœud du robot. Bien qu'ils vendent les mêmes biens de consommation pour peu d'argent. Je les ai regardés attentivement et j'ai été impressionné que c'était un peu comme une entreprise russe. Et le message qu'ils publient sur leur site internet, il a inspiré l'espoir que les mecs "pour tout beau". En réalité, apparemment, tout va un peu moins bien. Le schéma de circuit d'au moins la carte UNO + WiFi de ce fabricant ne résiste à aucune critique.

image

Il n'est pas complet et exécuté avec de nombreuses erreurs. Selon lui, nous n'avons pas pu déterminer tous les composants de la carte, à quoi est connecté.

Dans la carte elle-même, les concepteurs ont corrigé un bug / fonctionnalité inutile: un seul circuit de réinitialisation ATMEGA328 et ESP8266. Cela signifie que sur cette carte, il est impossible d'organiser le firmware sans fil ATMEGA328 via ESP8266 - lorsque ESP8266 essaie de réinitialiser ATMEGA, il tire sa propre ligne de réinitialisation. Dans le même temps, la carte dispose d'un bouton séparé pour réinitialiser l'ESP et d'un bouton de réinitialisation générale pour tous les contrôleurs à la fois. De plus, le commutateur DIP pour 8 lignes est soudé sur la carte. Et le huitième interrupteur n'est pas impliqué. En fin de compte, j'ai cassé la ligne de réinitialisation ESP et permis de le connecter au circuit de réinitialisation commun à l'aide de ce huitième commutateur à l'aide du fil de montage. Autrement dit, si le commutateur 8 est désactivé, l'ESP ne peut être réinitialisé qu'en appuyant sur le bouton ESP RESET, et un signal sur la ligne RST commune ou en appuyant sur le bouton de réinitialisation générale ne réinitialise pas l'ESP. Lorsque l'interrupteur est activé, tout revient à l'état tel qu'il était avant la modification de la carte.
Reste à savoir comment rompre le circuit de réinitialisation. J'ai trouvé la solution la plus indolore.

  1. Soudez la diode D3 près du connecteur pour connecter une antenne externe.
  2. Souder le condensateur entre la jambe de la diode soudée (3,3 V dessus) et la masse.

Maintenant, lorsque vous appuyez sur le bouton de réinitialisation, ESP n'est pas réinitialisé.

En me souvenant du message sur le site, je leur ai écrit une proposition pour corriger cette «fonctionnalité». Mais ils ne m'ont même pas répondu.
Je ne voulais pas du tout faire mon morceau de fer, mais apparemment je devrais le faire. Aussi sous licence ouverte.

Il existe une solution alternative - l'Arduino UNO habituel et une telle carte d'extension (ou quelque chose comme ça).

image

Mais ici, c'est quelque peu gênant avec le firmware ESP. Cependant, le firmware ESP dans son rôle actuel dans MIRO est une procédure assez rare.

Eh bien, dans tous les cas, vous devez connecter le GPIO2 ESP8266 à la ligne de réinitialisation du contrôleur ATMEGA328 pour le micrologiciel sans fil. Vous pouvez choisir un autre GPIO, mais c'est GPIO2 qui est enregistré dans le code MIRO (sinon le code devra être corrigé). Au début, par inexpérience, ils ont choisi la première chose qui leur est venue, comme on dit, - GPIO0. Mais ils ont rapidement réalisé leur erreur - pour le firmware ESP, ce cavalier a dû être déconnecté / retiré car la ligne GPIO0 dans ESP a été utilisée dans la procédure du firmware.

Conclusion générale: lors de l'assemblage de MIRO, vous pouvez utiliser n'importe quelle carte de n'importe quel fabricant qui vous permet de répondre aux exigences du schéma de commutation.

Le schéma de circuit complet du robot MIRO est présenté dans l'un des référentiels mentionnés.

Immédiatement une question banale. Existe-t-il des solutions similaires sur le marché? Bien sûr que oui. Mais cher. Et d'ailleurs, les gars qui ont publié ici toute une série d' articles sur le chariot ROS ont également noté l'absence d'une solution de «fer» plus ou moins accessible. Ce sera formidable si les auteurs et moi incarnons leurs résultats sur MIRO.

Maintenant, en général, sur les plans. Pour le développement de tout et de tout avant la troisième version, le projet a reçu le soutien de l'Etat. financement. À savoir, le Fonds pour la promotion de l'innovation. Merci beaucoup à lui. Sans cet argent, nous l'aurions probablement laissé avec nous et dans une qualité complètement différente. Je veux vraiment que le robot devienne une plateforme de prototypage, de formation et d'expériences, qui jettera les bases d'une réelle interaction des CMIT (FabLabs, hacks) dans notre pays. C'est devenu un point particulier d'efforts conjoints, où la contribution de chacun devient l'avantage de tous. Je comprends bien que je compte sur des unités d'équipes, pour qui cela deviendra intéressant. Mais même une telle interaction sera un succès. Je suis très encouragé par la façon dont cela se passe en Occident - comme dans un endroit pratiquement vide et à l'initiative de quelques ennuyés, un immense écosystème est né. Et si ça marche? Il y a beaucoup de points d'application de l'effort en elle.

La feuille de route de développement actuelle, selon moi, se trouve sur le tableau Kanban sur GitHub .

Nous avons également développé quelques politiques de développement de projets. Toute plate-forme implique certaines restrictions, «drapeaux». Sans eux, tout se transforme en anarchie, et la plate-forme ne se pose pas, et si c'est le cas, elle ne vit pas longtemps. Sur le même GitHub est un document , quelque chose comme un manifeste de développement de plate-forme. Au fil du temps, cela changera presque certainement - l'expérience ajustera simplement la façon dont elle est pratique pour tout le monde (utilisateurs, développeurs).

Quant au potentiel commercial, le projet l'a certainement, et l'équipe et moi allons également essayer de l'exploiter. Comment? Le plus simple est la production et la vente de kits de montage. En fin de compte, c'est aussi un moyen d'élargir le public d'utilisateurs qui ne veulent pas vraiment se soucier de la production. Sans hésitation, il a été décidé d'ouvrir une pré-commande de robots prêts à l'emploi sur le site.

Merci à tous pour votre attention et je serai heureux d'avoir des questions constructives et des initiatives qui aident au développement du projet.

Le prochain article sera consacré à la mécanique, la conception et la fabrication de la coque.

Quelques photos de robots.

image

image

image

PS En cours de route, le projet a été accompagné par des personnes proches et chères à moi qui, à différentes périodes, sont devenues membres de l'équipe et ont contribué au développement du projet. Nos parcours professionnels ont divergé avec quelqu'un, mais je ne peux que noter leur contribution. Que leurs noms ne disent presque rien à personne, mais j'espère qu'ils seront satisfaits. C'est Yevgeny Ledkov, qui travaille maintenant à la FEFU à la direction des programmes éducatifs, qui a rédigé le premier plan d'entreprise de ce qui, en fait, n'existait pas, et a noyé toute l'âme du projet. Et Pavel Efimov, qui a également déménagé à la FEFU, au laboratoire de robotique, qui a fait beaucoup de choses directement ou indirectement liées au projet. Et Bair Dambaev, qui est retourné dans sa patrie à Ulan-Ude et enseigne maintenant aux enfants au centre pour enfants qu'il a créé. Et quelques autres gars qui ont bien fait leur travail.

Source: https://habr.com/ru/post/fr472380/


All Articles