Example #1
0
from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *
import time

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager',
                        autoconnect=False)

d.refresh_devices(1)

d.connect_device('jog_joint')

jog_service = d.get_device_client("jog_joint", 1)

print(jog_service.device_info.device.name)

tool = jog_service.get_tool("tool")

while (True):
    tool.open()
    time.sleep(0.5)
    tool.close()
    time.sleep(0.5)
for i in range(img_count):
    p = source_dir.joinpath(f"{img_name_prefix}{i}{img_name_ext}")
    imgs.append(cv2.imread(str(p)))

# for img in imgs:
#     cv2.imshow("",img)
#     cv2.waitKey(250)

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager',
                        autoconnect=False)

d.refresh_devices(1)

d.connect_device("variable_storage")

var_storage = d.get_device_client("variable_storage", 1)

image_util = ImageUtil(client_obj=var_storage)

var_consts = var_storage.RRGetNode().GetConstants('tech.pyri.variable_storage',
                                                  var_storage)
variable_persistence = var_consts["VariablePersistence"]
variable_protection_level = var_consts["VariableProtectionLevel"]


def save_image(img, i):
    global_name = f"{seq_name}_{i}"

    if len(var_storage.filter_variables("globals", global_name, [])) > 0:
        raise RR.InvalidOperationException(
            f"Global {global_name} already exists")
from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *
from RobotRaconteurCompanion.Util.ImageUtil import ImageUtil
import time
import cv2

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager',
                        autoconnect=False)

d.refresh_devices(1)

d.connect_device("vision_camera_calibration")

calibration_service = d.get_device_client("vision_camera_calibration", 1)

ret = calibration_service.calibrate_camera_intrinsic(
    "camera", "intrinsic_calib_dataset0", "chessboard",
    "camera_intrinsic_calibration")  #"camera_intrinsic_calibration")

image_util = ImageUtil(client_obj=calibration_service)
i = 0
for c_img in ret.display_images:
    img = image_util.compressed_image_to_array(c_img)
    cv2.imshow(f"img {i}", img)
    cv2.waitKey()

    i += 1

cv2.destroyAllWindows()
    global current_compressed_frame
    
    while (pipe_ep.Available > 0):
        
        compressed_image=pipe_ep.ReceivePacket()

        current_compressed_frame=compressed_image


d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager', autoconnect=False)

d.refresh_devices(1)

d.connect_device("vision_camera_viewer")

viewer_service = d.get_device_client("vision_camera_viewer",1)

print(viewer_service.device_info.device.name)

camera_viewer = viewer_service.get_camera_viewer("camera")

p=camera_viewer.preview_stream.Connect(-1)

p.PacketReceivedEvent+=new_frame

while True:

    if (not current_compressed_frame is None):
        img = cv2.imdecode(current_compressed_frame.data,1)

        cv2.imshow("Image",img)
Example #5
0
from RobotRaconteurCompanion.Util.ImageUtil import ImageUtil
from RobotRaconteurCompanion.Util.GeometryUtil import GeometryUtil
import cv2

roi_name = "pick_roi4"
template_name = "perfume_template3"

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager',
                        autoconnect=False)

d.refresh_devices(1)

d.connect_device("vision_template_matching")
d.connect_device("variable_storage")

c = d.get_device_client("vision_template_matching", 1)

bounding_box2d_type = RRN.GetStructureType(
    'com.robotraconteur.geometry.BoundingBox2D', c)
named_pose2d_type = RRN.GetStructureType(
    'com.robotraconteur.geometry.NamedPose2D', c)
pose2d_dtype = RRN.GetNamedArrayDType('com.robotraconteur.geometry.Pose2D', c)

var_storage = d.get_device_client("variable_storage", 1)

roi = var_storage.getf_variable_value("globals", roi_name).data

#res = c.match_template_stored_image("extrinsic_image0", "test10", None)
res = c.match_template_camera_capture("camera", template_name, None)

img_util = ImageUtil(client_obj=c)
Example #6
0
from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *
import time
from RobotRaconteurCompanion.Util.ImageUtil import ImageUtil
from RobotRaconteurCompanion.Util.GeometryUtil import GeometryUtil
import cv2
import numpy as np

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager',
                        autoconnect=False)

d.refresh_devices(1)

d.connect_device("robotics_motion")

c = d.get_device_client("robotics_motion", 1)

geom_util = GeometryUtil(client_obj=c)


def _run_grab(gen):
    while True:
        try:
            res = gen.Next()
            print(res)
        except RR.StopIterationException:
            break


for i in range(5):
    pose2d_dtype = RRN.GetNamedArrayDType("com.robotraconteur.geometry.Pose2D",
Example #7
0
from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager', autoconnect=False)

d.refresh_devices(1)

d.connect_device("sandbox")

c = d.get_device_client("sandbox",1)

gen = c.getf_output()

while True:
    try:
        ret = gen.Next()
        print([l.output for l in ret.output_list])
    except RR.StopIterationException:
        break



# gen = c.execute_procedure("test_print_many", [])

# while True:
#      try:
#          print(gen.Next().printed)
#      except RR.StopIterationException:
#          break

from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *

d = DeviceManagerClient()
#d = DeviceManagerClient()

d.refresh_devices(1)

for dev in d.get_device_names():
    print(dev)
    print(d.get_device_info(dev).urls)
    try:
        print(d.get_device_client(dev, 1).device_info.manufacturer.name)
    except:
        pass
from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *
import time
from RobotRaconteurCompanion.Util.ImageUtil import ImageUtil
from RobotRaconteurCompanion.Util.GeometryUtil import GeometryUtil
import numpy as np
import cv2

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager',
                        autoconnect=False)

d.refresh_devices(1)

d.connect_device("vision_robot_calibration")

calibration_service = d.get_device_client("vision_robot_calibration", 1)

geom_util = GeometryUtil(client_obj=calibration_service)
marker_pose = geom_util.xyz_rpy_to_pose(
    np.array([0.0393, -0.0091, 0.055]), np.array(np.deg2rad([90.0, 0.0,
                                                             180.0])))

ret = calibration_service.calibrate_robot_origin(
    "robot", "camera_intrinsic_calibration", "camera_extrinsic_calibration",
    "robot_calib0", "DICT_6X6_250", 150, 0.0316, marker_pose,
    "")  # "robot_origin_calibration0"

image_util = ImageUtil(client_obj=calibration_service)
geom_util = GeometryUtil(client_obj=calibration_service)

T = geom_util.named_pose_to_rox_transform(ret.robot_pose.pose)
Example #10
0
from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *
import time
from RobotRaconteurCompanion.Util.ImageUtil import ImageUtil
from RobotRaconteurCompanion.Util.GeometryUtil import GeometryUtil
import cv2
import numpy as np

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager', autoconnect=False)

d.refresh_devices(1)

d.connect_device("vision_aruco_detection")

c = d.get_device_client("vision_aruco_detection",1)

geom_util = GeometryUtil(client_obj = c)

b = RRN.NewStructure("com.robotraconteur.geometry.BoundingBox2D", c)
center = RRN.NewStructure("com.robotraconteur.geometry.NamedPose2D", c)
pose2d_dtype = RRN.GetNamedArrayDType("com.robotraconteur.geometry.Pose2D", c)
size2d_dtype = RRN.GetNamedArrayDType("com.robotraconteur.geometry.Size2D", c)
center.pose = np.zeros((1,),dtype=pose2d_dtype)
center.pose[0]["position"]["x"] = 990
center.pose[0]["position"]["y"] = 64
center.pose[0]["orientation"] = np.deg2rad(10)
b.center = center
size = np.zeros((1,),dtype=size2d_dtype)
size[0]["width"] = 100
size[0]["height"] = 100
b.size = size
from RobotRaconteur.Client import *
from RobotRaconteurCompanion.Util.UuidUtil import UuidUtil
import uuid

from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *

import numpy as np
import time

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager', autoconnect=False)

d.refresh_devices(1)

d.connect_device("program_master")

c = d.get_device_client("program_master",1)

c.run()

time.sleep(4.1)

c.pause()
time.sleep(1)
c.clear_step_pointer()
from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager',
                        autoconnect=False)

d.refresh_devices(1)

d.connect_device_type("tech.pyri.robotics.jog.RoboticsJogService")

d.get_device_client("robotics_jog", 1)

# for dev in d.get_device_names():
#     print (dev)
#     print(d.get_device_info(dev).urls)
#     print(d.get_device_client(dev,1).device_info.manufacturer.name)
Example #13
0
from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager', autoconnect=False)

d.refresh_devices(1)

d.connect_device('robotics_jog')

jog_service = d.get_device_client("robotics_jog",1)

print(jog_service.device_info.device.name)

jog = jog_service.get_jog("robot")

jog.setf_jog_mode()

#for x in range(100):
    #jog.jog_joints3(1,1)
#jog.setf_halt_mode()

jog.jog_joints_to_angles([0.1,0.1,-0.1,0.1,-0.1,0.2],50)

from pyri.device_manager_client import DeviceManagerClient
from RobotRaconteur.Client import *

import time

d = DeviceManagerClient('rr+tcp://localhost:59902?service=device_manager')

d.refresh_devices(1)

jog_service = d.get_device_client("jog_cartesian", 1)

print(jog_service.device_info.device.name)

jog = jog_service.get_jog("robot")

#jog.setf_jog_mode()

#for x in range(100):
#jog.jog_joints3(1,1)
#jog.setf_halt_mode()

jog.prepare_jog()

while True:
    for i in range(20):
        jog.jog_cartesian3([0, 0, 1], [0, 0, 0])
        time.sleep(0.005)

    jog.stop_joints()

    for i in range(20):