*# Objective*

I want to use predefined speed vectors for individual vehicles to move them
in SUMO simulation.

*# Data and files*
There are 3 vehicles in the simulation. For 2 of those vehicles, I want to
specify the speeds. The speed data is created in `Python` as follows:

    import numpy as np
    import pandas as pd
    from pandas import Series, DataFrame

    data = {'ADO_name':['car1','car1','car1','car2','car2','car2'],
            'Time_sec':[0,1,2,0,1,2],
            'Speed.kph':[50,51,52,0,0,52]}
    dframe = DataFrame(data)

The route, network and configuration files for this simulation are
available in a folder here:  https://1drv.ms/f/s!
AsMFpkDhWcnw61EI5wR6hPaaRBJI
I have also put the code in a `Script.py` file in the same folder.

*# What I tried*
Following is the code that I've been trying to use, along with the error:


    #start sumo
    sumoBinary = "C:/Users/Quinton/Desktop/Documents/Sumo/bin/sumo-gui"
    sumoCmd = [sumoBinary, "-c", "C:/Users/Quinton/Desktop/
Example2/example2.sumocfg"]


    #importing libraries
    import traci
    import traci.constants as tc
    traci.start(sumoCmd)

    #subscribing to variables that we want to be printed once the copy has
run
    traci.vehicle.subscribe("car1", (tc.VAR_SPEED, tc.VAR_ROAD_ID,
tc.VAR_LANE_ID, tc.VAR_LANEPOSITION))
    traci.vehicle.subscribe("car2", (tc.VAR_SPEED, tc.VAR_ROAD_ID,
tc.VAR_LANE_ID, tc.VAR_LANEPOSITION))
    traci.vehicle.subscribe("car3", (tc.VAR_SPEED, tc.VAR_ROAD_ID,
tc.VAR_LANE_ID, tc.VAR_LANEPOSITION))

    #using traci.movetoXY to position car1 and car2 on network
    traci.vehicle.moveToXY(vehID="car1", edgeID="highway1.1", lane=0,
x=1000, y=-3.3, keepRoute=0)
    traci.vehicle.moveToXY(vehID="car2", edgeID="highway1.1", lane=1,
x=700, y=3.3, keepRoute=0)

    #disallows car1 and car2 from changing lanes during simulation
    traci.vehicle.setLaneChangeMode(vehID="car1", lcm=512)
    traci.vehicle.setLaneChangeMode(vehID="car2", lcm=512)


    #importing python modules
    import numpy as np
    import pandas as pd
    from pandas import Series, DataFrame

    #creating speed data
    data = {'ADO_name':['car1','car1','car1','car2','car2','car2'],
            'Time_sec':[0,1,2,0,1,2],
            'Speed.kph':[50,51,52,0,0,52]}
    dframe = DataFrame(data)
    #print(dframe)

    step = 0

    #running traci
    for ado in dframe.groupby('ADO_name'):
      ado_name = ado[1]["ADO_name"]
      adoID = ado_name.unique()

      while step <= 2:
        traci.simulationStep()
        traci.vehicle.setSpeed(adoID, ado[1][ado[1].Time_sec ==
step]['Speed.kph'])
        print (traci.vehicle.getSubscriptionResults("car1"), traci.vehicle.
getSubscriptionResults("car2"))

      step += 1

*# Error:*

    Traceback (most recent call last):
      File 
"C:\Users\Quinton\AppData\Local\Temp\Rtmp6jCqR4\chunk-code-16888822790.txt",
line 41, in <module>
        traci.vehicle.setSpeed(adoID, ado[1][ado[1].Time_sec ==
step]['Speed.kph'])
      File "C:\Program Files (x86)\DLR\Sumo\tools\traci\_vehicle.py", line
927, in setSpeed
        tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SPEED, vehID, speed)
      File "C:\Program Files (x86)\DLR\Sumo\tools\traci\connection.py",
line 139, in _sendDoubleCmd
        self._beginMessage(cmdID, varID, objID, 1 + 8)
      File "C:\Program Files (x86)\DLR\Sumo\tools\traci\connection.py",
line 127, in _beginMessage
        self._packString(objID, varID)
      File "C:\Program Files (x86)\DLR\Sumo\tools\traci\connection.py",
line 66, in _packString
        self._string += struct.pack("!Bi", pre, len(s)) + s.encode("latin1")
    AttributeError: 'numpy.ndarray' object has no attribute 'encode'

*# Notes *
>From my understanding, the problem is somewhere in `#running traci` section
of the code. I tested this code without invoking `TraCI` and using
`print()` instead of  `traci.vehicle.setSpeed()` and got no error. So, it
seems that `Python` side of things are fine. Could you please help me
fixing this problem
_______________________________________________
sumo-user mailing list
sumo-user@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/sumo-user

Reply via email to