Bonjour à tous,
Nous sommes de retour avec de nombreuses bonnes nouvelles ! Nous avons travaillé dur cet été pour améliorer Niryo One à bien des égards. Il est temps pour vous de nous rejoindre !
En avril 2017, nous avons constaté que l’architecture matérielle globale n’était pas si stable, et que d’énormes améliorations pouvaient être apportées aux moteurs.
Nous avons décidé de changer complètement certaines parties du robot, pour le rendre plus stable, plus robuste, et augmenter le nombre de fonctionnalités.
Alors, qu’est-ce qui a changé ? Voyons étape par étape toutes les nouveautés :
Nouvelles fonctionnalités et améliorations
Avant de commencer à expliquer certains aspects techniques, voyons quelles sont les améliorations que vous pouvez obtenir, en termes de convivialité :
- Les trajectoires sont plus fluides et plus précises.
- Niryo One est globalement beaucoup plus stable et robuste.
- Le robot est beaucoup plus facile à assembler, avec moins de fils et une meilleure connexion des câbles.
- Niryo One s’arrête si un obstacle se trouve sur son chemin ou si la charge est trop lourde. Après avoir été calibré, si le robot a manqué certaines étapes (ex. : charge trop lourde), l’exécution de la trajectoire s’arrêtera et vous pourrez la relancer.
- Auto-calibration : Niryo One sera capable de se calibrer lui-même à chaque fois que vous l’allumerez. Vous pouvez enregistrer une séquence de position, et la rejouer exactement de la même manière à chaque fois.
- Vous pouvez éteindre le robot et le faire passer en mode Hotspot Wi-Fi, simplement en appuyant sur le bouton intégré.
- Une LED située à l’arrière vous donnera des informations sur l’état du robot.
- Un connecteur de panneau vous permettra d’utiliser d’autres dispositifs (comme des capteurs, des E/S numériques) avec Niryo One.
- …
OK, plongeons maintenant dans les détails techniques ! Nous vous donnons ici un aperçu de toutes les différentes parties, des informations plus détaillées seront disponibles dans le futur.
Une toute nouvelle architecture matérielle
Voici une photo avant/après de l’intérieur :
Avant :
Après :
Nous avions l’habitude de contrôler les moteurs directement depuis une carte Arduino Mega, avec un Shield RAMPS 1.4. Cette combinaison convient parfaitement au monde de l’impression 3D (par exemple avec les imprimantes 3D RepRap), mais n’est pas très adaptée à un bras robotisé à 6 axes.
Avec cette architecture précédente, nous avions beaucoup de longs fils pour chacun des moteurs, ce qui n’est pas génial, et le contrôle était quelque peu limité. Tous les moteurs étaient contrôlés à partir de la même carte. Nous avons eu des problèmes de surchauffe des moteurs pas à pas à l’intérieur de la boîte, et la communication entre l’Arduino Mega et le Raspberry Pi 3 (I2C) n’était pas la meilleure possible.
A partir de ces problèmes et de ces limitations, nous avons découvert de nombreuses possibilités d’amélioration. Nous voulions également que Niryo One soit aussi proche que possible d’un vrai robot industriel.
Une toute nouvelle architecture matérielle était nécessaire, et nous avons décidé de passer à l’action, en voyant tous les avantages que vous pourriez en tirer.
Nous allons maintenant vous montrer pas à pas tous les nouveaux trucs sympas.
Moteurs Dynamixel
Nous avons remplacé les servomoteurs de base par des moteurs Dynamixel XL-320 (pour les axes 5 et 6), des moteurs bien meilleurs et bien plus intelligents. Moins de fils à manipuler, une meilleure stabilité, un retour d’information sur la position, et une fonctionnalité intéressante pour les pinces.
Toutes les pinces Niryo équipées de moteurs Dynamixel peuvent saisir n’importe quel objet, sans avoir à connaître la largeur de l’objet, grâce au retour de charge.
Cela augmente également la portée des axes 5 et 6, de 180° à presque 300°.
Moteurs stepper
Les moteurs stepper sont les mêmes, mais la façon de les contrôler est totalement différente.
Auparavant, tous les moteurs stepper (axes 1 à 4) étaient directement alimentés et contrôlés par un bouclier Arduino Mega + RAMPS 1.4.
Désormais, chaque moteur pas à pas est équipé d’une carte personnalisée compatible avec Arduino, fixée à son dos. Cette carte possède le même microcontrôleur que la carte Arduino M0 (SAMD21). Ce microcontrôleur est plus puissant et possède de meilleures fonctions de communication que l’Arduino Uno, par exemple.
Cette nouvelle carte personnalisée de Niryo comporte un microcontrôleur, un pilote de moteur et un capteur magnétique (AS5600). Ainsi, chaque moteur est contrôlé indépendamment, avec un contrôleur interne, ce qui ressemble beaucoup à un vrai moteur de robot industriel.
Nous avons également remplacé les 2 moteurs de l’axe 2 par un moteur plus long.
Un nouveau couvercle pour la carte Raspberry Pi 3
Après avoir entendu parler de tant de changements, vous êtes peut-être nerveux à propos de la carte Raspberry Pi 3. Ne vous inquiétez pas, elle est toujours là !
Nous avons créé un bouclier personnalisé Niryo pour la carte Raspberry Pi 3. Ce shield, et les cartes compatibles Arduino sur les moteurs pas à pas, remplacent maintenant l’ancienne combinaison Arduino MEGA + RAMPS 1.4.
Le Shield a principalement deux objectifs :
- Obtenir le courant de la source, et alimenter tous les moteurs et composants électriques.
- La communication entre le Raspberry Pi 3, et tous les moteurs, capteurs, actionneurs.
Le bus TTL Dynamixel est directement branché sur le shield, ainsi que le câble du bus CAN (voir point suivant). Nous utilisons les GPIO du Raspberry Pi 3 pour communiquer avec ces bus.
Comme vous pouvez le voir, nous avons maintenant un contrôle direct sur tous les composants depuis le Raspberry Pi 3.
Une communication améliorée avec les moteurs
Auparavant, chaque moteur avait son propre jeu de câbles et le contrôle était en boucle ouverte. Pour le rendre en boucle fermée, nous avons dû ajouter un autre jeu de fils pour les capteurs.
Désormais, il n’y a qu’un seul jeu de câbles pour tous les moteurs Dynamixel, et un autre pour tous les moteurs pas à pas. Ce câble comprend l’alimentation et la communication dans les deux sens. Seulement deux câbles à l’intérieur du bras robotique !
Les moteurs Dynamixel utilisent une communication TTL half duplex, avec un connecteur à 3 fils qui est chaîné à travers tous les moteurs.
Pour alimenter et communiquer avec les nouvelles cartes personnalisées de Niryo au-dessus de tous les moteurs pas à pas, nous avons décidé d’utiliser la communication CAN. Si vous ne connaissez pas le CAN, il s’agit d’un protocole de communication très stable, qui est également utilisé dans les applications automobiles et de santé.
Chaque moteur pas à pas a un identifiant unique (1 à 4) sur le bus CAN et peut recevoir des commandes du Raspberry Pi 3, mais aussi renvoyer des données utiles (position actuelle de l’encodeur, température du pilote…).
Un connecteur de panneau pour plus de projets de bricolage
Nous savons que vous aimez les projets de bricolage, c’est pourquoi nous avons ajouté un connecteur de panneau à l’arrière du robot. Ce panneau est connecté à plusieurs Raspberry Pi GPIOs.
Vous pouvez ajouter un nouveau dispositif sur le bus CAN, ajouter des moteurs Dynamixel. Si vous souhaitez manipuler des composants de plus bas niveau, vous pouvez également utiliser les GPIO numériques.
Nous allons développer quelques parties du logiciel (début 2018) pour vous permettre d’utiliser ces entrées/sorties facilement, des communications ROS à une application sur le logiciel de bureau Niryo.
…logiciel de bureau ?
Ce sujet n’est pas lié au matériel, mais fait partie des nombreuses améliorations que nous avons apportées. Nous avons choisi de développer un logiciel de bureau, plutôt qu’une application fonctionnant dans un navigateur.
En fait, c’est exactement la même chose, mais nous avons pu ajouter des fonctionnalités qui ne sont pas disponibles sur un navigateur comme Firefox ou Chrome. Vous pourrez également l’utiliser sans être connecté à l’internet, ce qui est indispensable pour certaines applications.
Ce logiciel sera disponible pour Windows, Mac et Linux, et ne nécessitera aucune installation. Il suffit de le télécharger et de le lancer ! Nous donnerons plus d’informations à ce sujet ultérieurement.
Plus facile à assembler
Moins de fils signifie toujours moins de douleur pour assembler le robot, et moins de problèmes de connexion. En parlant de connexions, nous avons amélioré le câble pour que vous puissiez facilement brancher tous les fils au bon endroit, sans aucun problème.
L’intérieur de la base de Niryo One est également moins encombré. Une fois le bras assemblé, il vous suffira de fixer la carte Raspberry Pi 3, d’ajouter le bouclier personnalisé de Niryo, de brancher l’alimentation et les fils, c’est tout ! (Ceci est déjà fait pour vous dans le Pack Fully Assembled).
Niryo One inclut maintenant ROS-Industrial full stack
Dans un billet précédent, nous avons expliqué comment nous utilisons le Robot Operating System (ROS) sur le Raspberry Pi 3 pour contrôler le robot.
Grâce à la nouvelle architecture matérielle, nous sommes maintenant capables d’envoyer des commandes aux moteurs, et de recevoir des données, tout cela à grande vitesse, avec des contraintes presque en temps réel. Qu’est-ce que cela signifie ? Nous pouvons maintenant utiliser des contrôleurs ROS plus avancés sur le robot, qui adapteront toujours la commande en fonction des données reçues.
Nous avons ajouté ros_control à la pile de paquets ROS utilisés sur Niryo One. Le robot dispose désormais d’une pile complète ROS-Industrial :
- URDF pour la description du robot.
- Moveit ! pour la planification des mouvements
- ros_control avec un contrôleur de trajectoire conjointe (interpolation quintic spline).
- Interface matérielle en boucle fermée entre les moteurs et ros_control.
- Plus tous les autres paquets ROS de Niryo !
Feuille de route et planning de livraison
Nous avons maintenant terminé le développement de base de Niryo One, et sommes prêts à lancer la production ! Nous prévoyons de commencer à expédier toutes les récompenses Kickstarter et autres précommandes à partir de novembre 2017. Niryo One sera en vente normale à partir de février-mars 2018.
Nous vous fournirons également toute la documentation nécessaire : guides pratiques, manuel d’assemblage…
Les fichiers open source (STL et code source) seront bientôt publiés, principalement sur GitHub. Assurez-vous de suivre notre compte github pour ne pas manquer cela.
Le logiciel de bureau Niryo sera disponible après les premières livraisons.
Nous continuerons à améliorer le logiciel sur le robot, et les applications qui l’entourent. De nombreuses mises à jour seront disponibles pour continuer à améliorer Niryo One au cours des prochains mois. Nous comptons également sur vous pour nous faire part de vos commentaires, et pourquoi pas, contribuer avec la communauté open source !
Niryo One a maintenant une architecture matérielle et logicielle très très proche d’un robot industriel complet.
Nous sommes convaincus que vous pouvez utiliser Niryo One pour apprendre et enseigner la robotique, faire de la formation professionnelle, et démarrer de petites lignes d’assemblage.
Vous pouvez désormais commander Niryo One !