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
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
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 :
- 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;
- 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.
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.
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
- Wiki du projet, avec tutoriels;
- Page du projet sur Hackaday.io (en anglais);
- Dépot Github du projet, avec les fichiers 3D stl, les fichiers pour la découpe laser, le code, les circuits…
- Playlist sur ma chaine youtube sur R.Hasika, avec explications, essais, démonstrations…
- Sujet dédié sur le forum de Robot-Makers.
[…] cet article, nous décrirons la conception du châssis de R.Hasika, un robot pensé pour être robuste, précis et autonome, présenté dans ce précédent billet, et […]
[…] R.Hasika est le successeur de R.Cerda, un robot basé sur le Raspberry pi. Si à l’époque mon objectif était simplement de construire un robot basé sur le Raspberry pi, avec R.hasika, je suis plus ambitieux. En effet, il s’agit cette fois de concevoir entièrement le robot, que tout soit correctement pensé, plutôt que de faire certains éléments comme le châssis avec ce qui est disponible sous la main. Cette fois ci, chaque élément du robot aura été pensé. Dans ce billet, je vous propose une rapide présentation de ce robot et de ses objectifs. […]
[…] pi. Cette version est en grande partie réalisée avec une imprimante 3D. Page du projet : http://nagashur.com/blog/robotique/r-hasika-un-robot-raspberry-pi-precis-extensible-et-autonome/ Dans cette vidéo nous abordons la dernière mise à jour du robot : l’ajout d’un […]
9tcurl
u42aic
bdifyr
awe5tn