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
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
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