Esempio n. 1
0
    def SetCoordinatePose_click(self, pose: dict, queue_index: int = 1):
        """デカルト座標系で指定された位置にアームの先端を移動させる関数

        Arg:
            pose(dict): デカルト座標系および関節座標系で指定された姿勢データ

        Return:
            response(int):
                0 : 応答あり
                1 : 応答なし
        """
        dType.SetPTPCmd(self.api, dType.PTPMode.PTPMOVJXYZMode, pose["x"],
                        pose["y"], pose["z"], pose["r"], queue_index)
        time.sleep(5)
        return 0
Esempio n. 2
0
def _OneAction(api, pose, mode=dType.PTPMode.PTPMOVLXYZMode):
    """One step operation"""
    # if pose["x"] == None or y is None or z is None or r is None:
    current_pose = dType.GetPose(api)
    if pose["x"] is None:
        pose["x"] = current_pose[0]
    if pose["y"] is None:
        pose["y"] = current_pose[1]
    if pose["z"] is None:
        pose["z"] = current_pose[2]
    if pose["r"] is None:
        pose["r"] = current_pose[3]
    try:
        lastIndex = dType.SetPTPCmd(
            api, mode, pose["x"], pose["y"], pose["z"], pose["r"], isQueued=1
        )[0]
        __Act(api, lastIndex)
    except TimeoutError:
        return -1
    else:
        return 0
Esempio n. 3
0
def SetPoseAct(api,  pose: dict, ptpMoveMode: str, queue_index: int=1):
        """デカルト座標系で指定された位置にアームの先端を移動させる関数

        Arg:
            api(dtype): DobotAPIのコンストラクタ
            pose(dict): デカルト座標系および関節座標系で指定された姿勢データ
            ptpMoveMode(str): 各座標系におけるDobotの制御方法
            queue_index(int): データをQueueとして送るか。default to 0
            * 0: 送らない
            * 1: 送る

        Return:
            response(int):
                0 : 応答あり
                1 : 応答なし
        """
        response = ''
        try:
            for ptpmode in ptpMoveModeDict:
                if ptpMoveMode in ptpmode:
                    response = ptpMoveModeDict[ptpMoveMode]
                    break
            if (not response) and (response != 0):
                raise ValueError("指定された制御方法は存在しません。")
        except (ValueError, TypeError) as e:
            traceback.print_exc()
        else:
            dType.SetPTPCmd(api,
                                        ptpMoveModeDict[ptpMoveMode],
                                        pose["x"],
                                        pose["y"],
                                        pose["z"],
                                        pose["r"],
                                        queue_index
                )
            time.sleep(2)
        return 0