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