文档首页>
自动驾驶云服务 Octopus>
用户指南>
仿真服务>
Open SCENARIO2.0场景说明>
动态场景>
附录 Appendix>
ALKS样例>
ForwardDetectionRange
更新时间:2024-05-13 GMT+08:00
ForwardDetectionRange
简述:主车Ego按照初始速度16.667mps匀速行驶,右前方(偏移5.25m)约500m处有一个行人target_blocking,10000s后激活Ego的controller,40s后停止场景(激活时间与场景停止时间可修改)。
osc2.0场景
import standard scenario ForwardDetectionRange: # map map: map map.set_map_file("./ALKS_Road.xodr") # parameter Ego_InitPosition_LaneId: string = "-4" Ego_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 == Ego_Odr) Ego_InitSpeed_Ve0: speed = 16.66666667mps TargetBlocking_InitPosition_Offset: length = -5.25m TargetBlocking_Odr: odr_point = map.create_odr_point(road_id: '0', lane_id: Ego_InitPosition_LaneId, s: 500.0m, t: TargetBlocking_InitPosition_Offset) TargetBlocking_InitPosition: pose_3d with: keep(it.odr_point == TargetBlocking_Odr) m_vehicle_catalog: catalog = vehicle_catalog m_target_blocking_catalog: catalog = pedestrian_catalog Duration: time = 40s # entity Ego_Name: string = "Audi_A3_2009_black" Ego_Controller: string = "DefaultDriver" Ego: vehicle with: keep(it.name == Ego_Name) keep(it.initial_bm == Ego_Controller) target_blocking: person with: keep(it.name == "Christian") keep(it.model == "male_adult") # storyboard do parallel(duration: Duration): # init Ego.assign_init_position(position: Ego_InitPosition) Ego.assign_init_speed(Ego_InitSpeed_Ve0) target_blocking.assign_init_position(position: TargetBlocking_InitPosition) # story serial: # act 1: ActivateALKSControllerStory wait elapsed(10000s) Ego.activate_controller(true, true) # lateral, longitudinal
转化结果
<OpenSCENARIO> <FileHeader author="Octopus/Simulation" date="2022-10-29T01:46:19" 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="target_blocking"> <Pedestrian mass="80" model="male_adult" name="Christian" pedestrianCategory="pedestrian"> <BoundingBox> <Center x="1.5" y="0" z="0.9"/> <Dimensions height="2.1" length="4.5" width="1.8"/> </BoundingBox> <Properties/> </Pedestrian> </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="target_blocking"> <PrivateAction> <TeleportAction> <Position> <LanePosition laneId="-4" offset="-5.25" roadId="0" s="500"/> </Position> </TeleportAction> </PrivateAction> </Private> </Actions> </Init> <Story name="ForwardDetectionRangeStory"> <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> </Story> <StopTrigger> <ConditionGroup> <Condition conditionEdge="rising" delay="0" name="story_end"> <ByValueCondition> <SimulationTimeCondition rule="greaterThan" value="40"/> </ByValueCondition> </Condition> </ConditionGroup> </StopTrigger> </Storyboard> </OpenSCENARIO>
父主题: ALKS样例