def computeFeatureVector(self, S):
        carState, raycastDistance = S
        featureVec = np.zeros(self.numFeatures)
        featureVec[0] = 1
        featureVec[1:] = utils.inverseTruncate(raycastDistance, self.cutoff, rayLength=self.rayLength,
                                               collisionThreshold=self.collisionThreshold)

        return featureVec
    def computeFeatureVector(self, S):
        carState, raycastDistance = S
        featureVec = np.zeros(self.numFeatures)
        featureVec[0] = 1
        featureVec[1:] = utils.inverseTruncate(
            raycastDistance,
            self.cutoff,
            rayLength=self.rayLength,
            collisionThreshold=self.collisionThreshold)

        return featureVec
Example #3
0
    def computeRaycastReward(self, S, u):
        carState, raycastDistance = S
        # raycastAdjusted = raycastDistance - self.collisionThreshold
        # maxRangeIdx = np.where(raycastDistance > self.rayLength - self.tol)
        # raycastAdjusted[maxRangeIdx] = self.largeConstant
        #
        # raycastAdjusted = self.setMaxRangeToLargeConstant()


        inverseTruncated = utils.inverseTruncate(raycastDistance, self.cutoff, rayLength=self.rayLength,
                                                 collisionThreshold=self.collisionThreshold)
        return np.dot(self.raycastRewardWeights, inverseTruncated)