scenario_runner
scenario_runner copied to clipboard
Raise KeyError 'misc' when using MiscObject in OpenScenario files
Describe the bug The OpenScenario file containing the MiscObject keyword could not complete compilation
Expected behavior Compiles properly
Screenshots
Desktop (please complete the following information):
- OS: [e.g. Windows 10]
- CARLA Version [e.g. CARLA 0.9.13]
- Python version [e.g. 3.8]
- Version [e.g. 0.9.13]
Additional context Add any other context about the problem here.
Can I see your xosc file?
Can I see your xosc file?
Of Course.
Can I see your xosc file?
<?xml version="1.0" encoding="utf-8"?>
<OpenScenario>
<FileHeader revMajor="1" revMinor="0" date="2024-03-11T16:19:49" description="CARLA:test" author=""/>
<CatalogLocations>
</CatalogLocations>
<RoadNetwork>
<LogicFile filepath="Town05"/>
</RoadNetwork>
<Entities>
<ScenarioObject name="hero">
<Vehicle name="vehicle.lincoln.mkz_2017" vehicleCategory="car">
<Performance maxSpeed="69.444" maxAcceleration="200" maxDeceleration="10.0"/>
<BoundingBox>
<Center x="1.5" y="0.0" z="0.9"/>
<Dimensions width="2.1" length="4.5" height="1.8"/>
</BoundingBox>
<Axles>
<FrontAxle maxSteering="0.5" wheelDiameter="0.6" trackWidth="1.8" positionX="3.1" positionZ="0.3"/>
<RearAxle maxSteering="0.0" wheelDiameter="0.6" trackWidth="1.8" positionX="0.0" positionZ="0.3"/>
</Axles>
<Properties/>
</Vehicle>
</ScenarioObject>
<ScenarioObject name="adversary">
<Vehicle name="vehicle.tesla.model3" vehicleCategory="car">
<Performance maxSpeed="69.444" maxAcceleration="200" maxDeceleration="10.0"/>
<BoundingBox>
<Center x="1.5" y="0.0" z="0.9"/>
<Dimensions width="2.1" length="4.5" height="1.8"/>
</BoundingBox>
<Axles>
<FrontAxle maxSteering="0.5" wheelDiameter="0.6" trackWidth="1.8" positionX="3.1" positionZ="0.3"/>
<RearAxle maxSteering="0.0" wheelDiameter="0.6" trackWidth="1.8" positionX="0.0" positionZ="0.3"/>
</Axles>
<Properties/>
</Vehicle>
</ScenarioObject>
<ScenarioObject name="Box">
<MiscObject name="box" miscObjectCategory="obstacle" model3d="../models/box_cc_by.osgb" mass="200.0">
<BoundingBox>
<Center x="0.0" y="0.0" z="0.75"/>
<Dimensions width="1.0" length="2.0" height="1.2"/>
</BoundingBox>
<Properties/>
</MiscObject>
</ScenarioObject>
</Entities>
<Storyboard>
<Init>
<Actions>
<GlobalAction>
<EnvironmentAction>
<Environment name="weather">
<RoadCondition frictionScaleFactor="1.0"/>
<Weather>
<Precipitation precipitationType="dry"/>
<Fog visualRange="100000.0"/>
<Sun intensity="0.85" elevation="0.5" azimuth="0.5"/>
</Weather>
<TimeOfDay dateTime="2020-01-01T12:00:00" animation="true"/>
</Environment>
</EnvironmentAction>
</GlobalAction>
<Private entityRef="hero">
<PrivateAction>
<ControllerAction>
<AssignControllerAction>
<Controller name="HeroAgent">
<Properties>
<Property name="module" value="external_control"/>
</Properties>
</Controller>
</AssignControllerAction>
<OverrideControllerValueAction>
<Throttle value="0" active="false"/>
<Brake value="0" active="false"/>
<Clutch value="0" active="false"/>
<ParkingBrake value="0" active="false"/>
<SteeringWheel value="0" active="false"/>
<Gear number="0" active="false"/>
</OverrideControllerValueAction>
</ControllerAction>
</PrivateAction>
<PrivateAction>
<LateralAction>
<LaneOffsetAction continuous="true">
<LaneOffsetTarget>
<AbsoluteTargetLaneOffset value="0.0"/>
</LaneOffsetTarget>
<LaneOffsetActionDynamics maxLateralAcc="10.0" dynamicsShape="linear"/>
</LaneOffsetAction>
</LateralAction>
</PrivateAction>
<PrivateAction>
<TeleportAction>
<Position>
<LanePosition roadId="1" laneId="-1" offset="0" s="45"/>
</Position>
</TeleportAction>
</PrivateAction>
</Private>
<Private entityRef="adversary">
<PrivateAction>
<LateralAction>
<LaneOffsetAction continuous="true">
<LaneOffsetTarget>
<RelativeTargetLaneOffset value="0.0" entityRef="adversary"/>
</LaneOffsetTarget>
<LaneOffsetActionDynamics maxLateralAcc="1.0" dynamicsShape="linear"/>
</LaneOffsetAction>
</LateralAction>
</PrivateAction>
<PrivateAction>
<RoutingAction>
<AssignRouteAction>
<Route name="HostStraightRoute" closed="false">
<Waypoint routeStrategy="shortest">
<Position>
<WorldPosition x="-128.5" y="-1.5" z="0.0" h="3.1415926"/>
</Position>
</Waypoint>
<Waypoint routeStrategy="shortest">
<Position>
<LanePosition roadId="1" laneId="1" offset="0" s="45"/>
</Position>
</Waypoint>
<Waypoint routeStrategy="shortest">
<Position>
<LanePosition roadId="1" laneId="1" offset="0" s="0"/>
</Position>
</Waypoint>
<Waypoint routeStrategy="shortest">
<Position>
<LanePosition roadId="5" laneId="-1" offset="0" s="30"/>
</Position>
</Waypoint>
</Route>
</AssignRouteAction>
</RoutingAction>
</PrivateAction>
<PrivateAction>
<LongitudinalAction>
<SpeedAction>
<SpeedActionTarget>
<AbsoluteTargetSpeed value="10.0"/>
</SpeedActionTarget>
<SpeedActionDynamics value="1.5" dynamicsShape="step" dynamicsDimension="distance"/>
</SpeedAction>
</LongitudinalAction>
</PrivateAction>
</Private>
<Private entityRef="Box">
<PrivateAction>
<TeleportAction>
<Position>
<LanePosition roadId="1" laneId="-1" offset="0" s="35"/>
</Position>
</TeleportAction>
</PrivateAction>
</Private>
</Actions>
</Init>
<Story name="MyStory">
<Act name="Behaviour">
<ManeuverGroup name="MyManeuverGroup" maximumExecutionCount="1">
<Actors selectTriggeringEntities="false">
<EntityRef entityRef="adversary"/>
</Actors>
<Maneuver name="MyManeuver">
<Event name="MyEvent" priority="overwrite">
<Action name="MyEventAction">
<PrivateAction>
<LongitudinalAction>
<SpeedAction>
<SpeedActionDynamics dynamicsShape="step" value="1.5" dynamicsDimension="distance"/>
<SpeedActionTarget>
<AbsoluteTargetSpeed value="10"/>
</SpeedActionTarget>
</SpeedAction>
</LongitudinalAction>
</PrivateAction>
</Action>
<StartTrigger>
<ConditionGroup>
<Condition name="StartCondition" delay="0" conditionEdge="rising">
<ByEntityCondition>
<TriggeringEntities triggeringEntitiesRule="any">
<EntityRef entityRef="hero"/>
</TriggeringEntities>
<EntityCondition>
<RelativeDistanceCondition entityRef="adversary" relativeDistanceType="cartesianDistance" value="14.0" freespace="false" rule="lessThan"/>
</EntityCondition>
</ByEntityCondition>
</Condition>
</ConditionGroup>
</StartTrigger>
</Event>
</Maneuver>
</ManeuverGroup>
<StartTrigger/>
<StopTrigger>
<ConditionGroup>
<Condition name="EndCondition" delay="0" conditionEdge="rising">
<ByEntityCondition>
<TriggeringEntities triggeringEntitiesRule="any">
<EntityRef entityRef="hero"/>
</TriggeringEntities>
<EntityCondition>
<TraveledDistanceCondition value="200.0"/>
</EntityCondition>
</ByEntityCondition>
</Condition>
</ConditionGroup>
</StopTrigger>
</Act>
</Story>
<StopTrigger/>
</Storyboard>
</OpenScenario>
You can test the box
by Carla whether there is or you can replace a default static object:static.prop.streetbarrier
You can test the
box
by Carla whether there is or you can replace a default static object:static.prop.streetbarrier
I'm sorry, I don't quite understand. Could you be more specific
you can change your xosc file to test whether the box
exists
<ScenarioObject name="Box">
<MiscObject name="box" miscObjectCategory="obstacle" model3d="../models/box_cc_by.osgb" mass="200.0">
<BoundingBox>
<Center x="0.0" y="0.0" z="0.75"/>
<Dimensions width="1.0" length="2.0" height="1.2"/>
</BoundingBox>
<Properties/>
</MiscObject>
</ScenarioObject>
===>
<ScenarioObject name="Box">
<MiscObject name="static.prop.streetbarrier" miscObjectCategory="obstacle" mass="0.0">
<BoundingBox>
<Center x="0.0" y="0.0" z="0.75"/>
<Dimensions width="1.0" length="2.0" height="1.2"/>
</BoundingBox>
<Properties/>
</MiscObject>
</ScenarioObject>
you can change your xosc file to test whether the
box
exists<ScenarioObject name="Box"> <MiscObject name="box" miscObjectCategory="obstacle" model3d="../models/box_cc_by.osgb" mass="200.0"> <BoundingBox> <Center x="0.0" y="0.0" z="0.75"/> <Dimensions width="1.0" length="2.0" height="1.2"/> </BoundingBox> <Properties/> </MiscObject> </ScenarioObject>
===>
<ScenarioObject name="Box"> <MiscObject name="static.prop.streetbarrier" miscObjectCategory="obstacle" mass="0.0"> <BoundingBox> <Center x="0.0" y="0.0" z="0.75"/> <Dimensions width="1.0" length="2.0" height="1.2"/> </BoundingBox> <Properties/> </MiscObject> </ScenarioObject>
It works!Thank you!