Example #1
0
    def __init__(self,
                 rs,
                 sizeOfTarget,
                 thetafile,
                 arm="Arm26",
                 estim="Inv",
                 actor=None,
                 logDir="Best",
                 saveDir=None):
        self.rs = rs
        self.posIni = np.loadtxt(pathDataFolder + rs.experimentFilePosIni)
        self.arm = ArmType[arm]()
        self.arm.setDT(rs.dt)
        if (not self.det):
            self.arm.setNoise(rs.noise)
        if (rs.costClass == None):
            self.trajCost = CostDDPG(rs)
        else:
            self.trajCost = rs.costClass(rs)
        if (len(self.posIni.shape) == 1):
            self.posIni = self.posIni.reshape((1, self.posIni.shape[0]))
        if estim == "Inv":
            self.stateEstimator = StateEstimator(rs.inputDim, rs.outputDim,
                                                 rs.delayUKF, self.arm)
        elif estim == "Reg":
            self.stateEstimator = StateEstimatorRegression(
                rs.inputDim, rs.outputDim, rs.delayUKF, self.arm)
        elif estim == "Hyb":
            self.stateEstimator = StateEstimatorHyb(rs.inputDim, rs.outputDim,
                                                    rs.delayUKF, self.arm)
        elif estim == "No":
            self.stateEstimator = StateEstimatorNoFeedBack(
                rs.inputDim, rs.outputDim, rs.delayUKF, self.arm)
        else:
            raise TypeError("This Estimator do not exist")

        if (saveDir == None):
            self.foldername = self.rs.OPTIpath + str(self.sizeOfTarget) + "/"
        else:
            self.foldername = saveDir

        self.costStore = []
        self.trajTimeStore = []
        self.lastCoord = []

        self.sizeOfTarget = sizeOfTarget
        self.thetafile = thetafile
        self.actor = actor
        self.saveName = self.foldername + logDir + "/"
        self.nbReset = 0
        self.cost = 0
        self.max = 0
        self.progressTab = [0.1, 0.25, 0.5, 0.75, 1.]
        self.progress = 1
        self.reset()