In [1]:
using AutomotiveDrivingModels
using AutoViz
using Reactive, Interact
using AutoUrban
using VirtualTestDrive
WARNING: Method definition copy!(Array{Float64, 1}, AutomotiveDrivingModels.LatLonAccel) in module AutomotiveDrivingModels at /home/eric/.julia/v0.6/AutomotiveDrivingModels/src/2d/actions/lat_lon_accel.jl:13 overwritten in module AutoUrban at /home/eric/.julia/v0.6/AutoUrban/src/simulation/actions.jl:10.
In [2]:
using Reactive, Interact
#Need a same roadway in VTD
scene = Frame(Entity{VehicleState, BicycleModel, Int},100)
timeStep = 0.05
models = Dict{Int, DriverModel}()
roadway = gen_stadium_roadway(2)
Out[2]:
In [3]:
connection,entries=VirtualTestDrive.initialize();
for i in 1:length(entries[3])
(x,y,heading,v)=(entries[3][i].base.pos.x,entries[3][i].base.pos.y,entries[3][i].base.pos.h,sqrt(entries[3][i].ext.speed.x^2+entries[3][i].ext.speed.y^2))
push!(scene,Entity(VehicleState(VecSE2(x,y,heading), roadway, v),
BicycleModel(VehicleDef(AgentClass.CAR, 4.826, 1.81)),i))
models[i]=MultiPtsTurningDriver(timeStep,v_max=5.0,v_min=0.0,turning_direction=1)
excute_action!(models[i],0.0,0,scene, roadway, i)
end
actions = get_actions!(Array{Any}(length(scene)), scene, roadway, models)
render(scene, roadway,cam=FitToContentCamera())
Out[3]:
In [4]:
entries
Out[4]:
16-element Array{Any,1}:
RDB_START_OF_FRAME_t:
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_OBJECT_CFG_t:
id: 1
category: 1
thetype: 1
modelId: 1
name: ['A', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
modelName: ['A', 'u', 'd', 'i', ' ', 'A', '3', ' ', '-', ' ' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
fileName: ['1', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
flags: 1
spare0: 0
spare1: 0
, RDB_OBJECT_CFG_t:
id: 2
category: 1
thetype: 1
modelId: 1
name: ['B', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
modelName: ['A', 'u', 'd', 'i', ' ', 'A', '3', ' ', '-', ' ' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
fileName: ['1', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
flags: 1
spare0: 0
spare1: 0
, RDB_OBJECT_CFG_t:
id: 3
category: 1
thetype: 1
modelId: 1
name: ['C', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
modelName: ['A', 'u', 'd', 'i', ' ', 'A', '3', ' ', '-', ' ' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
fileName: ['1', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
flags: 1
spare0: 0
spare1: 0
, RDB_OBJECT_CFG_t:
id: 4
category: 1
thetype: 1
modelId: 1
name: ['D', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
modelName: ['A', 'u', 'd', 'i', ' ', 'A', '3', ' ', '-', ' ' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
fileName: ['1', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
flags: 1
spare0: 0
spare1: 0
, RDB_OBJECT_CFG_t:
id: 5
category: 1
thetype: 1
modelId: 1
name: ['E', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
modelName: ['A', 'u', 'd', 'i', ' ', 'A', '3', ' ', '-', ' ' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
fileName: ['1', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' … '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0']
flags: 1
spare0: 0
spare1: 0
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_OBJECT_STATE_t:
base: RDB_OBJECT_STATE_BASE_t
ext: RDB_OBJECT_STATE_EXT_t
, RDB_OBJECT_STATE_t:
base: RDB_OBJECT_STATE_BASE_t
ext: RDB_OBJECT_STATE_EXT_t
, RDB_OBJECT_STATE_t:
base: RDB_OBJECT_STATE_BASE_t
ext: RDB_OBJECT_STATE_EXT_t
, RDB_OBJECT_STATE_t:
base: RDB_OBJECT_STATE_BASE_t
ext: RDB_OBJECT_STATE_EXT_t
, RDB_OBJECT_STATE_t:
base: RDB_OBJECT_STATE_BASE_t
ext: RDB_OBJECT_STATE_EXT_t
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_VEHICLE_SYSTEMS_t:
playerId: 1
lightMask: 0
steering: +0.0000000000000000e+00
steeringWheelTorque: +0.0000000000000000e+00
accMask: 0
accSpeed: 0
batteryState: 0
batteryRate: 0
displayLightMask: 0
spare0: 0
spare: (0, 0, 0, 0, 0)
, RDB_VEHICLE_SYSTEMS_t:
playerId: 2
lightMask: 0
steering: +0.0000000000000000e+00
steeringWheelTorque: +0.0000000000000000e+00
accMask: 0
accSpeed: 0
batteryState: 0
batteryRate: 0
displayLightMask: 0
spare0: 0
spare: (0, 0, 0, 0, 0)
, RDB_VEHICLE_SYSTEMS_t:
playerId: 3
lightMask: 0
steering: +0.0000000000000000e+00
steeringWheelTorque: +0.0000000000000000e+00
accMask: 0
accSpeed: 0
batteryState: 0
batteryRate: 0
displayLightMask: 0
spare0: 0
spare: (0, 0, 0, 0, 0)
, RDB_VEHICLE_SYSTEMS_t:
playerId: 4
lightMask: 0
steering: +0.0000000000000000e+00
steeringWheelTorque: +0.0000000000000000e+00
accMask: 0
accSpeed: 0
batteryState: 0
batteryRate: 0
displayLightMask: 0
spare0: 0
spare: (0, 0, 0, 0, 0)
, RDB_VEHICLE_SYSTEMS_t:
playerId: 5
lightMask: 0
steering: +2.1783344447612762e-01
steeringWheelTorque: +0.0000000000000000e+00
accMask: 0
accSpeed: 0
batteryState: 0
batteryRate: 0
displayLightMask: 0
spare0: 0
spare: (0, 0, 0, 0, 0)
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_VEHICLE_SETUP_t:
playerId: 1
mass: +1.5600000000000000e+03
wheelBase: +2.5910000801086426e+00
spare: (0, 0, 0, 0)
, RDB_VEHICLE_SETUP_t:
playerId: 2
mass: +1.5600000000000000e+03
wheelBase: +2.5910000801086426e+00
spare: (0, 0, 0, 0)
, RDB_VEHICLE_SETUP_t:
playerId: 3
mass: +1.5600000000000000e+03
wheelBase: +2.5910000801086426e+00
spare: (0, 0, 0, 0)
, RDB_VEHICLE_SETUP_t:
playerId: 4
mass: +1.5600000000000000e+03
wheelBase: +2.5910000801086426e+00
spare: (0, 0, 0, 0)
, RDB_VEHICLE_SETUP_t:
playerId: 5
mass: +1.5600000000000000e+03
wheelBase: +2.5910000801086426e+00
spare: (0, 0, 0, 0)
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_ENGINE_t:
base: RDB_ENGINE_BASE_t
ext: RDB_ENGINE_EXT_t
, RDB_ENGINE_t:
base: RDB_ENGINE_BASE_t
ext: RDB_ENGINE_EXT_t
, RDB_ENGINE_t:
base: RDB_ENGINE_BASE_t
ext: RDB_ENGINE_EXT_t
, RDB_ENGINE_t:
base: RDB_ENGINE_BASE_t
ext: RDB_ENGINE_EXT_t
, RDB_ENGINE_t:
base: RDB_ENGINE_BASE_t
ext: RDB_ENGINE_EXT_t
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_CAMERA_t:
id: 1
width: 320
height: 258
spare0: 0
clipNear: +1.0000000000000000e+00
clipFar: +1.5000000000000000e+03
focalX: +1.1196152343750000e+03
focalY: +1.1196152343750000e+03
principalX: +4.0000000000000000e+02
principalY: +3.0000000000000000e+02
pos: RDB_COORD_t
spare1: (0, 0, 0, 0)
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_DRIVER_CTRL_t:
playerId: 1
steeringWheel: +0.0000000000000000e+00
steeringSpeed: +0.0000000000000000e+00
throttlePedal: +0.0000000000000000e+00
brakePedal: +0.0000000000000000e+00
clutchPedal: +0.0000000000000000e+00
accelTgt: +0.0000000000000000e+00
steeringTgt: +0.0000000000000000e+00
curvatureTgt: +0.0000000000000000e+00
steeringTorque: +0.0000000000000000e+00
engineTorqueTgt: +0.0000000000000000e+00
speedTgt: +0.0000000000000000e+00
gear: 4
sourceId: 0
spare0: (0, 0)
validityFlags: 40e2
flags: 0
mockupInput0: 0
mockupInput1: 0
mockupInput2: 0
spare: 0
, RDB_DRIVER_CTRL_t:
playerId: 2
steeringWheel: +0.0000000000000000e+00
steeringSpeed: +0.0000000000000000e+00
throttlePedal: +0.0000000000000000e+00
brakePedal: +0.0000000000000000e+00
clutchPedal: +0.0000000000000000e+00
accelTgt: +0.0000000000000000e+00
steeringTgt: +0.0000000000000000e+00
curvatureTgt: +0.0000000000000000e+00
steeringTorque: +0.0000000000000000e+00
engineTorqueTgt: +0.0000000000000000e+00
speedTgt: +0.0000000000000000e+00
gear: 4
sourceId: 0
spare0: (0, 0)
validityFlags: 40e2
flags: 0
mockupInput0: 0
mockupInput1: 0
mockupInput2: 0
spare: 0
, RDB_DRIVER_CTRL_t:
playerId: 3
steeringWheel: +0.0000000000000000e+00
steeringSpeed: +0.0000000000000000e+00
throttlePedal: +0.0000000000000000e+00
brakePedal: +0.0000000000000000e+00
clutchPedal: +0.0000000000000000e+00
accelTgt: +0.0000000000000000e+00
steeringTgt: +0.0000000000000000e+00
curvatureTgt: +0.0000000000000000e+00
steeringTorque: +0.0000000000000000e+00
engineTorqueTgt: +0.0000000000000000e+00
speedTgt: +0.0000000000000000e+00
gear: 4
sourceId: 0
spare0: (0, 0)
validityFlags: 40e2
flags: 0
mockupInput0: 0
mockupInput1: 0
mockupInput2: 0
spare: 0
, RDB_DRIVER_CTRL_t:
playerId: 4
steeringWheel: +0.0000000000000000e+00
steeringSpeed: +0.0000000000000000e+00
throttlePedal: +0.0000000000000000e+00
brakePedal: +0.0000000000000000e+00
clutchPedal: +0.0000000000000000e+00
accelTgt: +0.0000000000000000e+00
steeringTgt: +0.0000000000000000e+00
curvatureTgt: +0.0000000000000000e+00
steeringTorque: +0.0000000000000000e+00
engineTorqueTgt: +0.0000000000000000e+00
speedTgt: +0.0000000000000000e+00
gear: 4
sourceId: 0
spare0: (0, 0)
validityFlags: 40e2
flags: 0
mockupInput0: 0
mockupInput1: 0
mockupInput2: 0
spare: 0
, RDB_DRIVER_CTRL_t:
playerId: 5
steeringWheel: +0.0000000000000000e+00
steeringSpeed: +0.0000000000000000e+00
throttlePedal: +0.0000000000000000e+00
brakePedal: +0.0000000000000000e+00
clutchPedal: +0.0000000000000000e+00
accelTgt: -1.0239766406250000e+05
steeringTgt: +2.1783344447612762e-01
curvatureTgt: +0.0000000000000000e+00
steeringTorque: +0.0000000000000000e+00
engineTorqueTgt: +0.0000000000000000e+00
speedTgt: +0.0000000000000000e+00
gear: 4
sourceId: 0
spare0: (0, 0)
validityFlags: 40e2
flags: 0
mockupInput0: 0
mockupInput1: 0
mockupInput2: 0
spare: 0
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_DRIVER_PERCEPTION_t:
playerId: 1
speedFromRules: +2.0000000000000000e+01
distToSpeed: +0.0000000000000000e+00
spare0: (0, 0, 0, 0)
flags: 0
spare: (0, 0, 0, 0)
, RDB_DRIVER_PERCEPTION_t:
playerId: 2
speedFromRules: +2.0000000000000000e+01
distToSpeed: +0.0000000000000000e+00
spare0: (0, 0, 0, 0)
flags: 0
spare: (0, 0, 0, 0)
, RDB_DRIVER_PERCEPTION_t:
playerId: 3
speedFromRules: +2.0000000000000000e+01
distToSpeed: +0.0000000000000000e+00
spare0: (0, 0, 0, 0)
flags: 0
spare: (0, 0, 0, 0)
, RDB_DRIVER_PERCEPTION_t:
playerId: 4
speedFromRules: +2.0000000000000000e+01
distToSpeed: +0.0000000000000000e+00
spare0: (0, 0, 0, 0)
flags: 0
spare: (0, 0, 0, 0)
, RDB_DRIVER_PERCEPTION_t:
playerId: 5
speedFromRules: +2.7777778625488281e+01
distToSpeed: -1.0000000000000000e+00
spare0: (0, 0, 0, 0)
flags: 0
spare: (0, 0, 0, 0)
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_ENVIRONMENT_t:
visibility: +1.0000000000000000e+05
timeOfDay: 9ab0
brightness: +9.6666663885116577e-01
precipitation: 0
cloudState: 1
flags: 0
spare1: (0, 0, 0, 0, 0, 0, 0, 0)
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_CUSTOM_SCORING_t:
playerId: 1
pathS: +0.0000000000000000e+00
roadS: +1.6841409683227539e+01
fuelCurrent: +0.0000000000000000e+00
fuelAverage: +0.0000000000000000e+00
stateFlags: 0
slip: +0.0000000000000000e+00
spare: (0, 0, 0, 0)
, RDB_CUSTOM_SCORING_t:
playerId: 2
pathS: +0.0000000000000000e+00
roadS: +3.3588401794433594e+01
fuelCurrent: +0.0000000000000000e+00
fuelAverage: +0.0000000000000000e+00
stateFlags: 0
slip: +0.0000000000000000e+00
spare: (0, 0, 0, 0)
, RDB_CUSTOM_SCORING_t:
playerId: 3
pathS: +0.0000000000000000e+00
roadS: +4.5692699432373047e+01
fuelCurrent: +0.0000000000000000e+00
fuelAverage: +0.0000000000000000e+00
stateFlags: 0
slip: +0.0000000000000000e+00
spare: (0, 0, 0, 0)
, RDB_CUSTOM_SCORING_t:
playerId: 4
pathS: +0.0000000000000000e+00
roadS: +3.7612414550781250e+02
fuelCurrent: +0.0000000000000000e+00
fuelAverage: +0.0000000000000000e+00
stateFlags: 0
slip: +0.0000000000000000e+00
spare: (0, 0, 0, 0)
, RDB_CUSTOM_SCORING_t:
playerId: 5
pathS: +0.0000000000000000e+00
roadS: +1.0597499847412109e+01
fuelCurrent: +0.0000000000000000e+00
fuelAverage: +0.0000000000000000e+00
stateFlags: 0
slip: +0.0000000000000000e+00
spare: (0, 0, 0, 0)
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_ROAD_STATE_t:
playerId: 1
wheelId: -1
spare0: 0
spare1: 0
roadId: 2
defaultSpeed: +2.7777778625488281e+01
waterLevel: +0.0000000000000000e+00
eventMask: 0
spare2: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
, RDB_ROAD_STATE_t:
playerId: 2
wheelId: -1
spare0: 0
spare1: 0
roadId: 2
defaultSpeed: +2.7777778625488281e+01
waterLevel: +0.0000000000000000e+00
eventMask: 0
spare2: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
, RDB_ROAD_STATE_t:
playerId: 3
wheelId: -1
spare0: 0
spare1: 0
roadId: 2
defaultSpeed: +2.7777778625488281e+01
waterLevel: +0.0000000000000000e+00
eventMask: 0
spare2: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
, RDB_ROAD_STATE_t:
playerId: 4
wheelId: -1
spare0: 0
spare1: 0
roadId: 2
defaultSpeed: +2.7777778625488281e+01
waterLevel: +0.0000000000000000e+00
eventMask: 0
spare2: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
, RDB_ROAD_STATE_t:
playerId: 5
wheelId: -1
spare0: 0
spare1: 0
roadId: 2
defaultSpeed: +2.7777778625488281e+01
waterLevel: +0.0000000000000000e+00
eventMask: 0
spare2: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_ROAD_POS_t:
playerId: 1
roadId: 2
laneId: 1
flags: 1
roadS: +1.6841409683227539e+01
roadT: +5.5638562887907028e-02
laneOffset: -6.9436144828796387e-01
hdgRel: +0.0000000000000000e+00
pitchRel: +0.0000000000000000e+00
rollRel: +0.0000000000000000e+00
roadType: 1
spare1: 0
spare2: 0
pathS: +0.0000000000000000e+00
, RDB_ROAD_POS_t:
playerId: 2
roadId: 2
laneId: -2
flags: 1
roadS: +3.3588401794433594e+01
roadT: -2.8862700462341309e+00
laneOffset: -6.3626998662948608e-01
hdgRel: +0.0000000000000000e+00
pitchRel: +0.0000000000000000e+00
rollRel: +0.0000000000000000e+00
roadType: 1
spare1: 0
spare2: 0
pathS: +0.0000000000000000e+00
, RDB_ROAD_POS_t:
playerId: 3
roadId: 2
laneId: 1
flags: 1
roadS: +4.5692699432373047e+01
roadT: +1.9341999292373657e-01
laneOffset: -5.5658000707626343e-01
hdgRel: +0.0000000000000000e+00
pitchRel: +0.0000000000000000e+00
rollRel: +0.0000000000000000e+00
roadType: 1
spare1: 0
spare2: 0
pathS: +0.0000000000000000e+00
, RDB_ROAD_POS_t:
playerId: 4
roadId: 2
laneId: -1
flags: 1
roadS: +3.7612414550781250e+02
roadT: -2.9980534687638283e-02
laneOffset: +7.2001945972442627e-01
hdgRel: +2.9734183044638485e-06
pitchRel: +0.0000000000000000e+00
rollRel: +0.0000000000000000e+00
roadType: 1
spare1: 0
spare2: 0
pathS: +0.0000000000000000e+00
, RDB_ROAD_POS_t:
playerId: 5
roadId: 2
laneId: -2
flags: 1
roadS: +1.0597499847412109e+01
roadT: -2.8865900039672852e+00
laneOffset: -6.3659000396728516e-01
hdgRel: +0.0000000000000000e+00
pitchRel: +0.0000000000000000e+00
rollRel: +0.0000000000000000e+00
roadType: 1
spare1: 0
spare2: 0
pathS: +0.0000000000000000e+00
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_LANE_INFO_t:
roadId: 2
id: -3
neighborMask: 2
leftLaneId: -2
rightLaneId: 127
borderType: 0
material: 0
status: 0
thetype: 1
width: +1.5000000000000000e+00
curvVert: +0.0000000000000000e+00
curvVertDot: -0.0000000000000000e+00
curvHor: +0.0000000000000000e+00
curvHorDot: -0.0000000000000000e+00
playerId: 5
spare1: 0
, RDB_LANE_INFO_t:
roadId: 2
id: -2
neighborMask: 7
leftLaneId: -1
rightLaneId: -3
borderType: 0
material: 0
status: 0
thetype: 1
width: +1.5000000000000000e+00
curvVert: +0.0000000000000000e+00
curvVertDot: -0.0000000000000000e+00
curvHor: +0.0000000000000000e+00
curvHorDot: -0.0000000000000000e+00
playerId: 5
spare1: 0
, RDB_LANE_INFO_t:
roadId: 2
id: -1
neighborMask: 6
leftLaneId: 1
rightLaneId: -2
borderType: 0
material: 0
status: 0
thetype: 1
width: +1.5000000000000000e+00
curvVert: +0.0000000000000000e+00
curvVertDot: -0.0000000000000000e+00
curvHor: +0.0000000000000000e+00
curvHorDot: -0.0000000000000000e+00
playerId: 5
spare1: 0
, RDB_LANE_INFO_t:
roadId: 2
id: 1
neighborMask: 4
leftLaneId: 127
rightLaneId: -1
borderType: 0
material: 0
status: 0
thetype: 1
width: +1.5000000000000000e+00
curvVert: +0.0000000000000000e+00
curvVertDot: -0.0000000000000000e+00
curvHor: +0.0000000000000000e+00
curvHorDot: -0.0000000000000000e+00
playerId: 5
spare1: 0
]
VirtualTestDrive.RDB_PACKAGE_ELEMENT[RDB_SYNC_t:
mask: 0
cmdMask: 0
systemTime: +1.5010927867771809e+09
]
RDB_END_OF_FRAME_t:
In [5]:
function updateScene!(entries,scene)
actions_VTD = []
for i in 1:length(entries[3])
veh = scene[i]
(x,y,heading,v)=(entries[3][i].base.pos.x,entries[3][i].base.pos.y,entries[3][i].base.pos.h,sqrt(entries[3][i].ext.speed.x^2+entries[3][i].ext.speed.y^2))
posG = VecSE2(x,y,heading)
posF = Frenet(posG, roadway)
state = VehicleState(posG,posF,v)
scene[i] = Entity(state, veh.def, veh.id)
steering=entries[4][i].steering
acc=sqrt.(entries[3][i].ext.accel.x^2+entries[3][i].ext.accel.y^2)
if entries[3][i].ext.accel.x*cos(heading)+entries[3][i].ext.accel.y*sin(heading)<0
acc=-acc
end
push!(actions_VTD,AccelSteeringAngle(acc,steering))
end
tick!(scene,roadway,actions_VTD,timeStep)
end
Out[5]:
updateScene! (generic function with 1 method)
In [6]:
function get_udp_entries(models)
udp_entries = Array{VirtualTestDrive.RDB_PACKAGE_ELEMENT}(0)
for key = keys(models)
udp_entry=VirtualTestDrive.create_udp_entry(VirtualTestDrive.RDB_DRIVER_CTRL_t,convert(UInt32,key),
accelTgt=convert(Cfloat,models[key].siji.acc),steeringTgt=convert(Cfloat,models[key].siji.steer),
validityFlags=convert(UInt32,VirtualTestDrive.RDB_DRIVER_INPUT_VALIDITY_TGT_ACCEL | VirtualTestDrive.RDB_DRIVER_INPUT_VALIDITY_TGT_STEERING | VirtualTestDrive.RDB_DRIVER_INPUT_VALIDITY_ADD_ON))
push!(udp_entries,udp_entry)
end
#println(udp_entries)
return udp_entries
end
Out[6]:
get_udp_entries (generic function with 1 method)
In [7]:
function drawsim(t)
udp_entries = get_udp_entries(models)
#print(udp_entries)
entries=VirtualTestDrive.processOneFrame_continuous(connection,udp_entries);
updateScene!(entries,scene)
for (i,veh) in enumerate(scene)
if veh.state.v < 5.0
excute_action!(models[i],5.0,0,scene, roadway, i)
AutomotiveDrivingModels.observe!(models[veh.id], scene, roadway, veh.id)
else
excute_action!(models[i],0.0,0,scene, roadway, i)
AutomotiveDrivingModels.observe!(models[veh.id], scene, roadway, veh.id)
end
AutomotiveDrivingModels.observe!(models[veh.id], scene, roadway, veh.id)
end
#render(scene, roadway,models,cam=SceneFollowCamera(10.0))
render(scene, roadway, models, cam=FitToContentCamera())
end
framerate=40
ticks = fps(framerate)
timestamps = map(_ -> time(), ticks)
map(drawsim, timestamps)
WARNING: Compat.ASCIIString is deprecated, use String instead.
likely near /home/eric/.julia/v0.6/IJulia/src/kernel.jl:31
WARNING: Compat.ASCIIString is deprecated, use String instead.
likely near /home/eric/.julia/v0.6/IJulia/src/kernel.jl:31
WARNING: Compat.ASCIIString is deprecated, use String instead.
likely near /home/eric/.julia/v0.6/IJulia/src/kernel.jl:31
WARNING: Compat.ASCIIString is deprecated, use String instead.
likely near /home/eric/.julia/v0.6/IJulia/src/kernel.jl:31
Out[7]:
WARNING: Compat.ASCIIString is deprecated, use String instead.
likely near /home/eric/.julia/v0.6/IJulia/src/kernel.jl:31
WARNING: Compat.ASCIIString is deprecated, use String instead.
likely near /home/eric/.julia/v0.6/IJulia/src/kernel.jl:31
In [ ]:
Content source: sisl/VirtualTestDrive.jl
Similar notebooks: