NiryoRobot

La classe NiryoRobot inclut les différentes APIs de la librairie PyNiryo2. Elle permet la connexion entre le programme et le robot en utilisant roslibpy. Cette interface facilite et centralise toutes les fonctions de contrôle de l’environnement Niryo et de ses produits.

NiryoRobot - Fonctions de contrôle

Cette section répertorie toutes les fonctions existantes du client du NiryoRobot

  • Se connecte à votre Ned

  • Se déconnecte de votre Ned

  • Attente

  • Accès à l’API PyNiryo2 entière

Toutes les fonctions pour contrôler le robot sont accessibles grâce à une instance de la classe NiryoRobot

robot = NiryoRobot(<robot_ip_address>)

robot.run("10.10.10.10")
robot.wait(2) # wait 2 seconds
robot.end()

Voir des exemples dans la Section Exemples

Liste des fonctions de sous-sections

Fonctions du NiryoRobot

class NiryoRobot(ip_address='127.0.0.1', port=9090)[source]

Connecte votre robot à votre ordinateur:

robot_simulation = NiryoRobot("127.0.0.1") # Simulation

robot_hotpot = NiryoRobot("10.10.10.10") # Hotspot

robot_ethernet = NiryoRobot("169.254.200.201") # Ethernet
Paramètres
  • ip_address (str) – IP du ROS du robot

  • port (int) – Port du ROS du robot

property client

Obtenir le client NiryoRos

Renvoie

Client NiryoRos

Type renvoyé

NiryoRos

end()[source]

Se déconnecte du robot et de ROS

# Start
robot = NiryoRobot("10.10.10.10")

# End
robot.end()
Type renvoyé

None

static wait(duration)[source]

Attend un certain temps

Paramètres

duration (float) – durée en secondes

Type renvoyé

None

Propriétés du NiryoRobot

class NiryoRobot(ip_address='127.0.0.1', port=9090)[source]

Connecte votre robot à votre ordinateur:

robot_simulation = NiryoRobot("127.0.0.1") # Simulation

robot_hotpot = NiryoRobot("10.10.10.10") # Hotspot

robot_ethernet = NiryoRobot("169.254.200.201") # Ethernet
Paramètres
  • ip_address (str) – IP du ROS du robot

  • port (int) – Port du ROS du robot

property arm

Accède à l’API du Bras

Exemple:

robot = NiryoRobot(<robot_ip_address>)
robot.arm.calibrate_auto()
robot.arm.move_joints([0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
Type renvoyé

Arm

property conveyor

Accède à l’API du Convoyeur

Exemple:

robot = NiryoRobot(<robot_ip_address>)
conveyor_id = robot.conveyor.set_conveyor()
robot.conveyor.run_conveyor(conveyor_id)
Type renvoyé

Conveyor

property io

Accède à l’API des I/Os

Exemple:

robot = NiryoRobot(<robot_ip_address>)
robot.io.set_pin_mode(PinID.GPIO_1A, PinMode.INPUT)
robot.io.digital_write(PinID.GPIO_1A, PinState.HIGH)
Type renvoyé

IO

property pick_place

Accède à l’API de Pick&Place

Exemple:

robot = NiryoRobot(<robot_ip_address>)
robot.pick_place.pick_from_pose([0.2, 0.0, 0.1, 0.0, 1.57, 0.0])
robot.pick_place.place_from_pose([0.0, 0.2, 0.1, 0.0, 1.57, 0.0])
Type renvoyé

PickPlace

property saved_poses

Accède à l’API des SavedPoses

Exemple:

robot = NiryoRobot(<robot_ip_address>)
pose_name_list = robot.saved_poses.get_saved_pose_list()
robot.saved_poses.get_pose_saved(pose_name_list[0])
Type renvoyé

SavedPoses

property sound

Accède à l’API du son

Exemple:

robot = NiryoRobot(<robot_ip_address>)
sound.play_sound_user("test_sound.wav")
sound_name = sound.get_sounds()[0]
sound_duration = sound.play(sound_name)
Type renvoyé

Sound

property tool

Accède à l’API de l’Outil

Exemple:

robot = NiryoRobot(<robot_ip_address>)
robot.tool.update_tool()
robot.tool.grasp_with_tool()
robot.tool.release_with_tool()
Type renvoyé

Tool

property trajectories

Accède à l’API des Trajectoires

Exemple:

robot = NiryoRobot(<robot_ip_address>)
trajectories = robot.trajectories.get_saved_trajectory_list()
if len(trajectories) > 0:
    robot.trajectories.execute_trajectory_saved(trajectories[0])
Type renvoyé

Trajectories

property vision

Accède à l’API de Vision

Exemple:

robot = NiryoRobot(<robot_ip_address>)
robot.vision.vision_pick("workspace_1", 0.0, ObjectShape.ANY, ObjectColor.ANY)
robot.vision.detect_object("workspace_1", ObjectShape.ANY, ObjectColor.ANY)
Type renvoyé

Vision

property led_ring

Accède à l’API de l’anneau LED

Exemple:

robot = NiryoRobot(<robot_ip_address>)
niryo_robot.led_ring.led_ring_flash([20,255,78], iterations = 10, wait = True, frequency = 8)
niryo_robot.led_ring.led_ring_turn_off()
Type renvoyé

LedRing

property frames

Accède à l’API du Bras

Exemple:

robot = NiryoRobot(<robot_ip_address>)
Type renvoyé

Frames

Enumerations Gloables

Liste des enumerations

class RobotErrors(value)[source]

Une enumeration

SUCCESS = 1
CANCELLED = 2
PREEMPTED = 3
FAILURE = -1
ABORTED = -3
STOPPED = -4
ROS_ERROR = -20
FILE_ALREADY_EXISTS = -30
UNKNOWN_COMMAND = -50
NOT_IMPLEMENTED_COMMAND = -51
INVALID_PARAMETERS = -52
HARDWARE_FAILURE = -110
HARDWARE_NOT_OK = -111
LEARNING_MODE_ON = -112
CALIBRATION_NOT_DONE = -113
DIGITAL_IO_PANEL_ERROR = -114
LED_MANAGER_ERROR = -115
BUTTON_ERROR = -116
WRONG_MOTOR_TYPE = -117
DXL_WRITE_ERROR = -118
DXL_READ_ERROR = -119
CAN_WRITE_ERROR = -120
CAN_READ_ERROR = -121
NO_CONVEYOR_LEFT = -122
NO_CONVEYOR_FOUND = -123
CONVEYOR_ID_INVALID = -124
CALIBRATION_IN_PROGRESS = -125
VIDEO_STREAM_ON_OFF_FAILURE = -170
VIDEO_STREAM_NOT_RUNNING = -171
OBJECT_NOT_FOUND = -172
MARKERS_NOT_FOUND = -173
ARM_COMMANDER_FAILURE = -220
GOAL_STILL_ACTIVE = -221
JOG_CONTROLLER_ENABLED = -222
CONTROLLER_PROBLEMS = -223
SHOULD_RESTART = -224
JOG_CONTROLLER_FAILURE = -225
PLAN_FAILED = -230
NO_PLAN_AVAILABLE = -231
INVERT_KINEMATICS_FAILURE = -232
TOOL_FAILURE = -251
TOOL_ID_INVALID = -252
TOOL_NOT_CONNECTED = -253
TOOL_ROS_INTERFACE_ERROR = -254
POSES_HANDLER_CREATION_FAILED = -300
POSES_HANDLER_REMOVAL_FAILED = -301
POSES_HANDLER_READ_FAILURE = -302
POSES_HANDLER_COMPUTE_FAILURE = -303
WORKSPACE_CREATION_FAILED = -308
PROGRAMS_MANAGER_FAILURE = -320
PROGRAMS_MANAGER_READ_FAILURE = -321
PROGRAMS_MANAGER_UNKNOWN_LANGUAGE = -325
PROGRAMS_MANAGER_NOT_RUNNABLE_LANGUAGE = -326
PROGRAMS_MANAGER_EXECUTION_FAILED = -327
PROGRAMS_MANAGER_STOPPING_FAILED = -328
PROGRAMS_MANAGER_AUTORUN_FAILURE = -329
PROGRAMS_MANAGER_WRITING_FAILURE = -330
PROGRAMS_MANAGER_FILE_ALREADY_EXISTS = -331
PROGRAMS_MANAGER_FILE_DOES_NOT_EXIST = -332
SERIAL_FILE_ERROR = -400
SERIAL_UNKNOWN_ERROR = -401
MQTT_PUBLISH_FUNCTION_DOESNT_EXIST = -420
MQTT_PUBLISH_FUNCTION_INVALID_ARGUMENTS = -421
SYSTEM_API_CLIENT_UNKNOWN_ERROR = -440
SYSTEM_API_CLIENT_INVALID_ROBOT_NAME = -441
SYSTEM_API_CLIENT_REQUEST_FAILED = -442
class ArmMoveCommandType(value)[source]

Enumeration de l’Arm Move Command : utilisé pour les contrôles de déplacement du bras

JOINTS = 0
POSE = 1
POSITION = 2
RPY = 3
POSE_QUAT = 4
LINEAR_POSE = 5
SHIFT_POSE = 6
SHIFT_LINEAR_POSE = 7
EXECUTE_TRAJ = 8
DRAW_SPIRAL = 9
DRAW_CIRCLE = 10
EXECUTE_FULL_TRAJ = 11
EXECUTE_RAW_TRAJ = 12

Objets Globaux

class PoseObject(x, y, z, roll, pitch, yaw)[source]

Objet Pose qui sauvegarde la paramètres x, y, z, roll, pitch & yaw

Attributs
  • x (float) – X (mètres)

  • y (float) – Y (mètres)

  • z (float) – Z (mètres)

  • roll (float) – Roulis (randian)

  • pitch (float) – Tangage (radian)

  • yaw (float) – Lacet (radian)

copy_with_offsets(x_offset=0.0, y_offset=0.0, z_offset=0.0, roll_offset=0.0, pitch_offset=0.0, yaw_offset=0.0)[source]

Créé une nouvelle position en copiant la position actuelle avec les offsets

Type renvoyé

PoseObject

to_list()[source]

Retourne une liste [x, y, z, roll, pitch, yaw] correspondant aux paramètres de la position

Type renvoyé

list[float]

property quaternion

Retourne le quaternion sous forme de liste [qx, qy, qz, qw]

Renvoie

quaternion [qx, qy, qz, qw]

Type renvoyé

list[float, float, float, float]

property quaternion_pose

Retourne la positions et le quaternion dans une liste [x, y, z, qx, qy, qz, qw]

Renvoie

position [x, y, z] + quaternion [qx, qy, qz, qw]

Type renvoyé

list[float, float, float, float, float, float, float]

static euler_to_quaternion(roll, pitch, yaw)[source]

Convertir les angles d’euler en quaternion

Paramètres
  • roll (float) – roulis en radians

  • pitch (float) – tagage en radians

  • yaw (float) – lacet en radians

Renvoie

quaternion dans une liste [qx, qy qz, qw]

Type renvoyé

list[float, float, float, float]

static quaternion_to_euler_angle(qx, qy, qz, qw)[source]

Convertir les angles d’euler en quaternion

Paramètres
Renvoie

angles d’euler dans une liste [roulis, tangage, lacet]

Type renvoyé

list[float, float, float]