更新时间: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>
分享:

    相关文档

    相关产品