Esempio n. 1
0
    def noteCarMove(self, oldPos, newPos):
        oldRow, oldCol = util.yToRow(oldPos.y), util.xToCol(oldPos.x)
        newRow, newCol = util.yToRow(newPos.y), util.xToCol(newPos.x)
        oldTile = (oldRow, oldCol)
        newTile = (newRow, newCol)

        if oldTile in self.transitions:
            self.transitions[oldTile][newTile] += 1
        else:
            self.transitions[oldTile] = collections.Counter()
            self.transitions[oldTile][newTile] = 1
Esempio n. 2
0
 def isCloseToOtherCar(self, beliefOfOtherCars):
     newBounds = []
     offset = self.dir.normalized() * 1.5 * Car.LENGTH
     newPos = self.pos + offset
     row = util.yToRow(newPos.y)
     col = util.xToCol(newPos.x)
     p = beliefOfOtherCars.getProb(row, col)
     return p > AutoDriver.MIN_PROB
Esempio n. 3
0
 def isCloseToOtherCar(self, beliefOfOtherCars):
     newBounds = []
     # The multiplier was 1.5
     offset = self.dir.normalized() * 1 * Car.LENGTH
     newPos = self.pos + offset
     row = util.yToRow(newPos.y)
     col = util.xToCol(newPos.x)
     p = beliefOfOtherCars.getProb(row, col)
     # print 'row:{0} col:{1} prob:{2}'.format(row,col,p);
     return p > AutoDriver.MIN_PROB
Esempio n. 4
0
    def noteCarMove(self, oldPos, newPos):
        oldRow, oldCol = util.yToRow(oldPos.y), util.xToCol(oldPos.x)
        newRow, newCol = util.yToRow(newPos.y), util.xToCol(newPos.x)
        oldTile = (oldRow, oldCol)
        newTile = (newRow, newCol)

        if oldRow not in self.transTable:
            self.transTable[oldRow] = {}
            self.visitedTable[oldRow] = {}

        if oldCol not in self.transTable[oldRow]:
            self.transTable[oldRow][oldCol] = {}
            self.visitedTable[oldRow][oldCol] = 0

        self.visitedTable[oldRow][oldCol] += 1

        if newRow not in self.transTable[oldRow][oldCol]:
            self.transTable[oldRow][oldCol][newRow] = {}

        if newCol not in self.transTable[oldRow][oldCol][newRow]:
            self.transTable[oldRow][oldCol][newRow][newCol] = 0

        self.transTable[oldRow][oldCol][newRow][newCol] += 1
Esempio n. 5
0
 def calculateErrorForCar(self, otherCar):
     pos = otherCar.getPos()
     carRow = util.yToRow(pos.y)
     carCol = util.xToCol(pos.x)
     belief = otherCar.getInference().getBelief()
     total = belief.getSum()
     if abs(total - 1.0) > 0.001:
         raise Exception('belief does not sum to 1. Use the normalize method.')
     totalError = 0
     for r in range(belief.getNumRows()):
         for c in range(belief.getNumCols()):
             prob = belief.getProb(r, c)
             difRow = r - carRow
             difCol = c - carCol
             error = math.sqrt(difRow ** 2 + difCol ** 2)
             errorSquared = error ** 2
             totalError += errorSquared * prob
     return totalError
Esempio n. 6
0
 def getProbAtPos(self, beliefOfOtherCars, pos):
     row = util.yToRow(pos.y)
     col = util.xToCol(pos.x)
     p = beliefOfOtherCars.getProb(row, col)
     return p