Niryo One : Présentation de la Version Améliorée ! (octobre 2017)

Bonjour à tous,

Nous sommes de retour avec de nombreuses bonnes nouvelles ! Durant tout l’été nous avons travaillé dur pour améliorer Niryo One de multiples façons. Il est maintenant l’heure de vous présenter les nouveautés ! Sans plus attendre, une petite vidéo de Niryo One :

En avril 2017, nous nous sommes rendu compte que l’architecture électronique du robot n’était pas très stable, et les moteurs pouvaient bénéficier d’améliorations non négligeables.

Nous avons donc décidé de changer complètement certaines parties du robot, pour le rendre plus stable, robuste, et augmenter le nombre de fonctionnalités.

Nous allons vous montrer par la suite, étape par étape, ce qui a changé dans Niryo One.

Les nouvelles fonctionnalités

Avant de commencer les explications techniques, voici une liste des améliorations en terme d’utilisation :

  • Les trajectoires sont beaucoup plus fluides et précises.
  • Niryo One est globalement plus stable et robuste.
  • Le robot est beaucoup plus facile à assembler, avec moins de câbles, et de meilleures connexions.
  • Niryo One peut s’arrêter lorsqu’il rencontre un obstacle, ou que la charge soulevée est trop lourde. Après avoir été calibré, si certains moteurs ratent des pas (ex: charge trop lourde), l’exécution de la trajectoire sera annulée et vous pourrez la recommencer.
  • Calibration automatique : Niryo One sera capable de se calibrer de façon indépendante, à chaque fois que vous l’allumez. Vous pouvez donc enregistrer une séquence, le robot la rejouera de la même façon à chaque fois.
  • Vous pouvez éteindre le robot ou le faire passer en mode routeur (Wi-Fi) simplement en appuyant sur un bouton présent sur le robot.
  • Une LED au dos du robot vous indiquera l’état de la connexion (Wi-Fi + moteurs).
  • Un panneau de connexion supplémentaire vous permettra d’ajouter d’autres composants (capteurs, entrées/sorties numériques, …)

Passons maintenant aux détails techniques ! Nous allons vous donner ici un aperçu de chaque partie. Des détails plus poussés viendront dans un futur proche.

Une toute nouvelle architecture électronique

Voici une photo avant/après de l’intérieur du robot :

Niryo One vu de l'intérieur - ancienne architecture electronique

Avant

Niryo One vu de l'intérieur - nouvelle architecture electronique

Après

Auparavant nous contrôlions les moteurs directement depuis une carte Arduino Mega et un shield RAMPS 1.4. Cette combinaison est particulièrement adaptée au monde de l’impression 3D (par exemple pour les imprimantes 3D RepRap), mais n’est pas idéale pour un bras robotisé 6 axes.

Avec cette ancienne architecture nous avions besoin de beaucoup de câbles pour les moteurs, et le contrôle était quelque peu limité. Tous les moteurs étaient contrôlés depuis la même carte. Nous avons eu des problèmes à cause de la surchauffe de certains drivers à l’intérieur du robot. La communication entre l’Arduino Mega et la carte Raspberry Pi 3 en I2C n’était certainement pas la meilleure option.

Avec ces problèmes et limites, nous avons découvert de nombreuses pistes d’améliorations. Nous voulions également rendre Niryo One le plus proche possible d’un vrai robot industriel.

Une toute nouvelle architecture électronique était donc requise, et en voyant tous les avantages que vous pourriez en tirer en terme d’utilisation, nous avons franchi le pas.

Voici donc les améliorations, présentées point par point :

Moteurs Dynamixel

Nous avons remplacé les servomoteurs basiques par des servomoteurs intelligents Dynamixel XL-320 (axes 5 et 6). Moins de câbles à gérer, une meilleure stabilité, un retour de position, et une fonctionnalité très intéressante pour les pinces. Toutes les pinces Niryo équipées de Dynamixel peuvent attraper n’importe quel objet sans avoir besoin de connaître sa largeur, grâce au retour de charge.

Moteurs Dynamixel sur Niryo One

Cette amélioration augmente également l’étendue des axes 5 et 6, les faisant passer de 180° à presque 300°.

Moteurs pas à pas

Les moteurs pas à pas restent les mêmes, mais la façon de les contrôler est complètement différente.

Tous les moteurs pas à pas était auparavant directement alimentés et contrôlés depuis la carte Arduino Mega + shield RAMPS 1.4.

Dorénavant, chaque moteur a sa propre carte de contrôle, qui est une carte que nous avons créée et fabriquée. Cette carte est compatible Arduino, elle possède un microcontrôleur plus puissant (SAMD21, le même que sur l’Arduino M0), un driver pour le moteur, et un capteur de position magnétique (AS5600).

Chaque moteur est donc contrôlé de façon indépendante, avec aussi un contrôleur interne, ce qui se rapproche grandement d’un contrôle de robot industriel.

Nous avons également remplacé les deux moteurs de l’axe 2 par un seul moteur plus grand et plus puissant.

Un nouveau toît pour la Raspberry Pi 3

Après déjà tellement de changements, n’ayez crainte au sujet de la carte Raspberry Pi 3 : elle est toujours là !

Nous avons créé un shield pour Raspberry Pi 3. Ce shield, en collaboration avec les cartes compatibles Arduino sur les moteurs pas à pas, remplace l’architecture précédente (Arduino Mega + RAMPS 1.4).

Niryo extention pour Raspberry Pi 3 (shield)

Le shield a deux fonctionnalités principales :

  • Gérer la réception de l’alimentation, et alimenter tous les composants électroniques
  • Gérer la communication entre la carte Raspberry Pi 3 et les moteurs, capteurs, etc.

Le bus de communication Dynamixel (TTL half-duplex) est directement relié à ce shield, de même que pour le bus CAN (cf prochain paragraphe). Nous utilisons les pins GPIOs du Raspberry Pi 3 pour communiquer avec ces bus.

Comme vous pouvez le constater, le contrôle de tous les composants se fait maintenant directement depuis la carte Raspberry Pi 3.

Une meilleure communication avec les moteurs

Avant, chaque moteur avait son propre câble (composé d’au moins 4 fils), et le contrôle se faisait en boucle ouverte. Pour obtenir une boucle fermée il fallait ajouter encore plus de fils pour les différents capteurs.

Maintenant, on ne trouve plus qu’un seul câble chaîné pour l’ensemble des moteurs Dynamixel, et un autre pour l’ensemble des moteurs pas à pas. Ce câble inclut la partie puissance et la partie communication (dans les deux sens). Cela fait donc seulement 2 câbles à l’intérieur du bras robotisé !

Les moteurs Dynamixel reposent sur une communication TTL half-duplex, avec un connecteur 3 fils chaîné à travers tous les moteurs.

Pour alimenter, et communiquer avec les nouvelles cartes Niryo présentes sur les moteurs pas à pas, nous avons choisi d’utiliser un bus CAN. Si vous ne connaissez pas CAN, sachez que c’est un protocole de communication très stable, aussi utilisé dans l’automobile et dans le domaine de la santé.

Chaque moteur a un identifiant unique sur le bus CAN (1 à 4), et peut recevoir des commandes de la carte Raspberry Pi 3, mais aussi envoyer des informations utiles. (position actuelle, température du driver, …)

Un panneau de connexions pour des projets Do-It-Yourself

Nous savons que vous aimez les projects “Do-It-Yourself”, nous avons donc ajouté un panneau de connexion au dos du robot. Le panneau est connecté à de nombreuses pins GPIOs du Raspberry Pi 3.

Niryo One - Panneau de connexion externe

Vous pouvez ajouter un nouveau composant sur le bus CAN, contrôler un autre moteur Dynamixel, ou encore utiliser les entrées/sorties numériques.

Nous développerons des parties de logiciel (début 2018) pour vous permettre d’utiliser ces entrées/sorties facilement, que ce soit avec des communications ROS, ou une application sur le logiciel bureau de Niryo.

…un logiciel bureau ?

Ce sujet n’est pas lié à l’électronique, mais fait partie des nombreuses améliorations que nous avons faites. Nous sommes partis sur un logiciel bureau plutôt que sur une application tournant dans un navigateur web.

Cela ne change strictement rien à l’application, mais nous a permis d’accéder à plus de fonctionnalités, qui ne sont pas disponibles sur un navigateur comme Firefox ou Chrome. Vous pourrez également utiliser le logiciel sans être connecté à Internet, ce qui est une condition obligatoire pour certaines applications.

Ce logiciel sera disponible pour Windows, Mac et Linux. Il ne demandera aucune installation. Téléchargez-le, lancez-le, et c’est tout ! Nous donnerons plus d’informations sur ce sujet un peu plus tard.

Plus facile à assembler

Moins de câbles signifie moins de difficultés lors de l’assemblage, et moins de problèmes de connexion par la suite. En parlant de connexion, nous avons amélioré les connectiques. Vous pourrez facilement “clipser” les câbles sans aucun problème, et n’aurez aucun mal à trouver le bon endroit pour connecter le câble.

L’intérieur de la base de Niryo One est aussi moins chargée. Une fois le robot assemblé, vous n’aurez plus qu’à fixer la carte Raspberry Pi 3, ajouter le shield Niryo, et connecter la partie puissance et les câbles. (Ceci est déjà fait pour vous dans la version “Fully Assembled”)

Niryo One contient tous les éléments de ROS-Industrial

Dans un article précédent, nous avons expliqué comment nous utilisons Robot Operating System (ROS) sur la carte Raspberry Pi 3, pour contrôler Niryo One.

Grâce à la nouvelle architecture, nous sommes en mesure d’envoyer des commandes et de recevoir de l’information très rapidement, avec des contraintes presques temps réel. Qu’est ce que cela signifie ? Nous pouvons donc utiliser des contrôleurs ROS beaucoup plus avancés, qui adaptent la commande en fonction de l’information reçue.

Nous avons ajouté ros_control à la liste des paquets ROS utilisées sur Niryo One. Le robot a maintenant une parfaite correspondance avec ROS-Industrial :

  • URDF pour la description du robot
  • Moveit! pour la planification de mouvements
  • ros_control avec un contrôleur de trajectoire (interpolation quintique)
  • Interface électronique en boucle fermée entre les moteurs et ros_control
  • … Et bien sûr tous les autres paquets ROS made in Niryo !

Roadmap et planning de livraison

Nous avons maintenant terminé le développement des fonctionnalités principales de Niryo One, et sommes fin prêts à commencer la production ! Nous avons prévu de commencer les livraisons (Kickstarter + préventes) à partir de Novembre 2017. Niryo One sera ensuite mis en vente à partir de Février-Mars 2018.

Nous fournirons également toute la documentation nécessaire : guides d’explication, notice de montage, …

Les fichiers open sources (STL et code) seront bientôt publiés, principalement sur github. Suivez-nous sur github pour être sûr de ne rien rater.

L’application bureau Niryo sera disponible après les premières livraisons. Nous lancerons également une application Android, probablement à la fin de l’année, ou début 2018.

Nous allons continuer d’améliorer le logiciel à l’intérieur du robot, et toutes les autres applications qui gravitent autour. De nombreuses mises à jours sont prévues pour améliorer Niryo One pendant les mois qui suivent. Nous comptons sur vous également pour nous donner un retour utilisateur, et pourquoi pas participer au développement avec la communauté open source !

Niryo One a désormais une nouvelle architecture électronique qui le rend très proche d’un robot industriel complet.

Vous pouvez utiliser Niryo One dans de nombreux domaines : apprentissage et enseignement de la robotique, formation professionnelle, etc. Vous pourrez aussi créer par vous-mêmes une petite ligne d’assemblage.

N’oubliez pas de vous inscrire à la newsletter Niryo pour ne rien manquer 😉

Click edit button to change this text.

2017-10-17T12:59:36+00:00

2 Comments

  1. J-P Danguy octobre 17, 2017 at 2:38 - Reply

    Bonjour,

    je suis contributeur. Qu’en est-il du Mini-One? Quand sera-t-il livré?
    Merci d’avance.
    Cordialement, jpd

    • Edouard Renard octobre 17, 2017 at 4:52 - Reply

      Bonjour J-P,

      Le mini Niryo One sera livré en même temps que le grand. Nous avons aussi fait plusieurs modifications et ajouté une interface logicielle.

Leave A Comment