diff --git a/.github/workflows/BuildAndRun.yaml b/.github/workflows/BuildAndRun.yaml index 1b344986866..b4cef11430e 100644 --- a/.github/workflows/BuildAndRun.yaml +++ b/.github/workflows/BuildAndRun.yaml @@ -78,7 +78,7 @@ jobs: - name: Install sonar-scanner and build-wrapper uses: sonarsource/sonarcloud-github-c-cpp@v3 env: - SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} + SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} - name: Build with SonarCloud Build Wrapper run: | @@ -120,6 +120,34 @@ jobs: ./src/scenario_simulator_v2/.github/workflows/workflow.sh ./src/scenario_simulator_v2/test_runner/scenario_test_runner/config/workflow.txt global_frame_rate:=20 shell: bash + - name: Scenario test (optional) + id: optional-scenario-test + run: | + source install/setup.bash + source install/local_setup.bash + # execute scenarios but ignore the return code + ./src/scenario_simulator_v2/.github/workflows/workflow.sh ./src/scenario_simulator_v2/test_runner/scenario_test_runner/config/optional_workflow.txt global_frame_rate:=20 || true + ./src/scenario_simulator_v2/.github/workflows/generate_workflow_report.sh /tmp/scenario_workflow/optional_workflow + echo failure=$(grep -c "> $GITHUB_OUTPUT + shell: bash + + - uses: actions/github-script@v7 + if: steps.optional-scenario-test.outputs.failure > 0 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const fs = require('fs'); + let commentBody = fs.readFileSync('/tmp/scenario_workflow/optional_workflow/failure_report.md', 'utf8'); + if (commentBody) { + commentBody = '## Failure optional scenarios\n> [!NOTE]\n> This is an experimental check and does not block merging the pull-request. \n> But, please be aware that this may indicate a regression.\n' + commentBody; + } + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: commentBody + }) + - name: Upload Lcov result uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/Docker.yaml b/.github/workflows/Docker.yaml index d5bc37819a3..bbf1d8f938d 100644 --- a/.github/workflows/Docker.yaml +++ b/.github/workflows/Docker.yaml @@ -69,7 +69,8 @@ jobs: *.cache-to=type=gha,mode=max *.cache-from=type=gha *.tags=ghcr.io/tier4/scenario_simulator_v2:traffic_simulator_${{ matrix.rosdistro }}-${{ github.event.inputs.version }} - push: true + *.tags=ghcr.io/tier4/scenario_simulator_v2:traffic_simulator-latest + push: true targets: | traffic_simulator_${{ matrix.rosdistro }} @@ -135,6 +136,7 @@ jobs: *.cache-to=type=gha,mode=max *.cache-from=type=gha *.tags=ghcr.io/tier4/scenario_simulator_v2:humble-${{ github.event.inputs.version }} + *.tags=ghcr.io/tier4/scenario_simulator_v2:humble-latest push: true targets: | ${{ matrix.rosdistro }}_base_${{ matrix.arch }} diff --git a/.github/workflows/generate_workflow_report.sh b/.github/workflows/generate_workflow_report.sh new file mode 100755 index 00000000000..260c565dde3 --- /dev/null +++ b/.github/workflows/generate_workflow_report.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +workflow_directory="$1" +failure_report="$workflow_directory/failure_report.md" +rm -f "$failure_report" + +find $workflow_directory -name "result.junit.xml" | while read file; do + [ -e "$file" ] || continue + if grep -q 'scenario failed: $(dirname "${file#"$workflow_directory"/}" | cut -d'/' -f1)
\n\n\`\`\`xml" + grep '\n" + } >> "$failure_report" + fi +done diff --git a/.github/workflows/workflow.sh b/.github/workflows/workflow.sh index 736b7561e97..2479ae746b6 100755 --- a/.github/workflows/workflow.sh +++ b/.github/workflows/workflow.sh @@ -15,8 +15,9 @@ exit_status=0 while IFS= read -r line do - ros2 launch scenario_test_runner scenario_test_runner.launch.py scenario:="$line" "$@" - ros2 run scenario_test_runner result_checker.py /tmp/scenario_test_runner/result.junit.xml + output_directory="/tmp/scenario_workflow/$(basename "$file_path" | sed 's/\.[^.]*$//')/$(basename "$line" | sed 's/\.[^.]*$//')" + ros2 launch scenario_test_runner scenario_test_runner.launch.py scenario:="$line" output_directory:=$output_directory "$@" + ros2 run scenario_test_runner result_checker.py $output_directory/scenario_test_runner/result.junit.xml command_exit_status=$? if [ $command_exit_status -ne 0 ]; then echo "Error: caught non-zero exit status(code: $command_exit_status)" diff --git a/common/math/arithmetic/CHANGELOG.rst b/common/math/arithmetic/CHANGELOG.rst index 645ead25fb7..001ec0ffd18 100644 --- a/common/math/arithmetic/CHANGELOG.rst +++ b/common/math/arithmetic/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package arithmetic * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/common/math/arithmetic/package.xml b/common/math/arithmetic/package.xml index 819bf5482ad..e13e5c38d9b 100644 --- a/common/math/arithmetic/package.xml +++ b/common/math/arithmetic/package.xml @@ -2,7 +2,7 @@ arithmetic - 11.0.0 + 12.1.0 arithmetic library for scenario_simulator_v2 Tatsuya Yamasaki Apache License 2.0 diff --git a/common/math/geometry/CHANGELOG.rst b/common/math/geometry/CHANGELOG.rst index 13707a10ea2..d99e2319781 100644 --- a/common/math/geometry/CHANGELOG.rst +++ b/common/math/geometry/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package geometry * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/common/math/geometry/package.xml b/common/math/geometry/package.xml index fab413ddcfe..744f5220d4c 100644 --- a/common/math/geometry/package.xml +++ b/common/math/geometry/package.xml @@ -2,7 +2,7 @@ geometry - 11.0.0 + 12.1.0 geometry math library for scenario_simulator_v2 application Masaya Kataoka Apache License 2.0 diff --git a/common/scenario_simulator_exception/CHANGELOG.rst b/common/scenario_simulator_exception/CHANGELOG.rst index a29e1796f3b..52153494d03 100644 --- a/common/scenario_simulator_exception/CHANGELOG.rst +++ b/common/scenario_simulator_exception/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package scenario_simulator_exception * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/common/scenario_simulator_exception/package.xml b/common/scenario_simulator_exception/package.xml index 3ba4c0ddccd..423355275c3 100644 --- a/common/scenario_simulator_exception/package.xml +++ b/common/scenario_simulator_exception/package.xml @@ -2,7 +2,7 @@ scenario_simulator_exception - 11.0.0 + 12.1.0 Exception types for scenario simulator Tatsuya Yamasaki Apache License 2.0 diff --git a/common/simple_junit/CHANGELOG.rst b/common/simple_junit/CHANGELOG.rst index df5ed0c3ade..40e67cde721 100644 --- a/common/simple_junit/CHANGELOG.rst +++ b/common/simple_junit/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package junit_exporter * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/common/simple_junit/package.xml b/common/simple_junit/package.xml index f99fff7f1f1..140566b0a28 100644 --- a/common/simple_junit/package.xml +++ b/common/simple_junit/package.xml @@ -2,7 +2,7 @@ simple_junit - 11.0.0 + 12.1.0 Lightweight JUnit library for ROS 2 Masaya Kataoka Tatsuya Yamasaki diff --git a/common/status_monitor/CHANGELOG.rst b/common/status_monitor/CHANGELOG.rst index d3a17de0b4c..f4d65db1bc1 100644 --- a/common/status_monitor/CHANGELOG.rst +++ b/common/status_monitor/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package status_monitor * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/common/status_monitor/package.xml b/common/status_monitor/package.xml index 832e1fc0257..ee1246139f8 100644 --- a/common/status_monitor/package.xml +++ b/common/status_monitor/package.xml @@ -2,7 +2,7 @@ status_monitor - 11.0.0 + 12.1.0 none Tatsuya Yamasaki Apache License 2.0 diff --git a/docs/developer_guide/.pages b/docs/developer_guide/.pages index 949b856adfc..1f8c92f0091 100644 --- a/docs/developer_guide/.pages +++ b/docs/developer_guide/.pages @@ -13,6 +13,7 @@ nav: - ManualOverrideWithFollowTrajectoryAction.md - NPCBehavior.md - OpenSCENARIOSupport.md + - Parameters.md - SimpleSensorSimulator.md - SimulationResultFormat.md - SystemArchitecture.md diff --git a/docs/developer_guide/Parameters.md b/docs/developer_guide/Parameters.md new file mode 100644 index 00000000000..a991a793294 --- /dev/null +++ b/docs/developer_guide/Parameters.md @@ -0,0 +1,442 @@ +# Parameters + +This section describes how to configure the topics that `scenario_simulator_v2` +publishes to Autoware. + + + + +## Overview + +The topics that `scenario_simulator_v2` publishes to Autoware are configurable +from the ROS 2 parameter file given to the launch argument +`parameter_file_path` of scenario_test_runner. The default value of +`parameter_file_path` is the path to [a sample parameter +file](https://github.com/tier4/scenario_simulator_v2/blob/master/test_runner/scenario_test_runner/config/parameters.yaml). + +All parameters that can be specified and their default values are shown in the +sample parameter file. In practice, it is not necessary to specify all +parameters except for some that are mandatory. In that case, the simulator will +behave as if similar default values had been specified. + +There are currently two ways to configure some topics: an old way and a new way +described on this page. The new way is backward compatible and is the +recommended way. If you want to know how to use the old way, [see this +page](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/ConfiguringPerceptionTopics/). + +## /perception/object_recognition/detection/objects + +### `version` + +An `int` type value in YYYYMMDD format, mandatory. +Suffix of `scenario_test_runner` launch argument `architecture_type`, used to +maintain backward compatibility of the simulator when changing the Autoware +interface. + +### `seed` + +A positive `int` type value, default `0`. +The seed value for the random number generator. If `0` is specified, a random +seed value will be generated for each run. + +### `override_legacy_configuration` + +A `boolean` type value, default `false`. +Some of the parameters described below can be configured in either the old or +new way. This parameter is used to determine which value to use. That is, as +long as this parameter is `false`, some of the following parameters will be +ignored and the values set by the old method will be used. If you want to +configure the new way, set it to `true`. For backward compatibility, the +default value of this parameter is `false`. + +### `delay` + +A positive `double` type value, default `0.0`. The unit is seconds. It is an +error if the value is negative. +Delays the publication of the topic by the specified number of seconds. This +parameter is used only if `override_legacy_configuration` is true. If it is +false, the value of `detectedObjectPublishingDelay` in +`ObjectController.Properties` in the scenario file is used. + +### `range` + +A positive `double` type value, default `300.0`. The unit is meters. +The sensor detection range. This parameter is used only if +`override_legacy_configuration` is true. If it is false, the value of +`detectionSensorRange` in `ObjectController.Properties` in the scenario file is +used. + +### `occlusionless` + +A `boolean` type value, default `false`. +The message is a simulated object recognition result based on a pointcloud. +Pointclouds are usually sensed by LiDAR, and scenario_simulator_v2 assumes this +and simulates it, including LiDAR occlusion. If this parameter is `true`, +object recognition is simulated as if there is no occlusion. In other words, it +produces recognition results as if objects behind the object are also visible +(even though they are in shadow and invisible in normal LiDAR). This parameter +is used only if `override_legacy_configuration` is true. If it is false, the +value of `isClairvoyant` in `ObjectController.Properties` in the scenario file +is used. + +### `noise.model.version` + +A positive `int` type value, default `1`. If a non-existent version is +specified, it is an error. +This parameter specifies the version of the noise model to be used. Currently, +the following two noise models are implemented: +- version: 1 - Simple noise model with position randomization +- version: 2 - Elliptically approximated model of noise variation with distance + from the ego entity + +The parameters specific to the models are placed under `noise.v1.` and +`noise.v2`, respectively. + +### `noise.v1.position.standard_deviation` + +A positive `double` type value, default `0.0`. +Standard deviation used for randomization of the position of the vehicle in the +message. This parameter is used only if the value of `noise.model.version` is +`1`. + +### `noise.v1.missing_probability` + +A `double` type value between `0.0` and `1.0`, default `0.0`. +Based on the probability specified by the value of this parameter, random +vehicle data is removed from the message. This parameter is used only if the +value of `noise.model.version` is `1`. + +### `noise.v2.ellipse_y_radii` + +Array of positive double type values, default `[10.0, 20.0, 40.0, 60.0, 80.0, +120.0, 150.0, 180.0, 1000.0]`. Units are in meters. The size of the array is +arbitrary, but must be the same size as the array described later. +This parameter is used only if the value of `noise.model.version` is `2`. + +### `noise.v2.distance.autocorrelation_coefficient.amplitude` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +distance noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as AR(1) model. The autocorrelation coefficient $\phi$ is used in +the model to calculate the position noise $X_\mathrm{distance}$: as follows: +$$X_\mathrm{distance}(t) = \mathtt{mean} + \phi * (X_\mathrm{distance}(t-1) - +\mathtt{mean}) + \mathcal{N}(0, 1 - \phi^2) * \mathtt{standard\_deviation}$$ +This parameter is used only if the value of `noise.model.version` is `2`. + +### `noise.v2.distance.autocorrelation_coefficient.decay` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +distance noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as AR(1) model. The autocorrelation coefficient $\phi$ is used in +the model to calculate the position noise $X_\mathrm{distance}$: as follows: +$$X_\mathrm{distance}(t) = \mathtt{mean} + \phi * (X_\mathrm{distance}(t - +\varDelta t) - \mathtt{mean}) + \mathcal{N}(0, 1 - \phi^2) * +\mathtt{standard\_deviation}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.distance.autocorrelation_coefficient.offset` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +distance noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as AR(1) model. The autocorrelation coefficient $\phi$ is used in +the model to calculate the position noise $X_\mathrm{distance}$: as follows: +$$X_\mathrm{distance}(t) = \mathtt{mean} + \phi * (X_\mathrm{distance}(t - +\varDelta t) - \mathtt{mean}) + \mathcal{N}(0, 1 - \phi^2) * +\mathtt{standard\_deviation}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.distance.mean.ellipse_normalized_x_radius` + +A positive `double` type value, default `0.0`. +The noise models the space as an elliptical model. This parameter is the ratio +of the radius of the x-axis to the radius of the y-axis of that ellipse. The +coordinate system is a right-handed local coordinate system, where the x-axis +is the longitudinal direction of the ego entity and the y-axis is its lateral +direction. The value of this parameter is used to calculate the distance $d$ +between the ego entity and the other vehicle using the following equation: $$d += \sqrt[2]{(\varDelta x / \mathtt{ellipse\_normalized\_x\_radius})^2 + +\varDelta y^2}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.distance.mean.values` + +Array of positive double type values, default `[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0]`. +Each element of the array is a mean of normal distribution. The first element +with a value greater than $d$ is searched from `ellipse_y_radii` and the +elements with the same index are referenced from `values`. Therefore, the array +size of this parameter must be the same as `ellipse_y_radii`. Otherwise, it is +an error. This parameter is used only if the value of `noise.model.version` is +`2`. + +### `noise.v2.distance.standard_deviation.ellipse_normalized_x_radius` + +A positive `double` type value, default `0.0`. +The noise models the space as an elliptical model. This parameter is the ratio +of the radius of the x-axis to the radius of the y-axis of that ellipse. The +coordinate system is a right-handed local coordinate system, where the x-axis +is the longitudinal direction of the ego entity and the y-axis is its lateral +direction. The value of this parameter is used to calculate the distance $d$ +between the ego entity and the other vehicle using the following equation: $$d += \sqrt[2]{(\varDelta x / \mathtt{ellipse\_normalized\_x\_radius})^2 + +\varDelta y^2}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.distance.standard_deviation.values` + +Array of positive double type values, default `[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0]`. +Each element of the array is a standard deviation of normal distribution. The +first element with a value greater than $d$ is searched from `ellipse_y_radii` +and the elements with the same index are referenced from `values`. Therefore, +the array size of this parameter must be the same as `ellipse_y_radii`. +Otherwise, it is an error. This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.yaw.autocorrelation_coefficient.amplitude` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of yaw +noise. The autocorrelation coefficient $\phi$ is calculated by the following +equation: $$ \phi(\varDelta t) = \mathtt{amplitude} * \exp(-\mathtt{decay} * +\varDelta t) + \mathtt{offset}$$ The noise models the time series as AR(1) +model. The autocorrelation coefficient $\phi$ is used in the model to calculate +the yaw noise $X_\mathrm{yaw}$: as follows: $$ X_\mathrm{yaw}(t) = +\mathtt{mean} + \phi * (X_\mathrm{yaw}(t - \varDelta t) - \mathtt{mean}) + +\mathcal{N}(0, 1 - \phi^2) * \mathtt{standard\_deviation}$$ This parameter is +used only if the value of `noise.model.version` is `2`. + +### `noise.v2.yaw.autocorrelation_coefficient.decay` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of yaw +noise. The autocorrelation coefficient $\phi$ is calculated by the following +equation: $$ \phi(\varDelta t) = \mathtt{amplitude} * \exp(-\mathtt{decay} * +\varDelta t) + \mathtt{offset}$$ The noise models the time series as AR(1) +model. The autocorrelation coefficient $\phi$ is used in the model to calculate +the yaw noise $X_\mathrm{yaw}$: as follows: $$ X_\mathrm{yaw}(t) = +\mathtt{mean} + \phi * (X_\mathrm{yaw}(t - \varDelta t) - \mathtt{mean}) + +\mathcal{N}(0, 1 - \phi^2) * \mathtt{standard\_deviation}$$ This parameter is +used only if the value of `noise.model.version` is `2`. + +### `noise.v2.yaw.autocorrelation_coefficient.offset` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of yaw +noise. The autocorrelation coefficient $\phi$ is calculated by the following +equation: $$ \phi(\varDelta t) = \mathtt{amplitude} * \exp(-\mathtt{decay} * +\varDelta t) + \mathtt{offset}$$ The noise models the time series as AR(1) +model. The autocorrelation coefficient $\phi$ is used in the model to calculate +the yaw noise $X_\mathrm{yaw}$: as follows: $$ X_\mathrm{yaw}(t) = +\mathtt{mean} + \phi * (X_\mathrm{yaw}(t - \varDelta t) - \mathtt{mean}) + +\mathcal{N}(0, 1 - \phi^2) * \mathtt{standard\_deviation}$$ This parameter is +used only if the value of `noise.model.version` is `2`. + +### `noise.v2.yaw.mean.ellipse_normalized_x_radius` + +A positive `double` type value, default `0.0`. +The noise models the space as an elliptical model. This parameter is the ratio +of the radius of the x-axis to the radius of the y-axis of that ellipse. The +coordinate system is a right-handed local coordinate system, where the x-axis +is the longitudinal direction of the ego entity and the y-axis is its lateral +direction. The value of this parameter is used to calculate the distance $d$ +between the ego entity and the other vehicle using the following equation: $$d += \sqrt[2]{(\varDelta x / \mathtt{ellipse\_normalized\_x\_radius})^2 + +\varDelta y^2}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.yaw.mean.values` + +Array of positive double type values, default `[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0]`. +Each element of the array is a mean of normal distribution. The first element +with a value greater than $d$ is searched from `ellipse_y_radii` and the +elements with the same index are referenced from `values`. Therefore, the array +size of this parameter must be the same as `ellipse_y_radii`. Otherwise, it is +an error. This parameter is used only if the value of `noise.model.version` is +`2`. + +### `noise.v2.yaw.standard_deviation.ellipse_normalized_x_radius` + +A positive `double` type value, default `0.0`. +The noise models the space as an elliptical model. This parameter is the ratio +of the radius of the x-axis to the radius of the y-axis of that ellipse. The +coordinate system is a right-handed local coordinate system, where the x-axis +is the longitudinal direction of the ego entity and the y-axis is its lateral +direction. The value of this parameter is used to calculate the distance $d$ +between the ego entity and the other vehicle using the following equation: $$d += \sqrt[2]{(\varDelta x / \mathtt{ellipse\_normalized\_x\_radius})^2 + +\varDelta y^2}$$. This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.yaw.standard_deviation.values` + +Array of positive double type values, default `[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, 0.0]`. +Each element of the array is a standard deviation of normal distribution. The +first element with a value greater than $d$ is searched from `ellipse_y_radii` +and the elements with the same index are referenced from `values`. Therefore, +the array size of this parameter must be the same as `ellipse_y_radii`. +Otherwise, it is an error. This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.yaw_flip.autocorrelation_coefficient.amplitude` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +yaw-flip noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as Markov process. The autocorrelation coefficient $\phi$ is used +in the model to calculate the yaw-flip noise with following transition matrix: +$$ \begin{bmatrix} p_{0,0} & p_{0,1} \\ p_{1,0} & p_{1,1} \end{bmatrix} = +\begin{bmatrix} \pi_0 + \phi \pi_1 && \pi_1 (1 - \phi) \\ \pi_0 (1 - \phi) && +\pi_1 - \phi \pi_0 \end{bmatrix}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.yaw_flip.autocorrelation_coefficient.decay` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +yaw-flip noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as Markov process. The autocorrelation coefficient $\phi$ is used +in the model to calculate the yaw-flip noise with following transition matrix: +$$ \begin{bmatrix} p_{0,0} & p_{0,1} \\ p_{1,0} & p_{1,1} \end{bmatrix} = +\begin{bmatrix} \pi_0 + \phi \pi_1 && \pi_1 (1 - \phi) \\ \pi_0 (1 - \phi) && +\pi_1 - \phi \pi_0 \end{bmatrix}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.yaw_flip.autocorrelation_coefficient.offset` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +yaw-flip noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as Markov process. The autocorrelation coefficient $\phi$ is used +in the model to calculate the yaw-flip noise with following transition matrix: +$$ \begin{bmatrix} p_{0,0} & p_{0,1} \\ p_{1,0} & p_{1,1} \end{bmatrix} = +\begin{bmatrix} \pi_0 + \phi \pi_1 && \pi_1 (1 - \phi) \\ \pi_0 (1 - \phi) && +\pi_1 - \phi \pi_0 \end{bmatrix}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.yaw_flip.speed_threshold` + +A positive `double` type value, default `0.1`. +When the absolute speed of one other vehicle is less than the value of this +parameter, it is determined whether yaw-flip occurs or not based on the `rate` +described below. This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.yaw_flip.rate` + +A positive `double` type value, default `0.0`. +Vehicles whose absolute speed is below the aforementioned `speed_threshold` +will have yaw-flip noise applied with the probability of the value of this +parameter. This parameter is used only if the value of `noise.model.version` is +`2`. + +### `noise.v2.true_positive.autocorrelation_coefficient.amplitude` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +random-mask noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as Markov process. The autocorrelation coefficient $\phi$ is used +in the model to calculate the random-mask noise with following transition +matrix: $$ \begin{bmatrix} p_{0,0} & p_{0,1} \\ p_{1,0} & p_{1,1} \end{bmatrix} += \begin{bmatrix} \pi_0 + \phi \pi_1 && \pi_1 (1 - \phi) \\ \pi_0 (1 - \phi) && +\pi_1 - \phi \pi_0 \end{bmatrix}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.true_positive.autocorrelation_coefficient.decay` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +random-mask noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as Markov process. The autocorrelation coefficient $\phi$ is used +in the model to calculate the random-mask noise with following transition +matrix: $$ \begin{bmatrix} p_{0,0} & p_{0,1} \\ p_{1,0} & p_{1,1} \end{bmatrix} += \begin{bmatrix} \pi_0 + \phi \pi_1 && \pi_1 (1 - \phi) \\ \pi_0 (1 - \phi) && +\pi_1 - \phi \pi_0 \end{bmatrix}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.true_positive.autocorrelation_coefficient.offset` + +A positive `double` type value, default `0.0`. +The parameter of the autocorrelation coefficient used in the generation of +random-mask noise. The autocorrelation coefficient $\phi$ is calculated by the +following equation: $$\phi(\varDelta t) = \mathtt{amplitude} * +\exp(-\mathtt{decay} * \varDelta t) + \mathtt{offset}$$ The noise models the +time series as Markov process. The autocorrelation coefficient $\phi$ is used +in the model to calculate the random-mask noise with following transition +matrix: $$ \begin{bmatrix} p_{0,0} & p_{0,1} \\ p_{1,0} & p_{1,1} \end{bmatrix} += \begin{bmatrix} \pi_0 + \phi \pi_1 && \pi_1 (1 - \phi) \\ \pi_0 (1 - \phi) && +\pi_1 - \phi \pi_0 \end{bmatrix}$$ This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.true_positive.rate.ellipse_normalized_x_radius` + +A positive `double` type value, default `0.0`. +The noise models the space as an elliptical model. This parameter is the ratio +of the radius of the x-axis to the radius of the y-axis of that ellipse. The +coordinate system is a right-handed local coordinate system, where the x-axis +is the longitudinal direction of the ego entity and the y-axis is its lateral +direction. The value of this parameter is used to calculate the distance $d$ +between the ego entity and the other vehicle using the following equation: $$d += \sqrt[2]{(\varDelta x / \mathtt{ellipse\_normalized\_x\_radius})^2 + +\varDelta y^2}$$. This parameter is used only if the value of +`noise.model.version` is `2`. + +### `noise.v2.true_positive.rate.values` + +Array of positive double type values, default `[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, +1.0, 1.0, 1.0]`. +Each element of this array is the probability that the value will be output +correctly (true positive rate). The first element with a value greater than $d$ +is searched from `ellipse_y_radii` and the elements with the same index are +referenced from `values`. Therefore, the array size of this parameter must be +the same as `ellipse_y_radii`. Otherwise, it is an error. This parameter is +used only if the value of `noise.model.version` is `2`. + +## /perception/object_recognition/ground_truth/objects + +### `version` + +An `int` type value in YYYYMMDD format, mandatory. +Suffix of `scenario_test_runner` launch argument `architecture_type`, used to +maintain backward compatibility of the simulator when changing the Autoware +interface. + +### `override_legacy_configuration` + +A `boolean` type value, default `false`. +Some of the parameters described below can be configured in either the old or +new way. This parameter is used to determine which value to use. That is, as +long as this parameter is `false`, some of the following parameters will be +ignored and the values set by the old method will be used. If you want to +configure the new way, set it to `true`. For backward compatibility, the +default value of this parameter is `false`. + +### `delay` + +A positive `double` type value, default `0.0`. The unit is seconds. It is an +error if the value is negative. +Delays the publication of the topic by the specified number of seconds. This +parameter is used only if `override_legacy_configuration` is true. If it is +false, the value of `detectedObjectGroundTruthPublishingDelay` in +`ObjectController.Properties` in the scenario file is used. diff --git a/external/concealer/CHANGELOG.rst b/external/concealer/CHANGELOG.rst index 1f528a38302..b38170ca501 100644 --- a/external/concealer/CHANGELOG.rst +++ b/external/concealer/CHANGELOG.rst @@ -21,6 +21,50 @@ Changelog for package concealer * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge pull request `#1532 `_ from tier4/feature/simple_sensor_simulator/new-noise-model + Feature/simple sensor simulator/new noise model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Lipsticks +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Add parameters for new noise model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/external/concealer/include/concealer/get_parameter.hpp b/external/concealer/include/concealer/get_parameter.hpp index aabee2c0ced..084bbee7460 100644 --- a/external/concealer/include/concealer/get_parameter.hpp +++ b/external/concealer/include/concealer/get_parameter.hpp @@ -35,7 +35,7 @@ auto getParameter( template auto getParameter(const std::string & name, T value = {}) { - auto node = rclcpp::Node("get_parameter", "simulation"); + static auto node = rclcpp::Node("getParameter", "simulation"); return getParameter(node.get_node_parameters_interface(), name, value); } } // namespace concealer diff --git a/external/concealer/package.xml b/external/concealer/package.xml index e9220c61892..0d33dc8d8ba 100644 --- a/external/concealer/package.xml +++ b/external/concealer/package.xml @@ -2,7 +2,7 @@ concealer - 11.0.0 + 12.1.0 Provides a class 'Autoware' to conceal miscellaneous things to simplify Autoware management of the simulator. Tatsuya Yamasaki Apache License 2.0 diff --git a/external/embree_vendor/CHANGELOG.rst b/external/embree_vendor/CHANGELOG.rst index 73afdb31596..14dbf93a44e 100644 --- a/external/embree_vendor/CHANGELOG.rst +++ b/external/embree_vendor/CHANGELOG.rst @@ -24,6 +24,46 @@ Changelog for package embree_vendor * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/external/embree_vendor/package.xml b/external/embree_vendor/package.xml index 6791d2e5593..91d42f027e2 100644 --- a/external/embree_vendor/package.xml +++ b/external/embree_vendor/package.xml @@ -2,7 +2,7 @@ embree_vendor - 11.0.0 + 12.1.0 vendor packages for intel raytracing kernel library masaya Apache 2.0 diff --git a/map/kashiwanoha_map/CHANGELOG.rst b/map/kashiwanoha_map/CHANGELOG.rst index 10ad0bb0cdd..684ded3eb95 100644 --- a/map/kashiwanoha_map/CHANGELOG.rst +++ b/map/kashiwanoha_map/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package kashiwanoha_map * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/map/kashiwanoha_map/package.xml b/map/kashiwanoha_map/package.xml index bcd672b7b20..5dfc0d72559 100644 --- a/map/kashiwanoha_map/package.xml +++ b/map/kashiwanoha_map/package.xml @@ -2,7 +2,7 @@ kashiwanoha_map - 11.0.0 + 12.1.0 map package for kashiwanoha Masaya Kataoka Apache License 2.0 diff --git a/map/simple_cross_map/CHANGELOG.rst b/map/simple_cross_map/CHANGELOG.rst index 2c77f3b120a..ea19396f0bb 100644 --- a/map/simple_cross_map/CHANGELOG.rst +++ b/map/simple_cross_map/CHANGELOG.rst @@ -9,6 +9,46 @@ Changelog for package simple_cross_map * Merge branch 'master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/map/simple_cross_map/package.xml b/map/simple_cross_map/package.xml index 7be7066f28c..28a4fdedd07 100644 --- a/map/simple_cross_map/package.xml +++ b/map/simple_cross_map/package.xml @@ -2,7 +2,7 @@ simple_cross_map - 11.0.0 + 12.1.0 map package for simple cross Masaya Kataoka Apache License 2.0 diff --git a/mock/cpp_mock_scenarios/CHANGELOG.rst b/mock/cpp_mock_scenarios/CHANGELOG.rst index 95b0f2ab438..3c335a864eb 100644 --- a/mock/cpp_mock_scenarios/CHANGELOG.rst +++ b/mock/cpp_mock_scenarios/CHANGELOG.rst @@ -21,6 +21,49 @@ Changelog for package cpp_mock_scenarios * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge pull request `#1533 `_ from tier4/refactor/lanelet_wrapper_bound + HdMapUtils refactor lanelet_wrapper::lanelet_map::leftBound rightBound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* remove hdmap_utils from `distanceToLaneBound` +* Contributors: Masaya Kataoka, Tatsuya Yamasaki, abco20 + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/mock/cpp_mock_scenarios/package.xml b/mock/cpp_mock_scenarios/package.xml index 4a047501e15..b3effaba173 100644 --- a/mock/cpp_mock_scenarios/package.xml +++ b/mock/cpp_mock_scenarios/package.xml @@ -2,7 +2,7 @@ cpp_mock_scenarios - 11.0.0 + 12.1.0 C++ mock scenarios masaya Apache License 2.0 diff --git a/openscenario/openscenario_experimental_catalog/CHANGELOG.rst b/openscenario/openscenario_experimental_catalog/CHANGELOG.rst index 48af3ee19c9..f26be8395be 100644 --- a/openscenario/openscenario_experimental_catalog/CHANGELOG.rst +++ b/openscenario/openscenario_experimental_catalog/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package openscenario_experimental_catalog * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/openscenario/openscenario_experimental_catalog/package.xml b/openscenario/openscenario_experimental_catalog/package.xml index a0fb249ac42..7f7fae52440 100644 --- a/openscenario/openscenario_experimental_catalog/package.xml +++ b/openscenario/openscenario_experimental_catalog/package.xml @@ -2,7 +2,7 @@ openscenario_experimental_catalog - 11.0.0 + 12.1.0 TIER IV experimental catalogs for OpenSCENARIO Tatsuya Yamasaki Apache License 2.0 diff --git a/openscenario/openscenario_interpreter/CHANGELOG.rst b/openscenario/openscenario_interpreter/CHANGELOG.rst index 685a766e6e9..97ee53e92f6 100644 --- a/openscenario/openscenario_interpreter/CHANGELOG.rst +++ b/openscenario/openscenario_interpreter/CHANGELOG.rst @@ -32,6 +32,61 @@ Changelog for package openscenario_interpreter * add publish_empty_context parameter * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge pull request `#1517 `_ from tier4/feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* refactor: use minimum captures for lambda +* chore: use seconds as time unit in execution_time topics +* refactor: generate UserDefinedValue message for each publishers +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* fix: delete unavailable include +* refactor: delete unused code +* refactor: use ExecutionTimer instead of ScopedElapsedTimeRecorder +* refactor: rename TClock with Clock +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* refactor: simplify ScopedElapsedTimeRecorder class +* fix: correct initialization order +* Merge branch 'master' into feature/execution_time +* fix: add activate and deactivate process for time publisher in interpreter +* fix: correct time unit conversion +* feat: publish execution time from interpreter +* feat: record execution time with ScopedElapsedTimeRecorder class +* feat: implement ScopedElapsedTimeRecorder class +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/openscenario/openscenario_interpreter/include/openscenario_interpreter/openscenario_interpreter.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/openscenario_interpreter.hpp index 1fd5a0c67d2..2ec83694855 100644 --- a/openscenario/openscenario_interpreter/include/openscenario_interpreter/openscenario_interpreter.hpp +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/openscenario_interpreter.hpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #define INTERPRETER_INFO_STREAM(...) \ @@ -52,6 +53,15 @@ class Interpreter : public rclcpp_lifecycle::LifecycleNode, const rclcpp_lifecycle::LifecyclePublisher::SharedPtr publisher_of_context; + rclcpp_lifecycle::LifecyclePublisher::SharedPtr + evaluate_time_publisher; + + rclcpp_lifecycle::LifecyclePublisher::SharedPtr + update_time_publisher; + + rclcpp_lifecycle::LifecyclePublisher::SharedPtr + output_time_publisher; + double local_frame_rate; double local_real_time_factor; @@ -195,36 +205,6 @@ class Interpreter : public rclcpp_lifecycle::LifecycleNode, return handle(); } } - - template - auto withTimeoutHandler(TimeoutHandler && handle, Thunk && thunk) -> decltype(auto) - { - if (const auto time = execution_timer.invoke("", thunk); currentLocalFrameRate() < time) { - handle(execution_timer.getStatistics("")); - } - } - - auto defaultTimeoutHandler() const - { - /* - Ideally, the scenario should be terminated with an error if the total - time for the ScenarioDefinition evaluation and the traffic_simulator's - updateFrame exceeds the time allowed for a single frame. However, we - have found that many users are in environments where it is not possible - to run the simulator stably at 30 FPS (the default setting) while - running Autoware. In order to prioritize comfortable daily use, we - decided to give up full reproducibility of the scenario and only provide - warnings. - */ - - return [this](const auto & statistics) { - RCLCPP_WARN_STREAM( - get_logger(), - "Your machine is not powerful enough to run the scenario at the specified frame rate (" - << local_frame_rate << " Hz). We recommend that you reduce the frame rate to " - << 1000.0 / statistics.template max().count() << " or less."); - }; - } }; } // namespace openscenario_interpreter diff --git a/openscenario/openscenario_interpreter/package.xml b/openscenario/openscenario_interpreter/package.xml index 5e43b546497..661625c6509 100644 --- a/openscenario/openscenario_interpreter/package.xml +++ b/openscenario/openscenario_interpreter/package.xml @@ -2,7 +2,7 @@ openscenario_interpreter - 11.0.0 + 12.1.0 OpenSCENARIO 1.2.0 interpreter package for Autoware Tatsuya Yamasaki Apache License 2.0 diff --git a/openscenario/openscenario_interpreter/src/openscenario_interpreter.cpp b/openscenario/openscenario_interpreter/src/openscenario_interpreter.cpp index 4cb96beee16..e76840d2d84 100644 --- a/openscenario/openscenario_interpreter/src/openscenario_interpreter.cpp +++ b/openscenario/openscenario_interpreter/src/openscenario_interpreter.cpp @@ -37,6 +37,12 @@ namespace openscenario_interpreter Interpreter::Interpreter(const rclcpp::NodeOptions & options) : rclcpp_lifecycle::LifecycleNode("openscenario_interpreter", options), publisher_of_context(create_publisher("context", rclcpp::QoS(1).transient_local())), + evaluate_time_publisher(create_publisher( + "/simulation/interpreter/execution_time/evaluate", rclcpp::QoS(1).transient_local())), + update_time_publisher(create_publisher( + "/simulation/interpreter/execution_time/update", rclcpp::QoS(1).transient_local())), + output_time_publisher(create_publisher( + "/simulation/interpreter/execution_time/output", rclcpp::QoS(1).transient_local())), local_frame_rate(30), local_real_time_factor(1.0), osc_path(""), @@ -188,7 +194,7 @@ auto Interpreter::on_activate(const rclcpp_lifecycle::State &) -> Result deactivate(); }, [this]() { - withTimeoutHandler(defaultTimeoutHandler(), [this]() { + const auto evaluate_time = execution_timer.invoke("evaluate", [this]() { if (std::isnan(evaluateSimulationTime())) { if (not waiting_for_engagement_to_be_completed and engageable()) { engage(); @@ -202,11 +208,44 @@ auto Interpreter::on_activate(const rclcpp_lifecycle::State &) -> Result } else { throw Error("No script evaluable."); } - - SimulatorCore::update(); - - publishCurrentContext(); }); + + const auto update_time = + execution_timer.invoke("update", []() { SimulatorCore::update(); }); + + const auto output_time = + execution_timer.invoke("output", [this]() { publishCurrentContext(); }); + + auto generate_double_user_defined_value_message = [](double value) { + tier4_simulation_msgs::msg::UserDefinedValue message; + message.type.data = tier4_simulation_msgs::msg::UserDefinedValueType::DOUBLE; + message.value = std::to_string(value); + return message; + }; + evaluate_time_publisher->publish(generate_double_user_defined_value_message( + std::chrono::duration(evaluate_time).count())); + update_time_publisher->publish(generate_double_user_defined_value_message( + std::chrono::duration(update_time).count())); + output_time_publisher->publish(generate_double_user_defined_value_message( + std::chrono::duration(output_time).count())); + + if (auto time_until_trigger = timer->time_until_trigger(); time_until_trigger.count() < 0) { + /* + Ideally, the scenario should be terminated with an error if the total + time for the ScenarioDefinition evaluation and the traffic_simulator's + updateFrame exceeds the time allowed for a single frame. However, we + have found that many users are in environments where it is not possible + to run the simulator stably at 30 FPS (the default setting) while + running Autoware. In order to prioritize comfortable daily use, we + decided to give up full reproducibility of the scenario and only provide + warnings. + */ + RCLCPP_WARN_STREAM( + get_logger(), + "Your machine is not powerful enough to run the scenario at the specified frame rate (" + << local_frame_rate << " Hz). Current frame execution exceeds " + << -time_until_trigger.count() / 1.e6 << " milliseconds."); + } }); }; @@ -249,6 +288,9 @@ auto Interpreter::on_activate(const rclcpp_lifecycle::State &) -> Result execution_timer.clear(); publisher_of_context->on_activate(); + evaluate_time_publisher->on_activate(); + update_time_publisher->on_activate(); + output_time_publisher->on_activate(); assert(publisher_of_context->is_activated()); @@ -320,6 +362,15 @@ auto Interpreter::reset() -> void if (publisher_of_context->is_activated()) { publisher_of_context->on_deactivate(); } + if (evaluate_time_publisher->is_activated()) { + evaluate_time_publisher->on_deactivate(); + } + if (update_time_publisher->is_activated()) { + update_time_publisher->on_deactivate(); + } + if (output_time_publisher->is_activated()) { + output_time_publisher->on_deactivate(); + } if (not has_parameter("initialize_duration")) { declare_parameter("initialize_duration", 30); diff --git a/openscenario/openscenario_interpreter_example/CHANGELOG.rst b/openscenario/openscenario_interpreter_example/CHANGELOG.rst index 6b1557780d9..9a6c63d45a6 100644 --- a/openscenario/openscenario_interpreter_example/CHANGELOG.rst +++ b/openscenario/openscenario_interpreter_example/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package openscenario_interpreter_example * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/openscenario/openscenario_interpreter_example/package.xml b/openscenario/openscenario_interpreter_example/package.xml index 61c93b42ba2..71ee14b47ba 100644 --- a/openscenario/openscenario_interpreter_example/package.xml +++ b/openscenario/openscenario_interpreter_example/package.xml @@ -3,7 +3,7 @@ openscenario_interpreter_example - 11.0.0 + 12.1.0 Examples for some TIER IV OpenSCENARIO Interpreter's features Tatsuya Yamasaki Apache License 2.0 diff --git a/openscenario/openscenario_interpreter_msgs/CHANGELOG.rst b/openscenario/openscenario_interpreter_msgs/CHANGELOG.rst index 66d86170288..5c51927e866 100644 --- a/openscenario/openscenario_interpreter_msgs/CHANGELOG.rst +++ b/openscenario/openscenario_interpreter_msgs/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package openscenario_interpreter_msgs * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/openscenario/openscenario_interpreter_msgs/package.xml b/openscenario/openscenario_interpreter_msgs/package.xml index 89523cf4cdf..fbcb3950bac 100644 --- a/openscenario/openscenario_interpreter_msgs/package.xml +++ b/openscenario/openscenario_interpreter_msgs/package.xml @@ -2,7 +2,7 @@ openscenario_interpreter_msgs - 11.0.0 + 12.1.0 ROS message types for package openscenario_interpreter Yamasaki Tatsuya Apache License 2.0 diff --git a/openscenario/openscenario_preprocessor/CHANGELOG.rst b/openscenario/openscenario_preprocessor/CHANGELOG.rst index 8a441ba0ef7..e94b227f6fd 100644 --- a/openscenario/openscenario_preprocessor/CHANGELOG.rst +++ b/openscenario/openscenario_preprocessor/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package openscenario_preprocessor * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/openscenario/openscenario_preprocessor/package.xml b/openscenario/openscenario_preprocessor/package.xml index 10bc61ac4b8..9f7c121cb14 100644 --- a/openscenario/openscenario_preprocessor/package.xml +++ b/openscenario/openscenario_preprocessor/package.xml @@ -3,7 +3,7 @@ openscenario_preprocessor - 11.0.0 + 12.1.0 Example package for TIER IV OpenSCENARIO Interpreter Kotaro Yoshimoto Apache License 2.0 diff --git a/openscenario/openscenario_preprocessor_msgs/CHANGELOG.rst b/openscenario/openscenario_preprocessor_msgs/CHANGELOG.rst index 22120d8dc8d..c843912b138 100644 --- a/openscenario/openscenario_preprocessor_msgs/CHANGELOG.rst +++ b/openscenario/openscenario_preprocessor_msgs/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package openscenario_preprocessor_msgs * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/openscenario/openscenario_preprocessor_msgs/package.xml b/openscenario/openscenario_preprocessor_msgs/package.xml index 45547e73bd9..f31bf37f103 100644 --- a/openscenario/openscenario_preprocessor_msgs/package.xml +++ b/openscenario/openscenario_preprocessor_msgs/package.xml @@ -2,7 +2,7 @@ openscenario_preprocessor_msgs - 11.0.0 + 12.1.0 ROS message types for package openscenario_preprocessor Kotaro Yoshimoto Apache License 2.0 diff --git a/openscenario/openscenario_utility/CHANGELOG.rst b/openscenario/openscenario_utility/CHANGELOG.rst index 05b6b7217d4..be11addc02f 100644 --- a/openscenario/openscenario_utility/CHANGELOG.rst +++ b/openscenario/openscenario_utility/CHANGELOG.rst @@ -24,6 +24,46 @@ Changelog for package openscenario_utility * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/openscenario/openscenario_utility/package.xml b/openscenario/openscenario_utility/package.xml index 1e631d3fcb3..a6ff15e2467 100644 --- a/openscenario/openscenario_utility/package.xml +++ b/openscenario/openscenario_utility/package.xml @@ -2,7 +2,7 @@ openscenario_utility - 11.0.0 + 12.1.0 Utility tools for ASAM OpenSCENARIO 1.2.0 Tatsuya Yamasaki Apache License 2.0 diff --git a/openscenario/openscenario_validator/CHANGELOG.rst b/openscenario/openscenario_validator/CHANGELOG.rst index 91bef2be35b..9c4895c4ac7 100644 --- a/openscenario/openscenario_validator/CHANGELOG.rst +++ b/openscenario/openscenario_validator/CHANGELOG.rst @@ -10,6 +10,46 @@ Changelog for package openscenario_validator * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/openscenario/openscenario_validator/package.xml b/openscenario/openscenario_validator/package.xml index edbca6817c7..d4b6b473b1d 100644 --- a/openscenario/openscenario_validator/package.xml +++ b/openscenario/openscenario_validator/package.xml @@ -2,7 +2,7 @@ openscenario_validator - 11.0.0 + 12.1.0 Validator for OpenSCENARIO 1.3 Kotaro Yoshimoto Apache License 2.0 diff --git a/rviz_plugins/openscenario_visualization/CHANGELOG.rst b/rviz_plugins/openscenario_visualization/CHANGELOG.rst index 6bb333751df..8c1c2d1356f 100644 --- a/rviz_plugins/openscenario_visualization/CHANGELOG.rst +++ b/rviz_plugins/openscenario_visualization/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package openscenario_visualization * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/rviz_plugins/openscenario_visualization/package.xml b/rviz_plugins/openscenario_visualization/package.xml index 5d1cabae0f2..1a978528501 100644 --- a/rviz_plugins/openscenario_visualization/package.xml +++ b/rviz_plugins/openscenario_visualization/package.xml @@ -2,7 +2,7 @@ openscenario_visualization - 11.0.0 + 12.1.0 Visualization tools for simulation results Masaya Kataoka Kyoichi Sugahara diff --git a/rviz_plugins/real_time_factor_control_rviz_plugin/CHANGELOG.rst b/rviz_plugins/real_time_factor_control_rviz_plugin/CHANGELOG.rst index bf423a6f684..649ee79adda 100644 --- a/rviz_plugins/real_time_factor_control_rviz_plugin/CHANGELOG.rst +++ b/rviz_plugins/real_time_factor_control_rviz_plugin/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package real_time_factor_control_rviz_plugin * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/rviz_plugins/real_time_factor_control_rviz_plugin/package.xml b/rviz_plugins/real_time_factor_control_rviz_plugin/package.xml index c28462b1fa2..16fa6beab23 100644 --- a/rviz_plugins/real_time_factor_control_rviz_plugin/package.xml +++ b/rviz_plugins/real_time_factor_control_rviz_plugin/package.xml @@ -2,7 +2,7 @@ real_time_factor_control_rviz_plugin - 11.0.0 + 12.1.0 Slider controlling real time factor value. Paweł Lech Apache License 2.0 diff --git a/scenario_simulator_v2/CHANGELOG.rst b/scenario_simulator_v2/CHANGELOG.rst index fe9982abd22..e4ea61ad045 100644 --- a/scenario_simulator_v2/CHANGELOG.rst +++ b/scenario_simulator_v2/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package scenario_simulator_v2 * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/scenario_simulator_v2/package.xml b/scenario_simulator_v2/package.xml index c2c38365c38..00ca53a9632 100644 --- a/scenario_simulator_v2/package.xml +++ b/scenario_simulator_v2/package.xml @@ -2,7 +2,7 @@ scenario_simulator_v2 - 11.0.0 + 12.1.0 scenario testing framework for Autoware Masaya Kataoka Apache License 2.0 diff --git a/simulation/behavior_tree_plugin/CHANGELOG.rst b/simulation/behavior_tree_plugin/CHANGELOG.rst index ec85f54e9a7..93d1d1d7bd6 100644 --- a/simulation/behavior_tree_plugin/CHANGELOG.rst +++ b/simulation/behavior_tree_plugin/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package behavior_tree_plugin * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge pull request `#1531 `_ from tier4/refactor/lanelet_wrapper_route diff --git a/simulation/behavior_tree_plugin/package.xml b/simulation/behavior_tree_plugin/package.xml index 1ad5da85cd2..6b88c56d2f9 100644 --- a/simulation/behavior_tree_plugin/package.xml +++ b/simulation/behavior_tree_plugin/package.xml @@ -2,7 +2,7 @@ behavior_tree_plugin - 11.0.0 + 12.1.0 Behavior tree plugin for traffic_simulator masaya Apache 2.0 diff --git a/simulation/do_nothing_plugin/CHANGELOG.rst b/simulation/do_nothing_plugin/CHANGELOG.rst index e047a82cada..790d15c3633 100644 --- a/simulation/do_nothing_plugin/CHANGELOG.rst +++ b/simulation/do_nothing_plugin/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package do_nothing_plugin * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/simulation/do_nothing_plugin/package.xml b/simulation/do_nothing_plugin/package.xml index b4e3d00ec3c..0c0af76af87 100644 --- a/simulation/do_nothing_plugin/package.xml +++ b/simulation/do_nothing_plugin/package.xml @@ -2,7 +2,7 @@ do_nothing_plugin - 11.0.0 + 12.1.0 Behavior plugin for do nothing Masaya Kataoka Apache 2.0 diff --git a/simulation/simple_sensor_simulator/CHANGELOG.rst b/simulation/simple_sensor_simulator/CHANGELOG.rst index 8ad3f44fd9c..0a02bec380a 100644 --- a/simulation/simple_sensor_simulator/CHANGELOG.rst +++ b/simulation/simple_sensor_simulator/CHANGELOG.rst @@ -21,6 +21,67 @@ Changelog for package simple_sensor_simulator * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge pull request `#1532 `_ from tier4/feature/simple_sensor_simulator/new-noise-model + Feature/simple sensor simulator/new noise model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Add some comments for cspell to ignore false-positive warnings +* Add new document `Parameters.md` +* Cleanup parameter file +* Add parameters to maintain backward compatibility +* Update `DetectionSensor` to read seed from parameter file if model version is 2 +* Organize the parameter file structure to be more reasonable +* Rename parameter `phi` to `autocorrelation_coefficient` +* Rename parameter `tp` to `true_positive` +* Cleanup +* updated config, currected the modeling of bernoulli distribution noises to Markov process. + rename rho to phi + update description. +* Add array size check to local function `parameters` +* Update `DetectionSensor` to switch noise models according to parameter +* Add new local function `parameter` and `parameters` +* Add new parameter `ellipse_y_radiuses` +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Cleanup +* Add parameters for new noise model +* Add experimental noise model `noise_v2` +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, xtk8532704, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/simulation/simple_sensor_simulator/include/simple_sensor_simulator/sensor_simulation/detection_sensor/detection_sensor.hpp b/simulation/simple_sensor_simulator/include/simple_sensor_simulator/sensor_simulation/detection_sensor/detection_sensor.hpp index 474837afa06..819514bff8f 100644 --- a/simulation/simple_sensor_simulator/include/simple_sensor_simulator/sensor_simulation/detection_sensor/detection_sensor.hpp +++ b/simulation/simple_sensor_simulator/include/simple_sensor_simulator/sensor_simulation/detection_sensor/detection_sensor.hpp @@ -17,6 +17,7 @@ #include +#include #include #include #include @@ -24,7 +25,9 @@ #include #include #include +#include #include +#include #include #include @@ -74,11 +77,80 @@ class DetectionSensor : public DetectionSensorBase const typename rclcpp::Publisher::SharedPtr ground_truth_objects_publisher; + int noise_model_version; + std::default_random_engine random_engine_; std::queue, double>> unpublished_detected_entities, unpublished_ground_truth_entities; + struct NoiseOutput + { + double simulation_time, distance_noise, yaw_noise; + + bool true_positive, flip; + + explicit NoiseOutput(double simulation_time = 0.0) : simulation_time(simulation_time) {} + }; + + std::unordered_map noise_outputs; + + template , int> = 0> + auto delay() const + { + static const auto override_legacy_configuration = concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".override_legacy_configuration")); + if (override_legacy_configuration) { + static const auto delay = concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".delay")); + return delay; + } else { + return configuration_.object_recognition_delay(); + } + } + + template , int> = 0> + auto delay() const + { + static const auto override_legacy_configuration = concealer::getParameter( + ground_truth_objects_publisher->get_topic_name() + + std::string(".override_legacy_configuration")); + if (override_legacy_configuration) { + static const auto delay = concealer::getParameter( + ground_truth_objects_publisher->get_topic_name() + std::string(".delay")); + return delay; + } else { + return configuration_.object_recognition_ground_truth_delay(); + } + } + + auto range() const + { + static const auto override_legacy_configuration = concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".override_legacy_configuration")); + if (override_legacy_configuration) { + static const auto range = concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".range"), 300.0); + return range; + } else { + return configuration_.range(); + } + } + + auto detect_all_objects_in_range() const + { + // cspell: ignore occlusionless + static const auto override_legacy_configuration = concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".override_legacy_configuration")); + if (override_legacy_configuration) { + static const auto occlusionless = concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".occlusionless")); + return occlusionless; + } else { + return configuration_.detect_all_objects_in_range(); + } + } + public: explicit DetectionSensor( const double current_simulation_time, @@ -88,7 +160,34 @@ class DetectionSensor : public DetectionSensorBase : DetectionSensorBase(current_simulation_time, configuration), detected_objects_publisher(publisher), ground_truth_objects_publisher(ground_truth_publisher), - random_engine_(configuration.random_seed()) + noise_model_version(concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".noise.model.version"))), + random_engine_([this]() { + if (const auto seed = [this]() -> std::random_device::result_type { + switch (noise_model_version) { + default: + [[fallthrough]]; + case 1: + return configuration_.random_seed(); + case 2: + return concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".seed")); + } + }(); + seed) { + if (std::random_device::min() <= seed and seed <= std::random_device::max()) { + return seed; + } else { + throw common::scenario_simulator_exception::Error( + "The value of parameter ", + std::quoted(detected_objects_publisher->get_topic_name() + std::string(".seed")), + " must be greater than or equal to ", std::random_device::min(), + " and less than or equal to ", std::random_device::max()); + } + } else { + return std::random_device()(); + } + }()) { } diff --git a/simulation/simple_sensor_simulator/package.xml b/simulation/simple_sensor_simulator/package.xml index f10a0cb0a42..1bc7c2b7934 100644 --- a/simulation/simple_sensor_simulator/package.xml +++ b/simulation/simple_sensor_simulator/package.xml @@ -1,7 +1,7 @@ simple_sensor_simulator - 11.0.0 + 12.1.0 simple_sensor_simulator package masaya kataoka diff --git a/simulation/simple_sensor_simulator/src/sensor_simulation/detection_sensor/detection_sensor.cpp b/simulation/simple_sensor_simulator/src/sensor_simulation/detection_sensor/detection_sensor.cpp index da114db12b9..8b1b78666ae 100644 --- a/simulation/simple_sensor_simulator/src/sensor_simulation/detection_sensor/detection_sensor.cpp +++ b/simulation/simple_sensor_simulator/src/sensor_simulation/detection_sensor/detection_sensor.cpp @@ -25,10 +25,12 @@ #include #include #include +#include #include #include #include #include +#include #include namespace simple_sensor_simulator @@ -279,9 +281,9 @@ auto DetectionSensor::update( auto is_in_range = [&](const auto & status) { return not isEgoEntityStatusToWhichThisSensorIsAttached(status) and - distance(status.pose(), ego_entity_status->pose()) <= configuration_.range() and + distance(status.pose(), ego_entity_status->pose()) <= range() and isOnOrAboveEgoPlane(status.pose(), ego_entity_status->pose()) and - (configuration_.detect_all_objects_in_range() or + (detect_all_objects_in_range() or std::find( lidar_detected_entities.begin(), lidar_detected_entities.end(), status.name()) != lidar_detected_entities.end()); @@ -291,12 +293,26 @@ auto DetectionSensor::update( NOTE: for Autoware developers If you need to apply experimental noise to the DetectedObjects that the - simulator publishes, comment out the following function and implement - new one. + simulator publishes, copy the following function and implement new one. */ - auto noise = [&](auto detected_entities, auto simulation_time) { - auto position_noise_distribution = - std::normal_distribution<>(0.0, configuration_.pos_noise_stddev()); + auto noise_v1 = [&](auto detected_entities, [[maybe_unused]] auto simulation_time) { + static const auto override_legacy_configuration = concealer::getParameter( + detected_objects_publisher->get_topic_name() + + std::string(".override_legacy_configuration")); + + static const auto standard_deviation = + override_legacy_configuration ? concealer::getParameter( + detected_objects_publisher->get_topic_name() + + std::string(".noise.v1.position.standard_deviation")) + : configuration_.pos_noise_stddev(); + + static const auto missing_probability = override_legacy_configuration + ? concealer::getParameter( + detected_objects_publisher->get_topic_name() + + std::string(".noise.v1.missing_probability")) + : configuration_.probability_of_lost(); + + auto position_noise_distribution = std::normal_distribution<>(0.0, standard_deviation); for (auto && detected_entity : detected_entities) { detected_entity.mutable_pose()->mutable_position()->set_x( @@ -309,14 +325,193 @@ auto DetectionSensor::update( std::remove_if( detected_entities.begin(), detected_entities.end(), [this](auto &&) { - return std::uniform_real_distribution()(random_engine_) < - configuration_.probability_of_lost(); + return std::uniform_real_distribution()(random_engine_) < missing_probability; }), detected_entities.end()); return detected_entities; }; + auto noise_v2 = [&](const auto & detected_entities, auto simulation_time) { + auto noised_detected_entities = std::decay_t(); + + for (auto detected_entity : detected_entities) { + auto [noise_output, success] = + noise_outputs.emplace(detected_entity.name(), simulation_time); + + const auto x = + detected_entity.pose().position().x() - ego_entity_status->pose().position().x(); + const auto y = + detected_entity.pose().position().y() - ego_entity_status->pose().position().y(); + const auto speed = std::hypot( + detected_entity.action_status().twist().linear().x(), + detected_entity.action_status().twist().linear().y()); + const auto interval = + simulation_time - std::exchange(noise_output->second.simulation_time, simulation_time); + + auto parameter = [this](const auto & name) { + return concealer::getParameter( + detected_objects_publisher->get_topic_name() + std::string(".noise.v2.") + name); + }; + + auto parameters = [this](const auto & name) { + const auto full_name = + detected_objects_publisher->get_topic_name() + std::string(".noise.v2.") + name; + const auto parameters = concealer::getParameter>(full_name); + static const auto size = parameters.size(); + if (parameters.size() != size) { + throw common::Error( + "The sizes of the arrays given to the parameters of noise model version 2 must be " + "the same. The parameter ", + std::quoted(full_name), " is an array of size ", parameters.size(), + ", and the other arrays are of size ", size, "."); + } else { + return parameters; + } + }; + + /* + We use AR(1) model to model the autocorrelation coefficients `phi` + for `distance_noise` and `yaw_noise` with Gaussian distribution, by + the following formula: + + noise(prev_noise) = mean + phi * (prev_noise - mean) + N(0, 1 - phi^2) * standard_deviation + */ + // cspell: ignore autoregressive + auto autoregressive_noise = [this]( + auto previous_noise, auto mean, auto standard_deviation, + auto autocorrelation_coefficient) { + return mean + autocorrelation_coefficient * (previous_noise - mean) + + std::normal_distribution( + 0, standard_deviation * + std::sqrt(1 - std::pow(autocorrelation_coefficient, 2)))(random_engine_); + }; + + /* + We use Markov process to model the autocorrelation coefficients + `phi` for `flip` and `true_positive` with Bernoulli distribution, by + the transition matrix: + + | p_00 p_01 | == | p0 + phi * p1 p1 (1 - phi) | + | p_10 p_11 | == | p0 (1 - phi) p1 - phi * p0 | + */ + auto markov_process_noise = + [this](bool previous_noise, auto rate, auto autocorrelation_coefficient) { + return std::uniform_real_distribution()(random_engine_) < + (previous_noise ? 1.0 : 0.0) * autocorrelation_coefficient + + (1 - autocorrelation_coefficient) * rate; + }; + + /* + We use `phi` for the above autocorrelation coefficients `phi`, which + is calculated from the time_interval `dt` by the following formula: + + phi(dt) = amplitude * exp(-decay * dt) + offset + */ + auto autocorrelation_coefficient = [&](const std::string & name) { + static const auto amplitude = parameter(name + ".autocorrelation_coefficient.amplitude"); + static const auto decay = parameter(name + ".autocorrelation_coefficient.decay"); + static const auto offset = parameter(name + ".autocorrelation_coefficient.offset"); + return std::clamp(amplitude * std::exp(-decay * interval) + offset, 0.0, 1.0); + }; + + auto selector = [&](const std::string & name) { + static const auto ellipse_y_radii = parameters("ellipse_y_radii"); + return [&, ellipse_normalized_x_radius = parameter(name + ".ellipse_normalized_x_radius"), + values = parameters(name + ".values")]() { + /* + If the parameter `.noise.v2.ellipse_y_radii` + contains the value 0.0, division by zero will occur here. + However, in that case, the distance will be NaN, which correctly + expresses the meaning that "the distance cannot be defined", and + this function will work without any problems (zero will be + returned). + */ + const auto distance = std::hypot(x / ellipse_normalized_x_radius, y); + for (auto i = std::size_t(0); i < ellipse_y_radii.size(); ++i) { + if (distance < ellipse_y_radii[i]) { + return values[i]; + } + } + return 0.0; + }; + }; + + noise_output->second.distance_noise = [&]() { + static const auto mean = selector("distance.mean"); + static const auto standard_deviation = selector("distance.standard_deviation"); + return autoregressive_noise( + noise_output->second.distance_noise, mean(), standard_deviation(), + autocorrelation_coefficient("distance")); + }(); + + noise_output->second.yaw_noise = [&]() { + static const auto mean = selector("yaw.mean"); + static const auto standard_deviation = selector("yaw.standard_deviation"); + return autoregressive_noise( + noise_output->second.yaw_noise, mean(), standard_deviation(), + autocorrelation_coefficient("yaw")); + }(); + + noise_output->second.flip = [&]() { + static const auto speed_threshold = parameter("yaw_flip.speed_threshold"); + static const auto rate = parameter("yaw_flip.rate"); + return speed < speed_threshold and + markov_process_noise( + noise_output->second.flip, rate, autocorrelation_coefficient("yaw_flip")); + }(); + + noise_output->second.true_positive = [&]() { + static const auto rate = selector("true_positive.rate"); + return markov_process_noise( + noise_output->second.true_positive, rate(), + autocorrelation_coefficient("true_positive")); + }(); + + if (noise_output->second.true_positive) { + const auto angle = std::atan2(y, x); + + const auto yaw_rotated_orientation = + tf2::Quaternion( + detected_entity.pose().orientation().x(), detected_entity.pose().orientation().y(), + detected_entity.pose().orientation().z(), detected_entity.pose().orientation().w()) * + tf2::Quaternion( + tf2::Vector3(0, 0, 1), + noise_output->second.yaw_noise + (noise_output->second.flip ? M_PI : 0.0)); + + detected_entity.mutable_pose()->mutable_position()->set_x( + detected_entity.pose().position().x() + + noise_output->second.distance_noise * std::cos(angle)); + detected_entity.mutable_pose()->mutable_position()->set_y( + detected_entity.pose().position().y() + + noise_output->second.distance_noise * std::sin(angle)); + detected_entity.mutable_pose()->mutable_orientation()->set_x( + yaw_rotated_orientation.getX()); + detected_entity.mutable_pose()->mutable_orientation()->set_y( + yaw_rotated_orientation.getY()); + detected_entity.mutable_pose()->mutable_orientation()->set_z( + yaw_rotated_orientation.getZ()); + detected_entity.mutable_pose()->mutable_orientation()->set_w( + yaw_rotated_orientation.getW()); + + noised_detected_entities.push_back(detected_entity); + } + } + + return noised_detected_entities; + }; + + auto noise = [&](auto &&... xs) { + switch (noise_model_version) { + default: + [[fallthrough]]; + case 1: + return noise_v1(std::forward(xs)...); + case 2: + return noise_v2(std::forward(xs)...); + } + }; + auto make_detected_objects = [&](const auto & detected_entities) { auto detected_objects = autoware_perception_msgs::msg::DetectedObjects(); detected_objects.header.stamp = current_ros_time; @@ -348,7 +543,7 @@ auto DetectionSensor::update( if ( current_simulation_time - unpublished_detected_entities.front().second >= - configuration_.object_recognition_delay()) { + delay()) { const auto modified_detected_entities = std::apply(noise, unpublished_detected_entities.front()); detected_objects_publisher->publish(make_detected_objects(modified_detected_entities)); @@ -359,7 +554,7 @@ auto DetectionSensor::update( if ( current_simulation_time - unpublished_ground_truth_entities.front().second >= - configuration_.object_recognition_ground_truth_delay()) { + delay()) { ground_truth_objects_publisher->publish( make_ground_truth_objects(unpublished_ground_truth_entities.front().first)); unpublished_ground_truth_entities.pop(); diff --git a/simulation/simulation_interface/CHANGELOG.rst b/simulation/simulation_interface/CHANGELOG.rst index 49040ca46a2..0fe99f5b141 100644 --- a/simulation/simulation_interface/CHANGELOG.rst +++ b/simulation/simulation_interface/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package simulation_interface * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/simulation/simulation_interface/package.xml b/simulation/simulation_interface/package.xml index 5075a3821e8..7098263d017 100644 --- a/simulation/simulation_interface/package.xml +++ b/simulation/simulation_interface/package.xml @@ -2,7 +2,7 @@ simulation_interface - 11.0.0 + 12.1.0 packages to define interface between simulator and scenario interpreter Masaya Kataoka Apache License 2.0 diff --git a/simulation/traffic_simulator/CHANGELOG.rst b/simulation/traffic_simulator/CHANGELOG.rst index ef445a47244..07534ad4957 100644 --- a/simulation/traffic_simulator/CHANGELOG.rst +++ b/simulation/traffic_simulator/CHANGELOG.rst @@ -21,6 +21,58 @@ Changelog for package traffic_simulator * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge pull request `#1539 `_ from tier4/RJD-1057/reorgnize-ostream-helper + RJD-1057: Reorganize ostream operators +* fix: add missing ")" and structured output +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Update ostream helper + Co-authored-by: Dawid Moszynski + Co-authored-by: Mateusz Palczuk +* Contributors: Kotaro Yoshimoto, f0reachARR, ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge pull request `#1533 `_ from tier4/refactor/lanelet_wrapper_bound + HdMapUtils refactor lanelet_wrapper::lanelet_map::leftBound rightBound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* remove hdmap_utils from `distanceToLaneBound` +* remove hdmap_utils from `distanceToLeftLaneBound` and `distanceToRightLaneBound` +* move `getLeftBound` and `getRightBound` methods +* Add toPolygon function +* Contributors: Masaya Kataoka, Tatsuya Yamasaki, abco20 + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge pull request `#1531 `_ from tier4/refactor/lanelet_wrapper_route diff --git a/simulation/traffic_simulator/CMakeLists.txt b/simulation/traffic_simulator/CMakeLists.txt index 628b1bf3a79..ad1edaf38f6 100644 --- a/simulation/traffic_simulator/CMakeLists.txt +++ b/simulation/traffic_simulator/CMakeLists.txt @@ -46,6 +46,7 @@ ament_auto_add_library(traffic_simulator SHARED src/entity/vehicle_entity.cpp src/hdmap_utils/hdmap_utils.cpp src/helper/helper.cpp + src/helper/ostream_helpers.cpp src/job/job.cpp src/job/job_list.cpp src/lanelet_wrapper/distance.cpp diff --git a/simulation/traffic_simulator/include/traffic_simulator/data_type/lanelet_pose.hpp b/simulation/traffic_simulator/include/traffic_simulator/data_type/lanelet_pose.hpp index d8c8e3e2725..e7e6c324edd 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/data_type/lanelet_pose.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/data_type/lanelet_pose.hpp @@ -22,6 +22,7 @@ #include #include #include +#include #include namespace traffic_simulator @@ -80,6 +81,26 @@ class CanonicalizedLaneletPose DEFINE_COMPARISON_OPERATOR(>) #undef DEFINE_COMPARISON_OPERATOR + friend std::ostream & operator<<(std::ostream & os, const CanonicalizedLaneletPose & obj) + { + os << "CanonicalizedLaneletPose(\n"; + os << obj.lanelet_pose_ << "\n"; + if (obj.lanelet_poses_.size() == 1) { + os << " alternative from lanelet_poses_: " << obj.lanelet_poses_.front() << "\n"; + } else if (obj.lanelet_poses_.size() > 1) { + os << " lanelet_poses_: [\n"; + for (const auto & pose : obj.lanelet_poses_) { + os << " - " << pose << "\n"; + } + os << " ]\n"; + } + os << " map_pose_: " << obj.map_pose_ << "\n"; + os << " consider_pose_by_road_slope_: " + << (CanonicalizedLaneletPose::consider_pose_by_road_slope_ ? "true" : "false") << "\n"; + os << ")"; + return os; + } + private: auto adjustOrientationAndOzPosition() -> void; LaneletPose lanelet_pose_; diff --git a/simulation/traffic_simulator/include/traffic_simulator/helper/helper.hpp b/simulation/traffic_simulator/include/traffic_simulator/helper/helper.hpp index b856e909ec9..58ae3b67f2a 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/helper/helper.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/helper/helper.hpp @@ -153,17 +153,6 @@ const simulation_api_schema::DetectionSensorConfiguration constructDetectionSens } // namespace helper } // namespace traffic_simulator -std::ostream & operator<<( - std::ostream & os, const traffic_simulator_msgs::msg::LaneletPose & lanelet_pose); - -std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Point & point); - -std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Vector3 & vector); - -std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Quaternion & quat); - -std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Pose & pose); - template auto operator+(const std::vector & v0, const std::vector & v1) -> decltype(auto) { @@ -189,5 +178,4 @@ auto sortAndUnique(const std::vector & data) -> std::vector ret.erase(std::unique(ret.begin(), ret.end()), ret.end()); return ret; } - #endif // TRAFFIC_SIMULATOR__HELPER__HELPER_HPP_ diff --git a/simulation/traffic_simulator/include/traffic_simulator/helper/ostream_helpers.hpp b/simulation/traffic_simulator/include/traffic_simulator/helper/ostream_helpers.hpp new file mode 100644 index 00000000000..868719a068d --- /dev/null +++ b/simulation/traffic_simulator/include/traffic_simulator/helper/ostream_helpers.hpp @@ -0,0 +1,60 @@ +// Copyright 2015 TIER IV, Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef TRAFFIC_SIMULATOR_HELPER__OSTREAM_HELPERS_HPP_ +#define TRAFFIC_SIMULATOR_HELPER__OSTREAM_HELPERS_HPP_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace traffic_simulator +{ +std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Point & point); + +std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Vector3 & vector); + +std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Quaternion & quat); + +std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Pose & pose); + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::LaneletPose & ll_pose); + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::EntitySubtype & subtype); + +std::ostream & operator<<(std::ostream & os, const traffic_simulator_msgs::msg::Axle & axle); + +std::ostream & operator<<(std::ostream & os, const traffic_simulator_msgs::msg::Axles & axles); + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::BoundingBox & bounding_box); + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::Performance & performance); + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::VehicleParameters & params); +} // namespace traffic_simulator + +#endif // TRAFFIC_SIMULATOR_HELPER__OSTREAM_HELPERS_HPP_ diff --git a/simulation/traffic_simulator/package.xml b/simulation/traffic_simulator/package.xml index 1f393017b12..cb6af4cfd98 100644 --- a/simulation/traffic_simulator/package.xml +++ b/simulation/traffic_simulator/package.xml @@ -1,7 +1,7 @@ traffic_simulator - 11.0.0 + 12.1.0 control traffic flow masaya kataoka diff --git a/simulation/traffic_simulator/src/helper/helper.cpp b/simulation/traffic_simulator/src/helper/helper.cpp index 2f59b8ad2c6..361b5b603e7 100644 --- a/simulation/traffic_simulator/src/helper/helper.cpp +++ b/simulation/traffic_simulator/src/helper/helper.cpp @@ -186,38 +186,3 @@ const simulation_api_schema::LidarConfiguration constructLidarConfiguration( } // namespace helper } // namespace traffic_simulator - -std::ostream & operator<<( - std::ostream & os, const traffic_simulator_msgs::msg::LaneletPose & lanelet_pose) -{ - os << "lanelet id : " << lanelet_pose.lanelet_id << "\ns : " << lanelet_pose.s; - return os; -} - -std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Point & point) -{ - os << "x : " << point.x << ",y : " << point.y << ",z : " << point.z << std::endl; - return os; -} - -std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Vector3 & vector) -{ - os << "x : " << vector.x << ",y : " << vector.y << ",z : " << vector.z << std::endl; - return os; -} - -std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Quaternion & quat) -{ - os << "x : " << quat.x << ",y : " << quat.y << ",z : " << quat.z << ",w : " << quat.w - << std::endl; - return os; -} - -std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Pose & pose) -{ - os << "position : " << std::endl; - os << pose.position << std::endl; - os << "orientation : " << std::endl; - os << pose.orientation << std::endl; - return os; -} diff --git a/simulation/traffic_simulator/src/helper/ostream_helpers.cpp b/simulation/traffic_simulator/src/helper/ostream_helpers.cpp new file mode 100644 index 00000000000..c98269dfa0c --- /dev/null +++ b/simulation/traffic_simulator/src/helper/ostream_helpers.cpp @@ -0,0 +1,133 @@ +// Copyright 2015 TIER IV, Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +namespace traffic_simulator +{ +// basic ros types +std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Point & point) +{ + os << "Point(x: " << point.x << ", y: " << point.y << ", z: " << point.z << ")"; + return os; +} + +std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Vector3 & vector) +{ + os << "Vector3(x: " << vector.x << ", y: " << vector.y << ", z: " << vector.z << ")"; + return os; +} + +std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Quaternion & quat) +{ + os << "Quaternion(x: " << quat.x << ", y: " << quat.y << ", z: " << quat.z << ", w: " << quat.w + << ")"; + return os; +} + +std::ostream & operator<<(std::ostream & os, const geometry_msgs::msg::Pose & pose) +{ + os << "Pose(\n"; + os << " position: " << pose.position << "\n"; + os << " orientation: " << pose.orientation << "\n"; + os << ")"; + return os; +} + +// traffic_simulator_msgs +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::LaneletPose & lanelet_pose) +{ + os << "LaneletPose(lanelet_id: " << lanelet_pose.lanelet_id << ", s: " << lanelet_pose.s + << ", offset: " << lanelet_pose.offset << ", rpy: " << lanelet_pose.rpy << ")"; + return os; +} + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::EntitySubtype & subtype) +{ + using EntitySubtype = traffic_simulator_msgs::msg::EntitySubtype; + static const std::unordered_map entity_names = { + {EntitySubtype::UNKNOWN, "UNKNOWN"}, {EntitySubtype::CAR, "CAR"}, + {EntitySubtype::TRUCK, "TRUCK"}, {EntitySubtype::BUS, "BUS"}, + {EntitySubtype::TRAILER, "TRAILER"}, {EntitySubtype::MOTORCYCLE, "MOTORCYCLE"}, + {EntitySubtype::BICYCLE, "BICYCLE"}, {EntitySubtype::PEDESTRIAN, "PEDESTRIAN"}}; + + os << "EntitySubtype("; + if (const auto & it = entity_names.find(subtype.value); it != entity_names.end()) { + os << it->second; + } else { + os << "UNKNOWN(" << static_cast(subtype.value) << ")"; + } + os << ")"; + return os; +} + +std::ostream & operator<<(std::ostream & os, const traffic_simulator_msgs::msg::Axle & axle) +{ + os << "Axle(\n"; + os << " max_steering: " << axle.max_steering << "\n"; + os << " wheel_diameter: " << axle.wheel_diameter << "\n"; + os << " track_width: " << axle.track_width << "\n"; + os << " position_x: " << axle.position_x << "\n"; + os << " position_z: " << axle.position_z << "\n"; + os << ")"; + return os; +} + +std::ostream & operator<<(std::ostream & os, const traffic_simulator_msgs::msg::Axles & axles) +{ + os << "Axles(\n"; + os << " front_axle: " << axles.front_axle << "\n"; + os << " rear_axle: " << axles.rear_axle << "\n"; + os << ")"; + return os; +} + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::BoundingBox & bounding_box) +{ + os << "BoundingBox(\n"; + os << " center: " << bounding_box.center << "\n"; + os << " dimensions: " << bounding_box.dimensions << "\n"; + os << ")"; + return os; +} + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::Performance & performance) +{ + os << "Performance(\n"; + os << " max_acceleration: " << performance.max_acceleration << "\n"; + os << " max_acceleration_rate: " << performance.max_acceleration_rate << "\n"; + os << " max_deceleration: " << performance.max_deceleration << "\n"; + os << " max_deceleration_rate: " << performance.max_deceleration_rate << "\n"; + os << " max_speed: " << performance.max_speed << "\n"; + os << ")"; + return os; +} + +std::ostream & operator<<( + std::ostream & os, const traffic_simulator_msgs::msg::VehicleParameters & params) +{ + os << "VehicleParameters(\n"; + os << " name: " << params.name << "\n"; + os << " subtype: " << params.subtype << "\n"; + os << " bounding_box: " << params.bounding_box << "\n"; + os << " performance: " << params.performance << "\n"; + os << " axles: " << params.axles << "\n"; + os << ")"; + return os; +} +} // namespace traffic_simulator diff --git a/simulation/traffic_simulator/test/src/helper/test_helper.cpp b/simulation/traffic_simulator/test/src/helper/test_helper.cpp index 4ddfdfa28e1..1c26bf5ea1c 100644 --- a/simulation/traffic_simulator/test/src/helper/test_helper.cpp +++ b/simulation/traffic_simulator/test/src/helper/test_helper.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include "../expect_eq_macros.hpp" @@ -43,6 +44,8 @@ TEST(helper, constructActionStatus) */ TEST(helper, constructLaneletPose) { + using traffic_simulator::operator<<; + const auto actual_lanelet_pose = traffic_simulator_msgs::build() .lanelet_id(11LL) @@ -56,7 +59,9 @@ TEST(helper, constructLaneletPose) std::stringstream ss; ss << result_lanelet_pose; EXPECT_LANELET_POSE_EQ(result_lanelet_pose, actual_lanelet_pose); - EXPECT_STREQ(ss.str().c_str(), "lanelet id : 11\ns : 13"); + EXPECT_STREQ( + ss.str().c_str(), + "LaneletPose(lanelet_id: 11, s: 13, offset: 17, rpy: Vector3(x: 19, y: 23, z: 29))"); } /** diff --git a/simulation/traffic_simulator_msgs/CHANGELOG.rst b/simulation/traffic_simulator_msgs/CHANGELOG.rst index 23fdc04e60b..4cd7fd58eb8 100644 --- a/simulation/traffic_simulator_msgs/CHANGELOG.rst +++ b/simulation/traffic_simulator_msgs/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package openscenario_msgs * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/simulation/traffic_simulator_msgs/package.xml b/simulation/traffic_simulator_msgs/package.xml index ae4e5c1feaa..3998f67e463 100644 --- a/simulation/traffic_simulator_msgs/package.xml +++ b/simulation/traffic_simulator_msgs/package.xml @@ -2,7 +2,7 @@ traffic_simulator_msgs - 11.0.0 + 12.1.0 ROS messages for openscenario Masaya Kataoka Apache License 2.0 diff --git a/test_runner/random_test_runner/CHANGELOG.rst b/test_runner/random_test_runner/CHANGELOG.rst index c65cdfe45a9..babe4e344ba 100644 --- a/test_runner/random_test_runner/CHANGELOG.rst +++ b/test_runner/random_test_runner/CHANGELOG.rst @@ -21,6 +21,46 @@ Changelog for package random_test_runner * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge branch 'master' into feature/execution_time +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/test_runner/random_test_runner/package.xml b/test_runner/random_test_runner/package.xml index 3cd961cd8fe..9421ae8fcbb 100644 --- a/test_runner/random_test_runner/package.xml +++ b/test_runner/random_test_runner/package.xml @@ -2,7 +2,7 @@ random_test_runner - 11.0.0 + 12.1.0 Random behavior test runner piotr-zyskowski-rai Apache License 2.0 diff --git a/test_runner/scenario_test_runner/CHANGELOG.rst b/test_runner/scenario_test_runner/CHANGELOG.rst index 4c18dbfe07f..51b3bcd6e6c 100644 --- a/test_runner/scenario_test_runner/CHANGELOG.rst +++ b/test_runner/scenario_test_runner/CHANGELOG.rst @@ -35,6 +35,82 @@ Changelog for package scenario_test_runner * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +12.1.0 (2025-03-05) +------------------- +* Merge pull request `#1532 `_ from tier4/feature/simple_sensor_simulator/new-noise-model + Feature/simple sensor simulator/new noise model +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Update the parameter file to read from any named node +* Merge branch 'master' into feature/simple_sensor_simulator/new-noise-model +* Add some comments for cspell to ignore false-positive warnings +* Add new document `Parameters.md` +* Cleanup parameter file +* Add parameters to maintain backward compatibility +* Organize the parameter file structure to be more reasonable +* Rename parameter `phi` to `autocorrelation_coefficient` +* Rename parameter `tp` to `true_positive` +* Cleanup +* updated config, currected the modeling of bernoulli distribution noises to Markov process. + rename rho to phi + update description. +* Add array size check to local function `parameters` +* Update `DetectionSensor` to switch noise models according to parameter +* Add new local function `parameter` and `parameters` +* Add new parameter `ellipse_y_radiuses` +* Merge remote-tracking branch 'origin/master' into feature/simple_sensor_simulator/new-noise-model +* Add parameters for new noise model +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki, xtk8532704, yamacir-kit + +12.0.2 (2025-03-04) +------------------- +* Merge branch 'master' into RJD-1057/reorgnize-ostream-helper +* Contributors: ぐるぐる + +12.0.1 (2025-02-26) +------------------- +* Merge branch 'master' into feature/push-latest-docker-tag +* Contributors: Masaya Kataoka + +12.0.0 (2025-02-25) +------------------- +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Merge branch 'master' into refactor/lanelet_wrapper_bound +* Contributors: Tatsuya Yamasaki + +11.1.0 (2025-02-21) +------------------- +* Merge pull request `#1517 `_ from tier4/feature/execution_time +* Revert "Revert "Revert "chore: modify scenario threshold for test""" + This reverts commit 7d343c55b229f3c1eb4aabb28340b4dfd7f9ff98. +* Merge branch 'master' into feature/execution_time +* Revert "Revert "chore: modify scenario threshold for test"" + This reverts commit 603273f93910854a0fdd228dfef0aee537fb6398. +* Revert "chore: modify scenario threshold for test" + This reverts commit 30e525ccdce49cc2f13d21f9fa9b9b15f58ccbbb. +* Merge remote-tracking branch 'origin/master' into feature/execution_time +* chore: modify scenario threshold for test +* Merge branch 'master' into feature/execution_time +* chore: use seconds as time unit in execution_time topics +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Revert "chore: change scenario condition for test" + This reverts commit 868aae6e9077d8f9c2e58d3431d01e300b1f1c70. +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* chore: change scenario condition for test +* chore: move execution_time_test.yaml into optional_workflow.txt +* Merge branch 'master' into feature/execution_time +* Merge branch 'master' into feature/execution_time +* feat: add execution_time_test.yaml into test scenario line-up +* Merge branch 'master' into feature/execution_time +* chore: update threshold for update time in execution_time_test.yaml +* refactor: use anchor and aliases in execution_time_test.yaml +* feat: add execution_time_test.yaml +* Contributors: Kotaro Yoshimoto, Tatsuya Yamasaki + 11.0.0 (2025-02-20) ------------------- * Merge branch 'master' into refactor/lanelet_wrapper_route diff --git a/test_runner/scenario_test_runner/config/optional_workflow.txt b/test_runner/scenario_test_runner/config/optional_workflow.txt new file mode 100644 index 00000000000..10542919b4e --- /dev/null +++ b/test_runner/scenario_test_runner/config/optional_workflow.txt @@ -0,0 +1 @@ +$(find-pkg-share scenario_test_runner)/scenario/execution_time_test.yaml diff --git a/test_runner/scenario_test_runner/config/parameters.yaml b/test_runner/scenario_test_runner/config/parameters.yaml index 93d35b0fd37..f05412ce17d 100644 --- a/test_runner/scenario_test_runner/config/parameters.yaml +++ b/test_runner/scenario_test_runner/config/parameters.yaml @@ -1,129 +1,187 @@ -simulation: - AutowareUniverse: - ros__parameters: - /localization/kinematic_state: - version: 20240605 # architecture_type suffix (mandatory) - seed: 0 # If 0 is specified, a random seed value will be generated for each run. - nav_msgs::msg::Odometry: +# cspell: ignore occlusionless + +/**: + ros__parameters: + /localization/kinematic_state: + version: 20240605 # architecture_type suffix (mandatory) + seed: 0 # If 0 is specified, a random seed value will be generated for each run. + nav_msgs::msg::Odometry: + pose: pose: - pose: - position: - # The data members of geometry_msgs::msg::Pose.position are x, - # y, z, which are world coordinates in - # `/localization/kinematic_state`. However, applying error to a - # position in world coordinates is unintuitive and tricky, so - # we accept the parameters as the entity's local coordinates. - # local_x, local_y, local_z express that. The simulator - # calculates the error in the local coordinates. It then - # transforms the error to the world coordinates, adds the error - # to the true position (world coordinates), and publishes it as - # `/localization/kinematic_state`. - local_x: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - local_y: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - local_z: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - orientation: - # The type of geometry_msgs::msg::Pose.orientation is - # Quaternion, and the actual orientation data members are x, y, - # z, and w. However, applying error to Quaternions can be - # unintuitive and tricky, so we accept the parameters as Euler - # angles here. The simulator internally converts Quaternion to - # Euler angles and applies the error to them. It then converts - # the error-applied Euler angles back to Quaternion and - # publishes them as `/localization/kinematic_state`. - r: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - p: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - y: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 + position: + # The data members of geometry_msgs::msg::Pose.position are x, y, + # z, which are world coordinates in + # `/localization/kinematic_state`. However, applying error to a + # position in world coordinates is unintuitive and tricky, so we + # accept the parameters as the entity's local coordinates. + # local_x, local_y, local_z express that. The simulator + # calculates the error in the local coordinates. It then + # transforms the error to the world coordinates, adds the error + # to the true position (world coordinates), and publishes it as + # `/localization/kinematic_state`. + local_x: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + local_y: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + local_z: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + orientation: + # The type of geometry_msgs::msg::Pose.orientation is Quaternion, + # and the actual orientation data members are x, y, z, and w. + # However, applying error to Quaternions can be unintuitive and + # tricky, so we accept the parameters as Euler angles here. The + # simulator internally converts Quaternion to Euler angles and + # applies the error to them. It then converts the error-applied + # Euler angles back to Quaternion and publishes them as + # `/localization/kinematic_state`. + r: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + p: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + y: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + twist: twist: - twist: - linear: - x: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - y: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - z: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - angular: - x: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - y: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 - z: - error: - additive: - mean: 0.0 - standard_deviation: 0.0 - multiplicative: - mean: 0.0 - standard_deviation: 0.0 + linear: + x: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + y: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + z: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + angular: + x: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + y: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + z: + error: + additive: + mean: 0.0 + standard_deviation: 0.0 + multiplicative: + mean: 0.0 + standard_deviation: 0.0 + /perception/object_recognition/detection/objects: + version: 20240605 # architecture_type suffix (mandatory) + seed: 0 # If 0 is specified, a random seed value will be generated for each run. + override_legacy_configuration: false + delay: 0.0 # This parameter is used only if `override_legacy_configuration` is true. If it is false, the value of `detectedObjectPublishingDelay` in `ObjectController.Properties` in the scenario file is used. + range: 300.0 # This parameter is used only if `override_legacy_configuration` is true. If it is false, the value of `detectionSensorRange` in `ObjectController.Properties` in the scenario file is used. + occlusionless: false # This parameter is used only if `override_legacy_configuration` is true. If it is false, the value of `isClairvoyant` in `ObjectController.Properties` in the scenario file is used. + noise: + model: + version: 1 # Any of [1, 2]. + v1: # This clause is used only if `model.version` is 1. + position: + standard_deviation: 0.0 # This parameter is used only if `override_legacy_configuration` is true. If it is false, the value of `detectedObjectPositionStandardDeviation` in `ObjectController.Properties` in the scenario file is used. + missing_probability: 0.0 # This parameter is used only if `override_legacy_configuration` is true. If it is false, the value of `detectedObjectMissingProbability` in `ObjectController.Properties` in the scenario file is used. + v2: # This clause is used only if `model.version` is 2. + ellipse_y_radii: [10.0, 20.0, 40.0, 60.0, 80.0, 120.0, 150.0, 180.0, 1000.0] + distance: + autocorrelation_coefficient: + amplitude: 0.0 + decay: 0.0 + offset: 0.0 + mean: + ellipse_normalized_x_radius: 1.0 + values: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + standard_deviation: + ellipse_normalized_x_radius: 1.0 + values: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + yaw: + autocorrelation_coefficient: + amplitude: 0.0 + decay: 0.0 + offset: 0.0 + mean: + ellipse_normalized_x_radius: 1.0 + values: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + standard_deviation: + ellipse_normalized_x_radius: 1.0 + values: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + yaw_flip: + autocorrelation_coefficient: + amplitude: 0.0 + decay: 0.0 + offset: 0.0 + speed_threshold: 0.1 + rate: 0.0 + true_positive: + autocorrelation_coefficient: + amplitude: 0.0 + decay: 0.0 + offset: 0.0 + rate: + ellipse_normalized_x_radius: 1.0 + values: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] + /perception/object_recognition/ground_truth/objects: + version: 20240605 # architecture_type suffix (mandatory) + override_legacy_configuration: false + delay: 0.0 # This parameter is used only if `override_legacy_configuration` is true. If it is false, the value of `detectedObjectGroundTruthPublishingDelay` in `ObjectController.Properties` in the scenario file is used. diff --git a/test_runner/scenario_test_runner/package.xml b/test_runner/scenario_test_runner/package.xml index a88820be66d..9868fd53f5d 100644 --- a/test_runner/scenario_test_runner/package.xml +++ b/test_runner/scenario_test_runner/package.xml @@ -2,7 +2,7 @@ scenario_test_runner - 11.0.0 + 12.1.0 scenario test runner package Tatsuya Yamasaki Apache License 2.0 diff --git a/test_runner/scenario_test_runner/scenario/execution_time_test.yaml b/test_runner/scenario_test_runner/scenario/execution_time_test.yaml new file mode 100644 index 00000000000..4b6917f3459 --- /dev/null +++ b/test_runner/scenario_test_runner/scenario/execution_time_test.yaml @@ -0,0 +1,201 @@ +OpenSCENARIO: + FileHeader: + author: 'Kotaro Yoshimoto' + date: '2025-01-28T18:06:53+09:00' + description: 'scenario for execution time test' + revMajor: 1 + revMinor: 3 + ParameterDeclarations: + ParameterDeclaration: [] + CatalogLocations: + VehicleCatalog: + Directory: + path: $(ros2 pkg prefix --share openscenario_experimental_catalog)/vehicle + RoadNetwork: + LogicFile: + filepath: $(ros2 pkg prefix --share kashiwanoha_map)/map + Entities: + ScenarioObject: + - name: Car1 + CatalogReference: &SAMPLE_VEHICLE + catalogName: sample_vehicle + entryName: sample_vehicle + - name: Car2 + CatalogReference: *SAMPLE_VEHICLE + - name: Car3 + CatalogReference: *SAMPLE_VEHICLE + - name: Car4 + CatalogReference: *SAMPLE_VEHICLE + - name: Car5 + CatalogReference: *SAMPLE_VEHICLE + - name: Car6 + CatalogReference: *SAMPLE_VEHICLE + Storyboard: + Init: + Actions: + Private: + - entityRef: Car1 + PrivateAction: + - TeleportAction: + Position: + LanePosition: &DEFAULT_LANE_POSITION + roadId: '' + laneId: 34513 + s: 0 + offset: 0 + Orientation: &DEFAULT_ORIENTATION + type: relative + h: 0 + p: 0 + r: 0 + - entityRef: Car2 + PrivateAction: + - TeleportAction: + Position: + LanePosition: + <<: *DEFAULT_LANE_POSITION + s: 5 + - entityRef: Car3 + PrivateAction: + - TeleportAction: + Position: + LanePosition: + <<: *DEFAULT_LANE_POSITION + s: 10 + - entityRef: Car4 + PrivateAction: + - TeleportAction: + Position: + LanePosition: + <<: *DEFAULT_LANE_POSITION + s: 15 + - entityRef: Car5 + PrivateAction: + - TeleportAction: + Position: + LanePosition: + <<: *DEFAULT_LANE_POSITION + s: 20 + - entityRef: Car6 + PrivateAction: + - TeleportAction: + Position: + LanePosition: + <<: *DEFAULT_LANE_POSITION + s: 25 + Story: + - name: '' + Act: + - name: _EndCondition + ManeuverGroup: + - maximumExecutionCount: 1 + name: '' + Actors: + selectTriggeringEntities: false + EntityRef: + - entityRef: Car1 + Maneuver: + - name: '' + Event: + - name: '' + priority: parallel + StartTrigger: + ConditionGroup: + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByEntityCondition: + TriggeringEntities: + triggeringEntitiesRule: any + EntityRef: + - entityRef: Car1 + EntityCondition: + ReachPositionCondition: + Position: + LanePosition: + <<: *DEFAULT_LANE_POSITION + s: 40 + tolerance: 0.5 + Action: + - name: '' + UserDefinedAction: + CustomCommandAction: + type: exitSuccess + - name: '' + priority: parallel + StartTrigger: + ConditionGroup: + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByValueCondition: + SimulationTimeCondition: + value: 60 + rule: greaterThan + - Condition: + - name: 'evaluate time checker' + delay: 0 + conditionEdge: none + ByValueCondition: + UserDefinedValueCondition: + name: /simulation/interpreter/execution_time/evaluate + rule: greaterThan + value: 0.001 + - name: 'avoid startup' + delay: 0 + conditionEdge: none + ByValueCondition: + SimulationTimeCondition: + value: 1 + rule: greaterThan + - Condition: + - name: 'update time checker' + delay: 0 + conditionEdge: none + ByValueCondition: + UserDefinedValueCondition: + name: /simulation/interpreter/execution_time/update + rule: greaterThan + value: 0.005 + - name: 'avoid startup' + delay: 0 + conditionEdge: none + ByValueCondition: + SimulationTimeCondition: + value: 1 + rule: greaterThan + - Condition: + - name: 'output time checker' + delay: 0 + conditionEdge: none + ByValueCondition: + UserDefinedValueCondition: + name: /simulation/interpreter/execution_time/output + rule: greaterThan + value: 0.001 + - name: 'avoid startup' + delay: 0 + conditionEdge: none + ByValueCondition: + SimulationTimeCondition: + value: 1 + rule: greaterThan + Action: + - name: '' + UserDefinedAction: + CustomCommandAction: + type: exitFailure + StartTrigger: + ConditionGroup: + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByValueCondition: + SimulationTimeCondition: + value: 0 + rule: greaterThan + StopTrigger: + ConditionGroup: []