Multithreading en mode apprentissage

V.1.1

Multithreading en mode apprentissage

Difficulté : moyenne

Temps : ~20 min

Note

Ce tutoriel est fonctionnel à partir de :
La version v3.0.0 de la ned_ros_stack
La version v3.0.0 de Niryo Studio
La version v3.1.0 de PyNiryo

Si vous utilisez un Niryo One, référez vous à ce tutoriel.

ROS Logo Ned

Introduction

Cette documentation contient l’ensemble des informations vous permettant d’apprendre à utiliser le MultiThreading en mode apprentissage sur Ned/Ned2.

Avec cette application, contrôlez en mode apprentissage un premier Ned/Ned2 (appelé « leader ») et un second Ned/Ned2, (appelé « follower ») reproduira les mêmes mouvements que le robot leader.

Il est aussi possible d’utiliser le MultiThreading en mode apprentissage avec plusieurs robots followers.

Ce dont vous aurez besoin

Afin de réaliser cette application, vous aurez besoin d’au moins un vrai Ned/Ned2 (mais si vous le pouvez, il est plus adapté de disposer de plusieurs Ned/Ned2). Un premier est le leader, et les autres sont les followers. Assurez vous que tous les robots sont connectés à internet (il est préférable d’avoir une connexion ethernet, pour des sujets de rapidité d’exécution).

Si vous n’utilisez qu’un seul vrai Ned/Ned2, le second sera en simulation. Vous pouvez suivre ce lien pour apprendre comment utiliser un robot Niryo en simulation.

Partie matérielle

Note

Pour cette application, vous aurez besoin de mettre deux robots sur une base solide.

Partie logicielle

  • Installer la bibliothèque PyNiryo :

Avec la commande suivante :

pip install pyniryo
  • Se connecter aux robots :

Pour cela, vous n’avez qu’à mettre les adresses IP des robots que vous utilisez dans le script « robot_ned.py » de cette manière :

robot_leader_ip = "ip_of_the_leading_robot" # ip of the Leading robot
robot_clients_ip = ["list_of_all_the_follower_ip"] # list of ips of the followers

Comment lancer cette application

Danger

Avant de lancer cette application, assurez vous que l’environnement autour des robots est dégagé et que les robots sont correctement calibrés (utilisez Niryo Studio pour cela).

Pour lancer cette application, vous devez ouvrir un terminal, aller dans le dépôt où se trouve le script « robot_ned.py » puis le lancer.

python robot_ned.py

Comment fonctionne-t-il

Ce démonstrateur utilise le système MultiThreading expliqué dans ce tutoriel: threading lib. Dans cette application, il y a deux types de robots : le leader et les followers. Le leader mesure plusieurs fois par seconde la valeur de ses axes et les envoie aux robots followers.

Les robots followers lisent continuellement les valeurs envoyées par le leader et utilise la fonction « jog_joints() » pour suivre autant que possible les mouvements du robot leader.

Astuces pour le MultiThreading en mode apprentissage

Pour obtenir un mouvement fluide, nous vous recommandons d’utiliser une connexion Ethernet pour les deux robots. Cela permet de réduire la latence entre l’ordinateur et les robots.