R.Hasika est un robot actuellement en cours de développement, et ce depuis 2015. Contrairement à son petit frère, R.Ian, ce robot a été pensé dès le départ pour embarquer un Raspberry pi, et s’appuie donc sur cette plate-forme pour son électronique de contrôle. Il existe de nombreux points de convergence entre les deux robots, mais R.Hasika est plus complexe, plus endurant, autonome et précis que R.Ian, en contrepartie d’un coût plus élevé. Ce robot a été pensé pour des tâches plus complexes, telles que de la cartographie d’un espace, de la mémorisation de chemin, du calcul d’itinéraire, etc.

Objectifs de R.Hasika

Déplacement précis et odométrie

Par rapport aux précédents robots, celui ci à pour objectif premier de permettre un contrôle précis des moteurs, et logiquement du déplacement et de la trajectoire. En effet, les moteurs DC utilisés généralement pour les moteurs ne sont pas toujours identiques, et sans un retour vers le contrôleur de la rotation des moteurs, il est difficile d’équilibrer précisément les moteurs pour que le robot avance droit. Pour remédier à ce problème, nous utilisons ici des capteurs de rotation qui indiquent précisément la vitesse de rotation de chaque moteur, permettant ainsi d’ajuster automatiquement ces paramètres pour maintenir des trajectoires rectilignes et précises.

La taille des roues étant connue, il devient de plus possible de faire de l’odométrie, et ainsi de calculer la position du robot à un moment donné par rapport à son point de départ. Ce sera l’occasion de mesurer le niveau de précision que nous pouvons atteindre par cette méthode.

Précision de fabrication

le châssis de R.Hasika dans Openscad

le châssis de R.Hasika dans Openscad

Afin de garantir cette précision du déplacement, il a été nécessaire de mettre en oeuvre des méthodes de fabrication permettant une précision maximale du positionnement des éléments, sous peine de fausser les calculs. Sur ce modèle, je m’appuie donc sur une conception plus élaborée que sur les précédents modèles, avec une modélisation 3D paramétrique des pièces du châssis. Celui ci est basé sur le même concept général que R.Cerda, un robot simple basé sur le Raspberry pi, à ceci près que cette fois les éléments ont été positionnés en utilisant les caractéristiques précises de ceux ci, et on ne laisse plus de place à l’improvisation pour l’assemblage. Chaque élément à une place, et celle ci est précise au dixième de millimètre. Le robot est aussi symétrique que possible, avec une répartition équilibrée des masses selon les axes X et Y (en revanche, le centre de gravité est aussi bas que possible sans nuire à la hauteur de franchissement). Deux méthodes de fabrication sont prévues : l’impression 3D et la découpe laser. Dans les deux cas, les trous, ouvertures et fixations sont positionnés de façon ultra-précise.  A l’assemblage, il suffit alors de mettre les éléments à leur place pour obtenir un robot équilibré et construit de façon précise.

 

Temps de fonctionnement plus important grâce aux batteries lithium

Les batteries lithium de R.Hasika en place. Ici, il s'agit de batteries lithium 18650 de panasonic , de 3.7V et 3.4Ah (capacité vérifiée).

Les batteries lithium de R.Hasika en place.

J’ai souhaité pour R.Hasika une plus grande autonomie que pour les précédents prototypes. Si R.Cerda utilisait des batteries NiMH AA, ici nous utiliserons des batteries lithium. Deux raisons à cela :

  1. la capacité énergétique pour une masse donnée est très supérieure à celle de la technologie NiMH. Pour une même masse, nous pouvons multiplier la capacité par 4 à 8, ou alors pour une capacité énergétique donnée, réduire drastiquement la masse;
  2. la charge des batteries lithium est simple, et peut facilement être réalisée par des circuits économiques que l’on peut embarquer au robot; il n’est donc plus nécessaire d’enlever les batteries pour le recharger, mais juste de le brancher.

D’un point de vue pratique, R.Hasika emporte 4 batteries lithium de type 18650B, d’une capacité de 12.58Wh chacune, soit un total de 50Wh(autant que mon ordinateur portable!) pour 192g, là ou R.Cerda emportait 5 batteries AA d’une capacité unitaire de 2.64Wh, soit un total de 13.2Wh pour 145g. Nous avons augmenté la masse des batteries de 32%, mais la capacité à augmenté de 278%. De plus, les batteries de R.Cerda étaient en série, donc le courant maximal était limité à 2.2A, et de plus si l’une des batteries était en plus mauvais état, déchargée, ou moins efficace que les autres, les performances de l’ensemble diminuaient. Ici, les batteries sont en parallèle (il s’agit de lots de batteries identiques), donc fournissent jusqu’à 3.4*4=13.6A, et même si on enlève l’une d’elles, les performances sont maintenues. Le robot peut même fonctionner avec une seule batterie, tout en maintenant une autonomie comparable à celle obtenue via les anciennes batteries NiMH.

Un robot plus autonome, capable de se recharger tout seul

Puisqu’il est possible d’intégrer un circuit de charge au robot, il n’est plus nécessaire d’enlever les batteries pour le recharger. De plus, le circuit de charge sélectionné permet d’effectuer la charge pendant que le robot fonctionne, ce qui signifie qu’il n’est pas nécessaire de l’éteindre non plus. Vu que nous obtiendrons un déplacement précis, et une capacité de positionnement fin par la même occasion, il est dès lors possible d’envisager que le robot puisse tout seul se rendre sur une station de charge pour remplir ses batteries. Nous pouvons mettre plusieurs circuits de charge, pour accélérer cette étape, et on peut donc obtenir une charge complète en environ 3 heures. Au vu de la capacité des batteries et de la consommation attendue, on peut obtenir une autonomie d’au moins 24h si le robot est immobile (sans doute bien plus en optimisant un peu, et j’ai été large en calculant la consommation, elle sera moindre en réalité)

 

Première version : châssis fabriqué à la découpeuse laser

Une première version a été découpée dans du contreplaqué à la découpeuse laser, et les autres pièces ont été imprimées en PLA avec ma Printrbot Simple Metal 2014. L’ensemble des pièces structurelles a été conçu avec OpenScad, de façon à être adaptable (hormis certaines contraintes bien sur). Ainsi, la largeur du châssis et la hauteur du second étage sont facilement configurables, de même que l’épaisseur des plaques et divers autres paramètres.

R.Hasika vu de face

R.Hasika vu de face

Quelques pièces sont réalisées à l’imprimante 3D, à savoir les poutres de liaison entre la base et l’étage du raspberry pi, le support du bouton power, les caches moteurs et les supports des roues libres des chenilles. Les deux plaques sont quand à elles découpées à la laser (les trous sont également faits au même moment par la découpeuse laser).

Cette version n’est plus en développement actif, mais n’est pas abandonnée, car elle permet de fabriquer le robot même sans imprimante 3D. Pour les différentes pièces imprimées de cette version, je trouverai une alternative permettant de tout fabriquer à la découpeuse laser, ou encore à la main.

Seconde version : châssis monocoque imprimée en 3D

La version actuellement en cours de développement de ce robot se base sur un changement de conception. En effet, au lieu d’assembler de multiples pièces pour former la structure du robot, il s’agit ici d’avoir une seule pièce structurelle avec les emplacements pour tous les éléments du robot. Le châssis a donc été entièrement repensé pour l’impression 3D, la méthode la plus accessible pour fabriquer précisément et facilement des pièces complexes de ce type.

R.Hasika en vue de 3/4, sans carrosserie.

R.Hasika en vue de 3/4, sans carrosserie.

La conception reste paramétrique, mais cette fois ci, le châssis lui même est en une seule pièce, imprimée d’un seul tenant, avec les trous et fixations nécessaires à l’assemblage du robot. Les emplacements de batterie sont intégrés directement à cette pièce. L’électronique se fixe sur une plaque qui se visse sur le châssis, et ensuite la carrosserie vient se visser par dessus. Par cette méthode, tous les éléments sont à leur place, et l’ensemble est particulièrement solide. Le châssis est en effet assez solide pour supporter mon poids (ce n’est toutefois pas recommandé!).

Avancement du projet

A l’heure actuelle, le châssis et une première version de la carrosserie ont été réalisés, ainsi que la plaque pour l’électronique, la fixation du capteur ultrasonique, la fixation des capteurs de contact, du bouton power, et la carte électronique principale qui se branche sur le Raspberry pi.

Le robot a été programmé et testé, avec par exemple un algorithme basique d’évitement d’obstacles, comme démontré sur cette vidéo :

Le robot continue à évoluer, et nous allons maintenant lister les capacités mises en place :

  • programmation via l’Arduino nano intégré;
  • utilisation de deux capteurs de contact à l’avant;
  • lecture de la distance en utilisant le capteur ultrasonique, à l’avant;
  • allumage/extinction par un bouton power accessible à l’arrière;
  • contrôle individuel des moteurs via un DRV8835, avec PWM pour la vitesse;
  • utilisation d’un bouton poussoir sur le haut pour lancer des commandes;
  • utilisation de 6 leds RGB adressables (WS2812B), réglables parmi 65536 couleurs, chaque LED étant réglable indépendemment des autres.

A faire , à court terme

  • Lecture du niveau de la batterie;
  • intégration des chargeurs lipo;
  • connection de l’Arduino et du Raspberry pi par port série;
  • alimentation du Raspberry pi et contrôle de celle ci;
  • intégration d’un écran LCD 2×16;
  • connection et utilisation des capteurs de rotation des roues;
  • écriture d’une fonction d’auto-équilibrage de la vitesse des deux moteurs;
  • intégration d’autres capteurs, par exemple un capteur accéléromètre 3D, boussole 3D et gyroscope 3D;
  • amélioration de la carrosserie, trop massive;

A faire à plus long terme

  • intégration de la caméra du Raspberry pi;
  • creation d’un système de contrôle par une interface web;
  • possibilité pour le robot de créer un point d’accès wifi pour le programmer à distance;
  • possibilité de programmer le robot depuis scratch;
  • mise en place d’un système de prise pour une connection facile pour la recharge;
  • création d’une station de charge;
  • mise en place d’un programme permettant au robot de se connecter automatiquement à la station de recharge;

Pistes d’évolution

  • intégration d’un capteur de sol, et/ou des capteurs d’obstacles courte portée à divers endroits;
  • création de roues et chenilles à imprimer comme pour R.Ian;

Ressources

 

Réseaux sociaux