I want to set up the problem properly and then highlight the issue I am having.

I have a series of people that need to be picked up by a busroute, and I see 
numerous capabilities to handle bus routes that I am not using as of yet.  What 
I am doing now is I am visiting a RoadId or route segment near the person and 
when the vehicle arrives the person will board and then the bus will change its 
Target to a new destination target to the next customer in the route.

at times this fails because the person is on a road segment that does Not allow 
vehicles to travel down, like local road/rural road/private road.  I have 
gotten around this by writing a radius alternative algorithm using your api too 
discover a nearby road that does allow vehicles.  This works fine.

Occasionally when the vehicle arrives to a person's nearby location, the route 
ends on a dead-end route.  In this case changeTarget does not turn the vehicle 
around, instead what may be an available destination is failed, as well as I am 
sure the original problem which some of the edges are not allowing vehicle's 
may also be failing.

Simply, I have tried moveToXY as a way to re orient the vehicle at angle -= 180 
degrees.  This would seem to be needed a prerequisite to calling changeTarget.  
This is my current thinking and strategy.  But somehow, I am calling movetoXY 
in manner that does not work.  It must be in lane_index, edge_id, angle, xv, yv 
values.  I need to turn this vehicle around so a change Target can take it to 
the next customer.

Lastly, is there a way to check if an edge allows vehicle or not, and 
potentially can that be changed.

        tmp = traci.simulation.convertRoad( XcnvTry, YcnvTry )
        destEdgeId = tmp[0]
        lane_index = tmp[2]

        nptabu = np.array(tabu)
        stateNotTabu = StateNotInTabu([destEdgeId], nptabu)
        if stateNotTabu:
            tabu.append([destEdgeId])
            print('Size of Tabu List:', len(tabu))

            try:
                traci.vehicle.changeTarget(prid, destEdgeId )
                #done = True
                headingToX = XcnvTry
                headingToY = YcnvTry
                initialChampionFound = True
                dtry = distEuclid( XcnvTry, YcnvTry, XCustcnv, YCustcnv )
                if dtry < chDfrmOrig:
                    chEdgeId = destEdgeId
                    chDfrmOrig = dtry
                    chXtry = XcnvTry
                    chYtry = YcnvTry
                    print( "NEW CHAMPION - Base Radius stRadius:", stRadius ," 
cnt:", cnt, " ch:", chDfrmOrig, chXtry , chYtry  )
                    if circularMove:
                        break
            except:
                pass

    return chEdgeId, chXtry, chYtry, cnt


Could not make Bold work:

#     route_id = traci.vehicle.getRouteID(prid)
# edge_id = traci.vehicle.getRoadID(prid)
# lane_index = traci.vehicle.getLaneIndex(prid)
# position = traci.vehicle.getPosition(prid)
# xv = tuple(position)[0]
# yv = tuple(position)[1]
# angle = traci.vehicle.getAngle(prid)
# angle -= 180.0
#
# fndMinus = edge_id.find('-')
# if fndMinus >= 0:
#     edge_id = edge_id[1:]
# else:
#     edge_id = '-' + edge_id
#
# traci.vehicle.moveToXY(prid, edge_id, lane_index, xv + 50, yv + 50, angle, 
keepRoute=2)
# try:
#     traci.vehicle.changeTarget(prid, destEdgeId)
#     # done = True
#     headingToX = XcnvTry
#     headingToY = YcnvTry
#     initialChampionFound = True
#     dtry = distEuclid(XcnvTry, YcnvTry, XCustcnv, YCustcnv)
#     if dtry < chDfrmOrig:
#         chEdgeId = destEdgeId













_______________________________________________
sumo-user mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to