Aller au contenu


sky99

Inscrit(e) (le) 05 avril 2013
Déconnecté Dernière activité août 19 2018 12:18
-----

Sujets que j'ai initiés

R.Hasika : un robot Raspberry pi précis, autonome et extensible

04 mai 2016 - 06:00

R.Hasika - présentation

 

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.

J'ai créé une page pour le projet R.Hasika, que je vous invite à consulter pour davantage de détails.

Ce post est un portage de l'article original que j'ai écrit ici. Je sépare le tout en plusieurs posts moins gros pour plus de lisibilité sur le forum, et je modifie 2-3 choses sur la mise en page, mais c'est essentiellement la même chose :)

 

Motorisation et déplacement

R.Hasika est un robot à conduite différentielle, s'appuyant sur deux moteurs à courant continu. Ces moteurs sont dotés de capteurs de rotation qui permettront un déplacement précis. Ils sont contrôlés par une puce DRV8835, qui permet de les commander facilement en PWM avec seulement 4 GPIO.

Ces moteurs entraînent deux chenilles, mais on peut les remplacer par des roues si on le souhaite. Dans tous les cas, ce choix de propulsion en fait un rover agile, capable de tourner sur lui même sur place, et avec une bonne capacité de franchissement d'obstacles.

Grâce aux capteurs de rotation des moteurs, on sera capable d'ajuster la vitesse de ceux ci pour effectuer des trajectoires parfaitement rectilignes, des rotations d'un angle précis, et même de l'odométrie et ainsi cartographier une zone.

motors-both_sleeved_5680_800px.jpg

 

Châssis et éléments structurels

Par rapport à R.Cerda, cette fois, le châssis à été pensé à l'avance. En pratique, la conception a été faite entièrement avec le logiciel libre OpenScad, et le code source (libre) permet à tout un chacun de modifier les paramètres du robot pour l'ajuster à ses besoins.

Le châssis a été pensé pour être fabriqué à l'imprimante 3D d'une seule pièce, avec tous les trous et emplacements de fixation requis pour l'assemblage d'un robot complet. Ce châssis comporte également l'emplacement des batteries, des moteurs, des roues libres et de la plaque de support de l'électronique.

Cette dernière justement est la seconde pièce, sur laquelle viennent se fixer les composants électroniques du robot, les capteurs, etc. Cette plaque se visse simplement sur le châssis, renforçant ainsi davantage sa solidité.

La troisième pièce est la carrosserie, qui vient se visser par dessus, et qui permet de protéger l'électronique, et sert de support à divers autres éléments (voir plus bas dans la section du même nom).

chassis_bottom.png


OpenWheels : roues et chenilles paramétriques pour l'impression 3D

17 avril 2016 - 08:26

Sur un robot, il y a des chances que les roues soient importantes :)

Pour mon dernier robot, R.Ian, j'ai décidé de fabriquer les roues, à l'imprimante 3D.

J'ai donc fait un script OpenScad, et fait en sorte qu'on puisse modifier des paramètres de la roue, par exemple, la taille, l'épaisseur de la jante, le nombre de bras, l'axe central, etc.

 

J'ai maintenant décidé de rendre cette partie du code plus générique, et faire quelque chose d'adaptable, et de configurable à souhait. Du coup, voici le projet OpenWheel, pour lequel j'ai créé un GitHub.

 

C'est encore en développement, mais voici les fonctionnalités prévues: 

  • roues paramétriques (fait);
  • pneus configurables (fait);
  • engrenages paramétriques (fait);
  • roues pour chenilles paramétriques (fait)
  • chenilles paramétriques (en partie fait)

 

Voici les engrenages imprimés :

Fichier joint  engrenages_5656.jpg   66,6 Ko   78 téléchargement(s)

 

J'ai aussi fait une version avec un rebord, adapté pour l'utilisation avec des chenilles. 

Voici un exemple de test de chenille imprimée en ninjaflex :

Fichier joint  chenille_5657.jpg   111,39 Ko   78 téléchargement(s)

 

Du coup voici ce que ça donne : 

Fichier joint  roues_et_chenille_5659.jpg   43,37 Ko   71 téléchargement(s)

 

C'est encore en développement, mais certaines choses sont déjà fonctionnelles. Pour ce qui est des pneus, il y a des pneus lisses, ou crantés, avec des rebords. 

Pour les chenilles et les roues adaptées à celles ci , on choisir le nombre de "crans" sur la roue, et celui sur la chenille, et le script génère les deux pièces adaptées. J'ai pu tester, le tout s’emboîte bien, et la transmission de la rotation et de la puissance se passe bien.

 

La roue avec les rebords permet de garder la chenille en place. Je dois faire un petit ajustement, et élargir celle ci, car la chenille fait la même largeur que la roue, et du coup je vais rajouter une petite marge automatique qui réduira la friction.

Les chenilles ont la face externe plane, je dois également rajouter un système de crans pour améliorer l’adhérence/traction.

 


R.Ian, un robot open-source très économique, extensible et facile à construire

13 avril 2016 - 08:34

Bonjour à tous! Je voudrais vous présenter mon nouveau projet de robot, R.Ian.

R.Ian est un robot conçu pour permettre l’apprentissage de la programmation. Il à pour objectif d’être facile à construire et assembler, tout en étant extensible et très économique. Le nom du robot est un hommage à Ian Murdock, le fondateur de la distribution Linux Debian décédé en fin 2015. Cette distribution a une importance cruciale pour Linux en général, pour le logiciel libre, et pour l’informatique dans son ensemble.

 

Voici une photo du robot pendant son assemblage :

 

post-1-0-86793100-1460574446.jpg

Que fait ce robot?

Ce robot est un robot classique, qui ne prétend pas apporter une approche révolutionnaire à cette classe de robots. Son objectif est autre, nous reviendrons dessus plus bas. En pratique, c'est un robot à conduite différentielle (deux moteurs indépendants), équipé de capteurs de contact (gauche et droite, sur l'avant) et d'un capteur de distance monté sur un servomoteur pour faire un balayage à 180° (ou moins, c'est entièrement programmable), et ainsi effectuer un algorithme d'évitement d'obstacles.

Il dispose également de multiples LED RGB programmables à souhait pour afficher des informations, et se recharge en branchant un câble micro USB à l'arrière.

On le programme avec un câble mini USB juste au dessus.

La vidéo ci dessous permet de voir une démo en vidéo d'un algorithme de base, utilisant uniquement les capteurs de contact : 

 

 

(pour ceux qui ne pourraient pas voir la vidéo, voici le lien vers la vidéo sur youtube).

 

Qu'a t'il de particulier?

R.Ian est pensé pour être simple à assembler (un simple tournevis suffit et une petite heure), très économique (35€ la version de base, moins de 50€ avec un raspberry pi zero et une clé wifi en plus) tout en étant extensible, et en permettant des algorithmes avancés. Ce robot est pensé pour permettre d'apprendre à programmer, mais ne se limite pas à des programmes basiques puisqu'on peut faire des programmes plus complexes.

Je compte m'en servir pour mes enseignements de programmation en BTS. Il est complètement ouvert, ce qui signifie que vous pouvez modifier le châssis à volonté, facilement (j'ai pas mal bossé sur le châssis, conçu de façon paramétrique avec OpenSCAD, un logiciel libre et multi-plateforme, et pour modifier le robot, il suffit de changer certaines variables pour l'allonger, l'élargir, changer l'épaisseur des éléments, la taille des roues, le nombre de rayons, etc...),même si vous en savez pas utiliser openscad. J'explique plus en détail ce qui est configurable dans ce billet que j'ai écrit sur ce robot. L'électronique est décrite dans Fritzing (un autre logiciel libre et multi-plateforme), et donc facile a reproduire, adapter, modifier. Le cœur du robot est un Arduino nano, carte open hardware, et se programme avec le logiciel Arduino, lui aussi libre et multi-plateforme. On peut par dessus rajouter un Raspberry pi, et utiliser Raspbian, une Debian pour le Raspberry pi, pour programmer en C, python, java, bash...

 

Le plus de pièce possibles ont été pensées pour être faites à l'imprimante 3D : le châssis, les roues, les pneus, le support du servomoteur...

En dehors de R.Hasika, c'est mon robot le plus "pensé", au sens ou chaque élément a été pensé, au point que je pourrai fournir une fiche d'assemblage précise plutôt que des indications générales. R.Hasika a eu plus de temps de conception, et est supérieur en divers points, mais c'est un robot plus complexe, plus cher, et surtout qui n'est pas encore opérationnel (mais presque!)

 

post-1-0-02616800-1460574446.jpg

 

Ou en est t'il de son développement?

R.Ian n'est pas terminé, et est toujours en développement. Toutefois, il est complet en terme de fonctionnalités, puisque l'électronique est faite, il y a un châssis fonctionnel, avec un ensemble de pièces adaptées, et il existe un prototype fonctionnel. Il reste des choses à faire, mais elles ne sont pas indispensables au fonctionnement du robot. Des améliorations sont prévues, mais elles ne sont pas non plus nécessaires pour avoir un robot fonctionnel.

Je continue donc à travailler dessus, et je ferai les mises à jour sur toutes les ressources dédiées à ce robot. Mais n'importe qui peut dès maintenant faire son R.Ian et s'en servir. Quand tout ça sera fini et peaufiné, je ferais un gros tutoriel, comme j'avais fait pour R.Cerda, sauf que cette fois tout y sera, et que ce sera bien plus facile et moins cher :)

 

Ressources

R.Ian étant open-source et open-hardware, vous pourrez trouver tous les éléments relatifs à celui ci sur le Github du projet (fichiers pour l'impression 3D, fichiers scad pour les modifier, fichiers fritzing, codes d'exemples, etc). 

Vous trouverez ici la page centrale du projet R.Ian en Français, sur mon blog

Un billet rapide de présentation ici (avec une galerie), avant de rentrer dans le vif du sujet avec ce billet expliquant la conception du châssis et les contraintes que je me suis fixées pour créer ce robot. Pour les anglophones, j'ai écrit beaucoup de choses sur ce robot sur la page de projet de R.Ian sur Hackaday.io, dont des détails que je n'ai pas encore commentés en français  (mais ça vient). Vous trouverez également la page du projet R.Hasika sur le même site, même si pour celui la, il y a beaucoup de ressources en français sur mon wiki.

Enfin, dans ce sujet, je reviendrai sur l'évolution du projet et les avancées, mises à jour, etc...

 

Au passage, sur le github, en cliquant sur les fichiers STL, vous pouvez les visualiser en 3D et ainsi voir les différentes pièces du robot. Par exemple, les pneus crantés, les pneus lisses, les roues, le châssis...

 

J'espère avoir captivé votre intérêt, et je souhaite que ce projet puisse être un robot réellement facile à faire par un débutant qui souhaite apprendre la robotique. Je vais continuer à travailler pour qu'il soit possible pour  quelqu'un n'ayant jamais touché à cela de créer son premier robot. Au départ, je l'ai pensé pour mes cours de programmation, mais souvent les élèves/étudiants veulent faire leur robot, donc j'ai fait en sorte qu'il soit facile à faire, et accessible, même pour un collégien. Et pour les plus jeunes encore, vu le prix, ça ne sera pas trop dur de convaincre les parents (même s'il faudra qu'ils trouvent un fablab pour imprimer les pièces).

 

Bref, l'objectif c'est que ce soit réellement clés en main, et facile à construire. Mais ça ne veut pas dire simpliste, puisqu'on pourra utiliser de plus en plus de capacités du robot en progressant, voire en rajouter par la suite.

 

A bientôt pour la suite :)


Mon avis sur la Printrbot metal, une imprimante 3D abordable

07 décembre 2014 - 06:17

Bonjour à tous!

Pour faire des robots, il faut des composants électroniques, mais aussi divers composants

mécaniques, structurels, etc. 

On peut en acheter, ou les fabriquer, si on a les bons outils.

Aujourd'hui je voudrais justement parler d'un tel outil : l'imprimante 3D.

 

Le principe général est le suivant : un filament de plastique est chauffé et poussé

dans une tête par un moteur, et le plastique fondu est déposé ou c'est nécessaire.

La tête d'impression se déplace selon 3 axes : X,Y et Z. De ce fait, on peut construire

des formes dans un espace tridimensionnel.

 

On peut donc fabriquer des objets, par exemple des engrenages, des fixations pour

servomoteurs, etc.

 

Après cette petite introduction, je vais vous parler d'un modèle précis : la printrbot simple metal.

J'en ai acheté une il y a quelques mois, et je vais vous donner mon avis dessus.

 

Cette imprimante est fabriquée par printrbot, une entreprise fondée suite à un kickstarter. Du

coup, c'est du open hardware, et le logiciel est open source. Il existe un modèle en dessous,

la simple maker, vendue à 350$. Celle ci est en bois, et d'après ce que j'en ai lu, moins fiable

et moins performante, mais elle est à un prix défiant toute concurrence.

 

Le modèle dont je vais vous parler est le modèle au dessus, la "simple metal". Par rapport à l'autre,

elle est faite tout en metal, ce qui la rend plus solide, ce qui permet une plus grande vitesse d'impréssion.

Elle vaut 530$ en kit, et 600$ assemblée et calibrée.

Voici une image :

simple-wht-left.png

 

J'ai pris le modèle en kit, et j'ai bien passé une bonne douzaine d'heures dessus. Si vous n'êtes pas patient, que vous ne vous sentez pas le coeur de vous lancer dans une telle tâche, prenez le modèle assemblé. Pour ma part, j'ai choisi le kit pour voir comment ça marche :)

La doc est bien faite, et illustrée, mais pas parfaite, on se pose quelques petites questions, et j'ai par exemple fait quelques petites erreurs, qui ont fait que j'ai du démonter quelques bouts pour les remonter ensuite. Mais je suis parvenu à faire l'ensemble fonctionner.

 

Une fois le tout assemblé, on se sent un peu lâché dans la nature. En fait il faut continuer à suivre le guide pour installer le logiciel, repetier host, puis calibrer l'imprimante en essayant d'imprimer des petits trucs. Pour la partie calibration, au début je ne comprenais pas trop ce que je faisais, j'y ai passé pas mal de temps, mais maintenant je saurais refaire les réglages très vite.

 

Par rapport à d'autres imprimantes, celle ci se règle une bonne fois, et s'auto ajuste. D'autres requierent une calibration à chaque impression. Ici, rien de tout ça, et même si l'imprimante n'est pas totalement à niveau, ce n'est pas bien grave. sa rigidité permet de compenser. J'ai même pu la bouger pendant une impression sans soucis.

 

Bref, passée une première phase ou on ne sait pas trop si c'est bien réglé ou pas on peut commencer à imprimer des trucs. Pour ma part, j'ai lancé des impressions sans être sur des réglages, car je ne comprenais pas trop ce que ça changeait. 

Heureusement, si on fait gaffe, on trouve les fichiers de config' sur le site du fabriquant.

Maintenant, je sais à quoi servent les réglages, et j'ajuste à la main selon ce que je veux (vitesse de déplacement, taux de remplissage des objets, températures, taille des couches etc).

 

En conclusion sur les débuts : l'imprimante est documentée, mais on n'est pas forcément sur au début d'avoir tout bien fait. Ceci dit, on peut tenter des impressions  quand même, tout ne sera pas super précis au début, mais ça permet déjà de faire des choses. Et on apprend le reste sur le tas sans trop de soucis. Il existe de fait sans doute des imprimantes plus "plug and play", mais celles dont j'ai entendu parler sont largement plus chères (2x, 3x plus chères ou pire encore), pour des performances pas nécessairement supérieures.

 

Le modèle assemblé est livré pré-calibré donc ça évite certaines petites difficultés.

 

 

 

 

Par la suite, on finit donc par tout bien régler, et on imprime des trucs. Je vais donc vous donner mon avis à ce niveau.

J'ai fait quelques impressions en PLA, le plastique pour lequel l'imprimante est pensée. C'est un plastique à base de mais, solide,

résistant à l'eau, etc, bref, du plastique. Il est réputé tenir la chaleur moins bien que l'ABS toutefois, donc pas forcément

a mettre dans sa voiture au soleil.

 

Bref, avec le PLA, j'ai de bons résultats, les formes sont assez nettes, et le rendu est plutôt bon. Les trous ne sont pas forcément parfaits, mais

ça s'arrange facilement. Le positionnement est très bon, et du coup les pièces s’emboîtent bien.

 

J'ai essayé egalement avec de l'ABS, plus résistant à tout, mais plus difficile à imprimer. En effet, il faut un lit chauffant pour imprimer l'ABS, idéalement.

C'est à dire que le plateau d'impression devrait être chauffé aux alentours de 100°C, et la température d'extrusion est de 230-240°C contre 200-210 pour le PLA.

Je n'ai pas de lit chauffant (enfin, j'en ai un que je n'ai pas installé pour le moment), mais j'ai testé quand même.

La qualité d'impression est comparable à ce qu'on obtient avec le PLA, sauf que ça sent le plastique fondu.

 

Les détails sont donc aussi fins, bref, pas de différence notable à ce niveau.

EN revanche, sur la géométrie de l'objet, une différence est à noter dans mon cas (CAD sans lit chauffant) : les coins des objets ont tendance à

se relever. Dans certains cas ce n'est pas grave, dans d'autres c'est gênant, car la base de l'objet n'est pas plane. Avec les formes circulaires,

c'est bien moins marqué.

 

Je vous donnerai des retours quand j'aurai installé le lit chauffant. Depuis mon achat, une option pour avoir un lit chauffant est proposée par le fabriquant,

pour 100$ de plus. Si vous voulez imprimer de l'ABS, prenez la, car ça règle les deux défauts du modèle de base. Le premier étant l'absence de lit chauffant,

le second celui que je vais décrire.

 

La surface d'impression doit être aussi plane que possible. Celle par défaut est fabriquée à partir d'une épaisse tôle d'acier probablement mise en forme

par une emboutisseuse. C'est plutôt bien (moi je vois du plat), mais en pratique, j'ai fini par comprendre après de multiples calibrations qu'il y avait une dfférence

de un ou deux dixièmes de millimètres, ce qui est raisonnable, mais pas parfait. Du coup selon la zone, ou vous imprimez, il faut ajuster les réglages, ou accepter une première couche de qualité plus faible. On s'en sort, mais ce n'est pas parfait.

Le lit d'impression fourni avec l'option "lit chauffant" est fait d'une pièce d'aluminium usinée, d'une planéité parfaite. D'après les retours que j'ai lu, c'est radicalement différent.

La pièce est vendue 45$, si j'avais su je l'aurais prise. J'en prendrai une avec ma prochaine commande de filament.

 

Attention si vous prenez le lit chauffant : l'alim fournie de base ne suffira pas, il en faut une deux fois plus puissante. Pour ma part, je vais utiliser une alim ATX de PC.

 

Autre petit point négatif : par défaut, rien n'est fourni pour tenir le rouleau de filament. Si on le pose simplement, le filament s’emmêle, et c'est le bordel. J'ai raté une impression à cause de ça. Depuis j'ai fabriqué un dévidoir, et je n'ai plus de problèmes. Si vous n'êtes pas bricoleur, prenez un support pour le filament. (sinon un tuyeau assez solide, une tige, ou autre chose fixé sur deux montants fera l'affaire, dans mon cas, deux planchettes de bois et un petit tuyeau en PVC).

 

 

J'ai également commandé du ninjaflex, un autre type de filament. Cette fois ci, il s'agit d'un filament souple, un peu comme du caoutchouc. Du coup on peut imprimer des choses souples, élastiques. Pour ma part, je prévois d'imprimer des pneus et des chenilles pour mes robots, et ma compagne veut faire une coque de téléphone.

Il y a une petite pièce à imprimer pour permettre un bon approvisionnement de plastique avec le filament souple (il y a un tutoriel sur adafruit). J'ai vu des vidéos, et ça m'a l'air convaincant. Je vous ferai des retours dès que j'aurai testé.

 

 

Bref, en conclusion générale :

C'est une très bonne imprimante 3D. J'ai des résultats aussi bons, voire meilleurs que ceux d'imprimantes bien plus chères (j'ai pu comparer), mais dans l'idéal il faudrait le lit chauffant, et/ou le lit d'impression en alu usiné (fourni avec le lit chauffant).

 

Sans lit chauffant, privilégiez le PLA ou le ninjaflex (a ce que j'en ai lu ça s'imprime sans lit chauffant!).

 

La vitesse d'impression est un vrai point fort, cette imprimante est parmi les plus rapides dans cette gamme de prix, et jusqu'au double de son prix.

En pratique, les autres imprimantes sont au mieux aussi rapides, à moins d'avoir de multiples têtes d'impression.

 

Du fait du coté open hardware/open source, il est possible et facile de modifier des aspects, par exemple une plus grande table d'impression, l'ajout d'un lit chauffant sans passer par le kit officiel, ou encore l'ajout d'une seconde tête d'extrusion, etc.

 

La qualité de fabrication est TRES bonne, l'ensemble étant très solide, rigide, et résistant à quelques mauvais traitements.

Je viens de passer une semaine à la trimbaler chaque jour dans une caisse remplie de robots pour la fête de la science, et elle n'a pas bronché.

 

En gros, dans cette gamme de prix, je n'ai pas encore vu de concurrente, les autres sont généralement à 1000$ au moins pour des spécifications proches.

 

Il existe donc mieux mais bien plus cher, moins cher mais moins bien, mais pas grand chose de comparable à un prix proche, et qui soit disponible

(il y a des tas de kickstarters intéréssants et prometteurs. Mais là, c'est une boite qui vous expédie votre truc en quelques jours, et qui a des stocks!).

 

SI je devais reprendre une 3D, ce serait la même, avec le lit chauffant. Sinon, avec un peu plus de budget, ce serait la "metal printrbot plus", qui est leur dernière imprimante, qui fait tout comme celle ci, mais en plus grand : 

la zone d'impression passe à 25*25*25cm au lieu de 15*15*15cm, et il y a l'option double extrudeuse sans avoir a bricoler :)

 

En pratique, les 15*15*15cm me suffisent pour le moment, sinon je modifierai mon imprimante. 

 

Bref, c'est un produit que je vous recommande vivement, j'en suis très satisfait, malgré ses petits défauts. A bientôt pour des retours sur le lit chauffant et le ninjaflex quand j'aurai imprimé mes chenilles avec!


Programme REA : Rover d'Exploration Autonome

07 juin 2014 - 07:00

Bonjour à tous!
Certains d'entre vous me connaissent peut être déjà, ou alors certains de mes projets, comme R.Cerda,pour lequel j'ai fait un tuto, ou encore mon projet de robot à haute autonomie.
J'ai construit divers robots "comme ça", sans planifier grand chose, pour apprendre. Aujourd'hui, je me dis que je pourrais progresser de façon plus structurée, plus scientifique, un peu comme un projet de recherche (c'est mon métier après tout :) )

Je démarre donc mon programme REA, pour Rover d'Exploration Autonome. Le but est de faire un rover capable de se déplacer seul dans un environnement donné de façon autonome. On pourra noter que ce que j'annonce
a déjà été réalisé dans une certaine mesure par divers de mes projets précédents. Cependant, je souhaite pour ce projet tout reprendre depuis le début, et mener les évolutions comme un projet de recherche classique
(en m'inspirant, sans bien sur prétendre approcher ce niveau, du programme MER --Mars Exploration Rover-- de la NASA).

J'aborde ce projet sous deux axes :
  • L'axe scientifique;
  • L'axe pédagogique.

Pour l'axe scientifique, soyons modeste, je ne vais probablement rien "inventer" de nouveau. Je l'aborde toutefois comme si c'était le cas, comme si j'étais une agence spatiale ou autre, ayant pour objectif de produire un rover autonome pour exploiter divers lieux (sauf que pour moi, ce sera le jardin, ou le toit ;) ). De mon point de vue, cette approche est plus amusante, et sera également plus distrayante pour les lecteurs.

L'axe pédagogique quand à lui existera du fait de ma volonté de tout documenter, pour pouvoir créer des guides, tutoriels, fiches, etc. J'ai en effet créé un club informatique/robotique à ma fac, et j'ai pu intégrer à mes enseignements en Licence 1 quelques séances de programmation de robots (les ZUMO, de pololu). Cette approche de la programmation a beaucoup intéressé les étudiants (étudiants en informatique, je précise. Ils n'ont donc pas de cours ou de connaissances en robotique. Les robots me servent de support pour l'apprentissage à la programmation), et certains s'intéressent aux robots. Je veux donc développer des ressources leur permettant de se lancer dans la partie "hardware" du robot, puisqu'ils n'auront vu que la programmation de ceux ci. D'autre part, je pense que quelques tutoriels complets et explicites sur la réalisation de robots pourront sans doute intéresser les novices, et puisque je suis amené à exploiter pas mal de matériel (j'ai un sacré stock de pièces, probablement de quoi faire entre 10 et 20 robots indépendants en même temps, et beaucoup de variantes), mes tests de tel ou tel équipement pourraient intéresser des personnes moins débutantes.


En bref, je vais donc m'atteler à cette tâche ces temps ci, de façon continue (c'est un projet au long cours), en prenant soin à chaque fois de mettre des explications claires et détaillées, et en justifiant tous mes choix.
Je partirai donc du principe que quelqu'un sans connaissance préalable dans le domaine pourra suivre le premier tutoriel, et qu'au pire, un tutoriel donné ne nécessitera que la lecture du/des précédents pour pouvoir suivre.
Donc le lecteur ne sera pas laissé avec des zones d'ombres, à devoir faire des recherches sur le net pour comprendre. Bien entendu, je ne pourrai pas tout détailler en profondeur, par exemple si on utilise du SPI ou de l'I2C, on verra comment s'en servir (quand on en aura besoin), mais pas forcément le détail précis du protocole. J'essaierai toutefois de mettre des liens pour ceux qui sont intéréssés par les détails (j'ai trouvé de très bons articles sur sparkfun expliquant ces protocoles par exemple).

Logiquement, les capacités et les performances des robots iront en s'améliorant, mais ceux ci deviendront de plus en plus complexes. Je m'attellerai toutefois à avoir une approche modulaire : on essaiera pour un problème une solution spécifique, dont on estimera la qualité, avant de l'exploiter ou non. Divers prototypes de robots ressortiront de tout ça, ce qui fait que selon ce que l'on recherche, il sera possible de s'orienter vers telle ou telle approche.

Je vais dans tous les cas significativement augmenter la qualité des articles/guides, qui jusqu'ici étaient un peu fouillis, afin d'être clair, concis, et d'avoir une structuration facilement compréhensible dans la progression. Les précédents tutoriels traduisaient simplement ce que j'étais parvenu à obtenir, sans plus. Ici, nous verrons pourquoi choisir telle ou telle solution, des alternatives, et nous progresserons dans le programme en résolvant les problématiques au fur et à mesure.

Dans l'immédiat, les premières étapes seront de s’intéresser à :
  • La propulsion du rover;
  • Les circuits de commande;
  • L'alimentation en énergie;
  • La gestion de capteurs;
  • la conception d'un châssis
  • La programmation d'algorithmes d'évitement d'obstacles.

Ces 6 premières étapes permettront de disposer d'une base simple, fonctionnelle, et extensible. On notera encore une fois que j'ai déjà traité en partie ces points dans d'autres tutoriels, mais le but sera ici d'aller au fond des choses, et d'être capable d'adapter totalement la base aux contraintes voulues (par exemple, je ferai de petits rovers, mais normalement, la méthodologie sera applicable pour un rover de 10kg, en ajustant les composants en conséquence). Ces problématiques me semblent de toutes façons constituer un noyau de fonctionnalités nécessaires à tout rover autonome.

Par la suite, je me pencherai sur des problématiques plus avancées, telles que la mesure du déplacement effectué, le positionnement, la cartographie de l'environnement, la gestion de l'énergie, la recharge automatique du rover, les communications sans fil, etc.

A bientôt donc, pour la première étape, sur la propulsion du rover!