The 1.7.0 release supports 'traci.person.moveToXY'.
Through you could also use position conversion to initialize them on edges
directly:
https://sumo.dlr.de/docs/Tools/Sumolib.html#locate_nearby_edges_based_on_the_geo-coordinate

regards,
Jakob

Am Mo., 7. Sept. 2020 um 17:58 Uhr schrieb Paul Fierro <
[email protected]>:

> Hello,
>
> I have been trying to place approximately 200 people at varying locations
> at the start of the simulation and then I just want them to wait there
> until another vehicle arrives to picck them up.
>
> Once that vehicle gets close and stops then the initialization
> person/vehicle can disappear and essentially take 1 of the capacity of the
> arriving vehicle like a bus picking someone up.  I have read all the Long,
> Lats into a data frame, and converted it to X,Y cartesian with no issues.
> I then move using moveToXY( ....., with keepRoute=2) as this is the only
> method that seems to not get the 100-meter road nearby error.
>
> I initially created a simple route as launching pad where I then moved to
> the other more important initialization point read into the data frame, but
> what happens is although vehicle WIP count on gui is correct they are not
> available to the simulation, as they seem to be teleporting.
>
> I then decided to load 194 random trips just to get them going into the
> model moving, and then move them to the initialization point.  I am using
> vehicles to do this as it was the only object that had movetoXY function,
> but I do see persons or pedestrians' object.  I was wondering if someone
> could give some guidance of how best to move appropriate objects to
> allocation waiting for later bus to come pick them up.  I am still working
> through trial and error and will look back here to see if any code example
> exits to do this rudimentary item at initialization.
>
>
>     tsp_file = "..\qa194.tsp"
>     problem = somTsp.read_tsp_oat(tsp_file)
>     ids = problem['id'].values
>     problem['Lng'] = problem['x'].apply( lambda x: (x*.001) )
>     problem['Lat'] = problem['y'].apply( lambda x: (x*.001) )
>     problem['x'] = problem['x'].apply( lambda x: (x*.001)*11000 )
>     problem['y'] = problem['y'].apply( lambda x: (x*.001)*11000 )
>     problemXYvals = problem[['x', 'y']].values
>     problemLatLngvals = problem[['Lat', 'Lng']].values
>
>     stid = traci.route.add("startRoute", startRoute )
>     for inx, pt in enumerate(problemXYvals):
>         x = pt[0]
>         y = pt[1]
>         iLng = problemLatLngvals[inx][0]
>         iLat = problemLatLngvals[inx][1]
>         XYconv = traci.simulation.convertGeo( iLng, iLat, fromGeo=True )
>         Xcnv = round(XYconv[0], 10)
>         Ycnv = round(XYconv[1], 10)
>         veh_ids = ids[inx]
>         #traci.vehicle.add(veh_ids, "startRoute" )
>         #speed = traci.vehicle.getSpeed(veh_ids)
>         vehicleState, chgDfni = GetVehcileState(saveVehicleState, veh_ids)
>         saveVehicleState.update( { veh_ids: vehicleState } )
>         vehicleState[23] = Xcnv
>         vehicleState[24] = Ycnv
>         print ( "veh_id:", veh_ids, " Store Vehilce starting location
> Xcnv:", Xcnv," Ycnv:", Ycnv )
>         # if inx == 2:
>         #     break
>
>     StartSimulationEndSeconds = 3600*10
>     cstsecs = 0
>     step            = 0
>     targMPH         = 35 # 22.352 m/s = 50 MPH
>     targMPS         =   targMPH * 0.44704
>
>     # parse the net - temporary comment out
>     #net = sumolib.net.readNet('./Qatar.net.xml')
>     # trafficLightRoutes, nonTrafficLightRoutes =
> InitSumoTrafficLightArrays()
>     while traci.simulation.getMinExpectedNumber() > 0 or cstsecs <
> StartSimulationEndSeconds:
>         amtCount = traci.vehicle.getIDCount()
>         print(" amt_count:", amtCount )
>         if amtCount == 194:
>             print(" WIP TARGET MADE:", amt_count)
>
>         for veh_ids in traci.vehicle.getIDList():
>             veh_id = int(veh_ids)
>             position = traci.vehicle.getPosition(veh_ids)
>             xv = tuple(position)[0]
>             yv = tuple(position)[1]
>             geo = traci.simulation.convertGeo(xv, yv, fromGeo=False)
>             lngv = round(geo[0], 10)
>             latv = round(geo[1], 10)
>
>             vehicleState, chgDfni = GetVehcileState( saveVehicleState,
> veh_ids )
>             Xcnv = vehicleState[23]
>             Ycnv = vehicleState[24]
>             route_id = traci.vehicle.getRouteID( veh_ids )
>             edge_id = traci.vehicle.getRoadID( veh_ids )
>             lane_index = traci.vehicle.getLaneIndex( veh_ids )
>             angle = traci.vehicle.getAngle( veh_ids )
>             speed = traci.vehicle.getSpeed( veh_ids )
>             if speed > 0.0:
>                traci.vehicle.slowDown( veh_ids, 0.0, 1.0 )
>
>             if not (Xcnv == xv and Ycnv == yv):
>                 edge_id = ""
>                 lane_index = -1
>                 traci.vehicle.moveToXY( veh_ids, edge_id, lane_index,
> Xcnv, Ycnv, angle, keepRoute=2 )
>                 traci.vehicle.moveToXY( veh_ids, edge_id, lane_index,
> Xcnv, Ycnv, angle, keepRoute=2 )
>                 print( "veh_id:", veh_ids, " Moved Vehilce to Xcnv:",
> Xcnv, " Ycnv:", Ycnv, " speed:", speed, edge_id, lane_index, angle )
>             else:
>                 print( "veh_id:", veh_ids, " Arrived at stop! speed:",
> speed, edge_id, lane_index, angle  )
>
>
>         for veh_ids in traci.simulation.getArrivedIDList():
>             print("veh_id:", veh_ids, " Restarting Route Why?" )
>             traci.vehicle.add(veh_ids, "startRoute")
>             vehicleState, chgDfni = GetVehcileState(saveVehicleState,
> veh_ids)
>             XcnvOld = vehicleState[23]
>             YcnvOld = vehicleState[24]
>             rndvX = 1.0 + ((random.random() - .5) * 2.0) * .05
>             rndvY = 1.0 + ((random.random() - .5) * 2.0) * .05
>             Xcnv = XcnvOld * rndvX
>             Ycnv = YcnvOld * rndvY
>             vehicleState[23]  = Xcnv
>             vehicleState[24]  = Ycnv
>             print ( "veh_id:", veh_ids, " ADJUSTING Vehilce starting
> location Xcnv:", Xcnv," Ycnv:", Ycnv )
>             saveVehicleState.update( { veh_ids: vehicleState } )
>
>         traci.simulationStep()
>         step += 1
>
>
>
>
>
> _______________________________________________
> sumo-user mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/sumo-user
>
_______________________________________________
sumo-user mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to