Exemplo n.º 1
0
    world.regionOperating.size[0] = 600
    world.regionOperating.size[1] = 400

    world.regionGoal.center[0] = 100
    world.regionGoal.center[1] = 100
    world.regionGoal.size[0] = 40
    world.regionGoal.size[0] = 40

    obs = Region(2)
    obs.center[0] = 0
    obs.center[1] = 200
    obs.size[0] = 10
    obs.size[1] = 10
    world.obstacles.append(obs)

    planner = RRTstarPlanner(2)
    planner.world = world

    root = planner.getRootVertex()
    rootState = root.state
    rootState[0] = 0
    rootState[1] = 0

    planner.initialize()

    # This parameter should be larger than 1.5 for asymptotic
    # optimality. Larger values will weigh on optimization
    # rather than exploration in the RRT* algorithm. Lower
    # values, such as 0.1, should recover the RRT.
    planner.setGamma(1.5)
Exemplo n.º 2
0
'''
Created on Jan 4, 2015

@author: daqing_yi
'''

from RRTstarPlanner import *
import time

if __name__ == '__main__':

    def calcDist(currentPos, referencePos):
        dist = 0.0
        if referencePos == None:
            return dist
        dist = np.sqrt((currentPos[0] - referencePos[0])**2 +
                       (currentPos[1] - referencePos[1])**2)
        return dist

    MAP_FILE = './map.png'

    planner = RRTstarPlanner([600, 400], 10, calcDist, MAP_FILE)

    path = planner.findPath([40, 40], [500, 40], 6000)
    print path

    import pygame.image
    pygame.image.save(planner.rrts_viz.screen, 'RRTstar02.png')

    while True:
        planner.rrts_viz.update()
Exemplo n.º 3
0
            readInput = True

    start_pos = mapMgrViz.convertedTrackingPosList[0]
    end_pos = mapMgrViz.convertedTrackingPosList[
        len(mapMgrViz.convertedTrackingPosList) - 1]

    def calcDist(currentPos, referencePos):
        dist = 0.0
        if referencePos == None:
            return dist
        dist = np.sqrt((currentPos[0] - referencePos[0])**2 +
                       (currentPos[1] - referencePos[1])**2)
        return dist

    homoMgr = HomotopyMgr(mapMgrViz.world_map, mapMgrViz.reader)
    homoMgr.init(mapMgrViz.refString)
    planner = RRTstarPlanner([mapMgr.width, mapMgr.height], 10, calcDist,
                             MAP_FILE)

    for subseg in mapMgr.subsegments:
        planner.rrts_viz.refLines.append(
            [subseg.line_seg.coords[0], subseg.line_seg.coords[1]])

    path = planner.findPath(start_pos, end_pos, 1000, homoMgr)
    print path

    import pygame.image
    pygame.image.save(planner.rrts_viz.screen, 'RRTstar02.png')

    while True:
        planner.rrts_viz.update()
Exemplo n.º 4
0
Created on Jan 4, 2015

@author: daqing_yi
'''

from RRTstarPlanner import *
import time

if __name__ == '__main__':

    def calcDist(currentNode, referenceNode):
        dist = 0.0
        if referenceNode == None:
            return dist
        dist = np.sqrt((currentNode.pos[0] - referenceNode.pos[0])**2 +
                       (currentNode.pos[1] - referenceNode.pos[1])**2)
        return dist

    MAP_FILE = './lab-map-inferior.png'
    MAP_FILE = './lab-map-scaled.png'

    planner = RRTstarPlanner([444, 989], 10, calcDist, MAP_FILE)

    path = planner.findPath([40, 40], [320, 300], 1000)
    print path

    import pygame.image
    pygame.image.save(planner.rrts_viz.screen, 'RRTstar01.png')

    while True:
        planner.rrts_viz.update()
Exemplo n.º 5
0
        error = int(dx / 2.0)
        ystep = 1 if y1 < y2 else -1

        y = y1
        points = []
        for x in range(x1, x2):
            coord = (y, x) if is_steep else (x, y)
            points.append(coord)
            if coord[1] >= objVals.shape[0] or coord[0] >= objVals.shape[1]:
                continue
            cost += objVals[int(coord[1]), int(coord[0])] / 255.0
            error -= abs(dy)
            if error < 0:
                y += ystep
                error += dx

        return cost

    planner = RRTstarPlanner([600, 400], 10, calcCost)

    planner.rrts_viz.loadObj(FIT_FILE)

    path = planner.findPath([40, 40], [500, 40], 2000)
    print path

    import pygame.image
    pygame.image.save(planner.rrts_viz.screen, 'RRTstar00-1.png')

    while True:
        planner.rrts_viz.update()