文档首页>
自动驾驶云服务 Octopus>
用户指南>
仿真服务>
Open SCENARIO2.0场景说明>
动态场景>
附录 Appendix>
ALKS样例>
FollowLeadVehicleEmergencyBrake
更新时间:2024-07-03 GMT+08:00
FollowLeadVehicleEmergencyBrake
简述:主车Ego和正前方33.33m的头车lead_vehicle按照相同的初始速度匀速行驶,前车突然刹车,10000s后激活Ego的controller,40s后停止场景(激活时间与场景停止时间可修改)。
osc2.0场景
import standard scenario FollowLeadVehicleEmergencyBrake: # map map: map map.set_map_file("./ALKS_Road.xodr") # parameter Ego_InitPosition_LaneId: string = '-4' m_odr: odr_point = map.create_odr_point(road_id: '0', lane_id: Ego_InitPosition_LaneId, s: 5.0m, t: 0.0m) Ego_InitPosition: pose_3d with: keep(it.odr_point == m_odr) Ego_InitSpeed_Ve0: speed = 16.66666667mps LeadVehicle_InitDistance_dx0: length = 33.33333333m LeadVehicle_BrakeRate_Gx_max: acceleration = 6.0mpss m_rate_profile: dynamics_shape = linear Duration: time = 40s # entity Ego_Name: string = "Audi_A3_2009_black" LeadVehicle_Name: string = "Audi_A3_2009_red" Ego_Controller: string = "DefaultDriver" Ego: vehicle with: keep(it.name == Ego_Name) keep(it.initial_bm == Ego_Controller) lead_vehicle: vehicle with: keep(it.name == LeadVehicle_Name) # storyboard do parallel(duration: Duration): # init Ego.assign_init_position(position: Ego_InitPosition) Ego.assign_init_speed(Ego_InitSpeed_Ve0) lead_vehicle.assign_init_position() with: lane(same_as: Ego) position(LeadVehicle_InitDistance_dx0, ahead_of: Ego) lead_vehicle.assign_init_speed(Ego_InitSpeed_Ve0) # act1: ActivateALKSControllerAct serial: wait elapsed(10000s) Ego.activate_controller(true, true) # args: lateral, longitudinal # act2: BrakeAct # VaryingSpeedEvent serial: wait elapsed(10s) lead_vehicle.change_speed(target: 0.0mps, rate_profile: m_rate_profile, rate_peak: LeadVehicle_BrakeRate_Gx_max)
转化结果
<OpenSCENARIO > <FileHeader author="Octopus/Simulation" date="2022-10-28T08:12:34" description="" revMajor="1" revMinor="0"/ > <CatalogLocations > <VehicleCatalog > <Directory path="Distros/Current/Config/Players/Vehicles"/ > </VehicleCatalog > <ControllerCatalog > <Directory path="Distros/Current/Config/Players/driverCfg.xml"/ > </ControllerCatalog > <PedestrianCatalog > <Directory path="Distros/Current/Config/Players/Pedestrians"/ > </PedestrianCatalog > <MiscObjectCatalog > <Directory path="Distros/Current/Config/Players/Objects"/ > </MiscObjectCatalog > </CatalogLocations > <RoadNetwork > <LogicFile filepath="./ALKS_Road.xodr"/ > <SceneGraphFile filepath=""/ > </RoadNetwork > <Entities > <ScenarioObject name="Ego" > <Vehicle name="Audi_A3_2009_black" vehicleCategory="car" > <BoundingBox > <Center x="1.5" y="0" z="0.9"/ > <Dimensions height="2.1" length="4.5" width="1.8"/ > </BoundingBox > <Performance maxAcceleration="8" maxDeceleration="8" maxSpeed="60"/ > <Axles > <FrontAxle maxSteering="0.5" positionX="3.1" positionZ="0.3" trackWidth="1.8" wheelDiameter="0.6"/ > <RearAxle maxSteering="0" positionX="0" positionZ="0.3" trackWidth="1.8" wheelDiameter="0.6"/ > </Axles > <Properties > <Property name="control" value="external"/ > </Properties > </Vehicle > <ObjectController > <Controller name="DefaultDriver" > <Properties/ > </Controller > </ObjectController > </ScenarioObject > <ScenarioObject name="lead_vehicle" > <Vehicle name="Audi_A3_2009_red" vehicleCategory="car" > <BoundingBox > <Center x="1.5" y="0" z="0.9"/ > <Dimensions height="2.1" length="4.5" width="1.8"/ > </BoundingBox > <Performance maxAcceleration="8" maxDeceleration="8" maxSpeed="60"/ > <Axles > <FrontAxle maxSteering="0.5" positionX="3.1" positionZ="0.3" trackWidth="1.8" wheelDiameter="0.6"/ > <RearAxle maxSteering="0" positionX="0" positionZ="0.3" trackWidth="1.8" wheelDiameter="0.6"/ > </Axles > <Properties/ > </Vehicle > </ScenarioObject > </Entities > <Storyboard > <Init > <Actions > <Private entityRef="Ego" > <PrivateAction > <TeleportAction > <Position > <LanePosition laneId="-4" offset="0" roadId="0" s="5"/ > </Position > </TeleportAction > </PrivateAction > <PrivateAction > <LongitudinalAction > <SpeedAction > <SpeedActionDynamics dynamicsDimension="time" dynamicsShape="step" value="0"/ > <SpeedActionTarget > <AbsoluteTargetSpeed value="16.66666667"/ > </SpeedActionTarget > </SpeedAction > </LongitudinalAction > </PrivateAction > </Private > <Private entityRef="lead_vehicle" > <PrivateAction > <TeleportAction > <Position > <RelativeLanePosition dLane="0" ds="33.33333333" entityRef="Ego"/ > </Position > </TeleportAction > </PrivateAction > <PrivateAction > <LongitudinalAction > <SpeedAction > <SpeedActionDynamics dynamicsDimension="time" dynamicsShape="step" value="0"/ > <SpeedActionTarget > <AbsoluteTargetSpeed value="16.66666667"/ > </SpeedActionTarget > </SpeedAction > </LongitudinalAction > </PrivateAction > </Private > </Actions > </Init > <Story name="FollowLeadVehicleEmergencyBrakeStory" > <Act name="Ego_activate_controller_7_act" > <ManeuverGroup maximumExecutionCount="1" name="Ego_activate_controller_7_maneuvers" > <Actors selectTriggeringEntities="false" > <EntityRef entityRef="Ego"/ > </Actors > <Maneuver name="Ego_activate_controller_7_maneuver" > <Event maximumExecutionCount="1" name="Ego_activate_controller_7_event" priority="overwrite" > <Action name="Ego_activate_controller_7" > <PrivateAction > <ActivateControllerAction lateral="true" longitudinal="true"/ > </PrivateAction > </Action > <StartTrigger > <ConditionGroup > <Condition conditionEdge="rising" delay="0" name="Ego_activate_controller_7_condition_1" > <ByValueCondition > <SimulationTimeCondition rule="greaterThan" value="0"/ > </ByValueCondition > </Condition > </ConditionGroup > </StartTrigger > </Event > </Maneuver > </ManeuverGroup > <StartTrigger > <ConditionGroup > <Condition conditionEdge="rising" delay="0" name="Ego_activate_controller_7_condition" > <ByValueCondition > <SimulationTimeCondition rule="greaterThan" value="10000"/ > </ByValueCondition > </Condition > </ConditionGroup > </StartTrigger > </Act > <Act name="lead_vehicle_change_speed_1_act" > <ManeuverGroup maximumExecutionCount="1" name="lead_vehicle_change_speed_1_maneuvers" > <Actors selectTriggeringEntities="false" > <EntityRef entityRef="lead_vehicle"/ > </Actors > <Maneuver name="lead_vehicle_change_speed_1_maneuver" > <Event maximumExecutionCount="1" name="lead_vehicle_change_speed_1_event" priority="overwrite" > <Action name="lead_vehicle_change_speed_1" > <PrivateAction > <LongitudinalAction > <SpeedAction > <SpeedActionDynamics dynamicsDimension="rate" dynamicsShape="linear" value="6"/ > <SpeedActionTarget > <AbsoluteTargetSpeed value="0"/ > </SpeedActionTarget > </SpeedAction > </LongitudinalAction > </PrivateAction > </Action > <StartTrigger > <ConditionGroup > <Condition conditionEdge="rising" delay="0" name="lead_vehicle_change_speed_1_condition_1" > <ByValueCondition > <SimulationTimeCondition rule="greaterThan" value="0"/ > </ByValueCondition > </Condition > </ConditionGroup > </StartTrigger > </Event > </Maneuver > </ManeuverGroup > <StartTrigger > <ConditionGroup > <Condition conditionEdge="rising" delay="0" name="lead_vehicle_change_speed_1_condition" > <ByValueCondition > <SimulationTimeCondition rule="greaterThan" value="10"/ > </ByValueCondition > </Condition > </ConditionGroup > </StartTrigger > </Act > </Story > <StopTrigger > <ConditionGroup > <Condition conditionEdge="rising" delay="0" name="story_end" > <ByValueCondition > <SimulationTimeCondition rule="greaterThan" value="40"/ > </ByValueCondition > </Condition > </ConditionGroup > </StopTrigger > </Storyboard > </OpenSCENARIO>
父主题: ALKS样例