def __init__(self, host=None, logger=None): self._api = RobotApi() if host is not None: self._api.api_client.configuration.host = host if logger is None: logger = logging.getLogger("pulseapi") logger.addHandler(logging.NullHandler()) self.logger = logger self.host = self._api.api_client.configuration.host
def __init__(self, session: Session = None, logger: logging.Logger = None): self._api = RobotApi() self._session = session self._api.api_client.configuration.host = self._session.location if logger is None: logger = logging.getLogger("pulseapi") logger.addHandler(logging.NullHandler()) self.logger = logger self.host = self._api.api_client.configuration.host
class RobotPulse: def __init__(self, host=None, logger=None): self._api = RobotApi() if host is not None: self._api.api_client.configuration.host = host if logger is None: logger = logging.getLogger("pulseapi") logger.addHandler(logging.NullHandler()) self.logger = logger self.host = self._api.api_client.configuration.host def add_to_environment(self, obstacle): self.logger.debug(str(obstacle)) return self._api.add_to_environment(obstacle) def bind_stop(self, port, signal_level): result = None if signal_level == SIG_HIGH: result = self._api.bind_stop_port_high(port) elif signal_level == SIG_LOW: result = self._api.bind_stop_port_low(port) else: error_msg = "Signal level must be either {} or {}".format( SIG_HIGH, SIG_LOW ) raise ValueError(error_msg) return result def change_base(self, base_position): self.logger.debug(str(base_position)) return self._api.change_base(base_position) def change_tool_info(self, new_tool_info): self.logger.debug(str(new_tool_info)) return self._api.change_tool_info(new_tool_info) def change_tool_shape(self, new_tool_shape): self.logger.debug(str(new_tool_shape)) return self._api.change_tool_shape(new_tool_shape) def close_gripper(self, timeout=None): self.logger.debug(str(timeout)) if timeout is not None: return self._api.close_gripper(timeout=timeout) return self._api.close_gripper() def disable_gripper(self): return self._api.disable_gripper() def enable_gripper(self): return self._api.enable_gripper() def freeze(self): return self._api.freeze() def get_all_from_environment(self): return self._api.get_all_from_environment() def get_base(self): return self._api.get_base() def get_digital_input(self, port): return self._api.get_digital_input(port) def get_digital_output(self, port): return self._api.get_digital_output(port) def get_from_environment_by_name(self, obstacle_name): return self._api.get_from_environment_by_name(obstacle_name) def get_pose(self): return self._api.get_pose() def get_position(self): return self._api.get_position() def get_tool_info(self): return self._api.get_tool_info() def get_tool_shape(self): return self._api.get_tool_shape() def information(self): return self._api.information() def identifier(self): return self._api.identifier() def jogging(self, jog_value): return self._api.jogging(jog_value) def open_gripper(self, timeout=None): self.logger.debug(str(timeout)) if timeout is not None: return self._api.open_gripper(timeout=timeout) return self._api.open_gripper() def pack(self): return self._api.pack() def recover(self): return self._api.recover() def relax(self): return self._api.relax() def remove_all_from_environment(self): return self._api.remove_all_from_environment() def remove_from_environment_by_name(self, obstacle_name): return self._api.remove_from_environment_by_name(obstacle_name) def run_poses( self, poses, speed=None, velocity=None, acceleration=None, tcp_max_velocity=None, motion_type=MT_JOINT, ): motion_parameters = self.__extract_motion_params( speed=speed, velocity=velocity, acceleration=acceleration, tcp_max_velocity=tcp_max_velocity, motion_type=motion_type, ) self.logger.debug( str(dict(poses=poses, motion_parameters=motion_parameters)) ) return self._api.run_poses(poses, **motion_parameters) def run_positions( self, positions, speed=None, velocity=None, acceleration=None, tcp_max_velocity=None, motion_type=MT_JOINT, ): motion_parameters = self.__extract_motion_params( speed=speed, velocity=velocity, acceleration=acceleration, tcp_max_velocity=tcp_max_velocity, motion_type=motion_type, ) self.logger.debug( str(dict(positions=positions, motion_parameters=motion_parameters)) ) return self._api.run_positions(positions, **motion_parameters) def set_digital_output_high(self, port): return self._api.set_digital_output_high(port) def set_digital_output_low(self, port): return self._api.set_digital_output_low(port) def set_pose( self, target_pose, speed=None, velocity=None, acceleration=None, tcp_max_velocity=None, motion_type=MT_JOINT, ): motion_parameters = self.__extract_motion_params( speed=speed, velocity=velocity, acceleration=acceleration, tcp_max_velocity=tcp_max_velocity, motion_type=motion_type, ) self.logger.debug( str(dict(pose=target_pose, motion_parameters=motion_parameters)) ) return self._api.set_pose(target_pose, **motion_parameters) def set_position( self, target_position, speed=None, velocity=None, acceleration=None, tcp_max_velocity=None, motion_type=MT_JOINT, ): motion_parameters = self.__extract_motion_params( speed=speed, velocity=velocity, acceleration=acceleration, tcp_max_velocity=tcp_max_velocity, motion_type=motion_type, ) self.logger.debug( str( dict( position=target_position, motion_parameters=motion_parameters, ) ) ) return self._api.set_position(target_position, **motion_parameters) @deprecated(reason="You should use status() method", version="1.6.0") def status_motion(self): result = self._api.status_motion() self.logger.debug(result) return result def status(self): result = self._api.status() self.logger.debug(result) return result def status_motors(self): return self._api.status_motors() def stop(self): return self._api.stop() @deprecated(reason="You should use await_stop() method", version="1.6.0") def await_motion(self, asking_interval=0.1): self.logger.debug(str(asking_interval)) while self.status_motion() != MotionStatus.IDLE: time.sleep(asking_interval) def await_stop(self, asking_interval=0.1): self.logger.debug(str(asking_interval)) while self.status() == SystemState.MOTION: time.sleep(asking_interval) def unbind_stop(self): return self._api.unbind_stop() def zg_on(self): return self._api.zg_on() def zg_off(self): return self._api.zg_off() @staticmethod def __extract_motion_params(**kwargs): return {k: v for k, v in locals()["kwargs"].items() if v is not None}
class RobotPulse: def __init__(self, session: Session = None, logger: logging.Logger = None): self._api = RobotApi() self._session = session self._api.api_client.configuration.host = self._session.location if logger is None: logger = logging.getLogger("pulseapi") logger.addHandler(logging.NullHandler()) self.logger = logger self.host = self._api.api_client.configuration.host @refresh_token def add_to_environment(self, obstacle): self.logger.debug(str(obstacle)) return self._api.add_to_environment(obstacle, self._session.token) @refresh_token def change_base(self, base_position): self.logger.debug(str(base_position)) return self._api.change_base(base_position, self._session.token) @refresh_token def change_tool_info(self, new_tool_info): self.logger.debug(str(new_tool_info)) return self._api.change_tool_info(new_tool_info, self._session.token) @refresh_token def change_tool_shape(self, new_tool_shape): self.logger.debug(str(new_tool_shape)) return self._api.change_tool_shape(new_tool_shape, self._session.token) @refresh_token def close_gripper(self, timeout=None): self.logger.debug(str(timeout)) if timeout is not None: return self._api.close_gripper(self._session.token, timeout=timeout) return self._api.close_gripper(self._session.token) @refresh_token def freeze(self): return self._api.freeze(self._session.token) @refresh_token def get_all_from_environment(self): return self._api.get_all_from_environment(self._session.token) @refresh_token def get_base(self): return self._api.get_base(self._session.token) @refresh_token def get_digital_input(self, port): return self._api.get_digital_input(port, self._session.token) @refresh_token def get_digital_output(self, port): return self._api.get_digital_output(port, self._session.token) @refresh_token def get_from_environment_by_name(self, obstacle_name): return self._api.get_from_environment_by_name(obstacle_name, self._session.token) @refresh_token def get_pose(self): return self._api.get_pose(self._session.token) @refresh_token def get_position(self): return self._api.get_position(self._session.token) @refresh_token def get_tool_info(self): return self._api.get_tool_info(self._session.token) @refresh_token def get_tool_shape(self): return self._api.get_tool_shape(self._session.token) @refresh_token def information(self): return self._api.information(self._session.token) @refresh_token def identifier(self): return self._api.identifier(self._session.token) @refresh_token def jogging(self, jog_value): return self._api.jogging(jog_value, self._session.token) @refresh_token def open_gripper(self, timeout=None): self.logger.debug(str(timeout)) if timeout is not None: return self._api.open_gripper(self._session.token, timeout=timeout) return self._api.open_gripper(self._session.token) @refresh_token def pack(self): return self._api.pack(self._session.token) @refresh_token def recover(self): return self._api.recover(self._session.token) @refresh_token def relax(self): return self._api.relax(self._session.token) @refresh_token def remove_all_from_environment(self): return self._api.remove_all_from_environment(self._session.token) @refresh_token def remove_from_environment_by_name(self, obstacle_name): return self._api.remove_from_environment_by_name( obstacle_name, self._session.token) @refresh_token def run_poses( self, poses, speed=None, velocity=None, acceleration=None, tcp_max_velocity=None, motion_type=MT_JOINT, ): motion_parameters = self.__extract_motion_params( speed=speed, velocity=velocity, acceleration=acceleration, tcp_max_velocity=tcp_max_velocity, motion_type=motion_type, ) self.logger.debug( str(dict(poses=poses, motion_parameters=motion_parameters))) return self._api.run_poses(poses, self._session.token, **motion_parameters) @refresh_token def run_positions( self, positions, speed=None, velocity=None, acceleration=None, tcp_max_velocity=None, motion_type=MT_JOINT, ): motion_parameters = self.__extract_motion_params( speed=speed, velocity=velocity, acceleration=acceleration, tcp_max_velocity=tcp_max_velocity, motion_type=motion_type, ) self.logger.debug( str(dict(positions=positions, motion_parameters=motion_parameters))) return self._api.run_positions(positions, self._session.token, **motion_parameters) @refresh_token def set_digital_output_high(self, port): return self._api.set_digital_output_high(port, self._session.token) @refresh_token def set_digital_output_low(self, port): return self._api.set_digital_output_low(port, self._session.token) @refresh_token def set_pose( self, target_pose, speed=None, velocity=None, acceleration=None, tcp_max_velocity=None, motion_type=MT_JOINT, ): motion_parameters = self.__extract_motion_params( speed=speed, velocity=velocity, acceleration=acceleration, tcp_max_velocity=tcp_max_velocity, motion_type=motion_type, ) self.logger.debug( str(dict(pose=target_pose, motion_parameters=motion_parameters))) return self._api.set_pose(target_pose, self._session.token, **motion_parameters) @refresh_token def set_position( self, target_position, speed=None, velocity=None, acceleration=None, tcp_max_velocity=None, motion_type=MT_JOINT, ): motion_parameters = self.__extract_motion_params( speed=speed, velocity=velocity, acceleration=acceleration, tcp_max_velocity=tcp_max_velocity, motion_type=motion_type, ) self.logger.debug( str( dict( position=target_position, motion_parameters=motion_parameters, ))) return self._api.set_position(target_position, self._session.token, **motion_parameters) @deprecated(reason="You should use status() method", version="1.6.0") @refresh_token def status_motion(self): result = self._api.status_motion(self._session.token) self.logger.debug(result) return result @refresh_token def status(self): result = self._api.status(self._session.token) self.logger.debug(result) return result @refresh_token def status_motors(self): return self._api.status_motors(self._session.token) @deprecated(reason="You should use await_stop() method", version="1.6.0") def await_motion(self, asking_interval=0.1): self.logger.debug(str(asking_interval)) while self.status_motion() != MotionStatus.IDLE: time.sleep(asking_interval) def await_stop(self, asking_interval=0.1): self.logger.debug(str(asking_interval)) while self.status() == SystemState.MOTION: time.sleep(asking_interval) @staticmethod def __extract_motion_params(**kwargs): return {k: v for k, v in locals()["kwargs"].items() if v is not None}