Exemplo n.º 1
0
 def __init__(self):
     logger.setLevel(logger.VERBOSE)
     self.swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'},
                           callback_thread_pool_size=1)
     self.swift.waiting_ready()
     self.swift.set_speed_factor(factor=20)
     self.swift.set_position(x=239.43, y=0, z=170)
Exemplo n.º 2
0
 def run(self):
     while self.alive:
         try:
             ports = get_ports(filters={'hwid': 'USB VID:PID=2341:0042'})
             for port in ports:
                 if port['device'] not in swifts.keys():
                     new_swift = SwiftAPI(port=port['device'])
                     new_swift.waiting_ready()
                     device_info = new_swift.get_device_info()
                     print(new_swift.port, device_info)
                     firmware_version = device_info['firmware_version']
                     if firmware_version and not firmware_version.startswith(
                         ('0.', '1.', '2.', '3.')):
                         new_swift.set_speed_factor(0.00001)
                     new_swift.set_mode(mode=0)
                     with lock:
                         swifts[port['device']] = new_swift
                 else:
                     swift = swifts[port['device']]
                     if not swift.connected:
                         with lock:
                             swifts.pop(port['device'])
         except Exception as e:
             pass
         time.sleep(0.001)
Exemplo n.º 3
0
 def __init__(self):
   self.x_pos = 0
   self.y_pos = 0
   self.tcp_rot = 0
   self.z_pos = 0
   self.pick = 0
   self.connect = 0
   self.swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
   self.swift.waiting_ready(timeout=3)
   self.swift.set_speed_factor(0.5)
   self.swift.waiting_ready(timeout=3)
   self.swift.disconnect()
Exemplo n.º 4
0
 def __init__(self):
     self.swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
     self.swift.waiting_ready()
     device_info = self.swift.get_device_info()
     print(device_info)
     firmware_version = device_info['firmware_version']
     if firmware_version and not firmware_version.startswith(
         ('0.', '1.', '2.', '3.')):
         self.swift.set_speed_factor(0.0005)
     self.speed = 110000
     self.test()
     self.board = "right"
Exemplo n.º 5
0
    def __init__(self):
        '''
        connect to UArm
        '''
        self.swift = SwiftAPI()

        self.swift.connect()
        self.swift.get_power_status()
        print(self.swift.get_device_info())

        self.swift.reset(wait=True)  # back to home position
        print('init complete')

        self.gripper_temp = 0  # keep track of gripper state
Exemplo n.º 6
0
 def connnect_thread(self, port):
     try:
         self.port = port
         self.arm = SwiftAPI(port=port, do_not_open=True)
         self.arm.connect()
         if not self.arm.connected:
             time.sleep(0.5)
         self.arm.waiting_ready()
         self.report_connected_callback({'connected': True})
         device_info = self.arm.get_device_info()
         self.report_que.put({'type': 'info', 'item': device_info})
         mode = self.arm.get_mode()
         self.report_que.put({'type': 'mode', 'item': {'mode': mode}})
         position = self.arm.get_position()
         if isinstance(position, list) and len(position) >= 3:
             self.report_que.put({
                 'type': 'location',
                 'item': {
                     'position': position,
                     'angles': None
                 }
             })
         polar = self.arm.get_polar()
         if isinstance(polar, list) and len(polar) >= 3:
             self.report_que.put({
                 'type': 'location',
                 'item': {
                     'position': [None, None, None, *polar],
                     'angles': None
                 }
             })
         angles = self.arm.get_servo_angle()
         if isinstance(angles, list) and len(angles) >= 3:
             self.report_que.put({
                 'type': 'location',
                 'item': {
                     'position': None,
                     'angles': angles
                 }
             })
         return True
     except Exception as e:
         # print(e)
         self.report_connected_callback({'connected': False})
    def __init__(self, im, pixels, initialized):
        if initialized[0]:
            self.available_pixel = pixels
        else:
            self.available_pixel = {'red':[255,0,0], 'green':[0,255,0], 'blue':[0,0,255],'magenta':[255,0,255], 'tomato':[255,99,71], 'lawn green':[124,252,0]}

        if initialized[1]:
            self.swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
            self.device_info = self.swift.get_device_info()
            self.firmware_version = self.device_info['firmware_version']
            self.swift.set_mode(0)

        if initialized[2]:
            self.image = im
            
        if initialized[3] and initialized[1]:
            print("moving")
            self.swift.set_position(x=150, y=0, z=50, speed = 10000, cmd = "G0")
#            self.swift.set_wrist(20)
#            time.sleep(1)
#            self.swift.set_wrist(90)
            print("Setting four corners; input tl, tr, bl or br")
            self.canvas_corners = self.setFourCorners()
        else:
            self.swift.set_position(x=150, y=0, z=50, speed = 10000, cmd = "G0")
            self.canvas_corners = [
            [263,50,103], #tl
            [263,-50,103],#tr
            [241,50,-12],#bl
            [241,-50,-12]]#br 
            print("Setting four corners to default coordinates")

        if initialized[4]:
            _, cap = cv2.VideoCapture(0).read()
            self.ptransform = perspective.PerspectiveTransform(cap)

        self.M = self.get_m(200,200)

        self.xScale = self.get_scale(len(im[0]),[self.canvas_corners[0],self.canvas_corners[1]])
        self.yScale = self.get_scale(len(im),[self.canvas_corners[0],self.canvas_corners[2]])

        print("Arm all set up!")
Exemplo n.º 8
0
 def __init__(self):
     self.scope = 10
     self.x0 = 160
     self.y0 = 0
     self.swift = SwiftAPI(filters={'hwid':'USB VID:PID=2341:0042'})
     self.swift.waiting_ready(timeout=3)
     # self.swift.set_speed_factor(0.005)  # if you change this, be prepared for different movements!
     self.swift.set_mode(mode=0)
     time.sleep(0.5)
     self.swift.set_servo_angle(angle=90)
     self.swift.set_wrist(angle=90)
     self.swift.set_position(x=200,y=0,z=20) # start it off with a salute
     self.swift.set_buzzer(frequency=1000, duration=1) # signal ready
     self.lstValidCharSet = ['?','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',\
                        '-','0','1','2','3','4','5','6','7','8','9']
     self.lstLetter = [self.QuestionMark, self.LetterA, self.LetterB, self.LetterC, self.LetterD, self.LetterE, self.LetterF,\
                       self.LetterG, self.LetterH, self.LetterI, self.LetterJ, self.LetterK, self.LetterL, self.LetterM, self.LetterN,\
                       self.LetterO, self.LetterP, self.LetterQ, self.LetterR, self.LetterS, self.LetterT, self.LetterU, self.LetterV,\
                       self.LetterW, self.LetterX, self.LetterY, self.LetterZ, self.Hyphen,  self.Number0, self.Number1, self.Number2,\
                       self.Number3, self.Number4, self.Number5, self.Number6, self.Number7, self.Number8, self.Number9]
Exemplo n.º 9
0
class uarm:
    def __init__(self):
        logger.setLevel(logger.VERBOSE)
        self.swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'},
                              callback_thread_pool_size=1)
        self.swift.waiting_ready()
        self.swift.set_speed_factor(factor=20)
        self.swift.set_position(x=239.43, y=0, z=170)

    def jump(self, press_time):
        self.swift.set_position(x=239.43, y=0, z=-30)
        print("robot:%f" % press_time)
        time.sleep(press_time)
        self.swift.set_position(x=239.43, y=0, z=170)


# if __name__ == '__main__':
#     arm = uarm()
#     arm.jump(0.75)
#     time.sleep(5)
#     arm.jump(0.75)
def Arm_Init():
    """Robotic arm initiation"""
    swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'},
                     cmd_pend_size=2,
                     callback_thread_pool_size=1)

    swift.waiting_ready()

    device_info = swift.get_device_info()
    print(device_info)
    firmware_version = device_info['firmware_version']
    if firmware_version and not firmware_version.startswith(
        ('0.', '1.', '2.', '3.')):
        swift.set_speed_factor(0.00005)

    swift.set_mode(0)

    return swift
Exemplo n.º 11
0
    def run(self):
        while self.alive:
            try:
                ports = get_ports(filters={'hwid': 'USB VID:PID=2341:0042'})
                for port in ports:
                    if port['device'] not in swifts.keys():
                        new_swift = SwiftAPI(port=port['device'])
                        new_swift.waiting_ready()
                        device_info = new_swift.get_device_info()
                        print(new_swift.port, device_info)
                        firmware_version = device_info['firmware_version']
                        if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
                            new_swift.set_speed_factor(0.00001)
                        new_swift.set_mode(mode=0)
                        with lock:
                            pos = [150, 0, 150]
                            for swift in swifts.values():
                                swift.flush_cmd()
                            if len(swifts.values()) > 0:
                                time.sleep(1)
                            for swift in swifts.values():
                                pos = swift.get_position()
                                if isinstance(pos, list):
                                    # print('sync pos:', pos)
                                    break
                            # new_swift.reset(speed=speed)
                            swifts[port['device']] = new_swift

                            for swift in swifts.values():
                                swift.set_position(x=pos[0], y=pos[1], z=pos[2], speed=speed, wait=False)
                            for swift in swifts.values():
                                if swift.connected:
                                    swift.flush_cmd(wait_stop=True)
                            # if len(swifts) > 1:
                            #     time.sleep(3)
                    else:
                        swift = swifts[port['device']]
                        if not swift.connected:
                            with lock:
                                swifts.pop(port['device'])
            except Exception as e:
                pass
            time.sleep(0.001)
Exemplo n.º 12
0
    def __init__(self):
        self.swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'},
                              cmd_pend_size=2,
                              callback_thread_pool_size=1)
        if not self.swift.connected:
            print('lose connect')

        self.swift.waiting_ready()

        device_info = self.swift.get_device_info()
        print(device_info)
        firmware_version = device_info['firmware_version']
        if firmware_version and not firmware_version.startswith(
            ('0.', '1.', '2.', '3.')):
            self.swift.set_speed_factor(0.00005)

        self.swift.set_mode(0)

        self.speed = 500000

        self.swift.set_wrist(angle=90)

        self.wristAngle = self.swift.get_servo_angle(0, timeout=10)
Exemplo n.º 13
0
    "G#" : 11

}

d = {
    "A"  : 0, 
    "B"  : 1,
    "C"  : 2,
    "D"  : 3,
    "E"  : 4,
    "F"  : 5,
    "G"  : 6,

}

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
# swift2 = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
# swift3 = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})

swift.waiting_ready()
device_info = swift.get_device_info()
print(swift.port, device_info)
firmware_version = device_info['firmware_version']
if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
    swift.set_speed_factor(0.00001)

swift.set_servo_detach()
input('A4')
swift.set_servo_attach()
pos = swift.get_position()
Exemplo n.º 14
0
from uarm.wrapper import SwiftAPI
import random

swift1 = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
swift2 = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})

swift1.waiting_ready()
device_info = swift1.get_device_info()
print(swift1.port, device_info)
firmware_version = device_info['firmware_version']
if firmware_version and not firmware_version.startswith(
    ('0.', '1.', '2.', '3.')):
    swift1.set_speed_factor(0.00001)

swift2.waiting_ready()
device_info = swift2.get_device_info()
print(swift2.port, device_info)
firmware_version = device_info['firmware_version']
if firmware_version and not firmware_version.startswith(
    ('0.', '1.', '2.', '3.')):
    swift2.set_speed_factor(0.00001)

X = 0
Y = 1
Z = 2
R = 3

swift1.set_servo_detach()

swift1.register_report_position_callback(lambda position: swift2.set_position(
    x=position[X], y=position[Y], z=position[Z], speed=100000000, timeout=1))
Exemplo n.º 15
0
from uarm.wrapper import SwiftAPI

print("アームロボットと接続を開始...")

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
swift.waiting_ready(timeout=3)

swift.set_speed_factor(100)

swift.set_mode(0)

print("アームロボットと接続完了 \n")
Exemplo n.º 16
0
# Software License Agreement (BSD License)
#
# Copyright (c) 2018, UFactory, Inc.
# All rights reserved.
#
# Author: Vinman <*****@*****.**> <*****@*****.**>

import os
import sys
import time
import threading
sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
from uarm.wrapper import SwiftAPI
from uarm.tools.list_ports import get_ports

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})

swift.waiting_ready(timeout=3)

device_info = swift.get_device_info()
print(device_info)
firmware_version = device_info['firmware_version']
#if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
#    swift.set_speed_factor(0.0005)

swift.set_mode(0)

cmd_s = 'G1'
while True:
    # enter photo app
    swift.set_position(x=267, y=-38, z=30, speed=200, cmd=cmd_s)
Exemplo n.º 17
0
#
# Copyright (c) 2018, UFactory, Inc.
# All rights reserved.
#
#

import os
import sys
import time
import functools

import threading
sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
from uarm.wrapper import SwiftAPI

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'},
                 enable_handle_thread=False)
# swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'}, enable_write_thread=True)
# swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'}, enable_report_thread=True)
# swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'}, enable_handle_thread=True, enable_write_thread=True, enable_report_thread=True)

swift.waiting_ready()  # wait the rebot ready
print(swift.get_device_info())

move_speed = 100

time.sleep(5)  # <! must wait the effector check itself
rtn = swift.get_mode(wait=True, timeout=10)  # <! make sure the work mode is 5
print(rtn)
if rtn != 5:
    swift.set_mode(5)
    time.sleep(5)  # <! must wait the effector check itself
Exemplo n.º 18
0
Arquivo: app.py Projeto: h4us/FeelTool
#!/usr/bin/env python3

import sys
# import time

import asyncio
import socketio

from uarm.wrapper import SwiftAPI

sio = socketio.AsyncClient(reconnection=True)

try:
    swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'},
                     callback_thread_pool_size=2)
    swift.waiting_ready(timeout=10)

    device_info = swift.get_device_info()
    print(device_info)

    # swift.set_speed_factor(100)
    swift.set_mode(3)
    swift.reset(wait=True, speed=250)

    # firmware_version = device_info['firmware_version']
    # if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
    #     # swift.set_speed_factor(0.0005)
except Exception:
    swift = False
    print('swift uArm not connected')
Exemplo n.º 19
0
# Software License Agreement (BSD License)
#
# Copyright (c) 2018, UFactory, Inc.
# All rights reserved.
#
# Author: Vinman <*****@*****.**> <*****@*****.**>

import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
from uarm.wrapper import SwiftAPI
"""
pressure test: set mode
"""

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'}, cmd_pend_size=2)

swift.waiting_ready()

print(swift.get_device_info())

mode = swift.get_mode()
print('mode:', mode)

mode_count = 4

count = 1
while swift.connected:
    mode = (mode + 1) % mode_count
    if swift.set_mode(mode) != mode:
        print('set mode {} failed, count={}'.format(mode, count))
Exemplo n.º 20
0
#
# Copyright (c) 2018, UFactory, Inc.
# All rights reserved.
#
# Author: Vinman <*****@*****.**> <*****@*****.**>

import os
import sys
import time
sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
from uarm.wrapper import SwiftAPI
"""
api test: only support firmware version less than 4.0 temporarily
"""

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})

swift.waiting_ready()

print(swift.set_fans(on=True))

target_temperature = 200
print(swift.set_temperature(temperature=200, block=False))

current_temperature = 0.0
while current_temperature < target_temperature:
    ret = swift.get_temperature()
    current_temperature = ret['current_temperature']
    print(current_temperature)
    time.sleep(1)
Exemplo n.º 21
0
#!/usr/bin/env python3

import os
import sys
import time
import functools
sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
from uarm.wrapper import SwiftAPI
from uarm.utils.log import logger

logger.setLevel(logger.DEBUG)

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
# swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'}, enable_handle_thread=False)
# swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'}, enable_write_thread=True)
# swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'}, enable_report_thread=True)
# swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'}, enable_handle_thread=True, enable_write_thread=True, enable_report_thread=True)

swift.reset(speed=50000, wait=True)
swift.set_position(x=250, y=0, z=10, speed=50000, wait=True)
swift.flush_cmd()
swift.set_pump(True)
swift.set_position(x=250, y=0, z=170, speed=50000, wait=True)
swift.flush_cmd()
swift.set_position(x=220, y=70, z=170, speed=50000, wait=True)
swift.flush_cmd()
swift.set_position(x=200, y=140, z=170, speed=50000, wait=True)
swift.flush_cmd()
swift.set_position(x=180, y=210, z=170, speed=50000, wait=True)
swift.flush_cmd()
swift.set_position(x=250, y=210, z=10, speed=50000, wait=True)
Exemplo n.º 22
0
# Software License Agreement (BSD License)
#
# Copyright (c) 2018, UFactory, Inc.
# All rights reserved.
#
# Author: Vinman <*****@*****.**> <*****@*****.**>

import os
import sys
import time
import threading
sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
from uarm.wrapper import SwiftAPI
from uarm.tools.list_ports import get_ports

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})

swift.waiting_ready(timeout=3)

device_info = swift.get_device_info()
print(device_info)
firmware_version = device_info['firmware_version']
#if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
#    swift.set_speed_factor(0.0005)

swift.set_mode(0)

cmd_s = 'G1'
speed_s = 10
delay = 3
swift.set_position(x=260,y=-50,z=30,speed=speed_s,cmd=cmd_s)
Exemplo n.º 23
0
class UArm_SDK(object):
    def __init__(self):
        '''
        connect to UArm
        '''
        self.swift = SwiftAPI()

        self.swift.connect()
        self.swift.get_power_status()
        print(self.swift.get_device_info())

        self.swift.reset(wait=True)  # back to home position
        print('init complete')

        self.gripper_temp = 0  # keep track of gripper state

    def __del__(self):
        '''
        disconnect UArm
        '''
        self.swift.disconnect()
        print('uarm disconnected')

    def set_servo_angle(self, joint_angles, dt):
        '''
        set servo angle via SDK
        input:
            joint_angles, 5-vector: [theta1, theta2, theta3, theta4, pump state] in degrees
            dt, time step
        '''

        wait = True

        self.swift.set_servo_angle(servo_id=0,
                                   angle=joint_angles[0] + 90,
                                   speed=5000,
                                   wait=wait)
        time.sleep(dt / 4)
        self.swift.set_servo_angle(servo_id=1,
                                   angle=joint_angles[1],
                                   speed=5000,
                                   wait=wait)
        time.sleep(dt / 4)
        self.swift.set_servo_angle(servo_id=2,
                                   angle=joint_angles[2] - joint_angles[1],
                                   speed=5000,
                                   wait=wait)
        time.sleep(dt / 4)
        self.swift.set_servo_angle(servo_id=3,
                                   angle=180 - joint_angles[3],
                                   speed=5000,
                                   wait=wait)
        time.sleep(dt / 4)
        if joint_angles[4] > 0:
            self.swift.set_pump(on=True)
        elif joint_angles[4] == 0:
            self.swift.set_pump(on=False)
        else:
            print("ERROR")

    def control_uarm_via_traj(self, position, wrist_angle, pump_state, dt):
        '''
        set end effector position, wrist angle and pump state via SDK
        input:
            position, 3-vector: [px, py, pz]
            wrist_angle: wrist angle in rad
            pump_state: bool, 0 - off, 1 - on
        '''
        px, py, pz = position[0], position[1], position[2]
        # conver m to mm
        px *= 1000
        py *= 1000
        pz *= 1000

        # change end effector position
        e = self.swift.set_position(x=px, y=py, z=pz, speed=100000, wait=True)
        print(e)

        # change wrist angle
        self.swift.set_wrist(90 - wrist_angle * 180 / PI)

        if self.gripper_temp == 0 and pump_state == 1:
            # enable suction cup
            self.swift.set_pump(on=True, wait=True)
            print('pump on')
            self.gripper_temp = 1
        if self.gripper_temp == 1 and pump_state == 0:
            # disable suction cup
            self.swift.set_pump(on=False, wait=True)
            print('pump off')
            self.gripper_temp = 0

        time.sleep(dt)
    if lst[1][0] == 0 :
        place_B3()
        return
    if lst[2][2] == 0 :
        place_C1()
        return
    if lst[2][1] == 0 :
        place_C2()
        return
    if lst[2][0] == 0 :
        place_C3()
        return
    
        
from uarm.wrapper import SwiftAPI
swift = SwiftAPI()
swift.set_speed_factor(3)
swift.waiting_ready()
root = tk.Tk()
insert = tk.Tk()

text = tk.Label(insert, text="choose the color of the beginner then close the window")
text.pack()
bb1 = tk.Button(insert, text='blue', command=entry_blue, width = 25)
bb1.pack(side = tk.BOTTOM)
r1 = tk.Button(insert, text='red', command=entry_red, width = 25)
r1.pack(side = tk.BOTTOM)

insert.mainloop()

#define menu options
Exemplo n.º 25
0
speed is [0, 100] if version is 4.0+
speed is [0, 100000] if 3.0 < version < 4.0

x (mm)          :  150 -> 300
y (mm)          : -150 -> 150 
z (mm)          :   30 -> 150 
speed (mm/s?)   :    0 -> 100
'''


import os
import sys
import time
sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
from uarm.wrapper import SwiftAPI
swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
swift.waiting_ready(timeout=3)
device_info = swift.get_device_info()
print(device_info)
firmware_version = device_info['firmware_version']
#if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
#    swift.set_speed_factor(0.0005)

#set for general mode
swift.set_mode(0)

#LED pin numbers
red = 50
yellow = 45
green = 49
Exemplo n.º 26
0
# Author: Vinman <*****@*****.**> <*****@*****.**>

import os
import sys
import time
sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
from uarm.wrapper import SwiftAPI

"""
multi sync move
"""

swift1 = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
swift2 = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
# swift3 = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})

swift1.waiting_ready()
device_info = swift1.get_device_info()
print(swift1.port, device_info)
firmware_version = device_info['firmware_version']
if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
    swift1.set_speed_factor(0.00001)

swift2.waiting_ready()
device_info = swift2.get_device_info()
print(swift2.port, device_info)
firmware_version = device_info['firmware_version']
if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
    swift2.set_speed_factor(0.00001)

swift_list = [swift1, swift2]
Exemplo n.º 27
0
class uArmSwift:
    def __init__(self):
        self.swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'},
                              cmd_pend_size=2,
                              callback_thread_pool_size=1)
        if not self.swift.connected:
            print('lose connect')

        self.swift.waiting_ready()

        device_info = self.swift.get_device_info()
        print(device_info)
        firmware_version = device_info['firmware_version']
        if firmware_version and not firmware_version.startswith(
            ('0.', '1.', '2.', '3.')):
            self.swift.set_speed_factor(0.00005)

        self.swift.set_mode(0)

        self.speed = 500000

        self.swift.set_wrist(angle=90)

        self.wristAngle = self.swift.get_servo_angle(0, timeout=10)

    def set_position(self, x=100, y=0, z=100, wait=False):
        self.swift.set_position(x, y, z, speed=self.speed, wait=wait)

    def set_polar(self, stretch, rotation, height, wait=False):
        self.swift.set_polar(stretch,
                             rotation,
                             height,
                             speed=self.speed,
                             wait=wait)

    def set_servo_angle(self, num, angle, wait=False):
        if num < 0 and num > 3:
            print("num is wrong")
        self.swift.set_servo_angle(num,
                                   angle,
                                   wait,
                                   speed=self.speed,
                                   wait=wait)

    def set_wrist(self, angle=90, wait=False):  # 第四电机
        self.swift.set_wrist(angle, wait)

    def set_pump(self, on=False):
        self.swift.set_pump(on)

    def set_buzzer(self, freq=1000, duration=1, wait=False):
        self.swift.set_buzzer(freq, duration, wait)

    def get_position(self):
        return self.swift.get_position()

    def get_servo_angle(self, id=0):
        return self.swift.get_servo_angle(id, timeout=10)

    def is_moving(self):
        return self.swift.get_is_moving()

    def disconnect(self):
        self.swift.disconnect()
Exemplo n.º 28
0
+z is upwards
speed is [0, 100] if version is 4.0+
speed is [0, 100000] if 3.0 < version < 4.0

x (mm)          :  150 -> 300
y (mm)          : -150 -> 150 
z (mm)          :   30 -> 150 
speed (mm/s?)   :    0 -> 100
'''

import os
import sys
import time
sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
from uarm.wrapper import SwiftAPI
swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
swift.waiting_ready(timeout=3)
device_info = swift.get_device_info()
print(device_info)
firmware_version = device_info['firmware_version']
#if firmware_version and not firmware_version.startswith(('0.', '1.', '2.', '3.')):
#    swift.set_speed_factor(0.0005)

#set for general mode
swift.set_mode(0)
'''
swift.reset(wait=True, speed=100000)
swift.set_position(x=200, speed=100000)
swift.set_position(y=100)
swift.set_position(z=100)
swift.flush_cmd(wait_stop=True)
Exemplo n.º 29
0
#!/usr/bin/env python3

import time
from uarm.wrapper import SwiftAPI

swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})

swift.waiting_ready(timeout=3)

device_info = swift.get_device_info()
print(device_info)
firmware_version = device_info['firmware_version']
if firmware_version and not firmware_version.startswith(
    ('0.', '1.', '2.', '3.')):
    swift.set_speed_factor(0.0005)

swift.set_mode(0)

swift.reset(wait=True, speed=10000)
swift.set_position(x=200, speed=10000 * 20)
swift.set_position(y=100)
swift.set_position(z=100)
swift.flush_cmd(wait_stop=True)

swift.set_polar(stretch=200, speed=10000 * 20)
swift.set_polar(rotation=90)
swift.set_polar(height=150)
print(swift.set_polar(stretch=200, rotation=90, height=150, wait=True))

swift.flush_cmd()
Exemplo n.º 30
0
def initialize():
    global cartesian
    test_a = True
    test_b = True

    data_start()            # saving data

    #convert cartesian coordinates to polar coordinates
    if(cartesian):
        print(Fore.BLUE + "Detecting cartesian coordinates, changing to polar")

        #test to check converting cartesian to polar
        if(test_converting(cartesian)):
            print(Fore.GREEN + "TEST OK")
            print(Style.RESET_ALL)
        else:
            print(Fore.RED + "TEST FAILED")
            print(Style.RESET_ALL)

        #debug outputs
        # print(default_stretch)
        # print(default_rotation)
        # print(default_height)

        change_variables_to_polar()
        print(Fore.GREEN + "Conversion from cartesian to polar successfull")
        print(Style.RESET_ALL)
        time.sleep(2)
    else:
        print(Fore.BLUE + "Default polar coordinates are set")
        print(Style.RESET_ALL)



    try:
        global serial_name
        global ser

        ser = serial.Serial('/dev/ttyUSB0',115200,timeout=2)        #arduino serial
        arduino_reset()
        print(Fore.BLUE + "Arduino UNO\n")
    except:
        test_a = False
        print(Fore.RED + "FAILED CONNECT TO ARDUINO!")
        print(Style.RESET_ALL)


    #setting up uArm SwiftPro
    try:
        global swift
        #need to change
        sys.path.append(os.path.join(os.path.dirname(__file__), '../uArm-Python-SDK'))      #link to uArm SwiftPro python3.x.x library
        swift = SwiftAPI(filters={'hwid': 'USB VID:PID=2341:0042'})
        swift.waiting_ready(timeout=5)
        swift.set_mode(0)
        device_info = swift.get_device_info()
        default_robot_position()
        print(Fore.BLUE)
        print(device_info)
        print("\n")
    except:
        test_b = False
        print(Fore.RED + "FAILED CONNECT TO uArm SwiftPro")
        print(Style.RESET_ALL)

    if test_a and test_b:
        print(Fore.GREEN + "DONE!\n")

    print(Style.RESET_ALL)
    return