From 304b2ee919890c7f739f7c416828aec5fc06ba73 Mon Sep 17 00:00:00 2001 From: Netrapalli-Madhusudhan Raghunandan <netrapalli-madhusudhan.raghunandan@partner.bmwgroup.com> Date: Mon, 7 Apr 2025 08:08:37 +0200 Subject: [PATCH] Run gtgen with common configs --- .../Common/Scenarios/XOSC/Scenario.xosc | 210 ++++++++++++++++++ .../Common/UserSettings/UserSettings.ini | 39 ++++ utils/ci/Jenkinsfile | 3 +- utils/ci/scripts/run_gtgen.sh | 38 ++++ 4 files changed, 289 insertions(+), 1 deletion(-) create mode 100644 sim/contrib/examples/Common/Scenarios/XOSC/Scenario.xosc create mode 100644 sim/contrib/examples/Common/UserSettings/UserSettings.ini create mode 100755 utils/ci/scripts/run_gtgen.sh diff --git a/sim/contrib/examples/Common/Scenarios/XOSC/Scenario.xosc b/sim/contrib/examples/Common/Scenarios/XOSC/Scenario.xosc new file mode 100644 index 000000000..17eea7f30 --- /dev/null +++ b/sim/contrib/examples/Common/Scenarios/XOSC/Scenario.xosc @@ -0,0 +1,210 @@ +<?xml version='1.0' encoding='UTF-8'?> +<OpenSCENARIO> + <FileHeader revMajor="1" revMinor="1" date="2020-06-26T00:17:00" description="openPASS default scenario" author="in-tech GmbH"/> + <CatalogLocations> + <VehicleCatalog> + <Directory path="../../Vehicles"/> + </VehicleCatalog> + <PedestrianCatalog> + <Directory path="../../Vehicles"/> + </PedestrianCatalog> + <ControllerCatalog> + <Directory path=""/> + </ControllerCatalog> + <ManeuverCatalog> + <Directory path=""/> + </ManeuverCatalog> + <MiscObjectCatalog> + <Directory path=""/> + </MiscObjectCatalog> + <EnvironmentCatalog> + <Directory path=""/> + </EnvironmentCatalog> + <TrajectoryCatalog> + <Directory path=""/> + </TrajectoryCatalog> + <RouteCatalog> + <Directory path=""/> + </RouteCatalog> + </CatalogLocations> + <RoadNetwork> + <LogicFile filepath="../../SceneryConfiguration.xodr"/> + <SceneGraphFile filepath=""/> + </RoadNetwork> + <Entities> + <ScenarioObject name="Ego"> + <CatalogReference catalogName="VehicleCatalog" entryName="car_mini_cooper"/> + <ObjectController name="Ego"> + <Controller name="libComplexController"> + <Properties> + <Property name="controllerConfig::name" value="Ego"/> + <Property name="controllerConfig::parameters::profile" value="MiddleClassCarAgent"/> + <Property name="simulator::paths::config" value="/home/jenkins/agent/opSimulation/repo/sim/contrib/examples/Common"/> + <Property name="simulator::paths::lib" value="/home/jenkins/agent/opSimulation/gecco/gecco/modules"/> + <Property name="entityProperties::bounding_box::dimension::height" value="1.420000"/> + <Property name="entityProperties::bounding_box::dimension::length" value="3.800000"/> + <Property name="entityProperties::bounding_box::dimension::width" value="1.890000"/> + <Property name="entityProperties::bounding_box::geometric_center::x" value="1.350000"/> + <Property name="entityProperties::bounding_box::geometric_center::y" value="0.000000"/> + <Property name="entityProperties::bounding_box::geometric_center::z" value="0.710000"/> + <Property name="entityProperties::classification" value="4"/> + <Property name="entityProperties::front_axle::bb_center_to_axle_center::x" value="1.130000"/> + <Property name="entityProperties::front_axle::bb_center_to_axle_center::y" value="0.000000"/> + <Property name="entityProperties::front_axle::bb_center_to_axle_center::z" value="-0.415000"/> + <Property name="entityProperties::front_axle::max_steering" value="0.476600"/> + <Property name="entityProperties::front_axle::track_width" value="1.800000"/> + <Property name="entityProperties::front_axle::wheel_diameter" value="0.590000"/> + <Property name="entityProperties::is_controlled_externally" value="0"/> + <Property name="entityProperties::is_host" value="1"/> + <Property name="entityProperties::mass" value="1235.000000"/> + <Property name="entityProperties::model" value="car_mini_cooper"/> + <Property name="entityProperties::performance::max_acceleration" value="9.806650"/> + <Property name="entityProperties::performance::max_acceleration_rate" value="inf"/> + <Property name="entityProperties::performance::max_deceleration" value="9.806650"/> + <Property name="entityProperties::performance::max_deceleration_rate" value="inf"/> + <Property name="entityProperties::performance::max_speed" value="58.330000"/> + <Property name="entityProperties::properties::AirDragCoefficient" value="0.3"/> + <Property name="entityProperties::properties::AxleRatio" value="3.789"/> + <Property name="entityProperties::properties::DecelerationFromPowertrainDrag" value="0.5"/> + <Property name="entityProperties::properties::FrictionCoefficient" value="1.0"/> + <Property name="entityProperties::properties::FrontSurface" value="2.07"/> + <Property name="entityProperties::properties::GearRatio1" value="4.154"/> + <Property name="entityProperties::properties::GearRatio2" value="2.45"/> + <Property name="entityProperties::properties::GearRatio3" value="1.557"/> + <Property name="entityProperties::properties::GearRatio4" value="1.09"/> + <Property name="entityProperties::properties::GearRatio5" value="0.843"/> + <Property name="entityProperties::properties::GearRatio6" value="0.675"/> + <Property name="entityProperties::properties::GearRatio7" value="0.547"/> + <Property name="entityProperties::properties::MaximumEngineSpeed" value="6000.0"/> + <Property name="entityProperties::properties::MaximumEngineTorque" value="220.0"/> + <Property name="entityProperties::properties::MinimumEngineSpeed" value="900.0"/> + <Property name="entityProperties::properties::MinimumEngineTorque" value="-54.0"/> + <Property name="entityProperties::properties::MomentInertiaPitch" value="0.0"/> + <Property name="entityProperties::properties::MomentInertiaRoll" value="0.0"/> + <Property name="entityProperties::properties::MomentInertiaYaw" value="0.0"/> + <Property name="entityProperties::properties::NumberOfGears" value="7"/> + <Property name="entityProperties::properties::SensorPosition/FrontCenter/Height" value="0.57"/> + <Property name="entityProperties::properties::SensorPosition/FrontCenter/Lateral" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontCenter/Longitudinal" value="3.22"/> + <Property name="entityProperties::properties::SensorPosition/FrontCenter/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontCenter/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontCenter/Yaw" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontLeft/Height" value="0.65"/> + <Property name="entityProperties::properties::SensorPosition/FrontLeft/Lateral" value="0.65"/> + <Property name="entityProperties::properties::SensorPosition/FrontLeft/Longitudinal" value="3.05"/> + <Property name="entityProperties::properties::SensorPosition/FrontLeft/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontLeft/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontLeft/Yaw" value="1.134464"/> + <Property name="entityProperties::properties::SensorPosition/FrontRight/Height" value="0.65"/> + <Property name="entityProperties::properties::SensorPosition/FrontRight/Lateral" value="-0.65"/> + <Property name="entityProperties::properties::SensorPosition/FrontRight/Longitudinal" value="3.05"/> + <Property name="entityProperties::properties::SensorPosition/FrontRight/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontRight/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontRight/Yaw" value="-1.134464"/> + <Property name="entityProperties::properties::SensorPosition/FrontWindow/Height" value="1.28"/> + <Property name="entityProperties::properties::SensorPosition/FrontWindow/Lateral" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontWindow/Longitudinal" value="1.83"/> + <Property name="entityProperties::properties::SensorPosition/FrontWindow/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontWindow/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/FrontWindow/Yaw" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/RearLeft/Height" value="0.6"/> + <Property name="entityProperties::properties::SensorPosition/RearLeft/Lateral" value="0.7"/> + <Property name="entityProperties::properties::SensorPosition/RearLeft/Longitudinal" value="-0.35"/> + <Property name="entityProperties::properties::SensorPosition/RearLeft/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/RearLeft/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/RearLeft/Yaw" value="2.146755"/> + <Property name="entityProperties::properties::SensorPosition/RearRight/Height" value="0.6"/> + <Property name="entityProperties::properties::SensorPosition/RearRight/Lateral" value="-0.7"/> + <Property name="entityProperties::properties::SensorPosition/RearRight/Longitudinal" value="-0.35"/> + <Property name="entityProperties::properties::SensorPosition/RearRight/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/RearRight/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/RearRight/Yaw" value="-2.146755"/> + <Property name="entityProperties::properties::SensorPosition/RearWindow/Height" value="1.33"/> + <Property name="entityProperties::properties::SensorPosition/RearWindow/Lateral" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/RearWindow/Longitudinal" value="-0.08"/> + <Property name="entityProperties::properties::SensorPosition/RearWindow/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/RearWindow/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/RearWindow/Yaw" value="3.141592"/> + <Property name="entityProperties::properties::SensorPosition/SideLeft/Height" value="0.26"/> + <Property name="entityProperties::properties::SensorPosition/SideLeft/Lateral" value="0.81"/> + <Property name="entityProperties::properties::SensorPosition/SideLeft/Longitudinal" value="1.06"/> + <Property name="entityProperties::properties::SensorPosition/SideLeft/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/SideLeft/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/SideLeft/Yaw" value="1.570796"/> + <Property name="entityProperties::properties::SensorPosition/SideRight/Height" value="0.26"/> + <Property name="entityProperties::properties::SensorPosition/SideRight/Lateral" value="-0.81"/> + <Property name="entityProperties::properties::SensorPosition/SideRight/Longitudinal" value="1.06"/> + <Property name="entityProperties::properties::SensorPosition/SideRight/Pitch" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/SideRight/Roll" value="0.0"/> + <Property name="entityProperties::properties::SensorPosition/SideRight/Yaw" value="-1.570796"/> + <Property name="entityProperties::properties::SteeringRatio" value="10.7"/> + <Property name="entityProperties::rear_axle::bb_center_to_axle_center::x" value="-1.350000"/> + <Property name="entityProperties::rear_axle::bb_center_to_axle_center::y" value="0.000000"/> + <Property name="entityProperties::rear_axle::bb_center_to_axle_center::z" value="-0.415000"/> + <Property name="entityProperties::rear_axle::max_steering" value="0.000000"/> + <Property name="entityProperties::rear_axle::track_width" value="1.800000"/> + <Property name="entityProperties::rear_axle::wheel_diameter" value="0.590000"/> + <Property name="entityProperties::type" value="2"/> + </Properties> + </Controller> + </ObjectController> + </ScenarioObject> + </Entities> + <Storyboard> + <Init> + <Actions> + <Private entityRef="Ego"> + <PrivateAction> + <TeleportAction> + <Position> + <LanePosition roadId="1" laneId="-1" offset="0.0" s="0.0"> + <Orientation type="relative"/> + </LanePosition> + </Position> + </TeleportAction> + </PrivateAction> + <PrivateAction> + <LongitudinalAction> + <SpeedAction> + <SpeedActionDynamics dynamicsShape="step" value="0.0" dynamicsDimension="rate"/> + <SpeedActionTarget> + <AbsoluteTargetSpeed value="43.5"/> + </SpeedActionTarget> + </SpeedAction> + </LongitudinalAction> + </PrivateAction> + <PrivateAction> + <ControllerAction> + <ActivateControllerAction objectControllerRef="Ego" lateral="true" longitudinal="true" /> + </ControllerAction> + </PrivateAction> + </Private> + </Actions> + </Init> + <Story name=""> + <Act name=""> + <ManeuverGroup name="" maximumExecutionCount="1"> + <Actors selectTriggeringEntities="false"/> + </ManeuverGroup> + <StartTrigger> + <ConditionGroup> + <Condition name="StartTime" delay="0" conditionEdge="rising"> + <ByValueCondition> + <SimulationTimeCondition value="0.0" rule="greaterOrEqual"/> + </ByValueCondition> + </Condition> + </ConditionGroup> + </StartTrigger> + </Act> + </Story> + <StopTrigger> + <ConditionGroup> + <Condition name="EndTime" delay="0" conditionEdge="rising"> + <ByValueCondition> + <SimulationTimeCondition value="30.0" rule="greaterThan"/> + </ByValueCondition> + </Condition> + </ConditionGroup> + </StopTrigger> + </Storyboard> +</OpenSCENARIO> diff --git a/sim/contrib/examples/Common/UserSettings/UserSettings.ini b/sim/contrib/examples/Common/UserSettings/UserSettings.ini new file mode 100644 index 000000000..fe04e9405 --- /dev/null +++ b/sim/contrib/examples/Common/UserSettings/UserSettings.ini @@ -0,0 +1,39 @@ +# Version : 0.0.1 +# Documentation : see GT-Gen Core project from https://gitlab.eclipse.org/eclipse/openpass + +[FileLogging] +LogLevel = Debug + +[GroundTruth] +LaneMarkingDistance = 0.4 +SimplifyLaneMarkingsEpsilon = 0.01 +SimplifyLaneMarkings = true +AllowInvalidLaneLocations = true + +[HostVehicle] +Movement = InternalVehicle +BlockingCommunication = false +TimeScale = 1 +RecoveryMode = false + +[Map] +IncludeObstacles = false + +[MapChunking] +ChunkGridSize = 50 +CellsPerDirection = 2 + +[UserDirectories] +Scenarios = +Maps = +Plugins = {/home/jenkins/agent/opSimulation/gecco/gecco/modules} + +[SimulationResults] +LogCyclics = true +OutputDirectoryPath = /home/jenkins/agent/opSimulation/artifacts/config_output + +[Clock] +UseSystemClock = false + +[Foxglove] +WebsocketServer = false diff --git a/utils/ci/Jenkinsfile b/utils/ci/Jenkinsfile index fff5f5967..75571c6bc 100644 --- a/utils/ci/Jenkinsfile +++ b/utils/ci/Jenkinsfile @@ -14,7 +14,7 @@ pipeline { parameters { booleanParam(name: 'BUILD_DOCKER_IMAGE', defaultValue: false, description: 'Force docker image (re-)build') string(name: 'OPTESTRUNNER_URL', defaultValue: 'https://download.eclipse.org/openpass/snapshots/opTestrunner/pytest_optestrunner-1.1-py3-none-any.whl', description: 'URL to download opTestrunner binaries') - string(name: 'GECCO_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/gecco/view/change-requests/job/MR-3/lastSuccessfulBuild/artifact/artifacts/gecco.tar.gz', description: 'URL to download gecco binaries') + string(name: 'GECCO_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/gecco/view/change-requests/job/MR-3/6/artifact/artifacts/gecco.tar.gz', description: 'URL to download gecco binaries') string(name: 'GTGEN_CLI_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/GT-Gen-Simulator-PreMerge-Gate/view/tags/job/v11.3.0/lastSuccessfulBuild/artifact/artifacts/gtgen-cli_1.1.0_amd64.deb', description: 'URL to download gtgen cli binaries') string(name: 'GTGEN_SIM_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/GT-Gen-Simulator-PreMerge-Gate/view/tags/job/v11.3.0/lastSuccessfulBuild/artifact/artifacts/gtgen-simulator_11.3.0_amd64.deb', description: 'URL to download gtgen simulator binaries') } @@ -117,6 +117,7 @@ spec: stage('Linux: Run E2E') { steps { container('openpass-build') { + sh 'bash repo/utils/ci/scripts/run_gtgen.sh' sh 'bash repo/utils/ci/scripts/55_endtoend.sh' } } diff --git a/utils/ci/scripts/run_gtgen.sh b/utils/ci/scripts/run_gtgen.sh new file mode 100755 index 000000000..f859309bf --- /dev/null +++ b/utils/ci/scripts/run_gtgen.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +################################################################################ +# Copyright (c) 2025 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# SPDX-License-Identifier: EPL-2.0 +################################################################################ + +################################################################################ +# This Script runs gtgen with common configs +################################################################################ + +if [[ "$(uname)" != "Linux" ]]; then + echo "Skipping E2E tests on non-Linux platform" + exit 0 +fi +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +OP_REPO_DIR="${OP_REPO_DIR:=$SCRIPT_DIR/../../..}" + +if [[ -z "${GECCO_DIR}" ]]; then + # If not defined, set a default value + GTGEN_DIR="$SCRIPT_DIR/../../../../gtgen_cli" + GECCO_DIR="$SCRIPT_DIR/../../../../gecco" + echo "WARN: GECCO_DIR variable is not set. Setting it to: + GECCO_DIR is ${GECCO_DIR}" +fi + +mkdir -p "$SCRIPT_DIR/../../../../artifacts" || exit 1 +mkdir -p "$SCRIPT_DIR"/../../../../artifacts/config_output || exit 1 + +GTGEN_CLI_PATH="$GTGEN_DIR" +CONFIGS_PATH="$OP_REPO_DIR/sim/contrib/examples/Common" + +"${GTGEN_CLI_PATH}/gtgen_cli" -t 100 -s Scenario.xosc -d "${CONFIGS_PATH}" || exit 1; \ No newline at end of file -- GitLab