Exemplo n.º 1
0
    def __init__(self):
        """
        :param host: локальный хост севера Telnet
        :param telnet_username: имя пользователя на сервере
        :param telnet_password: пароль пользователя
        :param moving_speed: начальная скорость перемещения по всем осям.
        """

        self.tx = 0
        self.ty = 0
        self.tz = 0
        self.current_position = Point(0, 0, 0)
        self.program_zero = Point(0, 0, 0)
        print("Manipulator initialisation")
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.connect(("127.0.0.1", 9105))
        sleep(1)
        t = self.socket.recv(4096)
        sleep(1)
        self.socket.sendall(b"as\n")
        sleep(1)
        t = self.socket.recv(4096)
        sleep(1)
        print("logged: " + t.decode("utf-8"))
        sleep(1)
        self.socket.sendall(b"ZPOW ON\n")
        sleep(1)
        t = self.socket.recv(4096)
        sleep(1)
Exemplo n.º 2
0
 def __init__(self, host: str, telnet_username: str, telnet_password: str):
     """
     :param host: локальный хост севера Telnet
     :param telnet_username: имя пользователя на сервере
     :param telnet_password: пароль пользователя
     :param moving_speed: начальная скорость перемещения по всем осям.
     """
     self.__host = host
     self.__user_name = telnet_username
     self.__password = telnet_password
     self.current_position = Point(0, 0, 0)
     self.program_zero = Point(0, 0, 0)
     print("Manipulator initialisation")
Exemplo n.º 3
0
 def set_zero(self):
     """
     Аппаратная установка точки начала отсчета
     """
     # something to set zero position on manipulator
     self.current_position = Point(0, 0, 0)
     print("Set zero.")
Exemplo n.º 4
0
 def set_length(self, new_len: float or int) -> None:
     """
     Устанавливает новую длинну вектора, сохраняя направление вектора.
     Не изменяет положение начальной точки!!!
     :param new_len: новая длина вектора.
     """
     rad = self.radius_vector()
     cof = new_len / self.length()
     rad *= cof
     if (rad.z is not None):
         vec = Vector(Point(0, 0, 0), rad)
     else:
         vec = Vector(Point(0, 0), rad)
     vec.move_to_point(self.start_point)
     # self.start_point *= cof
     self.end_point = vec.end_point
Exemplo n.º 5
0
    def __init__(self, point1: Point or Iterable, point2: Point or Iterable = None):
        """
        Создает вектор плоскости. Если дана только одна точка, то вектор счетается радиус-вектором(начало в (0,0)).
        :param point1: Точка начала вектора относительно С.О.
        :param point2: Точка конца вектора относительно С.О.
        """
        point1 = Point.check_Point(point1)

        if type(point2) is None:
            if point1.z is None:
                self.start_point: Point = Point(0, 0)
            else:
                self.start_point: Point = Point(0, 0, 0)
            self.end_point: Point = point1
        else:
            point2 = Point.check_Point(point2)
            if (point1.z is None and point2.z is None) or (point1.z is not None and point2.z is not None):
                self.start_point: Point = point1
                self.end_point: Point = point2
            else:
                raise TypeError("Flat and 3D points used in one Vector obj.")
Exemplo n.º 6
0
 def get_current_position(self):
     """
     получить текущую позицию
     """
     self.socket.sendall(b"point a = here\n")
     sleep(1)
     t = self.socket.recv(4096)
     input_data = (t.decode().split())
     x = input_data[10]
     y = input_data[11]
     z = input_data[12]
     self.x = x
     self.y = y
     self.z = z
     self.tx = input_data[13]
     self.ty = input_data[14]
     self.tz = input_data[15]
     print(self.x, self.y, self.z, self.tx, self.ty, self.tz)
     return Point(x, y, z)
Exemplo n.º 7
0
    summ_y = 0
    for p in points:
        summ_x += int(p[0])
        summ_y += int(p[1])
    return summ_x / len(points), summ_y / len(points)


# Find zero and constants
while not find_zero_flag:
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    corners, ids, rejectedImgPoints = aruco.detectMarkers(gray, aruco_dict, parameters=parameters)
    x_vector = None
    y_vector = None
    move_vector = None
    frame_center = Point(frame.shape[1] / 2, frame.shape[0] / 2)
    if ids is not None:
        ids_dict = {}
        ids_middle = {}
        for i in range(ids.size):
            ids_dict[int(ids[i][0])] = corners[i][0]
            ids_middle[int(ids[i][0])] = find_middle(corners[i][0])

        strg = ''
        for i in range(0, ids.size):
            strg += str(ids[i][0]) + ', '
            _id = ids[i][0]
            if _id in zero_ids:
                if _id == 0:
                    mid_zero = ids_middle[ids[i][0]]
                    ADAPTIVE_CONSTANT = Zero_marker0.size / \
Exemplo n.º 8
0
    for p in points:
        summ_x += int(p[0])
        summ_y += int(p[1])
    return summ_x / len(points), summ_y / len(points)


# Find zero and constants
while not find_zero_flag:
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    corners, ids, rejectedImgPoints = aruco.detectMarkers(
        gray, aruco_dict, parameters=parameters)
    x_vector = None
    y_vector = None
    move_vector = None
    frame_center = Point(frame.shape[1] / 2, frame.shape[0] / 2)
    if ids is not None:
        ids_dict = {}
        ids_middle = {}
        for i in range(ids.size):
            ids_dict[int(ids[i][0])] = corners[i][0]
            ids_middle[int(ids[i][0])] = find_middle(corners[i][0])

        strg = ''
        for i in range(0, ids.size):
            strg += str(ids[i][0]) + ', '
            _id = ids[i][0]
            if _id in zero_ids:
                if _id == 0:
                    mid_zero = ids_middle[ids[i][0]]
                    ADAPTIVE_CONSTANT = Zero_marker0.size / \