IMA3/IMA4 2021/2023 P9 : Différence entre versions
(→NIRYO NED 1 AVEC PYNIRYO 1) |
(→Logiciel) |
||
Ligne 134 : | Ligne 134 : | ||
<br> | <br> | ||
+ | |||
<p style="font-weight:bold;"> | <p style="font-weight:bold;"> | ||
Premier code pour tester le fonction de base | Premier code pour tester le fonction de base | ||
</p> | </p> | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | from pyniryo import* | ||
+ | |||
+ | #l'adresse 'robot_ip_address' depend de son connection | ||
+ | #avec le robot | ||
+ | |||
+ | #si Connexion ethernet directe: 169.254.200.200 | ||
+ | #si Mode Hotspot: 10.10.10.10 | ||
+ | #si Simulation ou directement sur le robot: 127.0.0.1 | ||
+ | #si l'Ordinateur et robot sont connectés au même routeur: il faut trouver | ||
+ | #l'addresse IP du robot dans le VLAN | ||
+ | |||
+ | robot_ip_address = "10.10.10.10" | ||
+ | |||
+ | #connecter avec le robot et calibrer le | ||
+ | robot = NiryoRobot(robot_ip_address) | ||
+ | robot.calibrate_auto() | ||
+ | |||
+ | #bouger les axes | ||
+ | robot.move_joints(0.2, -0.3, 0.1, 0.0, 0.5, -0.8) | ||
+ | |||
+ | #allumer le mode learning | ||
+ | robot.arm.set_learning_mode(True) | ||
+ | |||
+ | #arrêter le connection TCP | ||
+ | robot.close_connection() | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | <ul> | ||
+ | <li> | ||
+ | Dans la ligne 1 on importe toutes les fonctions de la bibliothèque ‘pyniryo’. | ||
+ | </li> | ||
+ | <li> | ||
+ | Dans la ligne 12 on définit l’adresse du robot, qui dépend de notre connexion avec Ned. | ||
+ | </li> | ||
+ | <li> | ||
+ | Dans la ligne 15 on crée une instance de la classe NiryoRobot avec l’adresse IP correspondante pour avoir l’accès à toutes les fonctions du robot. | ||
+ | </li> | ||
+ | <li> | ||
+ | Dans la ligne 16 on démarre une calibration automatique des moteurs si les moteurs n’ont pas encore été calibrés. </li> | ||
+ | <li> | ||
+ | Dans la ligne 19 on bouge les 6 axes du robot en donnant la position des 6 axes en radians (6 floats) | ||
+ | </li> | ||
+ | |||
+ | </ul> | ||
+ | |||
+ | <p style="text-align:center;"> | ||
+ | [[Fichier:max rotation.png|600px]] | ||
+ | </p> | ||
+ | |||
+ | |||
+ | Il a y aussi le possibilité de bouger les robots avec: | ||
+ | |||
+ | 'NiryoRobot.move_pose(x, y, z, roulis, tangage, lacet)’ | ||
+ | |||
+ | x,y,z (floats) sont exprimés en mètres et roulis, tangage, lacet (floats) sont exprimés en radians | ||
+ | |||
+ | <p style="text-align:center;"> | ||
+ | [[Fichier:roulis tangage lacet.png|600px]] | ||
+ | </p> | ||
+ | |||
+ | <ul> | ||
+ | <li>Dans la ligne 22 on allume ‘learning mode’, qui nous permet de bouger Niryo au main et récupère la position</li> | ||
+ | <li>Dans la ligne 25 on arrête la connexion avec Niryo</li> | ||
+ | </ul> |
Version du 5 janvier 2023 à 20:35
Sommaire
I- Objectifs du semestre
II- Robot Nyrio NED1
III- Traitement d'image et Aphelion
IV- Perspectives
Objectifs
Se familiariser avec le Robot NED 1 et sa bibliothèque PyNiryo en testant plusieurs applications.
Utilisation de la caméra et l'obtention de plusieurs images qui vont nous servir pour le traitement d'image.
Expérimenter le traitement d’image avec le logiciel Aphelion.
Tenter de contrôler le robot à travers le logiciel Aphelion.
NIRYO NED 1 AVEC PYNIRYO 1
Le Robot
Ned est un bras robot collaboratif 6 axes conçu pour l’éducation et la recherche. Ned est conçu pour reproduire tous les mouvements requis dans les utilisations les plus avancées de l’industrie 4.0, avec une précision et une répétabilité de 0.5mm. La structure en aluminium de Ned lui confère une robustesse exemplaire, lui permettant d’accomplir avec fluidité les mouvements nécessaires à vos projets de robotique. Ce robot tire pleinement profit des capacités de la Raspberry Pi 4, avec un processeur 64-bit ARM V8 haute performance, 2Go de RAM, et une connectivité améliorée. Ned est un robot basé sur Ubuntu 18.04 et ROS (Robot Operating System) Melodic, une solution open-source complète conçue pour la robotique. Avec ROS, Ned dispose d’un ensemble de librairies permettant de concevoir des programmes les plus simples aux plus complexes pour répondre à vos besoins de manière flexible.
Les spécifications techniques des outils de Ned
Avec le système Easy Connect, changer d’outil n’a jamais été aussi simple. Il vous suffit de brancher votre outil, de connecter son câble et il est prêt à être utilisé. Ned est fourni avec un Gripper Custom. Ses mors standards peuvent manipuler de petits objets, et si vous possédez une imprimante 3D, vous pouvez créer vos propres mors.
Ned peut également être utilisé avec :
- Le Gripper Large qui a la capacité de saisir des objets plus gros tout en gardant la possibilité de se fermer entièrement.
- Le Gripper Adaptatif qui permet au robot de saisir des objets non standards avec des formes complexes (ex. un œuf).
- La Pompe à vide pour saisir des objets avec des surfaces planes et non poreuses. L’Électroaimant utile pour manipuler de un à plusieurs objets métalliques (ex. vis, boulons…).
- L’écosystème de Ned est conçu pour vous permettre de reproduire des cas d’utilisation avancés de l’industrie 4.0
- 2.7 si vous utilisez Python 2
- 3.6 si vous utilisez Python 3
Les spécifications techniques du Gripper Custom
Spécifications techniques de Ned
Interface mécanique
Ned est un bras robot 6 axes collaboratif. Il se compose de six articulations robotisées en aluminium recouvertes de plastique. Ned comprend 7 parties :
Espace de travail - Ned
Logiciel
Ned est un robot basé sur Raspberry, Arduino & ROS. Il utilise ROS afin de créer une interface entre le matériel et les liaisons de haut niveau. Voici sur le schéma suivant un aperçu global du logiciel de Ned afin de comprendre où sont placées chaque partie du logiciel.
PyNiryo est une API TCP créée avec Python, qui permet aux développeurs de créer des programmes robotiques et de contrôler les robots en communiquant à distance par le biais de leurs ordinateurs. Contrairement au Wrapper ROS Python, l’utilisateur ne nécessitera pas d’être connecté au robot par le biais d’un terminal.
Avant de programmer avec la bibliothèque PyNiryo 1, il faut avoir installé le langage de programmation Python sur son ordinateur. La version doit être égale ou supérieure:
Après, on vous montre quelque exemple du code avec PyNiryo 1:
Premier code pour tester le fonction de base
from pyniryo import* #l'adresse 'robot_ip_address' depend de son connection #avec le robot #si Connexion ethernet directe: 169.254.200.200 #si Mode Hotspot: 10.10.10.10 #si Simulation ou directement sur le robot: 127.0.0.1 #si l'Ordinateur et robot sont connectés au même routeur: il faut trouver #l'addresse IP du robot dans le VLAN robot_ip_address = "10.10.10.10" #connecter avec le robot et calibrer le robot = NiryoRobot(robot_ip_address) robot.calibrate_auto() #bouger les axes robot.move_joints(0.2, -0.3, 0.1, 0.0, 0.5, -0.8) #allumer le mode learning robot.arm.set_learning_mode(True) #arrêter le connection TCP robot.close_connection()
- Dans la ligne 1 on importe toutes les fonctions de la bibliothèque ‘pyniryo’.
- Dans la ligne 12 on définit l’adresse du robot, qui dépend de notre connexion avec Ned.
- Dans la ligne 15 on crée une instance de la classe NiryoRobot avec l’adresse IP correspondante pour avoir l’accès à toutes les fonctions du robot.
- Dans la ligne 16 on démarre une calibration automatique des moteurs si les moteurs n’ont pas encore été calibrés.
- Dans la ligne 19 on bouge les 6 axes du robot en donnant la position des 6 axes en radians (6 floats)
Il a y aussi le possibilité de bouger les robots avec:
'NiryoRobot.move_pose(x, y, z, roulis, tangage, lacet)’
x,y,z (floats) sont exprimés en mètres et roulis, tangage, lacet (floats) sont exprimés en radians
- Dans la ligne 22 on allume ‘learning mode’, qui nous permet de bouger Niryo au main et récupère la position
- Dans la ligne 25 on arrête la connexion avec Niryo