diff --git a/.github/workflows/Docker.yaml b/.github/workflows/Docker.yaml index 6e550ea098d..e48250f18d0 100644 --- a/.github/workflows/Docker.yaml +++ b/.github/workflows/Docker.yaml @@ -25,7 +25,8 @@ jobs: strategy: matrix: rosdistro: [humble] - arch: [amd64, arm64] + # arch: [amd64, arm64] + arch: [amd64] steps: - name: Free Disk Space (Ubuntu) diff --git a/.github/workflows/SpellCheck.yaml b/.github/workflows/SpellCheck.yaml index 29cd2a30942..df66e736e2f 100644 --- a/.github/workflows/SpellCheck.yaml +++ b/.github/workflows/SpellCheck.yaml @@ -20,3 +20,4 @@ jobs: local-cspell-json: .github/workflows/custom_spell.json dict-packages: | https://github.com/tier4/cspell-dicts + incremental-files-only: false diff --git a/.github/workflows/SpellCheckAll.yaml b/.github/workflows/SpellCheckAll.yaml deleted file mode 100644 index bacef52f9be..00000000000 --- a/.github/workflows/SpellCheckAll.yaml +++ /dev/null @@ -1,23 +0,0 @@ -name: Spell check all - -on: - workflow_dispatch: - pull_request: - branches: - - master - -jobs: - spell-check: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Run spell-check - uses: autowarefoundation/autoware-github-actions/spell-check@v1 - with: - cspell-json-url: https://raw.githubusercontent.com/tier4/autoware-spell-check-dict/main/.cspell.json - local-cspell-json: .github/workflows/custom_spell.json - dict-packages: | - https://github.com/tier4/cspell-dicts - incremental-files-only: false diff --git a/.github/workflows/custom_spell.json b/.github/workflows/custom_spell.json index 676f628922b..50ca6f5fe94 100644 --- a/.github/workflows/custom_spell.json +++ b/.github/workflows/custom_spell.json @@ -46,6 +46,8 @@ "Tschirnhaus", "walltime", "xerces", - "xercesc" + "xercesc", + "Szymon", + "Parapura" ] } diff --git a/common/math/arithmetic/CHANGELOG.rst b/common/math/arithmetic/CHANGELOG.rst index ffbec95e648..aa16adc5c22 100644 --- a/common/math/arithmetic/CHANGELOG.rst +++ b/common/math/arithmetic/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package arithmetic * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/common/math/arithmetic/package.xml b/common/math/arithmetic/package.xml index f6e3214ac47..5359557440a 100644 --- a/common/math/arithmetic/package.xml +++ b/common/math/arithmetic/package.xml @@ -2,7 +2,7 @@ arithmetic - 7.0.0 + 7.3.5 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 c5936ea71e6..13b2337a6d1 100644 --- a/common/math/geometry/CHANGELOG.rst +++ b/common/math/geometry/CHANGELOG.rst @@ -21,6 +21,156 @@ Changelog for package geometry * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge pull request `#1475 `_ from tier4/fix/math-closest-point + Fix bug in `math::geometry::getClosestPoses` +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Fix spell mistake +* Fix getClosestPoses with naive algorithm +* Apply clang-format +* Add some test cases for getClosestPoses +* Contributors: Kotaro Yoshimoto, f0reachARR + +7.3.0 (2024-12-16) +------------------ +* Merge pull request `#1481 `_ from tier4/feature/multi-level-lanelet-support + Feature/multi level lanelet support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* ref(traffic_simulator, simple_sensor_simulator): refactor altitude checks +* Refactor code to improve readability based on SonarQube findings +* Merge branch 'master' into feature/multi-level-lanelet-support +* Remove comment +* Merge branch 'master' into feature/multi-level-lanelet-support +* Fix missing newline at end of file +* [RJD-1369] Improve Collision Solving for Multi-Level Support + - Enhanced BehaviorTree to consider altitude when detecting potential obstacles, + allowing to ignore objects located at different altitudes. + - Modified the detection sensor by introducing Ego plane determination to exclude objects below the Ego plane, + preventing unnecessary slowing or stopping caused by incorrect detections. +* Contributors: Dawid Moszynski, Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Cleanup +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Add new static member function `RelativeSpeedCondition::evaluate` +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge pull request `#1470 `_ from tier4/fix/snor-cloud-issue-8-1 + Fix/sonor cloud issue 8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Fixed bugs and added comments. +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Remove the commented out code. + Replace this declaration by a structured binding declaration. +* Contributors: Masaya Kataoka, Taiga, Taiga Takano + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/common/math/geometry/include/geometry/plane.hpp b/common/math/geometry/include/geometry/plane.hpp new file mode 100644 index 00000000000..509e3c6e63f --- /dev/null +++ b/common/math/geometry/include/geometry/plane.hpp @@ -0,0 +1,45 @@ +// 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 GEOMETRY__PLANE_HPP_ +#define GEOMETRY__PLANE_HPP_ + +#include +#include +#include + +namespace math +{ +namespace geometry +{ + +/// @class Plane +/// @brief Represents a plane in 3D space, defined by a normal vector and a point on the plane. +/// +/// The plane is described using the equation: +/// Ax + By + Cz + D = 0 +/// where: +/// - A, B, C are the components of the normal vector (normal_ attribute). +/// - D is the offset from the origin, calculated using the point and normal vector (d_ attribute). +struct Plane +{ + Plane(const geometry_msgs::msg::Point & point, const geometry_msgs::msg::Vector3 & normal); + auto offset(const geometry_msgs::msg::Point & point) const -> double; + + const geometry_msgs::msg::Vector3 normal_; + const double d_; +}; +} // namespace geometry +} // namespace math +#endif // GEOMETRY__PLANE_HPP_ diff --git a/common/math/geometry/include/geometry/quaternion/get_angle_difference.hpp b/common/math/geometry/include/geometry/quaternion/get_angle_difference.hpp new file mode 100644 index 00000000000..4e9450b2b0a --- /dev/null +++ b/common/math/geometry/include/geometry/quaternion/get_angle_difference.hpp @@ -0,0 +1,39 @@ +// 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 GEOMETRY__QUATERNION__GET_ANGLE_DIFFERENCE_HPP_ +#define GEOMETRY__QUATERNION__GET_ANGLE_DIFFERENCE_HPP_ + +#include +#include + +namespace math +{ +namespace geometry +{ +template < + typename T, std::enable_if_t>, std::nullptr_t> = nullptr> +auto getAngleDifference(const T & quat1, const T & quat2) -> double +{ + const Eigen::Quaterniond q1(quat1.w, quat1.x, quat1.y, quat1.z); + const Eigen::Quaterniond q2(quat2.w, quat2.x, quat2.y, quat2.z); + + const Eigen::AngleAxisd delta(q1.inverse() * q2); + + return std::abs(delta.angle()); // [rad] +} +} // namespace geometry +} // namespace math + +#endif // GEOMETRY__QUATERNION__GET_ANGLE_DIFFERENCE_HPP_ diff --git a/common/math/geometry/include/geometry/quaternion/get_normal_vector.hpp b/common/math/geometry/include/geometry/quaternion/get_normal_vector.hpp new file mode 100644 index 00000000000..318a239c16d --- /dev/null +++ b/common/math/geometry/include/geometry/quaternion/get_normal_vector.hpp @@ -0,0 +1,41 @@ +// 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 GEOMETRY__VECTOR3__GET_NORMAL_VECTOR_HPP_ +#define GEOMETRY__VECTOR3__GET_NORMAL_VECTOR_HPP_ + +#include +#include +#include + +namespace math +{ +namespace geometry +{ +template < + typename T, std::enable_if_t>, std::nullptr_t> = nullptr> +auto getNormalVector(const T & orientation) -> geometry_msgs::msg::Vector3 +{ + const Eigen::Matrix3d rotation_matrix = getRotationMatrix(orientation); + + return geometry_msgs::build() + .x(rotation_matrix(0, 2)) + .y(rotation_matrix(1, 2)) + .z(rotation_matrix(2, 2)); +} + +} // namespace geometry +} // namespace math + +#endif // GEOMETRY__VECTOR3__GET_NORMAL_VECTOR_HPP_ diff --git a/common/math/geometry/package.xml b/common/math/geometry/package.xml index a9b603c7e7f..e71c610b491 100644 --- a/common/math/geometry/package.xml +++ b/common/math/geometry/package.xml @@ -2,7 +2,7 @@ geometry - 7.0.0 + 7.3.5 geometry math library for scenario_simulator_v2 application Masaya Kataoka Apache License 2.0 diff --git a/common/math/geometry/src/bounding_box.cpp b/common/math/geometry/src/bounding_box.cpp index db3d75b2f9f..49b90bf48dc 100644 --- a/common/math/geometry/src/bounding_box.cpp +++ b/common/math/geometry/src/bounding_box.cpp @@ -62,22 +62,12 @@ std::optional> get const auto poly0 = toPolygon2D(pose0, bbox0); const auto poly1 = toPolygon2D(pose1, bbox1); - if (boost::geometry::intersects(poly0, poly1)) { - return std::nullopt; - } - if (boost::geometry::intersects(poly1, poly0)) { - return std::nullopt; - } if (boost::geometry::disjoint(poly0, poly1)) { auto point0 = boost_point(); auto point1 = boost_point(); auto min_distance = boost::numeric::bounds::highest(); - auto segments = boost::make_iterator_range( - boost::geometry::segments_begin(poly0), boost::geometry::segments_end(poly0)); - auto points = boost::make_iterator_range( - boost::geometry::points_begin(poly1), boost::geometry::points_end(poly1)); - auto findNearestPointInSegment = [&](const auto & segment, const auto & points) { + auto findNearestPointToSegment = [&](const auto & segment, const auto & points) { for (auto && point : points) { auto nearest_point_from_segment = pointToSegmentProjection(point, *segment.first, *segment.second); @@ -90,9 +80,18 @@ std::optional> get } }; - for (auto && segment : segments) { - findNearestPointInSegment(segment, points); - } + auto findNearestPointInPolygon = [&](const auto & poly0, const auto & poly1) { + auto segments = boost::make_iterator_range( + boost::geometry::segments_begin(poly0), boost::geometry::segments_end(poly0)); + auto points = boost::geometry::exterior_ring(poly1); + + for (auto && segment : segments) { + findNearestPointToSegment(segment, points); + } + }; + + findNearestPointInPolygon(poly0, poly1); + findNearestPointInPolygon(poly1, poly0); return std::make_pair(toPose(point0), toPose(point1)); } diff --git a/common/math/geometry/src/plane.cpp b/common/math/geometry/src/plane.cpp new file mode 100644 index 00000000000..6439839443c --- /dev/null +++ b/common/math/geometry/src/plane.cpp @@ -0,0 +1,39 @@ +// 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 +#include +#include +#include + +namespace math +{ +namespace geometry +{ +Plane::Plane(const geometry_msgs::msg::Point & point, const geometry_msgs::msg::Vector3 & normal) +: normal_(normal), d_(-(normal.x * point.x + normal.y * point.y + normal.z * point.z)) +{ + if (normal.x == 0.0 && normal.y == 0.0 && normal.z == 0.0) { + THROW_SIMULATION_ERROR("Plane cannot be created using zero normal vector."); + } else if (std::isnan(point.x) || std::isnan(point.y) || std::isnan(point.z)) { + THROW_SIMULATION_ERROR("Plane cannot be created using point with NaN value."); + } +} + +auto Plane::offset(const geometry_msgs::msg::Point & point) const -> double +{ + return normal_.x * point.x + normal_.y * point.y + normal_.z * point.z + d_; +} +} // namespace geometry +} // namespace math diff --git a/common/math/geometry/src/spline/catmull_rom_spline.cpp b/common/math/geometry/src/spline/catmull_rom_spline.cpp index d9cd6025150..e91bff28596 100644 --- a/common/math/geometry/src/spline/catmull_rom_spline.cpp +++ b/common/math/geometry/src/spline/catmull_rom_spline.cpp @@ -470,8 +470,8 @@ auto CatmullRomSpline::getSquaredDistanceIn2D( } return line_segments_[0].getSquaredDistanceIn2D(point, s, true); default: - const auto index_and_s = getCurveIndexAndS(s); - return curves_[index_and_s.first].getSquaredDistanceIn2D(point, index_and_s.second, true); + const auto [index, s_value] = getCurveIndexAndS(s); + return curves_[index].getSquaredDistanceIn2D(point, s_value, true); } } @@ -508,8 +508,8 @@ auto CatmullRomSpline::getSquaredDistanceVector( } return line_segments_[0].getSquaredDistanceVector(point, s, true); default: - const auto index_and_s = getCurveIndexAndS(s); - return curves_[index_and_s.first].getSquaredDistanceVector(point, index_and_s.second, true); + const auto [index, s_value] = getCurveIndexAndS(s); + return curves_[index].getSquaredDistanceVector(point, s_value, true); } } @@ -542,8 +542,8 @@ auto CatmullRomSpline::getPoint(const double s) const -> geometry_msgs::msg::Poi } return line_segments_[0].getPoint(s, true); default: - const auto index_and_s = getCurveIndexAndS(s); - return curves_[index_and_s.first].getPoint(index_and_s.second, true); + const auto [index, s_value] = getCurveIndexAndS(s); + return curves_[index].getPoint(s_value, true); } } @@ -597,8 +597,8 @@ auto CatmullRomSpline::getNormalVector(const double s) const -> geometry_msgs::m "This message is not originally intended to be displayed, if you see it, please " "contact the developer of traffic_simulator."); default: - const auto index_and_s = getCurveIndexAndS(s); - return curves_[index_and_s.first].getNormalVector(index_and_s.second, true); + const auto [index, s_value] = getCurveIndexAndS(s); + return curves_[index].getNormalVector(s_value, true); } } @@ -634,6 +634,14 @@ auto CatmullRomSpline::getTangentVector(const double s) const -> geometry_msgs:: "This message is not originally intended to be displayed, if you see it, please " "contact the developer of traffic_simulator."); default: + /** + * @note The current implementation uses `index_and_s` instead of structured binding + * (`const auto [index, s_value] = getCurveIndexAndS(s)`) because some tests fail + * when using structured binding. The root cause of these test failures is under investigation. + */ + // const auto [index, s_value] = getCurveIndexAndS(s); + // return curves_[index].getTangentVector(s_value, true); + const auto index_and_s = getCurveIndexAndS(s); return curves_[index_and_s.first].getTangentVector(index_and_s.second, true); } @@ -665,8 +673,8 @@ auto CatmullRomSpline::getPose(const double s, const bool fill_pitch) const } return line_segments_[0].getPose(s, true, fill_pitch); default: - const auto index_and_s = getCurveIndexAndS(s); - return curves_[index_and_s.first].getPose(index_and_s.second, true, fill_pitch); + const auto [index, s_value] = getCurveIndexAndS(s); + return curves_[index].getPose(s_value, true, fill_pitch); } } diff --git a/common/math/geometry/test/src/test_bounding_box.cpp b/common/math/geometry/test/src/test_bounding_box.cpp index b3449f994e4..00232501d72 100644 --- a/common/math/geometry/test/src/test_bounding_box.cpp +++ b/common/math/geometry/test/src/test_bounding_box.cpp @@ -19,6 +19,7 @@ #include #include "expect_eq_macros.hpp" +#include "geometry/distance.hpp" #include "test_utils.hpp" TEST(BoundingBox, getPointsFromBboxDefault) @@ -83,7 +84,8 @@ TEST(BoundingBox, toPolygon2D_onlyTranslation) } /** - * @note Test obtaining polygon from bounding box with full transformation applied (translation + rotation). + * @note Test obtaining polygon from bounding box with full transformation applied (translation + + * rotation). */ TEST(BoundingBox, toPolygon2D_fullPose) { @@ -135,6 +137,65 @@ TEST(BoundingBox, getPolygonDistanceWithoutCollision) EXPECT_DOUBLE_EQ(ans.value(), 3.0); } +TEST(BoundingBox, getClosestPoses) +{ + traffic_simulator_msgs::msg::BoundingBox bbox = makeBbox(1.0, 1.0, 1.0); + geometry_msgs::msg::Pose pose0; + geometry_msgs::msg::Pose pose1 = makePose(5.0, 5.0); + + { + const auto actual = math::geometry::getClosestPoses(pose0, bbox, pose1, bbox); + ASSERT_TRUE(actual); + + geometry_msgs::msg::Pose expected_pose0 = makePose(0.5, 0.5); + geometry_msgs::msg::Pose expected_pose1 = makePose(4.5, 4.5); + EXPECT_POSE_EQ(actual.value().first, expected_pose1); + EXPECT_POSE_EQ(actual.value().second, expected_pose0); + } + + { // reverse order + const auto actual = math::geometry::getClosestPoses(pose1, bbox, pose0, bbox); + ASSERT_TRUE(actual); + + geometry_msgs::msg::Pose expected_pose0 = makePose(0.5, 0.5); + geometry_msgs::msg::Pose expected_pose1 = makePose(4.5, 4.5); + EXPECT_POSE_EQ(actual.value().first, expected_pose0); + EXPECT_POSE_EQ(actual.value().second, expected_pose1); + } +} + +TEST(BoundingBox, getClosestPosesWithAlmostTouch) +{ + traffic_simulator_msgs::msg::BoundingBox bbox0 = makeBbox(1.0, 1.0, 1.0); + geometry_msgs::msg::Pose pose0; + traffic_simulator_msgs::msg::BoundingBox bbox1 = makeBbox(1.0, 10.0, 1.0); + geometry_msgs::msg::Pose pose1 = makePose(1.1, 0.0); + + { + const auto actual = math::geometry::getClosestPoses(pose0, bbox0, pose1, bbox1); + ASSERT_TRUE(actual); + const auto distance = math::geometry::getDistance(actual.value().first, actual.value().second); + EXPECT_NEAR(distance, 0.1, 0.0001); + } + + { // reverse order + const auto actual = math::geometry::getClosestPoses(pose1, bbox1, pose0, bbox0); + ASSERT_TRUE(actual); + const auto distance = math::geometry::getDistance(actual.value().first, actual.value().second); + EXPECT_NEAR(distance, 0.1, 0.0001); + } +} + +TEST(BoundingBox, getClosestPosesWithIntersection) +{ + traffic_simulator_msgs::msg::BoundingBox bbox = makeBbox(1.0, 1.0, 1.0); + geometry_msgs::msg::Pose pose0; + geometry_msgs::msg::Pose pose1 = makePose(0.6, 0.6); + + const auto actual = math::geometry::getClosestPoses(pose0, bbox, pose1, bbox); + ASSERT_FALSE(actual); +} + int main(int argc, char ** argv) { testing::InitGoogleTest(&argc, argv); diff --git a/common/scenario_simulator_exception/CHANGELOG.rst b/common/scenario_simulator_exception/CHANGELOG.rst index 1151b1ff95c..a4da7e1cd2a 100644 --- a/common/scenario_simulator_exception/CHANGELOG.rst +++ b/common/scenario_simulator_exception/CHANGELOG.rst @@ -21,6 +21,135 @@ Changelog for package scenario_simulator_exception * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge pull request `#1486 `_ from tier4/fix/speed-condition/backward-compatibility + Fix/speed condition/backward compatibility +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Add new parameter `speed_condition` to switch compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/common/scenario_simulator_exception/include/scenario_simulator_exception/concatenate.hpp b/common/scenario_simulator_exception/include/scenario_simulator_exception/concatenate.hpp index 0e967d66821..efb9139b7e2 100644 --- a/common/scenario_simulator_exception/include/scenario_simulator_exception/concatenate.hpp +++ b/common/scenario_simulator_exception/include/scenario_simulator_exception/concatenate.hpp @@ -25,12 +25,8 @@ namespace common inline namespace scenario_simulator_exception { inline auto concatenate = [](auto &&... xs) { - auto write = [](auto && os, auto && x) { - os.get() << std::forward(x); - return std::forward(os); - }; std::stringstream result; - fold_left(write, std::ref(result), std::forward(xs)...); + (result << ... << std::forward(xs)); return result.str(); }; } // namespace scenario_simulator_exception diff --git a/common/scenario_simulator_exception/package.xml b/common/scenario_simulator_exception/package.xml index 74d9979120a..8c7c57d12ad 100644 --- a/common/scenario_simulator_exception/package.xml +++ b/common/scenario_simulator_exception/package.xml @@ -2,7 +2,7 @@ scenario_simulator_exception - 7.0.0 + 7.3.5 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 f753416d42b..6c02e36f7fd 100644 --- a/common/simple_junit/CHANGELOG.rst +++ b/common/simple_junit/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package junit_exporter * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/common/simple_junit/package.xml b/common/simple_junit/package.xml index 18a6bd5e5b8..9cd71f93546 100644 --- a/common/simple_junit/package.xml +++ b/common/simple_junit/package.xml @@ -2,7 +2,7 @@ simple_junit - 7.0.0 + 7.3.5 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 d047520783c..12597381f87 100644 --- a/common/status_monitor/CHANGELOG.rst +++ b/common/status_monitor/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package status_monitor * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/common/status_monitor/package.xml b/common/status_monitor/package.xml index 46aa5e5e1ed..50ba0ad6d62 100644 --- a/common/status_monitor/package.xml +++ b/common/status_monitor/package.xml @@ -2,7 +2,7 @@ status_monitor - 7.0.0 + 7.3.5 none Tatsuya Yamasaki Apache License 2.0 diff --git a/docs/developer_guide/Communication.md b/docs/developer_guide/Communication.md index 48d22522178..1da73ed82f0 100644 --- a/docs/developer_guide/Communication.md +++ b/docs/developer_guide/Communication.md @@ -5,48 +5,45 @@ | topic | type | note | |--------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------| -| `/autoware/state` | [`autoware_system_msgs/msg/AutowareState`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_system_msgs/msg/AutowareState.msg) | Used in UserDefinedValueCondition : `currentAutowareState` | +| `/api/external/get/emergency` | [`tier4_external_api_msgs/msg/Emergency`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_external_api_msgs/msg/Emergency.msg) | Used in UserDefinedValueCondition `currentEmergencyState` | +| `/api/external/get/rtc_status` | [`tier4_rtc_msgs/msg/CooperateStatusArray`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_rtc_msgs/msg/CooperateStatusArray.msg) | | +| `/api/fail_safe/mrm_state` | [`autoware_adapi_v1_msgs/msg/MrmState`](https://github.com/autowarefoundation/autoware_adapi_msgs/blob/main/autoware_adapi_v1_msgs/system/msg/MrmState.msg) | Used in UserDefinedValueCondition `currentMinimumRiskManeuverState` | +| `/api/iv_msgs/planning/scenario_planning/trajectory` | [`tier4_planning_msgs/msg/Trajectory`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_planning_msgs/msg/Trajectory.msg) | | +| `/autoware/state` | [`autoware_system_msgs/msg/AutowareState`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_system_msgs/msg/AutowareState.msg) | Used in UserDefinedValueCondition `currentAutowareState` | | `/control/command/control_cmd` | [`autoware_control_msgs/msg/Control`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_control_msgs/msg/Control.msg) | | | `/control/command/gear_cmd` | [`autoware_vehicle_msgs/msg/GearCommand`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_vehicle_msgs/msg/GearCommand.msg) | | -| `/control/command/turn_indicators_cmd` | [`autoware_vehicle_msgs/msg/TurnIndicatorsCommand`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_vehicle_msgs/msg/TurnIndicatorsCommand.msg) | Used in UserDefinedValueCondition : `currentTurnIndicatorsState` | +| `/control/command/turn_indicators_cmd` | [`autoware_vehicle_msgs/msg/TurnIndicatorsCommand`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_vehicle_msgs/msg/TurnIndicatorsCommand.msg) | Used in UserDefinedValueCondition `currentTurnIndicatorsState` | | `/parameter_events` | [`rcl_interfaces/msg/ParameterEvent`](https://github.com/ros2/rcl_interfaces/blob/master/rcl_interfaces/msg/ParameterEvent.msg) | | | `/planning/scenario_planning/lane_driving/behavior_planning/path_with_lane_id` | [`tier4_planning_msgs/msg/PathWithLaneId`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_planning_msgs/msg/PathWithLaneId.msg) | | -| `/api/iv_msgs/planning/scenario_planning/trajectory` | [`tier4_planning_msgs/msg/Trajectory`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_planning_msgs/msg/Trajectory.msg) | | -| `/api/external/get/emergency` | [`tier4_external_api_msgs/msg/Emergency`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_external_api_msgs/msg/Emergency.msg) | Used in UserDefinedValueCondition : `currentEmergencyState` | -| `/api/fail_safe/mrm_state` | [`autoware_adapi_v1_msgs/msg/MrmState`](https://github.com/autowarefoundation/autoware_adapi_msgs/blob/main/autoware_adapi_v1_msgs/system/msg/MrmState.msg) | Used in UserDefinedValueCondition : `currentMinimumRiskManeuverState` | -| `/planning/scenario_planning/motion_velocity_optimizer/closest_jerk` | [`tier4_debug_msgs/msg/Float32Stamped`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_debug_msgs/msg/Float32Stamped.msg) | Used in /simulation/openscenario_interpreter | -| `/api/external/get/rtc_status` | [`tier4_rtc_msgs::msg::CooperateStatusArray`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_rtc_msgs/msg/CooperateStatusArray.msg) | | +| `/planning/scenario_planning/motion_velocity_optimizer/closest_jerk` | [`tier4_debug_msgs/msg/Float32Stamped`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_debug_msgs/msg/Float32Stamped.msg) | Used in `/simulation/openscenario_interpreter` | ### Publishers -| topic | type | note | -|------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `/clock` | [`rcl_interfaces/msg/Clock`](https://github.com/ros2/rcl_interfaces/blob/master/rosgraph_msgs/msg/Clock.msg) | | | | -| `/initialpose` | [`geometry_msgs/msg/PoseWithCovarianceStamped`](https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PoseWithCovarianceStamped.msg) | | -| `/localization/kinematic_state` | [`nav_msgs/msg/Odometry`](https://github.com/ros2/common_interfaces/blob/master/nav_msgs/msg/Odometry.msg) | | -| `/localization/acceleration` | [`geometry_msgs::msg::AccelWithCovarianceStamped`](https://github.com/ros2/common_interfaces/blob/rolling/geometry_msgs/msg/AccelWithCovarianceStamped.msg) | | -| `/planning/mission_planning/checkpoint` | [`geometry_msgs/msg/PoseStamped`](https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PoseStamped.msg) | | -| `/planning/mission_planning/goal` | [`geometry_msgs/msg/PoseStamped`](https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PoseStamped.msg) | | -| `/vehicle/status/control_mode` | [`autoware_vehicle_msgs/msg/ControlModeReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/ControlModeReport.msg) | | -| `/vehicle/status/gear_status` | [`autoware_vehicle_msgs/msg/GearReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/GearReport.msg) | | -| `/vehicle/status/steering_status` | [`autoware_vehicle_msgs/msg/SteeringReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/SteeringReport.msg) | | -| `/vehicle/status/turn_indicators_status` | [`autoware_vehicle_msgs/msg/TurnIndicatorsReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/TurnIndicatorsReport.msg) | | -| `/vehicle/status/velocity_status` | [`autoware_vehicle_msgs/msg/VelocityReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/VelocityReport.msg) | | -| `/perception/object_recognition/detection/objects` | [`autoware_perception_msgs/msg/DetectedObjects`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/DetectedObjects.msg) | [Simulated by simple_sensor_simulator](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/SimpleSensorSimulator/#object-detection-results-simulation) | -| `/perception/object_recognition/ground_truth/objects` | [`autoware_perception_msgs/msg/TrackedObjects`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrackedObjects.msg) | [Simulated by simple_sensor_simulator](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/SimpleSensorSimulator/#object-detection-results-simulation) | -| `/perception/obstacle_segmentation/pointcloud` | [`sensor_msgs/msg/PointCloud2`](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/PointCloud2.msg) | [Simulated by simple_sensor_simulator](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/SimpleSensorSimulator/#lidar-simulation) | -| `/perception/occupancy_grid_map/map` | [`nav_msgs/msg/OccupancyGrid`](https://github.com/ros2/common_interfaces/blob/master/nav_msgs/msg/OccupancyGrid.msg) | [Simulated by simple_sensor_simulator](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/SimpleSensorSimulator/#occupancy-grid-sensor-simulation) | -| `/sensing/imu/imu_data` | [`sensor_msgs/msg/Imu`](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Imu.msg) | | -| `/perception/traffic_light_recognition/internal/traffic_signals` | [`autoware_perception_msgs/msg/TrafficSignalArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficSignalArray.msg) | Optical traffic light interface for `architecture_type` equal to `awf/universe/20230906` | -| `/perception/traffic_light_recognition/internal/traffic_signals` | [`autoware_perception_msgs/msg/TrafficLightGroupArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficLightGroupArray.msg) | Optical traffic light interface for `architecture_type` equal to `awf/universe/20240605` | -| `/perception/traffic_light_recognition/external/traffic_signals` | [`autoware_perception_msgs/msg/TrafficSignalArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficSignalArray.msg) | V2I traffic light interface for `architecture_type` equal to `awf/universe/20230906` | -| `/perception/traffic_light_recognition/external/traffic_signals` | [`autoware_perception_msgs/msg/TrafficLightGroupArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficLightGroupArray.msg) | V2I traffic light interface for `architecture_type` equal to `awf/universe/20240605` | -| `/v2x/traffic_signals` | [`autoware_perception_msgs/msg/TrafficSignalArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficSignalArray.msg) | Additional V2I traffic light interface for `architecture_type` equal to `awf/universe/20230906` | -| `/v2x/traffic_signals` | [`autoware_perception_msgs/msg/TrafficLightGroupArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficLightGroupArray.msg) | Additional V2I traffic light interface for `architecture_type` equal to `awf/universe/20240605` | - -[//]: # (| /rosout | rcl_interfaces/msg/Log | | |) -[//]: # (| /tf | tf2_msgs/msg/TFMessage | | |) -[//]: # (| /parameter_events | rcl_interfaces/msg/ParameterEvent | | |) +| topic | type | note | +|------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `/clock` | [`rcl_interfaces/msg/Clock`](https://github.com/ros2/rcl_interfaces/blob/master/rosgraph_msgs/msg/Clock.msg) | | | | +| `/initialpose` | [`geometry_msgs/msg/PoseWithCovarianceStamped`](https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PoseWithCovarianceStamped.msg) | | +| `/localization/acceleration` | [`geometry_msgs/msg/AccelWithCovarianceStamped`](https://github.com/ros2/common_interfaces/blob/rolling/geometry_msgs/msg/AccelWithCovarianceStamped.msg) | Available if option `simulate_localization` is `true` (default is `true`). | +| `/localization/kinematic_state` | [`nav_msgs/msg/Odometry`](https://github.com/ros2/common_interfaces/blob/master/nav_msgs/msg/Odometry.msg) | Available if option `simulate_localization` is `true` (default is `true`). | +| `/localization/pose_estimator/pose_with_covariance` | [`geometry_msgs/msg/PoseWithCovarianceStamped`](https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PoseWithCovarianceStamped.msg) | Available if option `simulate_localization` is `false` (default is `true`). | +| `/perception/object_recognition/detection/objects` | [`autoware_perception_msgs/msg/DetectedObjects`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/DetectedObjects.msg) | [Simulated by `simple_sensor_simulator`](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/SimpleSensorSimulator/#object-detection-results-simulation) | +| `/perception/object_recognition/ground_truth/objects` | [`autoware_perception_msgs/msg/TrackedObjects`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrackedObjects.msg) | [Simulated by `simple_sensor_simulator`](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/SimpleSensorSimulator/#object-detection-results-simulation) | +| `/perception/obstacle_segmentation/pointcloud` | [`sensor_msgs/msg/PointCloud2`](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/PointCloud2.msg) | [Simulated by `simple_sensor_simulator`](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/SimpleSensorSimulator/#lidar-simulation) | +| `/perception/occupancy_grid_map/map` | [`nav_msgs/msg/OccupancyGrid`](https://github.com/ros2/common_interfaces/blob/master/nav_msgs/msg/OccupancyGrid.msg) | [Simulated by `simple_sensor_simulator`](https://tier4.github.io/scenario_simulator_v2-docs/developer_guide/SimpleSensorSimulator/#occupancy-grid-sensor-simulation) | +| `/perception/traffic_light_recognition/external/traffic_signals` | [`autoware_perception_msgs/msg/TrafficLightGroupArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficLightGroupArray.msg) | V2I traffic light interface for `architecture_type` equal to `awf/universe/20240605` | +| `/perception/traffic_light_recognition/external/traffic_signals` | [`autoware_perception_msgs/msg/TrafficSignalArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficSignalArray.msg) | V2I traffic light interface for `architecture_type` equal to `awf/universe/20230906` | +| `/perception/traffic_light_recognition/internal/traffic_signals` | [`autoware_perception_msgs/msg/TrafficLightGroupArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficLightGroupArray.msg) | Optical traffic light interface for `architecture_type` equal to `awf/universe/20240605` | +| `/perception/traffic_light_recognition/internal/traffic_signals` | [`autoware_perception_msgs/msg/TrafficSignalArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficSignalArray.msg) | Optical traffic light interface for `architecture_type` equal to `awf/universe/20230906` | +| `/planning/mission_planning/checkpoint` | [`geometry_msgs/msg/PoseStamped`](https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PoseStamped.msg) | | +| `/planning/mission_planning/goal` | [`geometry_msgs/msg/PoseStamped`](https://github.com/ros2/common_interfaces/blob/master/geometry_msgs/msg/PoseStamped.msg) | | +| `/sensing/imu/imu_data` | [`sensor_msgs/msg/Imu`](https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/msg/Imu.msg) | | +| `/v2x/traffic_signals` | [`autoware_perception_msgs/msg/TrafficLightGroupArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficLightGroupArray.msg) | Additional V2I traffic light interface for `architecture_type` equal to `awf/universe/20240605` | +| `/v2x/traffic_signals` | [`autoware_perception_msgs/msg/TrafficSignalArray`](https://github.com/autowarefoundation/autoware_msgs/blob/main/autoware_perception_msgs/msg/TrafficSignalArray.msg) | Additional V2I traffic light interface for `architecture_type` equal to `awf/universe/20230906` | +| `/vehicle/status/control_mode` | [`autoware_vehicle_msgs/msg/ControlModeReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/ControlModeReport.msg) | | +| `/vehicle/status/gear_status` | [`autoware_vehicle_msgs/msg/GearReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/GearReport.msg) | | +| `/vehicle/status/steering_status` | [`autoware_vehicle_msgs/msg/SteeringReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/SteeringReport.msg) | | +| `/vehicle/status/turn_indicators_status` | [`autoware_vehicle_msgs/msg/TurnIndicatorsReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/TurnIndicatorsReport.msg) | | +| `/vehicle/status/velocity_status` | [`autoware_vehicle_msgs/msg/VelocityReport`](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_vehicle_msgs/msg/VelocityReport.msg) | | ### Service Clients @@ -54,8 +51,8 @@ |-----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------| | `/api/autoware/set/velocity_limit` | [`tier4_external_api_msgs/srv/SetVelocityLimit`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_external_api_msgs/srv/SetVelocityLimit.srv) | | | `/api/external/set/engage` | [`tier4_external_api_msgs/srv/Engage`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_external_api_msgs/srv/Engage.srv) | | -| `/api/external/set/rtc_commands` | [`tier4_rtc_msgs/srv/CooperateCommands`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_rtc_msgs/srv/CooperateCommands.srv) | | | `/api/external/set/rtc_auto_mode` | [`tier4_rtc_msgs/srv/AutoModeWithModule`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_rtc_msgs/srv/AutoModeWithModule.srv) | | +| `/api/external/set/rtc_commands` | [`tier4_rtc_msgs/srv/CooperateCommands`](https://github.com/tier4/tier4_autoware_msgs/blob/tier4/universe/tier4_rtc_msgs/srv/CooperateCommands.srv) | | | `/api/operation_mode/enable_autoware_control` | [`autoware_adapi_v1_msgs/srv/ChangeOperationMode`](https://github.com/autowarefoundation/autoware_adapi_msgs/blob/main/autoware_adapi_v1_msgs/operation_mode/srv/ChangeOperationMode.srv) | | ### Service Servers @@ -63,15 +60,3 @@ | service name | type | note | |---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------| | `/control/control_mode_request` | [`autoware_auto_vehicle_msgs/srv/ControlModeCommand`](https://github.com/tier4/autoware_auto_msgs/blob/tier4/main/autoware_auto_vehicle_msgs/srv/ControlModeCommand.srv) | Simulated by `simple_sensor_simulator` for a manual override | - -[//]: # (/simulation/openscenario_visualizer) - -[//]: # (Subscribers:) - -[//]: # (/simulation/entity/status: traffic_simulator_msgs/msg/EntityStatusWithTrajectoryArray) - -[//]: # (Publishers:) - -[//]: # (/simulation/entity/marker: visualization_msgs/msg/MarkerArray) - -[//]: # () diff --git a/docs/developer_guide/OpenSCENARIOSupport.md b/docs/developer_guide/OpenSCENARIOSupport.md index 2f64a14c51c..d8821dd97da 100644 --- a/docs/developer_guide/OpenSCENARIOSupport.md +++ b/docs/developer_guide/OpenSCENARIOSupport.md @@ -486,8 +486,8 @@ Currently, the only way to know the result of the simulation is by viewing the s | TimeOfDay | 1.3 | | | TimeOfDayCondition | unimplemented | | | TimeReference | 1.3 | | -| TimeToCollisionCondition | unimplemented | | -| TimeToCollisionConditionTarget | unimplemented | | +| TimeToCollisionCondition | 1.3.1 (partial) | [detail](#TimeToCollisionCondition) | +| TimeToCollisionConditionTarget | 1.3.1 | | | Timing | 1.3 | | | TrafficAction | unimplemented | | | TrafficArea | unimplemented | | @@ -848,6 +848,13 @@ Currently, the only way to know the result of the simulation is by viewing the s - Property `freespace` is ignored. - The simulator behaves as if `freespace` is `false`. +#### TimeToCollisionCondition + +- Since `TimeToCollisionCondition` is implemented using `DistanceCondition`, + `RelativeDistanceCondition`, `SpeedCondition`, and `RelativeSpeedCondition`, + if a combination of properties that is not supported by those Conditions is + given to `TimeToCollisionCondition`, an error will be thrown. + #### TransitionDynamics - Property `followingMode` created in version 1.2 is ignored. diff --git a/external/concealer/CHANGELOG.rst b/external/concealer/CHANGELOG.rst index bfee9cd9f14..9ba0ac68007 100644 --- a/external/concealer/CHANGELOG.rst +++ b/external/concealer/CHANGELOG.rst @@ -21,6 +21,176 @@ Changelog for package concealer * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge pull request `#1488 `_ from tier4/refactor/concealer-1 + Refactor/concealer 1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Reformat +* Remove `getAcceleration`, `getSteeringAngle`, `getVelocity` and `getGearSign` +* Remove macro `DEFINE_STATE_PREDICATE` +* Remove member function `TaskQueue::stopAndJoin` +* Remove free function `sudokill` +* Remove member function `validateAvailability` and `callWithTimeoutValidation` +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Remove class `ServceWithValidation::TimeoutError` +* Remove member function `FieldOperatorApplication::shutdownAutoware` +* Add using declarations for subscribers and publishers +* Add new header file `concealer/member_detector.hpp` +* Cleanup class template `SubscriberWrapper` +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Remove header file `autoware_stream.hpp` +* Move member function implementations into `field_operator_application.cpp` +* Remove function template `listup` +* Remove function template `toAutowareStateString` +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Remove class template `FieldOperatorApplicationFor` +* Update all member function of `FieldOperatorApplication` to be non-virtual +* Update some member functions of `FieldOperatorApplication` to be non-virtual +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Move data members into base class `FieldOperatorApplication` +* Remove member function `receiveMrmState` +* Remove member function `receiveEmergencyState` +* Move base class `TransitionAssertion` to `FieldOperatorApplication` +* Move `getAutowareState` into `FieldOperatorApplication` +* Update all members of `FieldOperatorApplicationFor<...>` to be public +* Remove macro `CONCEALER_ISOLATE_STANDARD_OUTPUT` +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Update `~FieldOperatorApplication()` to be non-virtual +* Remove member function `isStopRequested` and `stopRequest` +* Remove virtual function `sendSIGINT` +* Cleanup `FieldOperatorApplication::spinSome` +* Remove member function `FieldOperatorApplication::checkAutowareProcess` +* Remove member function `FieldOperatorApplication::restrictTargetSpeed` +* Remove stream input/output operator for `TurnIndicatorsCommand` +* Update `FieldOperatorApplication::getTurnIndicatorsCommand` to pure virtual +* Remove member function `AutowareUniverse::set` +* Remove member function `AutowareUniverse::stopAndJoin` +* Remove class `concealer::Autoware` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge pull request `#1484 `_ from tier4/RJD-736/autoware_msgs_support_and_localization_sim_mode_support + Rjd 736/autoware msgs support and localization sim mode support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Add the missing semicolon +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Add launch argument `simulate_localization` to `scenario_test_runner` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge pull request `#1465 `_ from tier4/fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* fix(concealer): increase max time to request enable autoware control +* Contributors: Kotaro Yoshimoto, satoshi-ota + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support diff --git a/external/concealer/CMakeLists.txt b/external/concealer/CMakeLists.txt index 5a0ffb32056..0c05bfd2e30 100644 --- a/external/concealer/CMakeLists.txt +++ b/external/concealer/CMakeLists.txt @@ -14,11 +14,9 @@ find_package(ament_cmake_auto REQUIRED) ament_auto_find_build_dependencies() ament_auto_add_library(${PROJECT_NAME} SHARED - src/autoware.cpp src/autoware_universe.cpp src/execute.cpp src/field_operator_application.cpp - src/field_operator_application_for_autoware_universe.cpp src/is_package_exists.cpp src/task_queue.cpp) diff --git a/external/concealer/include/concealer/autoware.hpp b/external/concealer/include/concealer/autoware.hpp deleted file mode 100644 index fcda771cf9f..00000000000 --- a/external/concealer/include/concealer/autoware.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// 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 CONCEALER__AUTOWARE_HPP_ -#define CONCEALER__AUTOWARE_HPP_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace concealer -{ -/** - * Provides an abstraction to communicate with Autoware in order to: - * - receive vehicle commands to simulate vehicle kinematics - * - provide vehicle state reports on an appropriate topics - * NOTE: This class is intended to be move to simple_sensor_simulator - */ -class Autoware : public rclcpp::Node, public ContinuousTransformBroadcaster -{ -protected: - std::atomic current_acceleration; - - std::atomic current_twist; - - std::atomic current_pose; - -public: - CONCEALER_PUBLIC explicit Autoware(); - - virtual auto getAcceleration() const -> double = 0; - - virtual auto getGearCommand() const -> autoware_vehicle_msgs::msg::GearCommand; - - virtual auto getSteeringAngle() const -> double = 0; - - virtual auto getVelocity() const -> double = 0; - - // returns -1.0 when gear is reverse and 1.0 otherwise - virtual auto getGearSign() const -> double = 0; - - virtual auto getTurnIndicatorsCommand() const - -> autoware_vehicle_msgs::msg::TurnIndicatorsCommand; - - virtual auto getVehicleCommand() const - -> std::tuple = 0; - - virtual auto getRouteLanelets() const -> std::vector = 0; - - virtual auto getControlModeReport() const -> autoware_vehicle_msgs::msg::ControlModeReport = 0; - - auto set(const geometry_msgs::msg::Accel &) -> void; - - auto set(const geometry_msgs::msg::Twist &) -> void; - - auto set(const geometry_msgs::msg::Pose &) -> void; - - virtual auto setManualMode() -> void = 0; - - virtual auto rethrow() -> void; -}; -} // namespace concealer - -#endif // CONCEALER__AUTOWARE_HPP_ diff --git a/external/concealer/include/concealer/autoware_stream.hpp b/external/concealer/include/concealer/autoware_stream.hpp deleted file mode 100644 index 5a13a61b276..00000000000 --- a/external/concealer/include/concealer/autoware_stream.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// 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 CONCEALER__AUTOWARE_STREAM_HPP_ -#define CONCEALER__AUTOWARE_STREAM_HPP_ - -#define AUTOWARE_INFO_STREAM(...) \ - RCLCPP_INFO_STREAM(get_logger(), "\x1b[32m" << __VA_ARGS__ << "\x1b[0m") - -#define AUTOWARE_WARN_STREAM(...) \ - RCLCPP_WARN_STREAM(get_logger(), "\x1b[33m" << __VA_ARGS__ << "\x1b[0m") - -#define AUTOWARE_ERROR_STREAM(...) \ - RCLCPP_ERROR_STREAM(get_logger(), "\x1b[1;31m" << __VA_ARGS__ << "\x1b[0m") - -#define AUTOWARE_SYSTEM_ERROR(FROM) \ - AUTOWARE_ERROR_STREAM( \ - "Error on calling " FROM ": " << std::system_error(errno, std::system_category()).what()) - -#endif // CONCEALER__AUTOWARE_STREAM_HPP_ diff --git a/external/concealer/include/concealer/autoware_universe.hpp b/external/concealer/include/concealer/autoware_universe.hpp index d1b4a7bcc8d..34c1bda7afd 100644 --- a/external/concealer/include/concealer/autoware_universe.hpp +++ b/external/concealer/include/concealer/autoware_universe.hpp @@ -15,28 +15,33 @@ #ifndef CONCEALER__AUTOWARE_UNIVERSE_HPP_ #define CONCEALER__AUTOWARE_UNIVERSE_HPP_ +#include #include #include +#include #include #include +#include #include #include #include -#include +#include #include #include +#include #include +#include +#include #include +#include #include namespace concealer { -/* - * Implements Autoware interface for Autoware Universe - * NOTE: This class is intended to be move to simple_sensor_simulator - */ -class AutowareUniverse : public Autoware +class AutowareUniverse : public rclcpp::Node, + public ContinuousTransformBroadcaster { +public: // clang-format off using AccelWithCovarianceStamped = geometry_msgs::msg::AccelWithCovarianceStamped; using Control = autoware_control_msgs::msg::Control; @@ -44,26 +49,34 @@ class AutowareUniverse : public Autoware using ControlModeReport = autoware_vehicle_msgs::msg::ControlModeReport; using GearCommand = autoware_vehicle_msgs::msg::GearCommand; using GearReport = autoware_vehicle_msgs::msg::GearReport; + using Odometry = nav_msgs::msg::Odometry; using PathWithLaneId = tier4_planning_msgs::msg::PathWithLaneId; + using PoseWithCovarianceStamped = geometry_msgs::msg::PoseWithCovarianceStamped; using SteeringReport = autoware_vehicle_msgs::msg::SteeringReport; using TurnIndicatorsCommand = autoware_vehicle_msgs::msg::TurnIndicatorsCommand; using TurnIndicatorsReport = autoware_vehicle_msgs::msg::TurnIndicatorsReport; using VelocityReport = autoware_vehicle_msgs::msg::VelocityReport; - SubscriberWrapper getCommand; - SubscriberWrapper getGearCommandImpl; - SubscriberWrapper getTurnIndicatorsCommand; - SubscriberWrapper getPathWithLaneId; + SubscriberWrapper getCommand; + SubscriberWrapper getGearCommand; + SubscriberWrapper getTurnIndicatorsCommand; + SubscriberWrapper getPathWithLaneId; PublisherWrapper setAcceleration; - PublisherWrapper setOdometry; + PublisherWrapper setOdometry; + PublisherWrapper setPose; PublisherWrapper setSteeringReport; PublisherWrapper setGearReport; PublisherWrapper setControlModeReport; PublisherWrapper setVelocityReport; PublisherWrapper setTurnIndicatorsReport; + + std::atomic current_acceleration; + std::atomic current_pose; + std::atomic current_twist; // clang-format on +private: rclcpp::Service::SharedPtr control_mode_request_server; const rclcpp::TimerBase::SharedPtr localization_update_timer; @@ -80,38 +93,25 @@ class AutowareUniverse : public Autoware std::exception_ptr thrown; - auto stopAndJoin() -> void; - public: - CONCEALER_PUBLIC explicit AutowareUniverse(); + CONCEALER_PUBLIC explicit AutowareUniverse(bool); ~AutowareUniverse(); - auto rethrow() -> void override; - - auto getAcceleration() const -> double override; - - auto getSteeringAngle() const -> double override; - - auto getVelocity() const -> double override; + auto rethrow() -> void; auto updateLocalization() -> void; auto updateVehicleState() -> void; - auto getGearCommand() const -> GearCommand override; - - auto getGearSign() const -> double override; + auto getVehicleCommand() const -> std::tuple; - auto getVehicleCommand() const -> std::tuple override; + auto getRouteLanelets() const -> std::vector; - auto getRouteLanelets() const -> std::vector override; + auto getControlModeReport() const -> ControlModeReport; - auto getControlModeReport() const -> ControlModeReport override; - - auto setManualMode() -> void override; + auto setManualMode() -> void; }; - } // namespace concealer #endif // CONCEALER__AUTOWARE_UNIVERSE_HPP_ diff --git a/external/concealer/include/concealer/execute.hpp b/external/concealer/include/concealer/execute.hpp index b9414370ed7..b8569ee7d5a 100644 --- a/external/concealer/include/concealer/execute.hpp +++ b/external/concealer/include/concealer/execute.hpp @@ -24,8 +24,6 @@ auto execute(const std::vector &) -> int; // Emulates shell's $(...) expression. auto dollar(const std::string & command) -> std::string; - -void sudokill(const pid_t process_id); } // namespace concealer #endif // CONCEALER__EXECUTE_HPP_ diff --git a/external/concealer/include/concealer/field_operator_application.hpp b/external/concealer/include/concealer/field_operator_application.hpp index 2e35afb5ef6..db11a70de50 100644 --- a/external/concealer/include/concealer/field_operator_application.hpp +++ b/external/concealer/include/concealer/field_operator_application.hpp @@ -15,32 +15,46 @@ #ifndef CONCEALER__AUTOWARE_USER_HPP_ #define CONCEALER__AUTOWARE_USER_HPP_ -// #define CONCEALER_ISOLATE_STANDARD_OUTPUT - #include +#if __has_include() +#include +#endif + #include +#include +#include +#include +#include #include +#include +#include #include -#include -#include +#include #include +#include +#include +#include #include #include #include -#include #include #include -#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include namespace concealer { -template -class FieldOperatorApplicationFor; - /* ---- NOTE ------------------------------------------------------------------- * * The magic class 'FieldOperatorApplication' is a class that makes it easy to work with @@ -54,34 +68,74 @@ class FieldOperatorApplicationFor; * initialize, plan, and engage. * * -------------------------------------------------------------------------- */ -class FieldOperatorApplication : public rclcpp::Node +struct FieldOperatorApplication : public rclcpp::Node, + public TransitionAssertion { std::atomic is_stop_requested = false; bool is_autoware_exited = false; - auto checkAutowareProcess() -> void; - -protected: const pid_t process_id = 0; - TaskQueue task_queue; - bool initialize_was_called = false; - auto stopRequest() noexcept -> void; - - auto isStopRequested() const noexcept -> bool; - - // this method is purely virtual because different Autoware types are killed differently - // currently, we are not sure why this is the case so detailed investigation is needed - virtual auto sendSIGINT() -> void = 0; - - // method called in destructor of a derived class - // because it is difficult to differentiate shutting down behavior in destructor of a base class - auto shutdownAutoware() -> void; + std::string autoware_state; + + tier4_rtc_msgs::msg::CooperateStatusArray latest_cooperate_status_array; + + std::string minimum_risk_maneuver_state; + + std::string minimum_risk_maneuver_behavior; + + // clang-format off + using AutowareState = autoware_system_msgs::msg::AutowareState; + using Control = autoware_control_msgs::msg::Control; + using CooperateStatusArray = tier4_rtc_msgs::msg::CooperateStatusArray; + using Emergency = tier4_external_api_msgs::msg::Emergency; + using LocalizationInitializationState = autoware_adapi_v1_msgs::msg::LocalizationInitializationState; + using MrmState = autoware_adapi_v1_msgs::msg::MrmState; + using PathWithLaneId = tier4_planning_msgs::msg::PathWithLaneId; + using Trajectory = tier4_planning_msgs::msg::Trajectory; + using TurnIndicatorsCommand = autoware_vehicle_msgs::msg::TurnIndicatorsCommand; + + using ClearRoute = autoware_adapi_v1_msgs::srv::ClearRoute; + using CooperateCommands = tier4_rtc_msgs::srv::CooperateCommands; + using Engage = tier4_external_api_msgs::srv::Engage; + using InitializeLocalization = autoware_adapi_v1_msgs::srv::InitializeLocalization; + using SetRoutePoints = autoware_adapi_v1_msgs::srv::SetRoutePoints; + using AutoModeWithModule = tier4_rtc_msgs::srv::AutoModeWithModule; + using SetVelocityLimit = tier4_external_api_msgs::srv::SetVelocityLimit; + using ChangeOperationMode = autoware_adapi_v1_msgs::srv::ChangeOperationMode; + + SubscriberWrapper getAutowareState; + SubscriberWrapper getCommand; + SubscriberWrapper getCooperateStatusArray; + SubscriberWrapper getEmergencyState; +#if __has_include() + SubscriberWrapper getLocalizationState; +#endif + SubscriberWrapper getMrmState; + SubscriberWrapper getPathWithLaneId; + SubscriberWrapper getTrajectory; + SubscriberWrapper getTurnIndicatorsCommand; + + ServiceWithValidation requestClearRoute; + ServiceWithValidation requestCooperateCommands; + ServiceWithValidation requestEngage; + ServiceWithValidation requestInitialPose; + ServiceWithValidation requestSetRoutePoints; + ServiceWithValidation requestSetRtcAutoMode; + ServiceWithValidation requestSetVelocityLimit; + ServiceWithValidation requestEnableAutowareControl; + // clang-format on + + /* + The task queue must be deconstructed before any services, so it must be + the last class data member. (Class data members are constructed in + declaration order and deconstructed in reverse order.) + */ + TaskQueue task_queue; -public: CONCEALER_PUBLIC explicit FieldOperatorApplication(const pid_t = 0); template @@ -90,78 +144,44 @@ class FieldOperatorApplication : public rclcpp::Node { } - ~FieldOperatorApplication() override = default; + ~FieldOperatorApplication(); auto spinSome() -> void; - /* ---- NOTE ------------------------------------------------------------------- - * - * Send an engagement request to Autoware. If Autoware does not have an - * engagement equivalent, this operation can be nop (No operation). - * - * -------------------------------------------------------------------------- */ - virtual auto engage() -> void = 0; - - virtual auto engageable() const -> bool = 0; - - virtual auto engaged() const -> bool = 0; + auto engage() -> void; - /* ---- NOTE ------------------------------------------------------------------- - * - * Send initial_pose to Autoware. - * - * -------------------------------------------------------------------------- */ - virtual auto initialize(const geometry_msgs::msg::Pose &) -> void = 0; + auto engageable() const -> bool; - /* ---- NOTE ------------------------------------------------------------------- - * - * Send the destination and route constraint points to Autoware. The argument - * route is guaranteed to be size 1 or greater, and its last element is the - * destination. When the size of a route is 2 or greater, the non-last element - * is the route constraint. That is, Autoware must go through the element - * points on the given'route' starting at index 0 and stop at index - * route.size() - 1. - * - * -------------------------------------------------------------------------- */ - virtual auto plan(const std::vector &) -> void = 0; + auto engaged() const -> bool; - virtual auto clearRoute() -> void = 0; + auto initialize(const geometry_msgs::msg::Pose &) -> void; - virtual auto getAutowareStateName() const -> std::string = 0; + auto plan(const std::vector &) -> void; - virtual auto getMinimumRiskManeuverBehaviorName() const -> std::string = 0; + auto clearRoute() -> void; - virtual auto getMinimumRiskManeuverStateName() const -> std::string = 0; + auto getAutowareStateName() const { return autoware_state; } - virtual auto getEmergencyStateName() const -> std::string = 0; + auto getMinimumRiskManeuverBehaviorName() const { return minimum_risk_maneuver_behavior; } - virtual auto getWaypoints() const -> traffic_simulator_msgs::msg::WaypointsArray = 0; + auto getMinimumRiskManeuverStateName() const { return minimum_risk_maneuver_state; } - /* */ auto initialized() const noexcept { return initialize_was_called; } + auto getEmergencyStateName() const { return minimum_risk_maneuver_state; } - virtual auto requestAutoModeForCooperation(const std::string &, bool) -> void = 0; + auto getWaypoints() const -> traffic_simulator_msgs::msg::WaypointsArray; - // different autowares accept different initial target speed - virtual auto restrictTargetSpeed(double) const -> double = 0; + auto initialized() const noexcept { return initialize_was_called; } - virtual auto getTurnIndicatorsCommand() const - -> autoware_vehicle_msgs::msg::TurnIndicatorsCommand; + auto requestAutoModeForCooperation(const std::string &, bool) -> void; - virtual auto rethrow() const noexcept(false) -> void; + auto rethrow() const { task_queue.rethrow(); } - virtual auto sendCooperateCommand(const std::string &, const std::string &) -> void = 0; + auto sendCooperateCommand(const std::string &, const std::string &) -> void; - virtual auto setVelocityLimit(double) -> void = 0; + auto setVelocityLimit(double) -> void; - virtual auto enableAutowareControl() -> void = 0; + auto enableAutowareControl() -> void; }; } // namespace concealer -namespace autoware_vehicle_msgs::msg -{ -auto operator<<(std::ostream &, const TurnIndicatorsCommand &) -> std::ostream &; - -auto operator>>(std::istream &, TurnIndicatorsCommand &) -> std::istream &; -} // namespace autoware_vehicle_msgs::msg - #endif // CONCEALER__AUTOWARE_USER_HPP_ diff --git a/external/concealer/include/concealer/field_operator_application_for_autoware_universe.hpp b/external/concealer/include/concealer/field_operator_application_for_autoware_universe.hpp deleted file mode 100644 index cd6e156170c..00000000000 --- a/external/concealer/include/concealer/field_operator_application_for_autoware_universe.hpp +++ /dev/null @@ -1,205 +0,0 @@ -// 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 CONCEALER__AUTOWARE_UNIVERSE_USER_HPP_ -#define CONCEALER__AUTOWARE_UNIVERSE_USER_HPP_ - -#if __has_include() -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace concealer -{ -template <> -class FieldOperatorApplicationFor -: public FieldOperatorApplication, - public TransitionAssertion> -{ - friend struct TransitionAssertion>; - - // clang-format off - SubscriberWrapper getCommand; - SubscriberWrapper getAutowareState; - SubscriberWrapper getCooperateStatusArray; - SubscriberWrapper getEmergencyState; -#if __has_include() - SubscriberWrapper getLocalizationState; -#endif - SubscriberWrapper getMrmState; - SubscriberWrapper getTrajectory; - SubscriberWrapper getTurnIndicatorsCommandImpl; - - ServiceWithValidation requestClearRoute; - ServiceWithValidation requestCooperateCommands; - ServiceWithValidation requestEngage; - ServiceWithValidation requestInitialPose; - ServiceWithValidation requestSetRoutePoints; - ServiceWithValidation requestSetRtcAutoMode; - ServiceWithValidation requestSetVelocityLimit; - ServiceWithValidation requestEnableAutowareControl; - // clang-format on - - tier4_rtc_msgs::msg::CooperateStatusArray latest_cooperate_status_array; - - std::string autoware_state; - - std::string minimum_risk_maneuver_state; - - std::string minimum_risk_maneuver_behavior; - - auto receiveMrmState(const autoware_adapi_v1_msgs::msg::MrmState & msg) -> void; - - auto receiveEmergencyState(const tier4_external_api_msgs::msg::Emergency & msg) -> void; - - /* - NOTE: This predicate should not take the state being compared as an - argument or template parameter. Otherwise, code using this class would - need to have knowledge of the Autoware state type. - */ -#define DEFINE_STATE_PREDICATE(NAME, VALUE) \ - auto is##NAME() const noexcept { return autoware_state == #VALUE; } \ - static_assert(true, "") - - DEFINE_STATE_PREDICATE(Initializing, INITIALIZING_VEHICLE); - DEFINE_STATE_PREDICATE(WaitingForRoute, WAITING_FOR_ROUTE); - DEFINE_STATE_PREDICATE(Planning, PLANNING); - DEFINE_STATE_PREDICATE(WaitingForEngage, WAITING_FOR_ENGAGE); - DEFINE_STATE_PREDICATE(Driving, DRIVING); - DEFINE_STATE_PREDICATE(ArrivedGoal, ARRIVAL_GOAL); - DEFINE_STATE_PREDICATE(Finalizing, FINALIZING); - -#undef DEFINE_STATE_PREDICATE - -protected: - template - auto getAutowareStateString(std::uint8_t state) const -> char const * - { -#define CASE(IDENTIFIER) \ - case T::IDENTIFIER: \ - return #IDENTIFIER - - switch (state) { - CASE(INITIALIZING); - CASE(WAITING_FOR_ROUTE); - CASE(PLANNING); - CASE(WAITING_FOR_ENGAGE); - CASE(DRIVING); - CASE(ARRIVED_GOAL); - CASE(FINALIZING); - - default: - return ""; - } - -#undef CASE - } - auto sendSIGINT() -> void override; - -public: - SubscriberWrapper getPathWithLaneId; - -public: - template - CONCEALER_PUBLIC explicit FieldOperatorApplicationFor(Ts &&... xs) - : FieldOperatorApplication(std::forward(xs)...), - // clang-format off - getCommand("/control/command/control_cmd", rclcpp::QoS(1), *this), - getAutowareState("/autoware/state", rclcpp::QoS(1), *this, [this](const auto & v) { - autoware_state = getAutowareStateString(v.state); }), - getCooperateStatusArray("/api/external/get/rtc_status", rclcpp::QoS(1), *this, [this](const auto & v) { latest_cooperate_status_array = v; }), - getEmergencyState("/api/external/get/emergency", rclcpp::QoS(1), *this, [this](const auto & v) { receiveEmergencyState(v); }), -#if __has_include() - getLocalizationState("/api/localization/initialization_state", rclcpp::QoS(1).transient_local(), *this), -#endif - getMrmState("/api/fail_safe/mrm_state", rclcpp::QoS(1), *this, [this](const auto & v) { receiveMrmState(v); }), - getTrajectory("/api/iv_msgs/planning/scenario_planning/trajectory", rclcpp::QoS(1), *this), - getTurnIndicatorsCommandImpl("/control/command/turn_indicators_cmd", rclcpp::QoS(1), *this), - requestClearRoute("/api/routing/clear_route", *this), - requestCooperateCommands("/api/external/set/rtc_commands", *this), - requestEngage("/api/external/set/engage", *this), - requestInitialPose("/api/localization/initialize", *this), - // NOTE: /api/routing/set_route_points takes a long time to return. But the specified duration is not decided by any technical reasons. - requestSetRoutePoints("/api/routing/set_route_points", *this, std::chrono::seconds(10)), - requestSetRtcAutoMode("/api/external/set/rtc_auto_mode", *this), - requestSetVelocityLimit("/api/autoware/set/velocity_limit", *this), - requestEnableAutowareControl("/api/operation_mode/enable_autoware_control", *this), - getPathWithLaneId("/planning/scenario_planning/lane_driving/behavior_planning/path_with_lane_id", rclcpp::QoS(1), *this) - // clang-format on - { - } - - ~FieldOperatorApplicationFor() override; - - auto engage() -> void override; - - auto engageable() const -> bool override; - - auto engaged() const -> bool override; - - auto getAutowareStateName() const -> std::string override; - - auto getWaypoints() const -> traffic_simulator_msgs::msg::WaypointsArray override; - - auto getTurnIndicatorsCommand() const - -> autoware_vehicle_msgs::msg::TurnIndicatorsCommand override; - - auto getEmergencyStateName() const -> std::string override; - - auto getMinimumRiskManeuverBehaviorName() const -> std::string override; - - auto getMinimumRiskManeuverStateName() const -> std::string override; - - auto initialize(const geometry_msgs::msg::Pose &) -> void override; - - auto plan(const std::vector &) -> void override; - - auto clearRoute() -> void override; - - auto requestAutoModeForCooperation(const std::string &, bool) -> void override; - - auto restrictTargetSpeed(double) const -> double override; - - auto sendCooperateCommand(const std::string &, const std::string &) -> void override; - - auto setVelocityLimit(double) -> void override; - - auto enableAutowareControl() -> void override; -}; -} // namespace concealer - -#endif // CONCEALER__AUTOWARE_UNIVERSE_USER_HPP_ diff --git a/external/concealer/include/concealer/has_data_member_allow_goal_modification.hpp b/external/concealer/include/concealer/has_data_member_allow_goal_modification.hpp deleted file mode 100644 index 56de7a1f9f7..00000000000 --- a/external/concealer/include/concealer/has_data_member_allow_goal_modification.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// 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 CONCEALER__HAS_DATA_MEMBER_ALLOW_GOAL_MODIFICATION_HPP_ -#define CONCEALER__HAS_DATA_MEMBER_ALLOW_GOAL_MODIFICATION_HPP_ - -#include - -namespace concealer -{ -template -struct has_data_member_allow_goal_modification : public std::false_type -{ -}; - -template -struct has_data_member_allow_goal_modification< - T, std::void_t().allow_goal_modification)>> : public std::true_type -{ -}; - -template -inline constexpr auto has_data_member_allow_goal_modification_v = - has_data_member_allow_goal_modification::value; -} // namespace concealer - -#endif // CONCEALER__HAS_DATA_MEMBER_ALLOW_GOAL_MODIFICATION_HPP_ diff --git a/external/concealer/include/concealer/launch.hpp b/external/concealer/include/concealer/launch.hpp index 54f1459f1b3..55f4da068f3 100644 --- a/external/concealer/include/concealer/launch.hpp +++ b/external/concealer/include/concealer/launch.hpp @@ -15,13 +15,6 @@ #ifndef CONCEALER__LAUNCH_HPP_ #define CONCEALER__LAUNCH_HPP_ -#ifdef CONCEALER_ISOLATE_STANDARD_OUTPUT -#include -#include -#include -#include -#endif - #include #include #include @@ -37,14 +30,6 @@ template auto ros2_launch( const std::string & package, const std::string & file, const Parameters & parameters) { -#ifdef CONCEALER_ISOLATE_STANDARD_OUTPUT - const std::string log_filename = "/tmp/scenario_test_runner/autoware-output.txt"; - const auto fd = ::open(log_filename.c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); - ::dup2(fd, STDOUT_FILENO); - ::dup2(fd, STDERR_FILENO); - ::close(fd); -#endif - const auto argv = [&]() { auto argv = std::vector(); diff --git a/external/concealer/include/concealer/member_detector.hpp b/external/concealer/include/concealer/member_detector.hpp new file mode 100644 index 00000000000..d618347b0e9 --- /dev/null +++ b/external/concealer/include/concealer/member_detector.hpp @@ -0,0 +1,83 @@ +// 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 CONCEALER__MEMBER_DETECTOR_HPP_ +#define CONCEALER__MEMBER_DETECTOR_HPP_ + +#include + +namespace concealer +{ +#define DEFINE_MEMBER_DETECTOR(IDENTIFIER) \ + template \ + struct DetectMember_##IDENTIFIER : public std::false_type \ + { \ + }; \ + \ + template \ + struct DetectMember_##IDENTIFIER().IDENTIFIER)>> \ + : public std::true_type \ + { \ + } + +DEFINE_MEMBER_DETECTOR(allow_goal_modification); +DEFINE_MEMBER_DETECTOR(distance); +DEFINE_MEMBER_DETECTOR(option); +DEFINE_MEMBER_DETECTOR(status); +DEFINE_MEMBER_DETECTOR(success); + +#undef DEFINE_MEMBER_DETECTOR + +#define DEFINE_STATIC_MEMBER_DETECTOR(IDENTIFIER) \ + template \ + struct DetectStaticMember_##IDENTIFIER : public std::false_type \ + { \ + }; \ + \ + template \ + struct DetectStaticMember_##IDENTIFIER> \ + : public std::true_type \ + { \ + } + +DEFINE_STATIC_MEMBER_DETECTOR(AVOIDANCE_BY_LC_LEFT); +DEFINE_STATIC_MEMBER_DETECTOR(AVOIDANCE_BY_LC_RIGHT); +DEFINE_STATIC_MEMBER_DETECTOR(AVOIDANCE_LEFT); +DEFINE_STATIC_MEMBER_DETECTOR(AVOIDANCE_RIGHT); +DEFINE_STATIC_MEMBER_DETECTOR(BLIND_SPOT); +DEFINE_STATIC_MEMBER_DETECTOR(COMFORTABLE_STOP); +DEFINE_STATIC_MEMBER_DETECTOR(CROSSWALK); +DEFINE_STATIC_MEMBER_DETECTOR(DETECTION_AREA); +DEFINE_STATIC_MEMBER_DETECTOR(EMERGENCY_STOP); +DEFINE_STATIC_MEMBER_DETECTOR(EXT_REQUEST_LANE_CHANGE_LEFT); +DEFINE_STATIC_MEMBER_DETECTOR(EXT_REQUEST_LANE_CHANGE_RIGHT); +DEFINE_STATIC_MEMBER_DETECTOR(GOAL_PLANNER); +DEFINE_STATIC_MEMBER_DETECTOR(INTERSECTION); +DEFINE_STATIC_MEMBER_DETECTOR(INTERSECTION_OCCLUSION); +DEFINE_STATIC_MEMBER_DETECTOR(LANE_CHANGE_LEFT); +DEFINE_STATIC_MEMBER_DETECTOR(LANE_CHANGE_RIGHT); +DEFINE_STATIC_MEMBER_DETECTOR(NONE); +DEFINE_STATIC_MEMBER_DETECTOR(NO_DRIVABLE_LANE); +DEFINE_STATIC_MEMBER_DETECTOR(NO_STOPPING_AREA); +DEFINE_STATIC_MEMBER_DETECTOR(OCCLUSION_SPOT); +DEFINE_STATIC_MEMBER_DETECTOR(PULL_OUT); +DEFINE_STATIC_MEMBER_DETECTOR(PULL_OVER); +DEFINE_STATIC_MEMBER_DETECTOR(START_PLANNER); +DEFINE_STATIC_MEMBER_DETECTOR(TRAFFIC_LIGHT); +DEFINE_STATIC_MEMBER_DETECTOR(UNKNOWN); + +#undef DEFINE_STATIC_MEMBER_DETECTOR +} // namespace concealer + +#endif // CONCEALER__MEMBER_DETECTOR_HPP_ diff --git a/external/concealer/include/concealer/service_with_validation.hpp b/external/concealer/include/concealer/service_with_validation.hpp index 62421299c85..6b49df8d0f0 100644 --- a/external/concealer/include/concealer/service_with_validation.hpp +++ b/external/concealer/include/concealer/service_with_validation.hpp @@ -17,73 +17,60 @@ #include #include -#include +#include #include +#include #include #include #include #include -template -struct has_data_member_status : public std::false_type +namespace concealer { -}; - template -struct has_data_member_status().status)>> -: public std::true_type +class ServiceWithValidation { -}; - -template -constexpr auto has_data_member_status_v = has_data_member_status::value; + const std::string service_name; -template -struct has_data_member_success : public std::false_type -{ -}; + rclcpp::Logger logger; -template -struct has_data_member_success().success)>> -: public std::true_type -{ -}; + typename rclcpp::Client::SharedPtr client; -template -constexpr auto has_data_member_success_v = has_data_member_success::value; + rclcpp::WallRate validation_rate; -namespace concealer -{ -template -class ServiceWithValidation -{ public: + template explicit ServiceWithValidation( const std::string & service_name, FieldOperatorApplication & autoware, const std::chrono::nanoseconds validation_interval = std::chrono::seconds(1)) : service_name(service_name), logger(autoware.get_logger()), - client(autoware.create_client(service_name, rmw_qos_profile_default)), + client(autoware.template create_client(service_name, rmw_qos_profile_default)), validation_rate(validation_interval) { } - class TimeoutError : public common::Error + auto operator()(const typename T::Request::SharedPtr & request, std::size_t attempts_count) + -> void { - public: - template - explicit TimeoutError(Ts &&... xs) : common::Error(std::forward(xs)...) - { + while (!client->service_is_ready()) { + RCLCPP_INFO_STREAM(logger, service_name << " service is not ready."); + validation_rate.sleep(); } - }; - auto operator()(const typename T::Request::SharedPtr & request, std::size_t attempts_count = 1) - -> void - { - validateAvailability(); + auto send = [this](const auto & request) { + if (auto future = client->async_send_request(request); + future.wait_for(validation_rate.period()) == std::future_status::ready) { + return std::optional::SharedFuture>(future); + } else { + RCLCPP_ERROR_STREAM(logger, service_name << " service request has timed out."); + return std::optional::SharedFuture>(); + } + }; + for (std::size_t attempt = 0; attempt < attempts_count; ++attempt, validation_rate.sleep()) { - if (const auto & service_call_result = callWithTimeoutValidation(request)) { - if constexpr (has_data_member_status_v) { + if (const auto & service_call_result = send(request)) { + if constexpr (DetectMember_status::value) { if constexpr (std::is_same_v< tier4_external_api_msgs::msg::ResponseStatus, decltype(T::Response::status)>) { @@ -127,7 +114,7 @@ class ServiceWithValidation RCLCPP_INFO_STREAM(logger, service_name << " service request has been accepted."); return; } - } else if constexpr (has_data_member_success_v) { + } else if constexpr (DetectMember_success::value) { if constexpr (std::is_same_v) { if (service_call_result->get()->success) { RCLCPP_INFO_STREAM(logger, service_name << " service request has been accepted."); @@ -147,39 +134,11 @@ class ServiceWithValidation } } } - throw TimeoutError( + + throw common::scenario_simulator_exception::AutowareError( "Requested the service ", std::quoted(service_name), " ", attempts_count, " times, but was not successful."); } - -private: - auto validateAvailability() -> void - { - while (!client->service_is_ready()) { - RCLCPP_INFO_STREAM(logger, service_name << " service is not ready."); - validation_rate.sleep(); - } - } - - auto callWithTimeoutValidation(const typename T::Request::SharedPtr & request) - -> std::optional::SharedFuture> - { - if (auto future = client->async_send_request(request); - future.wait_for(validation_rate.period()) == std::future_status::ready) { - return future; - } else { - RCLCPP_ERROR_STREAM(logger, service_name << " service request has timed out."); - return std::nullopt; - } - } - - const std::string service_name; - - rclcpp::Logger logger; - - typename rclcpp::Client::SharedPtr client; - - rclcpp::WallRate validation_rate; }; } // namespace concealer diff --git a/external/concealer/include/concealer/subscriber_wrapper.hpp b/external/concealer/include/concealer/subscriber_wrapper.hpp index 8247a872e3a..eb4fde75af0 100644 --- a/external/concealer/include/concealer/subscriber_wrapper.hpp +++ b/external/concealer/include/concealer/subscriber_wrapper.hpp @@ -20,46 +20,39 @@ namespace concealer { -enum class ThreadSafety : bool { unsafe, safe }; - -template +template class SubscriberWrapper { - typename MessageType::ConstSharedPtr current_value = std::make_shared(); + typename Message::ConstSharedPtr current_value = std::make_shared(); - typename rclcpp::Subscription::SharedPtr subscription; + typename rclcpp::Subscription::SharedPtr subscription; public: - auto operator()() const -> decltype(auto) - { - if constexpr (thread_safety == ThreadSafety::unsafe) { - return *current_value; - } else { - return *std::atomic_load(¤t_value); - } - } + auto operator()() const -> const auto & { return *std::atomic_load(¤t_value); } - template - SubscriberWrapper( - const std::string & topic, const rclcpp::QoS & quality_of_service, - NodeInterface & autoware_interface, - const std::function & callback = {}) - : subscription(autoware_interface.template create_subscription( + template + explicit SubscriberWrapper( + const std::string & topic, const rclcpp::QoS & quality_of_service, Autoware & autoware, + const Callback & callback) + : subscription(autoware.template create_subscription( topic, quality_of_service, - [this, callback](const typename MessageType::ConstSharedPtr message) { - if constexpr (thread_safety == ThreadSafety::safe) { - std::atomic_store(¤t_value, message); - if (current_value and callback) { - callback(*std::atomic_load(¤t_value)); - } - } else { - if (current_value = message; current_value and callback) { - callback(*current_value); - } + [this, callback](const typename Message::ConstSharedPtr & message) { + if (std::atomic_store(¤t_value, message); current_value) { + callback(*std::atomic_load(¤t_value)); } })) { } + + template + explicit SubscriberWrapper( + const std::string & topic, const rclcpp::QoS & quality_of_service, Autoware & autoware) + : subscription(autoware.template create_subscription( + topic, quality_of_service, [this](const typename Message::ConstSharedPtr & message) { + std::atomic_store(¤t_value, message); + })) + { + } }; } // namespace concealer diff --git a/external/concealer/include/concealer/task_queue.hpp b/external/concealer/include/concealer/task_queue.hpp index 8f1b84f0f0f..4440e890268 100644 --- a/external/concealer/include/concealer/task_queue.hpp +++ b/external/concealer/include/concealer/task_queue.hpp @@ -45,8 +45,6 @@ class TaskQueue public: explicit TaskQueue(); - void stopAndJoin(); - ~TaskQueue(); template diff --git a/external/concealer/include/concealer/transition_assertion.hpp b/external/concealer/include/concealer/transition_assertion.hpp index 7850899362e..ce28408a7f1 100644 --- a/external/concealer/include/concealer/transition_assertion.hpp +++ b/external/concealer/include/concealer/transition_assertion.hpp @@ -25,6 +25,7 @@ namespace concealer template struct TransitionAssertion { +protected: const std::chrono::steady_clock::time_point start; const std::chrono::seconds initialize_duration; @@ -42,16 +43,16 @@ struct TransitionAssertion #define DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(STATE) \ template \ - auto waitForAutowareStateToBe##STATE( \ + auto waitForAutowareStateToBe_##STATE( \ Thunk && thunk = [] {}, Interval interval = std::chrono::seconds(1)) \ { \ - for (thunk(); not static_cast(*this).isStopRequested() and \ - not static_cast(*this).is##STATE(); \ + for (thunk(); not static_cast(*this).is_stop_requested.load() and \ + static_cast(*this).autoware_state != #STATE; \ rclcpp::GenericRate(interval).sleep()) { \ if ( \ have_never_been_engaged and \ start + initialize_duration <= std::chrono::steady_clock::now()) { \ - const auto state = static_cast(*this).getAutowareStateName(); \ + const auto state = static_cast(*this).autoware_state; \ throw common::AutowareError( \ "Simulator waited for the Autoware state to transition to " #STATE \ ", but time is up. The current Autoware state is ", \ @@ -60,19 +61,19 @@ struct TransitionAssertion thunk(); \ } \ } \ - if constexpr (std::string_view(#STATE) == std::string_view("Driving")) { \ + if constexpr (std::string_view(#STATE) == std::string_view("DRIVING")) { \ have_never_been_engaged = false; \ } \ } \ static_assert(true) - DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(Initializing); - DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(WaitingForRoute); - DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(Planning); - DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(WaitingForEngage); - DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(Driving); - DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(ArrivedGoal); - DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(Finalizing); + DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(INITIALIZING); + DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(WAITING_FOR_ROUTE); + DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(PLANNING); + DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(WAITING_FOR_ENGAGE); + DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(DRIVING); + DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(ARRIVED_GOAL); + DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE(FINALIZING); #undef DEFINE_WAIT_FOR_AUTOWARE_STATE_TO_BE }; diff --git a/external/concealer/package.xml b/external/concealer/package.xml index 0803d4c4cfb..2ea0d6d8de6 100644 --- a/external/concealer/package.xml +++ b/external/concealer/package.xml @@ -2,7 +2,7 @@ concealer - 7.0.0 + 7.3.5 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/concealer/src/autoware.cpp b/external/concealer/src/autoware.cpp deleted file mode 100644 index f29cbd93e2d..00000000000 --- a/external/concealer/src/autoware.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// 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 concealer -{ -Autoware::Autoware() -: rclcpp::Node("concealer", "simulation", rclcpp::NodeOptions().use_global_arguments(false)), - current_acceleration(geometry_msgs::msg::Accel()), - current_twist(geometry_msgs::msg::Twist()), - current_pose(geometry_msgs::msg::Pose()) -{ -} - -auto Autoware::getGearCommand() const -> autoware_vehicle_msgs::msg::GearCommand -{ - static auto gear_command = []() { - autoware_vehicle_msgs::msg::GearCommand gear_command; - gear_command.command = autoware_vehicle_msgs::msg::GearCommand::DRIVE; - return gear_command; - }(); - gear_command.stamp = now(); - return gear_command; -} - -auto Autoware::set(const geometry_msgs::msg::Accel & acceleration) -> void -{ - current_acceleration.store(acceleration); -} - -auto Autoware::set(const geometry_msgs::msg::Twist & twist) -> void { current_twist.store(twist); } - -auto Autoware::set(const geometry_msgs::msg::Pose & pose) -> void { current_pose.store(pose); } - -auto Autoware::getTurnIndicatorsCommand() const -> autoware_vehicle_msgs::msg::TurnIndicatorsCommand -{ - static auto turn_indicators_command = []() { - autoware_vehicle_msgs::msg::TurnIndicatorsCommand turn_indicators_command; - turn_indicators_command.command = autoware_vehicle_msgs::msg::TurnIndicatorsCommand::NO_COMMAND; - return turn_indicators_command; - }(); - turn_indicators_command.stamp = now(); - return turn_indicators_command; -} - -auto Autoware::rethrow() -> void {} -} // namespace concealer diff --git a/external/concealer/src/autoware_universe.cpp b/external/concealer/src/autoware_universe.cpp index 02aea619014..7467290ce20 100644 --- a/external/concealer/src/autoware_universe.cpp +++ b/external/concealer/src/autoware_universe.cpp @@ -16,15 +16,26 @@ namespace concealer { -AutowareUniverse::AutowareUniverse() -: getCommand("/control/command/control_cmd", rclcpp::QoS(1), *this), - getGearCommandImpl("/control/command/gear_cmd", rclcpp::QoS(1), *this), +AutowareUniverse::AutowareUniverse(bool simulate_localization) +: rclcpp::Node("concealer", "simulation", rclcpp::NodeOptions().use_global_arguments(false)), + getCommand("/control/command/control_cmd", rclcpp::QoS(1), *this), + getGearCommand("/control/command/gear_cmd", rclcpp::QoS(1), *this), getTurnIndicatorsCommand("/control/command/turn_indicators_cmd", rclcpp::QoS(1), *this), getPathWithLaneId( "/planning/scenario_planning/lane_driving/behavior_planning/path_with_lane_id", rclcpp::QoS(1), *this), - setAcceleration("/localization/acceleration", *this), - setOdometry("/localization/kinematic_state", *this), + setAcceleration( + simulate_localization ? "/localization/acceleration" + : "/simulation/debug/localization/acceleration", + *this), + setOdometry( + simulate_localization ? "/localization/kinematic_state" + : "/simulation/debug/localization/kinematic_state", + *this), + setPose( + simulate_localization ? "/simulation/debug/localization/pose_estimator/pose_with_covariance" + : "/localization/pose_estimator/pose_with_covariance", + *this), setSteeringReport("/vehicle/status/steering_status", *this), setGearReport("/vehicle/status/gear_status", *this), setControlModeReport("/vehicle/status/control_mode", *this), @@ -40,21 +51,20 @@ AutowareUniverse::AutowareUniverse() response->success = true; } else if (request->mode == ControlModeCommand::Request::MANUAL) { /* - NOTE: - MANUAL request will come when a remote override is triggered. - But scenario_simulator_v2 don't support a remote override for now. + NOTE: MANUAL request will come when a remote override is triggered. + But scenario_simulator_v2 don't support a remote override for now. */ response->success = false; } else { response->success = false; } })), - // Autoware.Universe requires localization topics to send data at 50Hz - localization_update_timer(rclcpp::create_timer( - this, get_clock(), std::chrono::milliseconds(20), [this]() { updateLocalization(); })), - // Autoware.Universe requires vehicle state topics to send data at 30Hz - vehicle_state_update_timer(rclcpp::create_timer( - this, get_clock(), std::chrono::milliseconds(33), [this]() { updateVehicleState(); })), + localization_update_timer( + rclcpp::create_timer( // Autoware.Universe requires localization topics to send data at 50Hz + this, get_clock(), std::chrono::milliseconds(20), [this]() { updateLocalization(); })), + vehicle_state_update_timer( + rclcpp::create_timer( // Autoware.Universe requires vehicle state topics to send data at 30Hz + this, get_clock(), std::chrono::milliseconds(33), [this]() { updateVehicleState(); })), localization_and_vehicle_state_update_thread(std::thread([this]() { try { while (rclcpp::ok() and not is_stop_requested.load()) { @@ -68,31 +78,17 @@ AutowareUniverse::AutowareUniverse() { } -AutowareUniverse::~AutowareUniverse() { stopAndJoin(); } - -auto AutowareUniverse::rethrow() -> void -{ - if (is_thrown.load()) { - throw thrown; - } -} - -auto AutowareUniverse::stopAndJoin() -> void +AutowareUniverse::~AutowareUniverse() { is_stop_requested.store(true); localization_and_vehicle_state_update_thread.join(); } -auto AutowareUniverse::getAcceleration() const -> double -{ - return getCommand().longitudinal.acceleration; -} - -auto AutowareUniverse::getVelocity() const -> double { return getCommand().longitudinal.velocity; } - -auto AutowareUniverse::getSteeringAngle() const -> double +auto AutowareUniverse::rethrow() -> void { - return getCommand().lateral.steering_tire_angle; + if (is_thrown.load()) { + throw thrown; + } } auto AutowareUniverse::updateLocalization() -> void @@ -112,7 +108,7 @@ auto AutowareUniverse::updateLocalization() -> void }()); setOdometry([this]() { - nav_msgs::msg::Odometry message; + Odometry message; message.header.stamp = get_clock()->now(); message.header.frame_id = "map"; message.pose.pose = current_pose.load(); @@ -121,6 +117,21 @@ auto AutowareUniverse::updateLocalization() -> void return message; }()); + setPose([this]() { + // See https://github.com/tier4/autoware.universe/blob/45ab20af979c5663e5a8d4dda787b1dea8d6e55b/simulator/simple_planning_simulator/src/simple_planning_simulator/simple_planning_simulator_core.cpp#L785-L803 + PoseWithCovarianceStamped message; + message.header.stamp = get_clock()->now(); + message.header.frame_id = "map"; + message.pose.pose = current_pose.load(); + message.pose.covariance.at(6 * 0 + 0) = 0.0225; // XYZRPY_COV_IDX::X_X + message.pose.covariance.at(6 * 1 + 1) = 0.0225; // XYZRPY_COV_IDX::Y_Y + message.pose.covariance.at(6 * 2 + 2) = 0.0225; // XYZRPY_COV_IDX::Z_Z + message.pose.covariance.at(6 * 3 + 3) = 0.000625; // XYZRPY_COV_IDX::ROLL_ROLL + message.pose.covariance.at(6 * 4 + 4) = 0.000625; // XYZRPY_COV_IDX::PITCH_PITCH + message.pose.covariance.at(6 * 5 + 5) = 0.000625; // XYZRPY_COV_IDX::YAW_YAW + return message; + }()); + setTransform(current_pose.load()); } @@ -138,7 +149,7 @@ auto AutowareUniverse::updateVehicleState() -> void setSteeringReport([this]() { SteeringReport message; message.stamp = get_clock()->now(); - message.steering_tire_angle = getSteeringAngle(); + message.steering_tire_angle = getCommand().lateral.steering_tire_angle; return message; }()); @@ -161,21 +172,40 @@ auto AutowareUniverse::updateVehicleState() -> void }()); } -auto AutowareUniverse::getGearCommand() const -> GearCommand { return getGearCommandImpl(); } - -auto AutowareUniverse::getGearSign() const -> double +auto AutowareUniverse::getVehicleCommand() const -> std::tuple { - /// @todo Add support for GearCommand::NONE to return 0.0 - /// @sa https://github.com/autowarefoundation/autoware.universe/blob/main/simulator/simple_planning_simulator/src/simple_planning_simulator/simple_planning_simulator_core.cpp#L475 - return getGearCommand().command == GearCommand::REVERSE or - getGearCommand().command == GearCommand::REVERSE_2 - ? -1.0 - : 1.0; -} - -auto AutowareUniverse::getVehicleCommand() const -> std::tuple -{ - return std::make_tuple(getCommand(), getGearCommand()); + const auto control_command = getCommand(); + + const auto gear_command = getGearCommand(); + + auto sign_of = [](auto command) { + switch (command) { + case GearCommand::REVERSE: + case GearCommand::REVERSE_2: + return -1.0; + case GearCommand::NONE: + return 0.0; + default: + return 1.0; + } + }; + + /* + TODO Currently, acceleration is returned as an unsigned value + (`control_command.longitudinal.acceleration`) and a signed value + (`sign_of(gear_command.command)`), but this is for historical reasons and + there is no longer any reason to do so. + + return std::make_tuple( + control_command.longitudinal.velocity, + sign_of(gear_command.command) * control_command.longitudinal.acceleration, + control_command.lateral.steering_tire_angle, + gear_command.command); + */ + return std::make_tuple( + control_command.longitudinal.velocity, control_command.longitudinal.acceleration, + control_command.lateral.steering_tire_angle, sign_of(gear_command.command), + gear_command.command); } auto AutowareUniverse::getRouteLanelets() const -> std::vector diff --git a/external/concealer/src/execute.cpp b/external/concealer/src/execute.cpp index 301e48de81a..b6a3c668700 100644 --- a/external/concealer/src/execute.cpp +++ b/external/concealer/src/execute.cpp @@ -71,22 +71,4 @@ auto dollar(const std::string & command) -> std::string return result; } } - -void sudokill(const pid_t process_id) -{ - const auto process_str = std::to_string(process_id); - - const pid_t pid = fork(); - - switch (pid) { - case -1: - std::cout << std::system_error(errno, std::system_category()).what() << std::endl; - break; - case 0: - ::execlp("sudo", "sudo", "kill", "-2", process_str.c_str(), static_cast(nullptr)); - std::cout << std::system_error(errno, std::system_category()).what() << std::endl; - break; - } -} - } // namespace concealer diff --git a/external/concealer/src/field_operator_application.cpp b/external/concealer/src/field_operator_application.cpp index 747c204a68c..1c7cf0d04e7 100644 --- a/external/concealer/src/field_operator_application.cpp +++ b/external/concealer/src/field_operator_application.cpp @@ -12,7 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. +#include #include +#include +#include #include #include #include @@ -20,58 +23,197 @@ namespace concealer { -FieldOperatorApplication::FieldOperatorApplication(const pid_t pid) -: rclcpp::Node("concealer_user", "simulation", rclcpp::NodeOptions().use_global_arguments(false)), - process_id(pid) +template +auto toModuleType(const std::string & module_name) { -} + static const std::unordered_map module_type_map = [&]() { + std::unordered_map module_type_map; -auto FieldOperatorApplication::stopRequest() noexcept -> void { is_stop_requested.store(true); } +#define EMPLACE(IDENTIFIER) \ + if constexpr (DetectStaticMember_##IDENTIFIER::value) { \ + module_type_map.emplace(#IDENTIFIER, T::IDENTIFIER); \ + } \ + static_assert(true) -auto FieldOperatorApplication::isStopRequested() const noexcept -> bool -{ - return is_stop_requested.load(); + /* + The following elements are in order of definition in the + tier4_rtc_msgs/msg/Module.msg file. Of course, unordered_map doesn't + preserve the insertion order, so the order itself doesn't matter. + */ + EMPLACE(NONE); + EMPLACE(LANE_CHANGE_LEFT); + EMPLACE(LANE_CHANGE_RIGHT); + EMPLACE(AVOIDANCE_LEFT); + EMPLACE(AVOIDANCE_RIGHT); + EMPLACE(GOAL_PLANNER); + EMPLACE(START_PLANNER); + EMPLACE(PULL_OUT); + EMPLACE(TRAFFIC_LIGHT); + EMPLACE(INTERSECTION); + EMPLACE(INTERSECTION_OCCLUSION); + EMPLACE(CROSSWALK); + EMPLACE(BLIND_SPOT); + EMPLACE(DETECTION_AREA); + EMPLACE(NO_STOPPING_AREA); + EMPLACE(OCCLUSION_SPOT); + EMPLACE(EXT_REQUEST_LANE_CHANGE_LEFT); + EMPLACE(EXT_REQUEST_LANE_CHANGE_RIGHT); + EMPLACE(AVOIDANCE_BY_LC_LEFT); + EMPLACE(AVOIDANCE_BY_LC_RIGHT); + EMPLACE(NO_DRIVABLE_LANE); + +#undef EMPLACE + + return module_type_map; + }(); + + if (const auto module_type = module_type_map.find(module_name); + module_type == module_type_map.end()) { + throw common::Error( + "Unexpected module name for tier4_rtc_msgs::msg::Module: ", module_name, "."); + } else { + return module_type->second; + } } -auto FieldOperatorApplication::spinSome() -> void +template +bool isValidCooperateStatus( + const CooperateStatusType & cooperate_status, std::uint8_t command_type, std::uint8_t module_type) { - if (rclcpp::ok() and not isStopRequested()) { - checkAutowareProcess(); - rclcpp::spin_some(get_node_base_interface()); + /** + * NOTE1: the finish_distance filter is set to over -20.0, + * because some valid rtc statuses has negative finish_distance due to the errors of + * localization or numerical calculation. This threshold is advised by a member of TIER IV + * planning and control team. + */ + + /** + * NOTE2: The difference in the variable referred as a distance is the impact of the + * message specification changes in the following URL. + * This was also decided after consulting with a member of TIER IV planning and control team. + * ref: https://github.com/tier4/tier4_autoware_msgs/commit/8b85e6e43aa48cf4a439c77bf4bf6aee2e70c3ef + */ + if constexpr (DetectMember_distance::value) { + return cooperate_status.module.type == module_type && + command_type != cooperate_status.command_status.type && + cooperate_status.distance >= -20.0; + } else { + return cooperate_status.module.type == module_type && + command_type != cooperate_status.command_status.type && + cooperate_status.finish_distance >= -20.0; } } -auto FieldOperatorApplication::checkAutowareProcess() -> void -{ - if (process_id != 0) { - int wstatus = 0; - int ret = waitpid(process_id, &wstatus, WNOHANG); - if (ret == 0) { - return; - } else if (ret < 0) { - if (errno == ECHILD) { - is_autoware_exited = true; - throw common::AutowareError("Autoware process is already terminated"); - } else { - AUTOWARE_SYSTEM_ERROR("waitpid"); - std::exit(EXIT_FAILURE); +// clang-format off +FieldOperatorApplication::FieldOperatorApplication(const pid_t pid) +: rclcpp::Node("concealer_user", "simulation", rclcpp::NodeOptions().use_global_arguments(false)), + process_id(pid), + getAutowareState("/autoware/state", rclcpp::QoS(1), *this, [this](const auto & message) { + auto state_name_of = [](auto state) constexpr { + switch (state) { + case AutowareState::INITIALIZING: + return "INITIALIZING"; + case AutowareState::WAITING_FOR_ROUTE: + return "WAITING_FOR_ROUTE"; + case AutowareState::PLANNING: + return "PLANNING"; + case AutowareState::WAITING_FOR_ENGAGE: + return "WAITING_FOR_ENGAGE"; + case AutowareState::DRIVING: + return "DRIVING"; + case AutowareState::ARRIVED_GOAL: + return "ARRIVED_GOAL"; + case AutowareState::FINALIZING: + return "FINALIZING"; + default: + return ""; } - } + }; - if (WIFEXITED(wstatus)) { - is_autoware_exited = true; - throw common::AutowareError( - "Autoware process is unintentionally exited. exit code: ", WEXITSTATUS(wstatus)); - } else if (WIFSIGNALED(wstatus)) { - is_autoware_exited = true; - throw common::AutowareError("Autoware process is killed. signal is ", WTERMSIG(wstatus)); + autoware_state = state_name_of(message.state); + }), + getCommand("/control/command/control_cmd", rclcpp::QoS(1), *this), + getCooperateStatusArray("/api/external/get/rtc_status", rclcpp::QoS(1), *this, [this](const auto & v) { latest_cooperate_status_array = v; }), + getEmergencyState("/api/external/get/emergency", rclcpp::QoS(1), *this, [this](const auto & message) { + if (message.emergency) { + throw common::Error("Emergency state received"); } - } + }), +#if __has_include() + getLocalizationState("/api/localization/initialization_state", rclcpp::QoS(1).transient_local(), *this), +#endif + getMrmState("/api/fail_safe/mrm_state", rclcpp::QoS(1), *this, [this](const auto & message) { + auto state_name_of = [](auto state) constexpr { + switch (state) { + case MrmState::MRM_FAILED: + return "MRM_FAILED"; + case MrmState::MRM_OPERATING: + return "MRM_OPERATING"; + case MrmState::MRM_SUCCEEDED: + return "MRM_SUCCEEDED"; + case MrmState::NORMAL: + return "NORMAL"; + case MrmState::UNKNOWN: + return "UNKNOWN"; + default: + throw common::Error( + "Unexpected autoware_adapi_v1_msgs::msg::MrmState::state, number: ", state); + } + }; + + auto behavior_name_of = [](auto behavior) constexpr { + if constexpr (DetectStaticMember_COMFORTABLE_STOP::value) { + if (behavior == MrmState::COMFORTABLE_STOP) { + return "COMFORTABLE_STOP"; + } + } + if constexpr (DetectStaticMember_EMERGENCY_STOP::value) { + if (behavior == MrmState::EMERGENCY_STOP) { + return "EMERGENCY_STOP"; + } + } + if constexpr (DetectStaticMember_NONE::value) { + if (behavior == MrmState::NONE) { + return "NONE"; + } + } + if constexpr (DetectStaticMember_UNKNOWN::value) { + if (behavior == MrmState::UNKNOWN) { + return "UNKNOWN"; + } + } + if constexpr (DetectStaticMember_PULL_OVER::value) { + if (behavior == MrmState::PULL_OVER) { + return "PULL_OVER"; + } + } + throw common::Error( + "Unexpected autoware_adapi_v1_msgs::msg::MrmState::behavior, number: ", behavior); + }; + + minimum_risk_maneuver_state = state_name_of(message.state); + minimum_risk_maneuver_behavior = behavior_name_of(message.behavior); + }), + getPathWithLaneId("/planning/scenario_planning/lane_driving/behavior_planning/path_with_lane_id", rclcpp::QoS(1), *this), + getTrajectory("/api/iv_msgs/planning/scenario_planning/trajectory", rclcpp::QoS(1), *this), + getTurnIndicatorsCommand("/control/command/turn_indicators_cmd", rclcpp::QoS(1), *this), + requestClearRoute("/api/routing/clear_route", *this), + requestCooperateCommands("/api/external/set/rtc_commands", *this), + requestEngage("/api/external/set/engage", *this), + requestInitialPose("/api/localization/initialize", *this), + // NOTE: /api/routing/set_route_points takes a long time to return. But the specified duration is not decided by any technical reasons. + requestSetRoutePoints("/api/routing/set_route_points", *this, std::chrono::seconds(10)), + requestSetRtcAutoMode("/api/external/set/rtc_auto_mode", *this), + requestSetVelocityLimit("/api/autoware/set/velocity_limit", *this), + requestEnableAutowareControl("/api/operation_mode/enable_autoware_control", *this) +{ } +// clang-format on -auto FieldOperatorApplication::shutdownAutoware() -> void +FieldOperatorApplication::~FieldOperatorApplication() { - if (stopRequest(); process_id != 0 && not std::exchange(is_autoware_exited, true)) { + if (is_stop_requested.store(true); + process_id != 0 && not std::exchange(is_autoware_exited, true)) { const auto sigset = [this]() { if (auto signal_set = sigset_t(); sigemptyset(&signal_set) or sigaddset(&signal_set, SIGCHLD)) { @@ -98,7 +240,7 @@ auto FieldOperatorApplication::shutdownAutoware() -> void return timeout; }(); - if (sendSIGINT(); sigtimedwait(&sigset, nullptr, &timeout) < 0) { + if (::kill(process_id, SIGINT); sigtimedwait(&sigset, nullptr, &timeout) < 0) { switch (errno) { case EINTR: /* @@ -146,72 +288,271 @@ auto FieldOperatorApplication::shutdownAutoware() -> void } } -auto FieldOperatorApplication::getTurnIndicatorsCommand() const - -> autoware_vehicle_msgs::msg::TurnIndicatorsCommand +auto FieldOperatorApplication::clearRoute() -> void { - static auto turn_indicators_command = []() { - autoware_vehicle_msgs::msg::TurnIndicatorsCommand turn_indicators_command; - turn_indicators_command.command = autoware_vehicle_msgs::msg::TurnIndicatorsCommand::NO_COMMAND; - return turn_indicators_command; - }(); - turn_indicators_command.stamp = now(); - return turn_indicators_command; + task_queue.delay([this] { + /* + Since this service tends to be available long after the launch of + Autoware, set the attempts_count to a high value. There is no technical + basis for the number 30. + */ + requestClearRoute(std::make_shared(), 30); + }); } -auto FieldOperatorApplication::rethrow() const -> void { task_queue.rethrow(); } -} // namespace concealer +auto FieldOperatorApplication::enableAutowareControl() -> void +{ + task_queue.delay([this]() { + auto request = std::make_shared(); + requestEnableAutowareControl(request, 30); + }); +} -namespace autoware_vehicle_msgs::msg +auto FieldOperatorApplication::engage() -> void { -auto operator<<( - std::ostream & out, const autoware_vehicle_msgs::msg::TurnIndicatorsCommand & message) - -> std::ostream & + task_queue.delay([this]() { + waitForAutowareStateToBe_DRIVING([this]() { + auto request = std::make_shared(); + request->engage = true; + try { + return requestEngage(request, 1); + } catch (const common::AutowareError &) { + return; // Ignore error because this service is validated by Autoware state transition. + } + }); + }); +} + +auto FieldOperatorApplication::engageable() const -> bool { -#define CASE(IDENTIFIER) \ - case autoware_vehicle_msgs::msg::TurnIndicatorsCommand::IDENTIFIER: \ - out << #IDENTIFIER; \ - break + rethrow(); + return task_queue.exhausted() and autoware_state == "WAITING_FOR_ENGAGE"; +} - switch (message.command) { - CASE(DISABLE); - CASE(ENABLE_LEFT); - CASE(ENABLE_RIGHT); - CASE(NO_COMMAND); +auto FieldOperatorApplication::engaged() const -> bool +{ + rethrow(); + return task_queue.exhausted() and autoware_state == "DRIVING"; +} - default: - throw common::Error( - "Unsupported TurnIndicatorsCommand, state number : ", static_cast(message.command)); +auto FieldOperatorApplication::getWaypoints() const -> traffic_simulator_msgs::msg::WaypointsArray +{ + traffic_simulator_msgs::msg::WaypointsArray waypoints; + + for (const auto & point : getTrajectory().points) { + waypoints.waypoints.emplace_back(point.pose.position); } -#undef CASE + return waypoints; +} + +auto FieldOperatorApplication::initialize(const geometry_msgs::msg::Pose & initial_pose) -> void +{ + if (not std::exchange(initialize_was_called, true)) { + task_queue.delay([this, initial_pose]() { + waitForAutowareStateToBe_WAITING_FOR_ROUTE([&]() { +#if __has_include() + if (getLocalizationState().state != LocalizationInitializationState::UNINITIALIZED) { + return; + } +#endif + geometry_msgs::msg::PoseWithCovarianceStamped initial_pose_msg; + initial_pose_msg.header.stamp = get_clock()->now(); + initial_pose_msg.header.frame_id = "map"; + initial_pose_msg.pose.pose = initial_pose; + + auto request = + std::make_shared(); + request->pose.push_back(initial_pose_msg); + try { + return requestInitialPose(request, 1); + } catch (const common::AutowareError &) { + return; // Ignore error because this service is validated by Autoware state transition. + } + }); + }); + } +} + +auto FieldOperatorApplication::plan(const std::vector & route) + -> void +{ + assert(not route.empty()); + + task_queue.delay([this, route] { + waitForAutowareStateToBe_WAITING_FOR_ROUTE(); // NOTE: This is assertion. + + auto request = std::make_shared(); + + request->header = route.back().header; + + /* + NOTE: The autoware_adapi_v1_msgs::srv::SetRoutePoints::Request type was + created on 2022/09/05 [1], and the autoware_adapi_v1_msgs::msg::Option + type data member was added to the + autoware_adapi_v1_msgs::srv::SetRoutePoints::Request type on 2023/04/12 + [2]. Therefore, we cannot expect + autoware_adapi_v1_msgs::srv::SetRoutePoints::Request to always have a + data member `option`. + + [1] https://github.com/autowarefoundation/autoware_adapi_msgs/commit/805f8ebd3ca24564844df9889feeaf183101fbef + [2] https://github.com/autowarefoundation/autoware_adapi_msgs/commit/cf310bd038673b6cbef3ae3b61dfe607212de419 + */ + if constexpr ( + DetectMember_option::value and + DetectMember_allow_goal_modification< + decltype(std::declval().option)>::value) { + request->option.allow_goal_modification = + get_parameter("allow_goal_modification").get_value(); + } + + request->goal = route.back().pose; + + for (const auto & each : route | boost::adaptors::sliced(0, route.size() - 1)) { + request->waypoints.push_back(each.pose); + } + + requestSetRoutePoints(request, 1); - return out; + waitForAutowareStateToBe_WAITING_FOR_ENGAGE(); + }); } -auto operator>>(std::istream & is, autoware_vehicle_msgs::msg::TurnIndicatorsCommand & message) - -> std::istream & +auto FieldOperatorApplication::requestAutoModeForCooperation( + const std::string & module_name, bool enable) -> void { -#define STATE(IDENTIFIER) \ - {#IDENTIFIER, autoware_vehicle_msgs::msg::TurnIndicatorsCommand::IDENTIFIER} + /* + The implementation of this function will not work properly if the + `rtc_auto_mode_manager` package is present. + */ + if (not isPackageExists("rtc_auto_mode_manager")) { + task_queue.delay([this, module_name, enable]() { + auto request = std::make_shared(); + request->module.type = toModuleType(module_name); + request->enable = enable; + /* + We attempt to resend the service up to 30 times, but this number of + times was determined by heuristics, not for any technical reason. + */ + requestSetRtcAutoMode(request, 30); + }); + } else { + throw common::Error( + "FieldOperatorApplication::requestAutoModeForCooperation is not supported in this " + "environment, because rtc_auto_mode_manager is present."); + } +} - std::unordered_map state_dictionary{ - STATE(DISABLE), - STATE(ENABLE_LEFT), - STATE(ENABLE_RIGHT), - STATE(NO_COMMAND), +auto FieldOperatorApplication::sendCooperateCommand( + const std::string & module_name, const std::string & command) -> void +{ + auto to_command_type = [](const auto & command) { + static const std::unordered_map command_type_map = { + {"ACTIVATE", tier4_rtc_msgs::msg::Command::ACTIVATE}, + {"DEACTIVATE", tier4_rtc_msgs::msg::Command::DEACTIVATE}, + }; + if (const auto command_type = command_type_map.find(command); + command_type == command_type_map.end()) { + throw common::Error("Unexpected command for tier4_rtc_msgs::msg::Command: ", command, "."); + } else { + return command_type->second; + } }; -#undef STATE + /* + NOTE: Used cooperate statuses will be deleted correctly in Autoware side + and provided via topic update. But, their update rate (typ. 10Hz) is lower + than the one of scenario_simulator_v2. So, we need to check cooperate + statuses if they are used or not in scenario_simulator_v2 side to avoid + sending the same cooperate command when sending multiple commands between + updates of cooperate statuses. + */ + static std::vector used_cooperate_statuses; - std::string command_string; - is >> command_string; + auto is_used_cooperate_status = [](const auto & cooperate_status) { + return std::find_if( + used_cooperate_statuses.begin(), used_cooperate_statuses.end(), + [&cooperate_status](const auto & used_cooperate_status) { + return used_cooperate_status.module == cooperate_status.module && + used_cooperate_status.uuid == cooperate_status.uuid && + used_cooperate_status.command_status.type == + cooperate_status.command_status.type; + }) != used_cooperate_statuses.end(); + }; - if (auto iter = state_dictionary.find(command_string); iter != state_dictionary.end()) { - message.set__command(iter->second); + if (const auto cooperate_status = std::find_if( + latest_cooperate_status_array.statuses.begin(), + latest_cooperate_status_array.statuses.end(), + [module_type = toModuleType(module_name), + command_type = to_command_type(command), + is_used_cooperate_status](const auto & cooperate_status) { + return isValidCooperateStatus( + cooperate_status, command_type, module_type) && + not is_used_cooperate_status(cooperate_status); + }); + cooperate_status == latest_cooperate_status_array.statuses.end()) { + std::stringstream what; + what + << "Failed to send a cooperate command: Cannot find a valid request to cooperate for module " + << std::quoted(module_name) << " and command " << std::quoted(command) << ". " + << "Please check if the situation is such that the request occurs when sending."; + throw common::Error(what.str()); } else { - throw common::Error("Unsupported TurnIndicatorsCommand::command : ", command_string.c_str()); + tier4_rtc_msgs::msg::CooperateCommand cooperate_command; + cooperate_command.module = cooperate_status->module; + cooperate_command.uuid = cooperate_status->uuid; + cooperate_command.command.type = to_command_type(command); + + auto request = std::make_shared(); + request->stamp = latest_cooperate_status_array.stamp; + request->commands.push_back(cooperate_command); + + task_queue.delay([this, request]() { requestCooperateCommands(request, 1); }); + + used_cooperate_statuses.push_back(*cooperate_status); } +} - return is; +auto FieldOperatorApplication::setVelocityLimit(double velocity_limit) -> void +{ + task_queue.delay([this, velocity_limit]() { + auto request = std::make_shared(); + request->velocity = velocity_limit; + /* + We attempt to resend the service up to 30 times, but this number of + times was determined by heuristics, not for any technical reason. + */ + requestSetVelocityLimit(request, 30); + }); +} + +auto FieldOperatorApplication::spinSome() -> void +{ + if (rclcpp::ok() and not is_stop_requested.load()) { + if (process_id != 0) { + auto status = 0; + if (const auto id = waitpid(process_id, &status, WNOHANG); id < 0) { + switch (errno) { + case ECHILD: + is_autoware_exited = true; + throw common::AutowareError("Autoware process is already terminated"); + default: + RCLCPP_ERROR_STREAM( + get_logger(), std::system_error(errno, std::system_category()).what()); + std::exit(EXIT_FAILURE); + } + } else if (0 < id) { + if (WIFEXITED(status)) { + is_autoware_exited = true; + throw common::AutowareError( + "Autoware process is unintentionally exited. exit code: ", WEXITSTATUS(status)); + } else if (WIFSIGNALED(status)) { + is_autoware_exited = true; + throw common::AutowareError("Autoware process is killed. signal is ", WTERMSIG(status)); + } + } + } + rclcpp::spin_some(get_node_base_interface()); + } } -} // namespace autoware_vehicle_msgs::msg +} // namespace concealer diff --git a/external/concealer/src/field_operator_application_for_autoware_universe.cpp b/external/concealer/src/field_operator_application_for_autoware_universe.cpp deleted file mode 100644 index e75ff70ab01..00000000000 --- a/external/concealer/src/field_operator_application_for_autoware_universe.cpp +++ /dev/null @@ -1,547 +0,0 @@ -// 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 -#include -#include -#include -#include - -namespace concealer -{ -FieldOperatorApplicationFor::~FieldOperatorApplicationFor() -{ - shutdownAutoware(); - // All tasks should be complete before the services used in them will be deinitialized. - task_queue.stopAndJoin(); -} - -template -struct lister -{ - std::reference_wrapper tuples; - - explicit lister(const Tuples & tuples) : tuples(std::cref(tuples)) {} -}; - -template -auto operator<<(std::ostream & ostream, const lister & lister) -> std::ostream & -{ - for (auto iterator = std::begin(lister.tuples.get()); iterator != std::end(lister.tuples.get()); - ++iterator) { - switch (std::distance(iterator, std::end(lister.tuples.get()))) { - case 1: - return ostream << std::get(*iterator); - - case 2: - ostream << std::get(*iterator) << " and "; - break; - - default: - ostream << std::get(*iterator) << ", "; - break; - } - } - - return ostream; -} - -template -auto listup(const Tuples & tuples) -> lister -{ - return lister(tuples); -} - -#define DEFINE_STATIC_DATA_MEMBER_DETECTOR(NAME) \ - template \ - struct HasStatic##NAME : public std::false_type \ - { \ - }; \ - \ - template \ - struct HasStatic##NAME> : public std::true_type \ - { \ - } - -DEFINE_STATIC_DATA_MEMBER_DETECTOR(NONE); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(LANE_CHANGE_LEFT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(LANE_CHANGE_RIGHT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(AVOIDANCE_LEFT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(AVOIDANCE_RIGHT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(GOAL_PLANNER); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(START_PLANNER); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(PULL_OUT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(TRAFFIC_LIGHT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(INTERSECTION); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(INTERSECTION_OCCLUSION); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(CROSSWALK); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(BLIND_SPOT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(DETECTION_AREA); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(NO_STOPPING_AREA); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(OCCLUSION_SPOT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(EXT_REQUEST_LANE_CHANGE_LEFT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(EXT_REQUEST_LANE_CHANGE_RIGHT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(AVOIDANCE_BY_LC_LEFT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(AVOIDANCE_BY_LC_RIGHT); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(NO_DRIVABLE_LANE); - -// For MrmState::behavior -DEFINE_STATIC_DATA_MEMBER_DETECTOR(COMFORTABLE_STOP); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(EMERGENCY_STOP); -// DEFINE_STATIC_DATA_MEMBER_DETECTOR(NONE); // NOTE: This is defined above. -DEFINE_STATIC_DATA_MEMBER_DETECTOR(UNKNOWN); -DEFINE_STATIC_DATA_MEMBER_DETECTOR(PULL_OVER); - -#undef DEFINE_STATIC_DATA_MEMBER_DETECTOR - -/** - * NOTE: for changes from `distance` to start/finish distance - * see https://github.com/tier4/tier4_autoware_msgs/commit/8b85e6e43aa48cf4a439c77bf4bf6aee2e70c3ef - */ -template -struct HasDistance : public std::false_type -{ -}; - -template -struct HasDistance().distance)>> : public std::true_type -{ -}; - -template -auto toModuleType(const std::string & module_name) -{ - static const std::unordered_map module_type_map = [&]() { - std::unordered_map module_type_map; - -#define EMPLACE(IDENTIFIER) \ - if constexpr (HasStatic##IDENTIFIER::value) { \ - module_type_map.emplace(#IDENTIFIER, T::IDENTIFIER); \ - } \ - static_assert(true) - - /* - The following elements are in order of definition in the - tier4_rtc_msgs/msg/Module.msg file. Of course, unordered_map doesn't - preserve the insertion order, so the order itself doesn't matter. - */ - EMPLACE(NONE); - EMPLACE(LANE_CHANGE_LEFT); - EMPLACE(LANE_CHANGE_RIGHT); - EMPLACE(AVOIDANCE_LEFT); - EMPLACE(AVOIDANCE_RIGHT); - EMPLACE(GOAL_PLANNER); - EMPLACE(START_PLANNER); - EMPLACE(PULL_OUT); - EMPLACE(TRAFFIC_LIGHT); - EMPLACE(INTERSECTION); - EMPLACE(INTERSECTION_OCCLUSION); - EMPLACE(CROSSWALK); - EMPLACE(BLIND_SPOT); - EMPLACE(DETECTION_AREA); - EMPLACE(NO_STOPPING_AREA); - EMPLACE(OCCLUSION_SPOT); - EMPLACE(EXT_REQUEST_LANE_CHANGE_LEFT); - EMPLACE(EXT_REQUEST_LANE_CHANGE_RIGHT); - EMPLACE(AVOIDANCE_BY_LC_LEFT); - EMPLACE(AVOIDANCE_BY_LC_RIGHT); - EMPLACE(NO_DRIVABLE_LANE); - -#undef EMPLACE - - return module_type_map; - }(); - - if (const auto module_type = module_type_map.find(module_name); - module_type == module_type_map.end()) { - throw common::Error( - "Unexpected module name for tier4_rtc_msgs::msg::Module: ", module_name, - ". One of the following module names is expected: ", listup<0>(module_type_map), "."); - } else { - return module_type->second; - } -} - -template -bool isValidCooperateStatus( - const CooperateStatusType & cooperate_status, std::uint8_t command_type, std::uint8_t module_type) -{ - /** - * NOTE1: the finish_distance filter is set to over -20.0, - * because some valid rtc statuses has negative finish_distance due to the errors of - * localization or numerical calculation. This threshold is advised by a member of TIER IV - * planning and control team. - */ - - /** - * NOTE2: The difference in the variable referred as a distance is the impact of the - * message specification changes in the following URL. - * This was also decided after consulting with a member of TIER IV planning and control team. - * ref: https://github.com/tier4/tier4_autoware_msgs/commit/8b85e6e43aa48cf4a439c77bf4bf6aee2e70c3ef - */ - if constexpr (HasDistance::value) { - return cooperate_status.module.type == module_type && - command_type != cooperate_status.command_status.type && - cooperate_status.distance >= -20.0; - } else { - return cooperate_status.module.type == module_type && - command_type != cooperate_status.command_status.type && - cooperate_status.finish_distance >= -20.0; - } -} - -auto FieldOperatorApplicationFor::sendCooperateCommand( - const std::string & module_name, const std::string & command) -> void -{ - auto to_command_type = [](const auto & command) { - static const std::unordered_map command_type_map = { - {"ACTIVATE", tier4_rtc_msgs::msg::Command::ACTIVATE}, - {"DEACTIVATE", tier4_rtc_msgs::msg::Command::DEACTIVATE}, - }; - if (const auto command_type = command_type_map.find(command); - command_type == command_type_map.end()) { - throw common::Error( - "Unexpected command for tier4_rtc_msgs::msg::Command: ", command, - ", One of the following commands is expected: ", listup<0>(command_type_map), "."); - } else { - return command_type->second; - } - }; - - /** - * NOTE: Used cooperate statuses will be deleted correctly in Autoware side and provided via topic update. - * But, their update rate (typ. 10Hz) is lower than the one of scenario_simulator_v2. - * So, we need to check cooperate statuses if they are used or not in scenario_simulator_v2 side - * to avoid sending the same cooperate command when sending multiple commands between updates of cooperate statuses. - */ - static std::vector used_cooperate_statuses; - auto is_used_cooperate_status = [](const auto & cooperate_status) { - return std::find_if( - used_cooperate_statuses.begin(), used_cooperate_statuses.end(), - [&cooperate_status](const auto & used_cooperate_status) { - return used_cooperate_status.module == cooperate_status.module && - used_cooperate_status.uuid == cooperate_status.uuid && - used_cooperate_status.command_status.type == - cooperate_status.command_status.type; - }) != used_cooperate_statuses.end(); - }; - - if (const auto cooperate_status = std::find_if( - latest_cooperate_status_array.statuses.begin(), - latest_cooperate_status_array.statuses.end(), - [module_type = toModuleType(module_name), - command_type = to_command_type(command), - is_used_cooperate_status](const auto & cooperate_status) { - return isValidCooperateStatus( - cooperate_status, command_type, module_type) && - not is_used_cooperate_status(cooperate_status); - }); - cooperate_status == latest_cooperate_status_array.statuses.end()) { - std::stringstream what; - what - << "Failed to send a cooperate command: Cannot find a valid request to cooperate for module " - << std::quoted(module_name) << " and command " << std::quoted(command) << "." - << "Please check if the situation is such that the request occurs when sending."; - throw common::Error(what.str()); - } else { - tier4_rtc_msgs::msg::CooperateCommand cooperate_command; - cooperate_command.module = cooperate_status->module; - cooperate_command.uuid = cooperate_status->uuid; - cooperate_command.command.type = to_command_type(command); - - auto request = std::make_shared(); - request->stamp = latest_cooperate_status_array.stamp; - request->commands.push_back(cooperate_command); - - task_queue.delay([this, request]() { requestCooperateCommands(request); }); - - used_cooperate_statuses.push_back(*cooperate_status); - } -} - -auto FieldOperatorApplicationFor::initialize( - const geometry_msgs::msg::Pose & initial_pose) -> void -{ - if (not std::exchange(initialize_was_called, true)) { - task_queue.delay([this, initial_pose]() { - waitForAutowareStateToBeWaitingForRoute([&]() { - -#if __has_include() - if ( - getLocalizationState().state != - autoware_adapi_v1_msgs::msg::LocalizationInitializationState::UNINITIALIZED) { - return; - } -#endif - geometry_msgs::msg::PoseWithCovarianceStamped initial_pose_msg; - initial_pose_msg.header.stamp = get_clock()->now(); - initial_pose_msg.header.frame_id = "map"; - initial_pose_msg.pose.pose = initial_pose; - - auto request = - std::make_shared(); - request->pose.push_back(initial_pose_msg); - try { - return requestInitialPose(request); - } catch (const decltype(requestInitialPose)::TimeoutError &) { - // ignore timeout error because this service is validated by Autoware state transition. - return; - } - }); - }); - } -} - -auto FieldOperatorApplicationFor::plan( - const std::vector & route) -> void -{ - assert(not route.empty()); - - task_queue.delay([this, route] { - waitForAutowareStateToBeWaitingForRoute(); // NOTE: This is assertion. - - auto request = std::make_shared(); - - request->header = route.back().header; - - /* - NOTE: The autoware_adapi_v1_msgs::srv::SetRoutePoints::Request type was - created on 2022/09/05 [1], and the autoware_adapi_v1_msgs::msg::Option - type data member was added to the - autoware_adapi_v1_msgs::srv::SetRoutePoints::Request type on 2023/04/12 - [2]. Therefore, we cannot expect - autoware_adapi_v1_msgs::srv::SetRoutePoints::Request to always have a - data member `option`. - - [1] https://github.com/autowarefoundation/autoware_adapi_msgs/commit/805f8ebd3ca24564844df9889feeaf183101fbef - [2] https://github.com/autowarefoundation/autoware_adapi_msgs/commit/cf310bd038673b6cbef3ae3b61dfe607212de419 - */ - if constexpr ( - has_data_member_option_v and - has_data_member_allow_goal_modification_v< - decltype(std::declval().option)>) { - request->option.allow_goal_modification = - get_parameter("allow_goal_modification").get_value(); - } - - request->goal = route.back().pose; - - for (const auto & each : route | boost::adaptors::sliced(0, route.size() - 1)) { - request->waypoints.push_back(each.pose); - } - - requestSetRoutePoints(request); - - waitForAutowareStateToBeWaitingForEngage(); - }); -} - -auto FieldOperatorApplicationFor::clearRoute() -> void -{ - task_queue.delay([this] { - /* - Since this service tends to be available long after the launch of - Autoware, set the attempts_count to a high value. There is no technical - basis for the number 30. - */ - requestClearRoute(std::make_shared(), 30); - }); -} - -auto FieldOperatorApplicationFor::engage() -> void -{ - task_queue.delay([this]() { - waitForAutowareStateToBeDriving([this]() { - auto request = std::make_shared(); - request->engage = true; - try { - return requestEngage(request); - } catch (const decltype(requestEngage)::TimeoutError &) { - // ignore timeout error because this service is validated by Autoware state transition. - return; - } - }); - }); -} - -auto FieldOperatorApplicationFor::engageable() const -> bool -{ - rethrow(); - return task_queue.exhausted() and isWaitingForEngage(); -} - -auto FieldOperatorApplicationFor::engaged() const -> bool -{ - rethrow(); - return task_queue.exhausted() and isDriving(); -} - -auto FieldOperatorApplicationFor::getWaypoints() const - -> traffic_simulator_msgs::msg::WaypointsArray -{ - traffic_simulator_msgs::msg::WaypointsArray waypoints; - - for (const auto & point : getTrajectory().points) { - waypoints.waypoints.emplace_back(point.pose.position); - } - - return waypoints; -} - -auto FieldOperatorApplicationFor::getTurnIndicatorsCommand() const - -> autoware_vehicle_msgs::msg::TurnIndicatorsCommand -{ - return getTurnIndicatorsCommandImpl(); -} - -auto FieldOperatorApplicationFor::restrictTargetSpeed(double value) const - -> double -{ - // no restrictions here - return value; -} - -auto FieldOperatorApplicationFor::getAutowareStateName() const -> std::string -{ - return autoware_state; -} - -auto FieldOperatorApplicationFor::getEmergencyStateName() const -> std::string -{ - return minimum_risk_maneuver_state; -} - -auto FieldOperatorApplicationFor::getMinimumRiskManeuverBehaviorName() const - -> std::string -{ - return minimum_risk_maneuver_behavior; -} - -auto FieldOperatorApplicationFor::getMinimumRiskManeuverStateName() const - -> std::string -{ - return minimum_risk_maneuver_state; -} - -auto FieldOperatorApplicationFor::sendSIGINT() -> void // -{ - ::kill(process_id, SIGINT); -} - -auto FieldOperatorApplicationFor::setVelocityLimit(double velocity_limit) -> void -{ - task_queue.delay([this, velocity_limit]() { - auto request = std::make_shared(); - request->velocity = velocity_limit; - // We attempt to resend the service up to 30 times, but this number of times was determined by - // heuristics, not for any technical reason - requestSetVelocityLimit(request, 30); - }); -} - -auto FieldOperatorApplicationFor::requestAutoModeForCooperation( - const std::string & module_name, bool enable) -> void -{ - // Note: The implementation of this function will not work properly - // if the `rtc_auto_mode_manager` package is present. - if (not isPackageExists("rtc_auto_mode_manager")) { - task_queue.delay([this, module_name, enable]() { - auto request = std::make_shared(); - request->module.type = toModuleType(module_name); - request->enable = enable; - // We attempt to resend the service up to 30 times, but this number of times was determined by - // heuristics, not for any technical reason - requestSetRtcAutoMode(request, 30); - }); - } else { - throw common::Error( - "FieldOperatorApplicationFor::requestAutoModeForCooperation is not " - "supported in this environment, because rtc_auto_mode_manager is present."); - } -} - -auto FieldOperatorApplicationFor::enableAutowareControl() -> void -{ - task_queue.delay([this]() { - auto request = std::make_shared(); - requestEnableAutowareControl(request); - }); -} - -auto FieldOperatorApplicationFor::receiveEmergencyState( - const tier4_external_api_msgs::msg::Emergency & message) -> void -{ - if (message.emergency) { - throw common::Error("Emergency state received"); - } -} - -template -auto toMinimumRiskManeuverBehaviorString(const std::uint8_t & behavior_number) -> std::string -{ - static const std::unordered_map behavior_string_map = [&]() { - std::unordered_map behavior_string_map; - -#define EMPLACE(IDENTIFIER) \ - if constexpr (HasStatic##IDENTIFIER::value) { \ - behavior_string_map.emplace(T::IDENTIFIER, #IDENTIFIER); \ - } \ - static_assert(true) - - EMPLACE(COMFORTABLE_STOP); - EMPLACE(EMERGENCY_STOP); - EMPLACE(NONE); - EMPLACE(UNKNOWN); - EMPLACE(PULL_OVER); - -#undef EMPLACE - return behavior_string_map; - }(); - - if (const auto behavior = behavior_string_map.find(behavior_number); - behavior == behavior_string_map.end()) { - throw common::Error( - "Unexpected autoware_adapi_v1_msgs::msg::MrmState::behavior, number: ", behavior_number); - } else { - return behavior->second; - } -} - -auto toMinimumRiskManeuverStateString(const std::uint8_t & state_number) -> std::string -{ - static const std::unordered_map state_string_map = { - {autoware_adapi_v1_msgs::msg::MrmState::MRM_FAILED, "MRM_FAILED"}, - {autoware_adapi_v1_msgs::msg::MrmState::MRM_OPERATING, "MRM_OPERATING"}, - {autoware_adapi_v1_msgs::msg::MrmState::MRM_SUCCEEDED, "MRM_SUCCEEDED"}, - {autoware_adapi_v1_msgs::msg::MrmState::NORMAL, "NORMAL"}, - {autoware_adapi_v1_msgs::msg::MrmState::UNKNOWN, "UNKNOWN"}, - }; - - if (const auto state = state_string_map.find(state_number); state == state_string_map.end()) { - throw common::Error( - "Unexpected autoware_adapi_v1_msgs::msg::MrmState::state, number: ", state_number); - } else { - return state->second; - } -} - -auto FieldOperatorApplicationFor::receiveMrmState( - const autoware_adapi_v1_msgs::msg::MrmState & message) -> void -{ - minimum_risk_maneuver_state = toMinimumRiskManeuverStateString(message.state); - - minimum_risk_maneuver_behavior = - toMinimumRiskManeuverBehaviorString(message.behavior); -} -} // namespace concealer diff --git a/external/concealer/src/task_queue.cpp b/external/concealer/src/task_queue.cpp index 32c7b003cc8..cc2298324d1 100644 --- a/external/concealer/src/task_queue.cpp +++ b/external/concealer/src/task_queue.cpp @@ -42,7 +42,7 @@ TaskQueue::TaskQueue() { } -void TaskQueue::stopAndJoin() +TaskQueue::~TaskQueue() { if (dispatcher.joinable()) { is_stop_requested.store(true, std::memory_order_release); @@ -50,8 +50,6 @@ void TaskQueue::stopAndJoin() } } -TaskQueue::~TaskQueue() { stopAndJoin(); } - bool TaskQueue::exhausted() const noexcept { return is_exhausted.load(); } void TaskQueue::rethrow() const diff --git a/external/embree_vendor/CHANGELOG.rst b/external/embree_vendor/CHANGELOG.rst index d8076f4cae3..34389cb2c5e 100644 --- a/external/embree_vendor/CHANGELOG.rst +++ b/external/embree_vendor/CHANGELOG.rst @@ -24,6 +24,132 @@ Changelog for package embree_vendor * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/external/embree_vendor/package.xml b/external/embree_vendor/package.xml index e9ea9025c11..74d2abe8c3a 100644 --- a/external/embree_vendor/package.xml +++ b/external/embree_vendor/package.xml @@ -2,7 +2,7 @@ embree_vendor - 7.0.0 + 7.3.5 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 cd5eb9f6491..a2910ce13dd 100644 --- a/map/kashiwanoha_map/CHANGELOG.rst +++ b/map/kashiwanoha_map/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package kashiwanoha_map * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/map/kashiwanoha_map/package.xml b/map/kashiwanoha_map/package.xml index 1f90ffe02a6..f34b5f7b3be 100644 --- a/map/kashiwanoha_map/package.xml +++ b/map/kashiwanoha_map/package.xml @@ -2,7 +2,7 @@ kashiwanoha_map - 7.0.0 + 7.3.5 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 2609e18e217..3263e339e64 100644 --- a/map/simple_cross_map/CHANGELOG.rst +++ b/map/simple_cross_map/CHANGELOG.rst @@ -9,6 +9,128 @@ Changelog for package simple_cross_map * Merge branch 'master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/map/simple_cross_map/package.xml b/map/simple_cross_map/package.xml index 21100000215..81a77c0f301 100644 --- a/map/simple_cross_map/package.xml +++ b/map/simple_cross_map/package.xml @@ -2,7 +2,7 @@ simple_cross_map - 7.0.0 + 7.3.5 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 7324aafffb5..a760632bc5b 100644 --- a/mock/cpp_mock_scenarios/CHANGELOG.rst +++ b/mock/cpp_mock_scenarios/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package cpp_mock_scenarios * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support diff --git a/mock/cpp_mock_scenarios/CMakeLists.txt b/mock/cpp_mock_scenarios/CMakeLists.txt index 669465e6482..883da343c49 100644 --- a/mock/cpp_mock_scenarios/CMakeLists.txt +++ b/mock/cpp_mock_scenarios/CMakeLists.txt @@ -55,8 +55,9 @@ if(BUILD_CPP_MOCK_SCENARIOS) add_subdirectory(src/random_scenario) add_subdirectory(src/spawn) add_subdirectory(src/speed_planning) - add_subdirectory(src/traffic_source) add_subdirectory(src/synchronized_action) + add_subdirectory(src/traffic_sink) + add_subdirectory(src/traffic_source) # add_subdirectory(src/respawn_ego) endif() diff --git a/mock/cpp_mock_scenarios/include/cpp_mock_scenarios/cpp_scenario_node.hpp b/mock/cpp_mock_scenarios/include/cpp_mock_scenarios/cpp_scenario_node.hpp index 4d1141c8fc7..45c2aa6962e 100644 --- a/mock/cpp_mock_scenarios/include/cpp_mock_scenarios/cpp_scenario_node.hpp +++ b/mock/cpp_mock_scenarios/include/cpp_mock_scenarios/cpp_scenario_node.hpp @@ -33,7 +33,8 @@ class CppScenarioNode : public rclcpp::Node explicit CppScenarioNode( const std::string & node_name, const std::string & map_path, const std::string & lanelet2_map_file, const std::string & scenario_filename, - const bool verbose, const rclcpp::NodeOptions & option); + const bool verbose, const rclcpp::NodeOptions & option, + const std::set & auto_sink_entity_types = {}); void start(); void stop(Result result, const std::string & description = ""); void expectThrow() { exception_expect_ = true; } @@ -71,7 +72,8 @@ class CppScenarioNode : public rclcpp::Node int timeout_; auto configure( const std::string & map_path, const std::string & lanelet2_map_file, - const std::string & scenario_filename, const bool verbose) -> traffic_simulator::Configuration + const std::string & scenario_filename, const bool verbose, + const std::set & auto_sink_entity_types = {}) -> traffic_simulator::Configuration { auto configuration = traffic_simulator::Configuration(map_path); { @@ -79,6 +81,7 @@ class CppScenarioNode : public rclcpp::Node // configuration.lanelet2_map_file = "lanelet2_map_with_private_road_and_walkway_ele_fix.osm"; configuration.scenario_path = scenario_filename; configuration.verbose = verbose; + configuration.auto_sink_entity_types = auto_sink_entity_types; } checkConfiguration(configuration); return configuration; diff --git a/mock/cpp_mock_scenarios/launch/mock_test.launch.py b/mock/cpp_mock_scenarios/launch/mock_test.launch.py index 13a245a09af..0a1f08e45f4 100644 --- a/mock/cpp_mock_scenarios/launch/mock_test.launch.py +++ b/mock/cpp_mock_scenarios/launch/mock_test.launch.py @@ -69,6 +69,7 @@ def on_stdout_output(event: launch.Event) -> None: if lines[0] == "cpp_scenario:success": print(Color.GREEN + "Scenario Succeed" + Color.END) + def architecture_types(): return ["awf/universe/20230906", "awf/universe/20240605"] @@ -94,9 +95,11 @@ def default_autoware_launch_file_of(architecture_type): "awf/universe/20240605": "planning_simulator.launch.xml", }[architecture_type] + def default_rviz_config_file(): return Path(get_package_share_directory("traffic_simulator")) / "config/scenario_simulator_v2.rviz" + def launch_setup(context, *args, **kwargs): # fmt: off architecture_type = LaunchConfiguration("architecture_type", default="awf/universe/20240605") @@ -159,7 +162,7 @@ def make_parameters(): {"initialize_duration": initialize_duration}, {"launch_autoware": launch_autoware}, {"port": port}, - {"publish_empty_context" : publish_empty_context}, + {"publish_empty_context": publish_empty_context}, {"record": record}, {"rviz_config": rviz_config}, {"sensor_model": sensor_model}, @@ -187,13 +190,13 @@ def description(): return parameters cpp_scenario_node = Node( - package=scenario_package, - executable=scenario, - name="scenario_node", - output="screen", - arguments=[("__log_level:=info")], - parameters=make_parameters() + [{"use_sim_time": use_sim_time}], - ) + package=scenario_package, + executable=scenario, + name="scenario_node", + output="screen", + arguments=[("__log_level:=info")], + parameters=make_parameters() + [{"use_sim_time": use_sim_time}], + ) io_handler = OnProcessIO( target_action=cpp_scenario_node, on_stderr=on_stderr_output, @@ -241,6 +244,7 @@ def description(): namespace="simulation", name="visualizer", output="screen", + remappings=[("/simulation/entity/status", "/entity/status")], ), Node( package="rviz2", @@ -249,10 +253,15 @@ def description(): output={"stderr": "log", "stdout": "log"}, condition=IfCondition(launch_rviz), arguments=["-d", str(default_rviz_config_file())], + remappings=[ + ("/simulation/lanelet/marker", "/lanelet/marker"), + ("/simulation/debug_marker", "/debug_marker"), + ], ), RegisterEventHandler(event_handler=io_handler), RegisterEventHandler(event_handler=shutdown_handler), ] + def generate_launch_description(): return LaunchDescription([OpaqueFunction(function=launch_setup)]) diff --git a/mock/cpp_mock_scenarios/package.xml b/mock/cpp_mock_scenarios/package.xml index 83b675be3d8..d83691093fb 100644 --- a/mock/cpp_mock_scenarios/package.xml +++ b/mock/cpp_mock_scenarios/package.xml @@ -2,7 +2,7 @@ cpp_mock_scenarios - 7.0.0 + 7.3.5 C++ mock scenarios masaya Apache License 2.0 diff --git a/mock/cpp_mock_scenarios/src/cpp_scenario_node.cpp b/mock/cpp_mock_scenarios/src/cpp_scenario_node.cpp index 4fb9bd39245..884fabf0648 100644 --- a/mock/cpp_mock_scenarios/src/cpp_scenario_node.cpp +++ b/mock/cpp_mock_scenarios/src/cpp_scenario_node.cpp @@ -20,10 +20,12 @@ namespace cpp_mock_scenarios CppScenarioNode::CppScenarioNode( const std::string & node_name, const std::string & map_path, const std::string & lanelet2_map_file, const std::string & scenario_filename, const bool verbose, - const rclcpp::NodeOptions & option) + const rclcpp::NodeOptions & option, + const std::set & auto_sink_entity_types /*= {}*/) : Node(node_name, option), api_( - this, configure(map_path, lanelet2_map_file, scenario_filename, verbose), + this, + configure(map_path, lanelet2_map_file, scenario_filename, verbose, auto_sink_entity_types), declare_parameter("global_real_time_factor", 1.0), declare_parameter("global_frame_rate", 20.0)), scenario_filename_(scenario_filename), diff --git a/mock/cpp_mock_scenarios/src/crosswalk/stop_at_crosswalk.cpp b/mock/cpp_mock_scenarios/src/crosswalk/stop_at_crosswalk.cpp index 74dbf25598b..4b94b5ee5d2 100644 --- a/mock/cpp_mock_scenarios/src/crosswalk/stop_at_crosswalk.cpp +++ b/mock/cpp_mock_scenarios/src/crosswalk/stop_at_crosswalk.cpp @@ -30,7 +30,7 @@ class StopAtCrosswalkScenario : public cpp_mock_scenarios::CppScenarioNode explicit StopAtCrosswalkScenario(const rclcpp::NodeOptions & option) : cpp_mock_scenarios::CppScenarioNode( "stop_at_crosswalk", ament_index_cpp::get_package_share_directory("kashiwanoha_map") + "/map", - "lanelet2_map.osm", __FILE__, false, option) + "lanelet2_map.osm", __FILE__, false, option, {traffic_simulator::EntityType::PEDESTRIAN}) { start(); } diff --git a/mock/cpp_mock_scenarios/src/traffic_sink/CMakeLists.txt b/mock/cpp_mock_scenarios/src/traffic_sink/CMakeLists.txt new file mode 100644 index 00000000000..e1966600cb5 --- /dev/null +++ b/mock/cpp_mock_scenarios/src/traffic_sink/CMakeLists.txt @@ -0,0 +1,14 @@ +ament_auto_add_executable(auto_sink_vehicle + auto_sink_vehicle.cpp +) +target_link_libraries(auto_sink_vehicle cpp_scenario_node) + +install(TARGETS + auto_sink_vehicle + DESTINATION lib/cpp_mock_scenarios +) + +if(BUILD_TESTING) + include(../../cmake/add_cpp_mock_scenario_test.cmake) + add_cpp_mock_scenario_test(${PROJECT_NAME} "auto_sink_vehicle" "5.0") +endif() diff --git a/mock/cpp_mock_scenarios/src/traffic_sink/auto_sink_vehicle.cpp b/mock/cpp_mock_scenarios/src/traffic_sink/auto_sink_vehicle.cpp new file mode 100644 index 00000000000..8d3a89c2ae7 --- /dev/null +++ b/mock/cpp_mock_scenarios/src/traffic_sink/auto_sink_vehicle.cpp @@ -0,0 +1,70 @@ +// 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace cpp_mock_scenarios +{ +class AutoSinkVehicleScenario : public cpp_mock_scenarios::CppScenarioNode +{ +public: + explicit AutoSinkVehicleScenario(const rclcpp::NodeOptions & option) + : cpp_mock_scenarios::CppScenarioNode( + "auto_sink_vehicle", ament_index_cpp::get_package_share_directory("kashiwanoha_map") + "/map", + "lanelet2_map.osm", __FILE__, false, option, {traffic_simulator::EntityType::PEDESTRIAN}) + { + start(); + } + +private: + void onUpdate() override + { + if (api_.getCurrentTime() >= 0.1) { + if (api_.entityExists("car") and not api_.entityExists("bob")) { + stop(cpp_mock_scenarios::Result::SUCCESS); + } else { + stop(cpp_mock_scenarios::Result::FAILURE); + } + } + } + + void onInitialize() override + { + const auto map_pose = traffic_simulator::pose::toMapPose( + traffic_simulator::helper::constructCanonicalizedLaneletPose( + 34774, 11.0, 0.0, api_.getHdmapUtils())); + api_.spawn("car", map_pose, getVehicleParameters()); + api_.spawn("bob", map_pose, getPedestrianParameters()); + } +}; +} // namespace cpp_mock_scenarios + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::NodeOptions options; + auto component = std::make_shared(options); + rclcpp::spin(component); + rclcpp::shutdown(); + return 0; +} diff --git a/openscenario/openscenario_experimental_catalog/CHANGELOG.rst b/openscenario/openscenario_experimental_catalog/CHANGELOG.rst index 0e6f94cf1b9..977679cb5da 100644 --- a/openscenario/openscenario_experimental_catalog/CHANGELOG.rst +++ b/openscenario/openscenario_experimental_catalog/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package openscenario_experimental_catalog * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/openscenario/openscenario_experimental_catalog/package.xml b/openscenario/openscenario_experimental_catalog/package.xml index b7bc016fa2c..5a89fe31969 100644 --- a/openscenario/openscenario_experimental_catalog/package.xml +++ b/openscenario/openscenario_experimental_catalog/package.xml @@ -2,7 +2,7 @@ openscenario_experimental_catalog - 7.0.0 + 7.3.5 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 d9efb5ec129..6a15fa3fc17 100644 --- a/openscenario/openscenario_interpreter/CHANGELOG.rst +++ b/openscenario/openscenario_interpreter/CHANGELOG.rst @@ -32,6 +32,174 @@ Changelog for package openscenario_interpreter * add publish_empty_context parameter * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge pull request `#1488 `_ from tier4/refactor/concealer-1 + Refactor/concealer 1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Remove stream input/output operator for `TurnIndicatorsCommand` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge pull request `#1258 `_ from tier4/feature/time-to-collision-condition + Feature/time to collision condition +* Update `TimeToCollisionCondition` to call `SpeedCondition` in standard compatible mode +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Remove static member function `evaluateTimeToCollisionCondition` +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Cleanup +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Fix `evaluateTimeToCollisionCondition` to not return meaningless value when collisions cannot occur +* Fix `TimeToCollisionCondition` to return inf if relative speed < zero +* Cleanup static member function `TimeToCollisionCondition::evaluate` +* Add new member function `evaluateCartesianTimeToCollisionCondition` +* Split `(Relative)?DistanceCondition::evaluate` into two overloads +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Add new static member function `TimeToCollisionCondition::evaluate` +* Update `unordered_map` of the `Entities` base class to private +* Move function `hypot` into new header `cmath/hypot.hpp` +* Add support for `DirectionalDimension` to `SpeedCondition` +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Rename `(Relative)?DistanceCondition::distance` to `evaluate` +* Update member function `CoordinateSystem::distance` to be static member +* Add `const Position &` to the argument of `DistanceCondition::distance` +* Remove data member `DistanceCondition::consider_z` +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Add new static member function `RelativeSpeedCondition::evaluate` +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Update `RelativeDistanceCondition::distance` to static member function +* Move entity existence check into `distance` from speceialized `distance` +* Add static member function `ConditionEvaluation::evaluateRelativeSpeed` +* Add new structs `RelativeSpeedCondition` and `DirectionalDimension` +* Add new struct `TimeToCollisionConditionTarget` +* Add new struct `TimeToCollisionCondition` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge pull request `#1486 `_ from tier4/fix/speed-condition/backward-compatibility + Fix/speed condition/backward compatibility +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Add new parameter `speed_condition` to switch compatibility +* Add new enumeration `Compatibility` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge pull request `#1462 `_ from tier4/feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Change default value definition +* Update schema comment +* Use always_true in Event +* Fix StopTrigger behavior +* Fix version +* Specify version on comment +* Set default value for Start/StopTrigger in Act +* Contributors: Kotaro Yoshimoto, f0reachARR, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support diff --git a/openscenario/openscenario_interpreter/CMakeLists.txt b/openscenario/openscenario_interpreter/CMakeLists.txt index 72ac634e062..a1d95ea6350 100644 --- a/openscenario/openscenario_interpreter/CMakeLists.txt +++ b/openscenario/openscenario_interpreter/CMakeLists.txt @@ -59,8 +59,9 @@ ament_auto_add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_POSIX_SOURCES} ${${PROJECT_NAME}_SYNTAX_SOURCES} ${${PROJECT_NAME}_UTILITY_SOURCES} - src/object.cpp + src/compatibility.cpp src/evaluate.cpp + src/object.cpp src/openscenario_interpreter.cpp src/record.cpp src/scope.cpp) diff --git a/external/concealer/include/concealer/has_data_member_option.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/compatibility.hpp similarity index 52% rename from external/concealer/include/concealer/has_data_member_option.hpp rename to openscenario/openscenario_interpreter/include/openscenario_interpreter/compatibility.hpp index 959e5fcdf44..683ba6f2377 100644 --- a/external/concealer/include/concealer/has_data_member_option.hpp +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/compatibility.hpp @@ -12,26 +12,19 @@ // See the License for the specific language governing permissions and // limitations under the License. -#ifndef CONCEALER__HAS_DATA_MEMBER_OPTION_HPP_ -#define CONCEALER__HAS_DATA_MEMBER_OPTION_HPP_ +#ifndef OPENSCENARIO_INTERPRETER__COMPATIBILITY_HPP_ +#define OPENSCENARIO_INTERPRETER__COMPATIBILITY_HPP_ -#include +#include -namespace concealer -{ -template -struct has_data_member_option : public std::false_type -{ -}; - -template -struct has_data_member_option().option)>> -: public std::true_type +namespace openscenario_interpreter { +enum class Compatibility { + legacy, + standard, }; -template -inline constexpr auto has_data_member_option_v = has_data_member_option::value; -} // namespace concealer +auto operator>>(std::istream &, Compatibility &) -> std::istream &; +} // namespace openscenario_interpreter -#endif // CONCEALER__HAS_DATA_MEMBER_OPTION_HPP_ +#endif // OPENSCENARIO_INTERPRETER__COMPATIBILITY_HPP_ diff --git a/openscenario/openscenario_interpreter/include/openscenario_interpreter/simulator_core.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/simulator_core.hpp index c665a97c913..5252176abfc 100644 --- a/openscenario/openscenario_interpreter/include/openscenario_interpreter/simulator_core.hpp +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/simulator_core.hpp @@ -562,15 +562,9 @@ class SimulatorCore if (const auto observer = core->getEntity(from.name())) { if (const auto observed = core->getEntity(to.name())) { auto velocity = [](const auto & entity) -> Eigen::Vector3d { - auto direction = [](auto orientation) -> Eigen::Vector3d { - const auto euler_angle = math::geometry::convertQuaternionToEulerAngle(orientation); - const auto r = euler_angle.x; - const auto p = euler_angle.y; - const auto y = euler_angle.z; - return Eigen::Vector3d( - std::cos(y) * std::cos(p), std::sin(y) * std::cos(p), std::sin(p)); + auto direction = [](const auto & q) -> Eigen::Vector3d { + return Eigen::Quaternion(q.w, q.x, q.y, q.z) * Eigen::Vector3d::UnitX(); }; - return direction(entity->getMapPose().orientation) * entity->getCurrentTwist().linear.x; }; diff --git a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/act.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/act.hpp index 5c34a9c1bb6..241c22c822d 100644 --- a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/act.hpp +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/act.hpp @@ -25,18 +25,18 @@ namespace openscenario_interpreter { inline namespace syntax { -/* ---- Act -------------------------------------------------------------------- - * - * - * - * - * - * - * - * - * - * - * -------------------------------------------------------------------------- */ +/* + Act(OpenSCENARIO XML 1.3) + + + + + + + + + +*/ struct Act : public Scope, public StoryboardElement { explicit Act(const pugi::xml_node &, Scope &); diff --git a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/relative_speed_condition.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/relative_speed_condition.hpp index e88e351fae1..c79bfdf34ff 100644 --- a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/relative_speed_condition.hpp +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/relative_speed_condition.hpp @@ -26,7 +26,7 @@ namespace openscenario_interpreter inline namespace syntax { /* - RelativeSpeedCondition 1.3.1 + RelativeSpeedCondition (OpenSCENARIO XML 1.3.1) The current relative speed of a triggering entity/entities to a reference entity is compared to a given value. The logical operator used for the diff --git a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/speed_condition.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/speed_condition.hpp index 9c2bf1ffb92..f64c7499051 100644 --- a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/speed_condition.hpp +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/speed_condition.hpp @@ -15,6 +15,7 @@ #ifndef OPENSCENARIO_INTERPRETER__SYNTAX__SPEED_CONDITION_HPP_ #define OPENSCENARIO_INTERPRETER__SYNTAX__SPEED_CONDITION_HPP_ +#include #include #include #include @@ -63,6 +64,8 @@ struct SpeedCondition : private Scope, private SimulatorCore::ConditionEvaluatio std::vector> results; // for description + static inline auto compatibility = Compatibility::legacy; + explicit SpeedCondition(const pugi::xml_node &, Scope &, const TriggeringEntities &); auto description() const -> String; @@ -70,7 +73,8 @@ struct SpeedCondition : private Scope, private SimulatorCore::ConditionEvaluatio static auto evaluate(const Entities *, const Entity &) -> Eigen::Vector3d; static auto evaluate( - const Entities *, const Entity &, const std::optional &) -> double; + const Entities *, const Entity &, const std::optional &, + const Compatibility = Compatibility::legacy) -> double; auto evaluate() -> Object; }; diff --git a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/time_to_collision_condition.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/time_to_collision_condition.hpp new file mode 100644 index 00000000000..3dc68ba3cd9 --- /dev/null +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/time_to_collision_condition.hpp @@ -0,0 +1,186 @@ +// 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 OPENSCENARIO_INTERPRETER__SYNTAX__TIME_TO_COLLISION_CONDITION_HPP_ +#define OPENSCENARIO_INTERPRETER__SYNTAX__TIME_TO_COLLISION_CONDITION_HPP_ + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace openscenario_interpreter +{ +inline namespace syntax +{ +/* + TimeToCollisionCondition (OpenSCENARIO XML 1.3.1) + + The currently predicted time to collision of a triggering entity/entities + and either a reference entity or an explicit position is compared to a given + time value. Time to collision is calculated as the distance divided by the + relative speed. Acceleration of entities is not taken into consideration. + For the relative speed calculation the same coordinate system and relative + distance type applies as for the distance calculation. If the relative speed + is negative, which means the entity is moving away from the position / the + entities are moving away from each other, then the time to collision cannot + be predicted and the condition evaluates to false. The logical operator for + comparison is defined by the rule attribute. The property "alongRoute" is + deprecated. If "coordinateSystem" or "relativeDistanceType" are set, + "alongRoute" is ignored. + + + + + + + + + deprecated + + + + + + + + + + +*/ +struct TimeToCollisionCondition : private Scope, private SimulatorCore::ConditionEvaluation +{ + const TimeToCollisionConditionTarget time_to_collision_condition_target; + + const Boolean freespace; + + const Rule rule; + + const Double value; + + const RelativeDistanceType relative_distance_type; + + const CoordinateSystem coordinate_system; + + const RoutingAlgorithm routing_algorithm; + + const TriggeringEntities triggering_entities; + + std::vector> evaluations; + + explicit TimeToCollisionCondition( + const pugi::xml_node & node, Scope & scope, const TriggeringEntities & triggering_entities) + : Scope(scope), + time_to_collision_condition_target( + readElement("TimeToCollisionConditionTarget", node, scope)), + freespace(readAttribute("freespace", node, scope)), + rule(readAttribute("rule", node, scope)), + value(readAttribute("value", node, scope)), + relative_distance_type( + readAttribute("relativeDistanceType", node, scope)), + coordinate_system( + readAttribute("coordinateSystem", node, scope, CoordinateSystem::entity)), + routing_algorithm(readAttribute( + "routingAlgorithm", node, scope, RoutingAlgorithm::undefined)), + triggering_entities(triggering_entities), + evaluations(triggering_entities.entity_refs.size(), {Double::nan()}) + { + } + + auto description() const + { + auto description = std::stringstream(); + + description << triggering_entities.description() << "'s time-to-collision to given "; + + if (time_to_collision_condition_target.is()) { + description << " entity " << time_to_collision_condition_target.as(); + } else { + description << " position"; + } + + description << " = "; + + print_to(description, evaluations); + + description << " " << rule << " " << value << "?"; + + return description.str(); + } + + static auto evaluate( + const Entities * entities, const Entity & triggering_entity, + const TimeToCollisionConditionTarget & time_to_collision_condition_target, + CoordinateSystem coordinate_system, RelativeDistanceType relative_distance_type, + RoutingAlgorithm routing_algorithm, Boolean freespace) + { + auto distance = [&]() { + if (time_to_collision_condition_target.is()) { + return RelativeDistanceCondition::evaluate( + entities, triggering_entity, time_to_collision_condition_target.as(), + coordinate_system, relative_distance_type, routing_algorithm, freespace); + } else { + return DistanceCondition::evaluate( + entities, triggering_entity, time_to_collision_condition_target.as(), + coordinate_system, relative_distance_type, routing_algorithm, freespace); + } + }; + + auto speed = [&]() { + auto directional_dimension = [&]() { + switch (relative_distance_type) { + case RelativeDistanceType::longitudinal: + return std::optional(DirectionalDimension::longitudinal); + case RelativeDistanceType::lateral: + return std::optional(DirectionalDimension::lateral); + default: + case RelativeDistanceType::euclidianDistance: + return std::optional(std::nullopt); + }; + }; + if (time_to_collision_condition_target.is()) { + return RelativeSpeedCondition::evaluate( + entities, triggering_entity, time_to_collision_condition_target.as(), + directional_dimension()); + } else { + return SpeedCondition::evaluate( + entities, triggering_entity, directional_dimension(), Compatibility::standard); + } + }; + + return distance() / std::max(speed(), 0.0); + } + + auto evaluate() + { + evaluations.clear(); + + return asBoolean(triggering_entities.apply([this](const auto & triggering_entity) { + evaluations.push_back(triggering_entity.apply([this](const auto & triggering_entity) { + return evaluate( + global().entities, triggering_entity, time_to_collision_condition_target, + coordinate_system, relative_distance_type, routing_algorithm, freespace); + })); + return not evaluations.back().size() or std::invoke(rule, evaluations.back(), value).min(); + })); + } +}; +} // namespace syntax +} // namespace openscenario_interpreter + +#endif // OPENSCENARIO_INTERPRETER__SYNTAX__TIME_TO_COLLISION_CONDITION_HPP_ diff --git a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/time_to_collision_condition_target.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/time_to_collision_condition_target.hpp new file mode 100644 index 00000000000..8e15f1f6f3c --- /dev/null +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/time_to_collision_condition_target.hpp @@ -0,0 +1,45 @@ +// 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 OPENSCENARIO_INTERPRETER__SYNTAX__TIME_TO_COLLISION_CONDITION_TARGET_HPP_ +#define OPENSCENARIO_INTERPRETER__SYNTAX__TIME_TO_COLLISION_CONDITION_TARGET_HPP_ + +#include +#include + +namespace openscenario_interpreter +{ +inline namespace syntax +{ +/* + TimeToCollisionConditionTarget (OpenSCENARIO XML 1.3.1) + + Target position used in the TimeToCollisionCondition. Can be defined as + either an explicit position, or the position of a reference entity. + + + + + + + +*/ +struct TimeToCollisionConditionTarget : public ComplexType +{ + explicit TimeToCollisionConditionTarget(const pugi::xml_node &, Scope &); +}; +} // namespace syntax +} // namespace openscenario_interpreter + +#endif // OPENSCENARIO_INTERPRETER__SYNTAX__TIME_TO_COLLISION_CONDITION_TARGET_HPP_ diff --git a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/trigger.hpp b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/trigger.hpp index 37c798576e0..3f7418de274 100644 --- a/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/trigger.hpp +++ b/openscenario/openscenario_interpreter/include/openscenario_interpreter/syntax/trigger.hpp @@ -52,6 +52,9 @@ struct Trigger : public std::list auto activeConditionGroupDescription() const -> std::vector>; auto evaluate() -> Object; + + // Utility function for some default triggers that are always evaluated to be true + static auto truthy() noexcept -> Trigger; }; auto operator<<(boost::json::object &, const Trigger &) -> boost::json::object &; diff --git a/openscenario/openscenario_interpreter/package.xml b/openscenario/openscenario_interpreter/package.xml index 189fc370650..bd4daf1f0bb 100644 --- a/openscenario/openscenario_interpreter/package.xml +++ b/openscenario/openscenario_interpreter/package.xml @@ -2,7 +2,7 @@ openscenario_interpreter - 7.0.0 + 7.3.5 OpenSCENARIO 1.2.0 interpreter package for Autoware Tatsuya Yamasaki Apache License 2.0 diff --git a/openscenario/openscenario_interpreter/src/compatibility.cpp b/openscenario/openscenario_interpreter/src/compatibility.cpp new file mode 100644 index 00000000000..617a5bcc08b --- /dev/null +++ b/openscenario/openscenario_interpreter/src/compatibility.cpp @@ -0,0 +1,38 @@ +// 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 openscenario_interpreter +{ +auto operator>>(std::istream & input, Compatibility & compatiblity) -> std::istream & +{ + if (auto token = std::string(); input >> token) { + if (token == "legacy") { + compatiblity = Compatibility::legacy; + return input; + } else if (token == "standard") { + compatiblity = Compatibility::standard; + return input; + } else { + throw Error( + "Unknown compatiblity ", std::quoted(token), + " was specified. It must be \"legacy\" or \"standard\"."); + } + } else { + compatiblity = Compatibility::legacy; + return input; + } +} +} // namespace openscenario_interpreter diff --git a/openscenario/openscenario_interpreter/src/openscenario_interpreter.cpp b/openscenario/openscenario_interpreter/src/openscenario_interpreter.cpp index d2f7c910cc0..dae7d8fd8df 100644 --- a/openscenario/openscenario_interpreter/src/openscenario_interpreter.cpp +++ b/openscenario/openscenario_interpreter/src/openscenario_interpreter.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -49,6 +50,10 @@ Interpreter::Interpreter(const rclcpp::NodeOptions & options) DECLARE_PARAMETER(output_directory); DECLARE_PARAMETER(publish_empty_context); DECLARE_PARAMETER(record); + + declare_parameter("speed_condition", "legacy"); + SpeedCondition::compatibility = + boost::lexical_cast(get_parameter("speed_condition").as_string()); } Interpreter::~Interpreter() {} @@ -70,7 +75,6 @@ auto Interpreter::makeCurrentConfiguration() const -> traffic_simulator::Configu auto configuration = traffic_simulator::Configuration( logic_file.isDirectory() ? logic_file : logic_file.filepath.parent_path()); { - configuration.auto_sink = false; configuration.scenario_path = osc_path; // XXX DIRTY HACK!!! diff --git a/openscenario/openscenario_interpreter/src/syntax/act.cpp b/openscenario/openscenario_interpreter/src/syntax/act.cpp index 5ad07cf8ac8..0aa2c9f5e69 100644 --- a/openscenario/openscenario_interpreter/src/syntax/act.cpp +++ b/openscenario/openscenario_interpreter/src/syntax/act.cpp @@ -24,8 +24,8 @@ inline namespace syntax Act::Act(const pugi::xml_node & node, Scope & scope) : Scope(readAttribute("name", node, scope), scope), StoryboardElement( - readElement("StartTrigger", node, local()), - readElement("StopTrigger", node, local())) // NOTE: Optional element + readElement("StartTrigger", node, local(), Trigger::truthy()), + readElement("StopTrigger", node, local())) { traverse<1, unbounded>(node, "ManeuverGroup", [&](auto && node) { return elements.push_back(readStoryboardElement(node, local())); diff --git a/openscenario/openscenario_interpreter/src/syntax/entity_condition.cpp b/openscenario/openscenario_interpreter/src/syntax/entity_condition.cpp index 911b17c12de..554c5259963 100644 --- a/openscenario/openscenario_interpreter/src/syntax/entity_condition.cpp +++ b/openscenario/openscenario_interpreter/src/syntax/entity_condition.cpp @@ -24,6 +24,7 @@ #include #include #include +#include namespace openscenario_interpreter { @@ -38,7 +39,7 @@ EntityCondition::EntityCondition( std::make_pair( "CollisionCondition", [&](const auto & node) { return make< CollisionCondition>(node, scope, triggering_entities); }), std::make_pair( "OffroadCondition", [&](const auto & node) { throw UNSUPPORTED_ELEMENT_SPECIFIED(node.name()); return unspecified; }), std::make_pair( "TimeHeadwayCondition", [&](const auto & node) { return make< TimeHeadwayCondition>(node, scope, triggering_entities); }), - std::make_pair( "TimeToCollisionCondition", [&](const auto & node) { throw UNSUPPORTED_ELEMENT_SPECIFIED(node.name()); return unspecified; }), + std::make_pair( "TimeToCollisionCondition", [&](const auto & node) { return make< TimeToCollisionCondition>(node, scope, triggering_entities); }), std::make_pair( "AccelerationCondition", [&](const auto & node) { return make< AccelerationCondition>(node, scope, triggering_entities); }), std::make_pair( "StandStillCondition", [&](const auto & node) { return make< StandStillCondition>(node, scope, triggering_entities); }), std::make_pair( "SpeedCondition", [&](const auto & node) { return make< SpeedCondition>(node, scope, triggering_entities); }), diff --git a/openscenario/openscenario_interpreter/src/syntax/event.cpp b/openscenario/openscenario_interpreter/src/syntax/event.cpp index 9b9ffc19dd4..0643a086a9a 100644 --- a/openscenario/openscenario_interpreter/src/syntax/event.cpp +++ b/openscenario/openscenario_interpreter/src/syntax/event.cpp @@ -26,7 +26,7 @@ Event::Event(const pugi::xml_node & node, Scope & scope, Maneuver & maneuver) StoryboardElement( readAttribute("maximumExecutionCount", node, local(), UnsignedInt(1)), // If there is no "StartTrigger" in the "Event", the default StartTrigger that always returns true is used. - readElement("StartTrigger", node, local(), Trigger({ConditionGroup()}))), + readElement("StartTrigger", node, local(), Trigger::truthy())), priority(readAttribute("priority", node, local())), parent_maneuver(maneuver) { diff --git a/openscenario/openscenario_interpreter/src/syntax/speed_condition.cpp b/openscenario/openscenario_interpreter/src/syntax/speed_condition.cpp index cc8d64b0c41..5e2f8e34038 100644 --- a/openscenario/openscenario_interpreter/src/syntax/speed_condition.cpp +++ b/openscenario/openscenario_interpreter/src/syntax/speed_condition.cpp @@ -58,7 +58,8 @@ auto SpeedCondition::evaluate(const Entities * entities, const Entity & triggeri auto SpeedCondition::evaluate( const Entities * entities, const Entity & triggering_entity, - const std::optional & direction) -> double + const std::optional & direction, const Compatibility compatibility) + -> double { if (const Eigen::Vector3d v = evaluate(entities, triggering_entity); direction) { switch (*direction) { @@ -71,7 +72,13 @@ auto SpeedCondition::evaluate( return v.z(); } } else { - return v.norm(); + switch (compatibility) { + default: + case Compatibility::legacy: + return v.x(); + case Compatibility::standard: + return v.norm(); + } } } @@ -81,7 +88,7 @@ auto SpeedCondition::evaluate() -> Object return asBoolean(triggering_entities.apply([&](const auto & triggering_entity) { results.push_back(triggering_entity.apply([&](const auto & triggering_entity) { - return evaluate(global().entities, triggering_entity, direction); + return evaluate(global().entities, triggering_entity, direction, compatibility); })); return not results.back().size() or std::invoke(rule, results.back(), value).min(); })); diff --git a/openscenario/openscenario_interpreter/src/syntax/time_to_collision_condition_target.cpp b/openscenario/openscenario_interpreter/src/syntax/time_to_collision_condition_target.cpp new file mode 100644 index 00000000000..829793c7a54 --- /dev/null +++ b/openscenario/openscenario_interpreter/src/syntax/time_to_collision_condition_target.cpp @@ -0,0 +1,38 @@ +// 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 +#include +#include +#include +#include + +namespace openscenario_interpreter +{ +inline namespace syntax +{ +TimeToCollisionConditionTarget::TimeToCollisionConditionTarget( + const pugi::xml_node & node, Scope & scope) +// clang-format off +: ComplexType(choice(node, + std::make_pair( "Position", [&](auto && node) { return make(std::forward(node), scope); }), + std::make_pair("EntityRef", [&](auto && node) { return make< Entity>(std::forward(node), scope); }))) +// clang-format on +{ + if (is()) { + throw SyntaxError("EntitySelection is not allowed in TimeToCollisionConditionTarget.entityRef"); + } +} +} // namespace syntax +} // namespace openscenario_interpreter diff --git a/openscenario/openscenario_interpreter/src/syntax/trigger.cpp b/openscenario/openscenario_interpreter/src/syntax/trigger.cpp index 51ea2dd41b6..80cb517f923 100644 --- a/openscenario/openscenario_interpreter/src/syntax/trigger.cpp +++ b/openscenario/openscenario_interpreter/src/syntax/trigger.cpp @@ -24,6 +24,8 @@ Trigger::Trigger(const pugi::xml_node & node, Scope & scope) traverse<0, unbounded>(node, "ConditionGroup", [&](auto && node) { emplace_back(node, scope); }); } +auto Trigger::truthy() noexcept -> Trigger { return Trigger{{ConditionGroup()}}; } + auto Trigger::evaluate() -> Object { /* ------------------------------------------------------------------------- diff --git a/openscenario/openscenario_interpreter/src/syntax/user_defined_value_condition.cpp b/openscenario/openscenario_interpreter/src/syntax/user_defined_value_condition.cpp index f7c0bb10c68..b9cfae284bc 100644 --- a/openscenario/openscenario_interpreter/src/syntax/user_defined_value_condition.cpp +++ b/openscenario/openscenario_interpreter/src/syntax/user_defined_value_condition.cpp @@ -147,8 +147,18 @@ UserDefinedValueCondition::UserDefinedValueCondition(const pugi::xml_node & node std::make_pair( "currentTurnIndicatorsState", [result]() { - return make(boost::lexical_cast( - asFieldOperatorApplication(result.str(1)).getTurnIndicatorsCommand())); + switch (asFieldOperatorApplication(result.str(1)).getTurnIndicatorsCommand().command) { + case autoware_vehicle_msgs::msg::TurnIndicatorsCommand::DISABLE: + return make("DISABLE"); + case autoware_vehicle_msgs::msg::TurnIndicatorsCommand::ENABLE_LEFT: + return make("ENABLE_LEFT"); + case autoware_vehicle_msgs::msg::TurnIndicatorsCommand::ENABLE_RIGHT: + return make("ENABLE_RIGHT"); + case autoware_vehicle_msgs::msg::TurnIndicatorsCommand::NO_COMMAND: + return make("NO_COMMAND"); + default: + return make(); + } }), }; evaluate_value = dispatch.at(result.str(2)); // XXX catch diff --git a/openscenario/openscenario_interpreter_example/CHANGELOG.rst b/openscenario/openscenario_interpreter_example/CHANGELOG.rst index 58277e25f72..fd8a0324aab 100644 --- a/openscenario/openscenario_interpreter_example/CHANGELOG.rst +++ b/openscenario/openscenario_interpreter_example/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package openscenario_interpreter_example * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support diff --git a/openscenario/openscenario_interpreter_example/package.xml b/openscenario/openscenario_interpreter_example/package.xml index 7b79d5418f6..e77c7ee6ad7 100644 --- a/openscenario/openscenario_interpreter_example/package.xml +++ b/openscenario/openscenario_interpreter_example/package.xml @@ -3,7 +3,7 @@ openscenario_interpreter_example - 7.0.0 + 7.3.5 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 3a0dbbbd85b..38fb4c7d955 100644 --- a/openscenario/openscenario_interpreter_msgs/CHANGELOG.rst +++ b/openscenario/openscenario_interpreter_msgs/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package openscenario_interpreter_msgs * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/openscenario/openscenario_interpreter_msgs/package.xml b/openscenario/openscenario_interpreter_msgs/package.xml index a2b749e70d0..a98c5eb65b0 100644 --- a/openscenario/openscenario_interpreter_msgs/package.xml +++ b/openscenario/openscenario_interpreter_msgs/package.xml @@ -2,7 +2,7 @@ openscenario_interpreter_msgs - 7.0.0 + 7.3.5 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 45aa124d2ab..32b7662e190 100644 --- a/openscenario/openscenario_preprocessor/CHANGELOG.rst +++ b/openscenario/openscenario_preprocessor/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package openscenario_preprocessor * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/openscenario/openscenario_preprocessor/package.xml b/openscenario/openscenario_preprocessor/package.xml index 8e1cf8e1c32..dbdb0806b62 100644 --- a/openscenario/openscenario_preprocessor/package.xml +++ b/openscenario/openscenario_preprocessor/package.xml @@ -3,7 +3,7 @@ openscenario_preprocessor - 7.0.0 + 7.3.5 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 cd4d1c1d339..f1fbbfd1283 100644 --- a/openscenario/openscenario_preprocessor_msgs/CHANGELOG.rst +++ b/openscenario/openscenario_preprocessor_msgs/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package openscenario_preprocessor_msgs * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/openscenario/openscenario_preprocessor_msgs/package.xml b/openscenario/openscenario_preprocessor_msgs/package.xml index f944de3e947..f45bf0f082d 100644 --- a/openscenario/openscenario_preprocessor_msgs/package.xml +++ b/openscenario/openscenario_preprocessor_msgs/package.xml @@ -2,7 +2,7 @@ openscenario_preprocessor_msgs - 7.0.0 + 7.3.5 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 1fc991b6a01..779618ec6d5 100644 --- a/openscenario/openscenario_utility/CHANGELOG.rst +++ b/openscenario/openscenario_utility/CHANGELOG.rst @@ -24,6 +24,132 @@ Changelog for package openscenario_utility * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/openscenario/openscenario_utility/package.xml b/openscenario/openscenario_utility/package.xml index baf21f54724..a47baf3892b 100644 --- a/openscenario/openscenario_utility/package.xml +++ b/openscenario/openscenario_utility/package.xml @@ -2,7 +2,7 @@ openscenario_utility - 7.0.0 + 7.3.5 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 cec132f84ec..200ed160363 100644 --- a/openscenario/openscenario_validator/CHANGELOG.rst +++ b/openscenario/openscenario_validator/CHANGELOG.rst @@ -10,6 +10,132 @@ Changelog for package openscenario_validator * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/openscenario/openscenario_validator/package.xml b/openscenario/openscenario_validator/package.xml index fc8cccc8550..497198557e8 100644 --- a/openscenario/openscenario_validator/package.xml +++ b/openscenario/openscenario_validator/package.xml @@ -2,7 +2,7 @@ openscenario_validator - 7.0.0 + 7.3.5 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 92bcf0fc007..db1a5c86dd8 100644 --- a/rviz_plugins/openscenario_visualization/CHANGELOG.rst +++ b/rviz_plugins/openscenario_visualization/CHANGELOG.rst @@ -21,6 +21,136 @@ Changelog for package openscenario_visualization * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge pull request `#1470 `_ from tier4/fix/snor-cloud-issue-8-1 + Fix/sonor cloud issue 8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Remove the commented out code. + Replace this declaration by a structured binding declaration. +* Contributors: Masaya Kataoka, Taiga, Taiga Takano + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/rviz_plugins/openscenario_visualization/package.xml b/rviz_plugins/openscenario_visualization/package.xml index f400f471349..4c94d14dc72 100644 --- a/rviz_plugins/openscenario_visualization/package.xml +++ b/rviz_plugins/openscenario_visualization/package.xml @@ -2,7 +2,7 @@ openscenario_visualization - 7.0.0 + 7.3.5 Visualization tools for simulation results Masaya Kataoka Kyoichi Sugahara diff --git a/rviz_plugins/openscenario_visualization/src/openscenario_visualization_condition_groups_plugin/openscenario_visualization_condition_groups_plugin.cpp b/rviz_plugins/openscenario_visualization/src/openscenario_visualization_condition_groups_plugin/openscenario_visualization_condition_groups_plugin.cpp index 93e8ef1a4f0..2c9cf6dd306 100644 --- a/rviz_plugins/openscenario_visualization/src/openscenario_visualization_condition_groups_plugin/openscenario_visualization_condition_groups_plugin.cpp +++ b/rviz_plugins/openscenario_visualization/src/openscenario_visualization_condition_groups_plugin/openscenario_visualization_condition_groups_plugin.cpp @@ -171,7 +171,6 @@ void VisualizationConditionGroupsDisplay::processMessage(const Context::ConstSha QPainter painter(&hud); painter.setRenderHint(QPainter::Antialiasing, true); - // QColor text_color = property_text_color_->getColor(); QColor text_color(property_text_color_->getColor()); text_color.setAlpha(255); painter.setPen(QPen(text_color, 2, Qt::SolidLine)); 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 1a482062317..c6d26f61b5b 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,132 @@ Changelog for package real_time_factor_control_rviz_plugin * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support 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 65fceb3047c..41f06a4ee79 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 - 7.0.0 + 7.3.5 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 266932b7f88..1907f27a9ff 100644 --- a/scenario_simulator_v2/CHANGELOG.rst +++ b/scenario_simulator_v2/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package scenario_simulator_v2 * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/scenario_simulator_v2/package.xml b/scenario_simulator_v2/package.xml index 0845fa1e7eb..eb685eeeeeb 100644 --- a/scenario_simulator_v2/package.xml +++ b/scenario_simulator_v2/package.xml @@ -2,7 +2,7 @@ scenario_simulator_v2 - 7.0.0 + 7.3.5 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 b699f100bb5..47a0d0a36c1 100644 --- a/simulation/behavior_tree_plugin/CHANGELOG.rst +++ b/simulation/behavior_tree_plugin/CHANGELOG.rst @@ -21,6 +21,142 @@ Changelog for package behavior_tree_plugin * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge pull request `#1481 `_ from tier4/feature/multi-level-lanelet-support + Feature/multi level lanelet support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'feature/multi-level-lanelet-support' of https://github.com/tier4/scenario_simulator_v2 into feature/multi-level-lanelet-support +* ref(traffic_simulator, simple_sensor_simulator): refactor altitude checks +* Refactor code to improve readability based on SonarQube findings +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* [RJD-1369] Improve Collision Solving for Multi-Level Support + - Enhanced BehaviorTree to consider altitude when detecting potential obstacles, + allowing to ignore objects located at different altitudes. + - Modified the detection sensor by introducing Ego plane determination to exclude objects below the Ego plane, + preventing unnecessary slowing or stopping caused by incorrect detections. +* Contributors: Dawid Moszynski, Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/simulation/behavior_tree_plugin/include/behavior_tree_plugin/action_node.hpp b/simulation/behavior_tree_plugin/include/behavior_tree_plugin/action_node.hpp index 4bcba6c41cc..dc5d2f1a8e1 100644 --- a/simulation/behavior_tree_plugin/include/behavior_tree_plugin/action_node.hpp +++ b/simulation/behavior_tree_plugin/include/behavior_tree_plugin/action_node.hpp @@ -139,6 +139,8 @@ class ActionNode : public BT::ActionNodeBase -> std::vector; auto getConflictingEntityStatusOnLane(const lanelet::Ids & route_lanelets) const -> std::vector; + auto isOtherEntityAtConsideredAltitude( + const traffic_simulator::CanonicalizedEntityStatus & entity_status) const -> bool; }; } // namespace entity_behavior diff --git a/simulation/behavior_tree_plugin/package.xml b/simulation/behavior_tree_plugin/package.xml index 862137bf157..96cd2d00545 100644 --- a/simulation/behavior_tree_plugin/package.xml +++ b/simulation/behavior_tree_plugin/package.xml @@ -2,7 +2,7 @@ behavior_tree_plugin - 7.0.0 + 7.3.5 Behavior tree plugin for traffic_simulator masaya Apache 2.0 diff --git a/simulation/behavior_tree_plugin/src/action_node.cpp b/simulation/behavior_tree_plugin/src/action_node.cpp index cbe86b1c649..86db4b18d41 100644 --- a/simulation/behavior_tree_plugin/src/action_node.cpp +++ b/simulation/behavior_tree_plugin/src/action_node.cpp @@ -316,7 +316,7 @@ auto ActionNode::getDistanceToTargetEntityPolygon( double width_extension_left, double length_extension_front, double length_extension_rear) const -> std::optional { - if (status.laneMatchingSucceed()) { + if (status.laneMatchingSucceed() && isOtherEntityAtConsideredAltitude(status)) { const auto polygon = math::geometry::transformPoints( status.getMapPose(), math::geometry::getPointsFromBbox( status.getBoundingBox(), width_extension_right, width_extension_left, @@ -326,6 +326,13 @@ auto ActionNode::getDistanceToTargetEntityPolygon( return std::nullopt; } +auto ActionNode::isOtherEntityAtConsideredAltitude( + const traffic_simulator::CanonicalizedEntityStatus & entity_status) const -> bool +{ + return hdmap_utils->isAltitudeMatching( + canonicalized_entity_status->getAltitude(), entity_status.getAltitude()); +} + auto ActionNode::getDistanceToConflictingEntity( const lanelet::Ids & route_lanelets, const math::geometry::CatmullRomSplineInterface & spline) const -> std::optional diff --git a/simulation/do_nothing_plugin/CHANGELOG.rst b/simulation/do_nothing_plugin/CHANGELOG.rst index b54d16b55e4..1c4c69cac35 100644 --- a/simulation/do_nothing_plugin/CHANGELOG.rst +++ b/simulation/do_nothing_plugin/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package do_nothing_plugin * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/simulation/do_nothing_plugin/package.xml b/simulation/do_nothing_plugin/package.xml index 01ad3e54707..9db341168e1 100644 --- a/simulation/do_nothing_plugin/package.xml +++ b/simulation/do_nothing_plugin/package.xml @@ -2,7 +2,7 @@ do_nothing_plugin - 7.0.0 + 7.3.5 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 ca1c8360096..5cf69bb503f 100644 --- a/simulation/simple_sensor_simulator/CHANGELOG.rst +++ b/simulation/simple_sensor_simulator/CHANGELOG.rst @@ -21,6 +21,155 @@ Changelog for package simple_sensor_simulator * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge pull request `#1488 `_ from tier4/refactor/concealer-1 + Refactor/concealer 1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Remove `getAcceleration`, `getSteeringAngle`, `getVelocity` and `getGearSign` +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Remove member function `AutowareUniverse::set` +* Remove class `concealer::Autoware` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge pull request `#1481 `_ from tier4/feature/multi-level-lanelet-support + Feature/multi level lanelet support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* fix(simple_sensor_simulator): Fix if condition by adding negation to ensure proper logic +* Remove unused function and update comment +* fix(simple_senor_simulator): fix after Szymon discussion +* fix(simple_sensor_simulator): fix after detection_sensor refactor +* ref(traffic_simulator, simple_sensor_simulator): refactor altitude checks +* Refactor code to improve readability based on SonarQube findings +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Removed unrecognized words because spell-check flagged them as invalid +* [RJD-1369] Improve Collision Solving for Multi-Level Support + - Enhanced BehaviorTree to consider altitude when detecting potential obstacles, + allowing to ignore objects located at different altitudes. + - Modified the detection sensor by introducing Ego plane determination to exclude objects below the Ego plane, + preventing unnecessary slowing or stopping caused by incorrect detections. +* Contributors: Dawid Moszynski, Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge pull request `#1484 `_ from tier4/RJD-736/autoware_msgs_support_and_localization_sim_mode_support + Rjd 736/autoware msgs support and localization sim mode support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Add launch argument `simulate_localization` to `scenario_test_runner` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support 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 ec4dcf6ef18..0aff66be710 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,7 +17,10 @@ #include +#include +#include #include +#include #include #include #include @@ -48,6 +51,9 @@ class DetectionSensorBase const std::vector &) const -> std::vector::const_iterator; + auto isOnOrAboveEgoPlane( + const geometry_msgs::Pose & npc_pose, const geometry_msgs::Pose & ego_pose) -> bool; + public: virtual ~DetectionSensorBase() = default; @@ -55,6 +61,10 @@ class DetectionSensorBase const double current_simulation_time, const std::vector &, const rclcpp::Time & current_ros_time, const std::vector & lidar_detected_entities) = 0; + +private: + std::optional ego_plane_opt_{std::nullopt}; + std::optional ego_plane_pose_opt_{std::nullopt}; }; template diff --git a/simulation/simple_sensor_simulator/include/simple_sensor_simulator/vehicle_simulation/ego_entity_simulation.hpp b/simulation/simple_sensor_simulator/include/simple_sensor_simulator/vehicle_simulation/ego_entity_simulation.hpp index 9ba9aae8869..8e09148b912 100644 --- a/simulation/simple_sensor_simulator/include/simple_sensor_simulator/vehicle_simulation/ego_entity_simulation.hpp +++ b/simulation/simple_sensor_simulator/include/simple_sensor_simulator/vehicle_simulation/ego_entity_simulation.hpp @@ -15,7 +15,7 @@ #ifndef TRAFFIC_SIMULATOR__VEHICLE_SIMULATION__EGO_ENTITY_SIMULATION_HPP_ #define TRAFFIC_SIMULATOR__VEHICLE_SIMULATION__EGO_ENTITY_SIMULATION_HPP_ -#include +#include #include #include #include @@ -40,7 +40,7 @@ enum class VehicleModelType { class EgoEntitySimulation { public: - const std::unique_ptr autoware; + const std::unique_ptr autoware; private: const VehicleModelType vehicle_model_type_; diff --git a/simulation/simple_sensor_simulator/package.xml b/simulation/simple_sensor_simulator/package.xml index 30d0cc939da..2ff7d5b7519 100644 --- a/simulation/simple_sensor_simulator/package.xml +++ b/simulation/simple_sensor_simulator/package.xml @@ -1,7 +1,7 @@ simple_sensor_simulator - 7.0.0 + 7.3.5 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 dc6c1837f0d..cf5925688ff 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 @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include #include #include @@ -62,6 +64,51 @@ auto DetectionSensorBase::findEgoEntityStatusToWhichThisSensorIsAttached( } } +auto DetectionSensorBase::isOnOrAboveEgoPlane( + const geometry_msgs::Pose & entity_pose, const geometry_msgs::Pose & ego_pose) -> bool +{ + /* + The threshold for detecting significant changes in ego vehicle's orientation (unit: radian). + The value determines the minimum angular difference required to consider the ego orientation + as "changed". + + There is no technical basis for this value, it was determined based on experiments. + */ + constexpr static double rotation_threshold_ = 0.04; + /* + Maximum downward offset in Z-axis relative to the ego position (unit: meter). + If the NPC is lower than this offset relative to the ego position, + the NPC will be excluded from detection + + There is no technical basis for this value, it was determined based on experiments. + */ + constexpr static double max_downward_z_offset_ = 1.0; + + const auto hasEgoOrientationChanged = [this](const geometry_msgs::msg::Pose & ego_pose_ros) { + return math::geometry::getAngleDifference( + ego_pose_ros.orientation, ego_plane_pose_opt_->orientation) > rotation_threshold_; + }; + + // if other entity is at the same altitude as Ego or within max_downward_z_offset_ below Ego + if (entity_pose.position().z() >= (ego_pose.position().z() - max_downward_z_offset_)) { + return true; + // otherwise check if other entity is above ego plane + } else { + // update ego plane if needed + geometry_msgs::msg::Pose ego_pose_ros; + simulation_interface::toMsg(ego_pose, ego_pose_ros); + if (!ego_plane_opt_ || !ego_plane_pose_opt_ || hasEgoOrientationChanged(ego_pose_ros)) { + ego_plane_opt_.emplace( + ego_pose_ros.position, math::geometry::getNormalVector(ego_pose_ros.orientation)); + ego_plane_pose_opt_ = ego_pose_ros; + } + + geometry_msgs::msg::Pose entity_pose_ros; + simulation_interface::toMsg(entity_pose, entity_pose_ros); + return ego_plane_opt_->offset(entity_pose_ros.position) >= 0.0; + } +} + template auto make(From &&...) -> To; @@ -321,6 +368,7 @@ 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 + isOnOrAboveEgoPlane(status.pose(), ego_entity_status->pose()) and (configuration_.detect_all_objects_in_range() or std::find( lidar_detected_entities.begin(), lidar_detected_entities.end(), status.name()) != diff --git a/simulation/simple_sensor_simulator/src/vehicle_simulation/ego_entity_simulation.cpp b/simulation/simple_sensor_simulator/src/vehicle_simulation/ego_entity_simulation.cpp index 2452d66f732..b8c0fe8362f 100644 --- a/simulation/simple_sensor_simulator/src/vehicle_simulation/ego_entity_simulation.cpp +++ b/simulation/simple_sensor_simulator/src/vehicle_simulation/ego_entity_simulation.cpp @@ -41,7 +41,8 @@ EgoEntitySimulation::EgoEntitySimulation( const traffic_simulator_msgs::msg::VehicleParameters & parameters, double step_time, const std::shared_ptr & hdmap_utils, const rclcpp::Parameter & use_sim_time, const bool consider_acceleration_by_road_slope) -: autoware(std::make_unique()), +: autoware( + std::make_unique(getParameter("simulate_localization"))), vehicle_model_type_(getVehicleModelType()), vehicle_model_ptr_(makeSimulationModel(vehicle_model_type_, step_time, parameters)), status_(initial_status, std::nullopt), @@ -176,15 +177,15 @@ auto EgoEntitySimulation::makeSimulationModel( auto EgoEntitySimulation::setAutowareStatus() -> void { - autoware->set([this]() { + autoware->current_acceleration.store([this]() { geometry_msgs::msg::Accel message; message.linear.x = vehicle_model_ptr_->getAx(); return message; }()); - autoware->set(status_.getMapPose()); + autoware->current_pose.store(status_.getMapPose()); - autoware->set(getCurrentTwist()); + autoware->current_twist.store(getCurrentTwist()); } void EgoEntitySimulation::requestSpeedChange(double value) @@ -307,20 +308,42 @@ void EgoEntitySimulation::update( auto acceleration_by_slope = calculateAccelerationBySlope(); + const auto [speed, acceleration, tire_angle, gear_sign, gear_command] = + autoware->getVehicleCommand(); + switch (vehicle_model_type_) { case VehicleModelType::DELAY_STEER_ACC: case VehicleModelType::DELAY_STEER_ACC_GEARED: case VehicleModelType::DELAY_STEER_MAP_ACC_GEARED: case VehicleModelType::IDEAL_STEER_ACC: case VehicleModelType::IDEAL_STEER_ACC_GEARED: - input(0) = autoware->getGearSign() * (autoware->getAcceleration() + acceleration_by_slope); - input(1) = autoware->getSteeringAngle(); + /* + TODO FIX THIS!!! + + THIS IS MAYBE INCORRECT. + + SHOULD BE + gear_sign * acceleration + acceleration_by_slope + OR + signed_acceleration + acceleration_by_slope + + Currently, acceleration is obtained as an unsigned value + (`acceleration`) and a signed value (`gear_sign`), but this is for + historical reasons and there is no longer any reason to do so. + + Therefore, when resolving this TODO comment, the assignee should + remove `gear_sign` from the tuple returned by + `AutowareUniverse::getVehicleCommand`, and at the same time change + `acceleration` to a signed value. + */ + input(0) = gear_sign * (acceleration + acceleration_by_slope); + input(1) = tire_angle; break; case VehicleModelType::DELAY_STEER_VEL: case VehicleModelType::IDEAL_STEER_VEL: - input(0) = autoware->getVelocity(); - input(1) = autoware->getSteeringAngle(); + input(0) = speed; + input(1) = tire_angle; break; default: @@ -328,7 +351,7 @@ void EgoEntitySimulation::update( "Unsupported vehicle_model_type ", toString(vehicle_model_type_), "specified"); } - vehicle_model_ptr_->setGear(autoware->getGearCommand().command); + vehicle_model_ptr_->setGear(gear_command); vehicle_model_ptr_->setInput(input); vehicle_model_ptr_->update(step_time); } diff --git a/simulation/simulation_interface/CHANGELOG.rst b/simulation/simulation_interface/CHANGELOG.rst index 773d73013ec..e4c7440adc2 100644 --- a/simulation/simulation_interface/CHANGELOG.rst +++ b/simulation/simulation_interface/CHANGELOG.rst @@ -21,6 +21,135 @@ Changelog for package simulation_interface * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* fix(traffic_simulator): revert clang changes +* ref(traffic_simulator, simple_sensor_simulator): refactor altitude checks +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Dawid Moszynski, Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support diff --git a/simulation/simulation_interface/package.xml b/simulation/simulation_interface/package.xml index 9cbff0ec53e..01661d060bf 100644 --- a/simulation/simulation_interface/package.xml +++ b/simulation/simulation_interface/package.xml @@ -2,7 +2,7 @@ simulation_interface - 7.0.0 + 7.3.5 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 ebe8a1143ae..4681820ff34 100644 --- a/simulation/traffic_simulator/CHANGELOG.rst +++ b/simulation/traffic_simulator/CHANGELOG.rst @@ -21,6 +21,162 @@ Changelog for package traffic_simulator * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge pull request `#1488 `_ from tier4/refactor/concealer-1 + Refactor/concealer 1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Remove class template `FieldOperatorApplicationFor` +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Remove member function `FieldOperatorApplication::restrictTargetSpeed` +* Remove class `concealer::Autoware` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge pull request `#1490 `_ from tier4/feature/is_in_intersection + Feature/is in intersection +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* add test case for isInIntersection function +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* add auto HdMapUtils::isInIntersection(const lanelet::Id lanelet_id) const -> bool function +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge pull request `#1481 `_ from tier4/feature/multi-level-lanelet-support + Feature/multi level lanelet support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* fix(traffic_simulator): revert clang changes +* ref(traffic_simulator, simple_sensor_simulator): refactor altitude checks +* Merge branch 'master' into feature/multi-level-lanelet-support +* [RJD-1370] Fix 3D Lanelet Matching Issue in cpp_mock_scenario + - Updated the makeRandomPose method to correctly support 3D lanelet matching. +* Fix an issue with unit tests - distanceTest +* Merge branch 'master' into feature/multi-level-lanelet-support +* Removed unrecognized words because spell-check flagged them as invalid +* [RJD-1369] Improve lanelet matching - 3D support + - Enhanced lanelet matching algorithm (`toLaneletPose` method) by incorporating lanelet altitude. + - Defined the `altitude_threshold` parameter that sets the maximum altitude difference to determine when an entity can be matched with a specific lanelet. +* Contributors: Dawid Moszynski, Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge pull request `#1484 `_ from tier4/RJD-736/autoware_msgs_support_and_localization_sim_mode_support + Rjd 736/autoware msgs support and localization sim mode support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Add launch argument `simulate_localization` to `scenario_test_runner` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge pull request `#1465 `_ from tier4/fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* fix(api): request enable autoware control +* Contributors: Kotaro Yoshimoto, satoshi-ota + +7.0.2 (2024-12-12) +------------------ +* Merge pull request `#1470 `_ from tier4/fix/snor-cloud-issue-8-1 + Fix/sonor cloud issue 8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Remove the commented out code. + Replace this declaration by a structured binding declaration. +* Contributors: Masaya Kataoka, Taiga, Taiga Takano + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support diff --git a/simulation/traffic_simulator/include/traffic_simulator/api/api.hpp b/simulation/traffic_simulator/include/traffic_simulator/api/api.hpp index bb74b7099a9..be13d11637e 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/api/api.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/api/api.hpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -72,15 +73,7 @@ class API node, entity_manager_ptr_->getHdmapUtils(), getROS2Parameter("architecture_type", "awf/universe/20240605"))), traffic_controller_ptr_(std::make_shared( - entity_manager_ptr_->getHdmapUtils(), [this]() { return API::getEntityNames(); }, - [this](const auto & entity_name) { - if (const auto entity = getEntity(entity_name)) { - return entity->getMapPose(); - } else { - THROW_SEMANTIC_ERROR("Entity ", std::quoted(entity_name), " does not exists."); - } - }, - [this](const auto & name) { return API::despawn(name); }, configuration.auto_sink)), + entity_manager_ptr_, configuration.auto_sink_entity_types)), clock_pub_(rclcpp::create_publisher( node, "/clock", rclcpp::QoS(rclcpp::KeepLast(1)).best_effort(), rclcpp::PublisherOptionsWithAllocator())), diff --git a/simulation/traffic_simulator/include/traffic_simulator/api/configuration.hpp b/simulation/traffic_simulator/include/traffic_simulator/api/configuration.hpp index 155fab255b9..22007c7c6bc 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/api/configuration.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/api/configuration.hpp @@ -21,6 +21,7 @@ #include #include #include +#include #include namespace traffic_simulator @@ -31,7 +32,7 @@ struct Configuration using Pathname = boost::filesystem::path; - bool auto_sink = true; + std::set auto_sink_entity_types = {}; bool verbose = false; diff --git a/simulation/traffic_simulator/include/traffic_simulator/data_type/entity_status.hpp b/simulation/traffic_simulator/include/traffic_simulator/data_type/entity_status.hpp index 68a781808a3..b1d07af341f 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/data_type/entity_status.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/data_type/entity_status.hpp @@ -54,6 +54,8 @@ class CanonicalizedEntityStatus auto getMapPose() const noexcept -> const geometry_msgs::msg::Pose &; auto setMapPose(const geometry_msgs::msg::Pose & pose) -> void; + auto getAltitude() const -> double; + auto getTwist() const noexcept -> const geometry_msgs::msg::Twist &; auto setTwist(const geometry_msgs::msg::Twist & twist) -> void; auto setLinearVelocity(double linear_velocity) -> void; diff --git a/simulation/traffic_simulator/include/traffic_simulator/entity/ego_entity.hpp b/simulation/traffic_simulator/include/traffic_simulator/entity/ego_entity.hpp index 69fc2a2de1a..91cab0f7f97 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/entity/ego_entity.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/entity/ego_entity.hpp @@ -17,7 +17,6 @@ #include #include -#include #include #include #include diff --git a/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp b/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp index 89c2bbec9d3..75af7e4972a 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp @@ -37,7 +37,6 @@ #include #include #include -#include #include #include #include diff --git a/simulation/traffic_simulator/include/traffic_simulator/hdmap_utils/hdmap_utils.hpp b/simulation/traffic_simulator/include/traffic_simulator/hdmap_utils/hdmap_utils.hpp index 0f34b2c7c97..02e6a893ad2 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/hdmap_utils/hdmap_utils.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/hdmap_utils/hdmap_utils.hpp @@ -160,7 +160,7 @@ class HdMapUtils const traffic_simulator::RoutingGraphType type = traffic_simulator::RoutingConfiguration().routing_graph_type) const -> lanelet::Ids; - auto getHeight(const traffic_simulator_msgs::msg::LaneletPose &) const -> double; + auto getAltitude(const traffic_simulator_msgs::msg::LaneletPose &) const -> double; auto getLaneChangeTrajectory( const geometry_msgs::msg::Pose & from, @@ -315,6 +315,8 @@ class HdMapUtils visualization_msgs::msg::MarkerArray &, const visualization_msgs::msg::MarkerArray &) const -> void; + auto isInIntersection(const lanelet::Id) const -> bool; + auto isInLanelet(const lanelet::Id, const double s) const -> bool; auto isInRoute(const lanelet::Id, const lanelet::Ids & route) const -> bool; @@ -380,6 +382,13 @@ class HdMapUtils auto toMapPose(const traffic_simulator_msgs::msg::LaneletPose &, const bool fill_pitch = true) const -> geometry_msgs::msg::PoseStamped; + auto isAltitudeMatching(const double current_altitude, const double target_altitude) const + -> bool; + + auto getLaneletAltitude( + const lanelet::Id & lanelet_id, const geometry_msgs::msg::Pose & pose, + const double matching_distance = 1.0) const -> std::optional; + private: /** @defgroup cache * Declared mutable for caching diff --git a/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_controller.hpp b/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_controller.hpp index 75c2a53ea83..3ed3561f75a 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_controller.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_controller.hpp @@ -27,10 +27,11 @@ #define TRAFFIC_SIMULATOR__TRAFFIC__TRAFFIC_CONTROLLER_HPP_ #include +#include #include +#include #include #include -#include #include #include @@ -42,10 +43,8 @@ class TrafficController { public: explicit TrafficController( - std::shared_ptr hdmap_utils, - const std::function(void)> & get_entity_names_function, - const std::function & get_entity_pose_function, - const std::function & despawn_function, bool auto_sink = false); + const std::shared_ptr entity_manager_ptr, + const std::set auto_sink_entity_types /*= {}*/); template void addModule(Ts &&... xs) @@ -53,19 +52,13 @@ class TrafficController auto module_ptr = std::make_shared(std::forward(xs)...); modules_.emplace_back(module_ptr); } - void execute(const double current_time, const double step_time); - auto makeDebugMarker() const -> const visualization_msgs::msg::MarkerArray; + auto execute(const double current_time, const double step_time) -> void; + auto makeDebugMarker() const -> visualization_msgs::msg::MarkerArray; private: - void autoSink(); - const std::shared_ptr hdmap_utils_; - std::vector> modules_; - const std::function(void)> get_entity_names_function; - const std::function get_entity_pose_function; - const std::function despawn_function; - -public: - const bool auto_sink; + auto appendAutoSinks(const std::set & auto_sink_entity_types) -> void; + const std::shared_ptr entity_manager_ptr_; + std::vector> modules_; }; } // namespace traffic } // namespace traffic_simulator diff --git a/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_module_base.hpp b/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_module_base.hpp index 41e52aaf0e4..b660cb0a281 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_module_base.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_module_base.hpp @@ -36,7 +36,7 @@ class TrafficModuleBase { public: TrafficModuleBase() {} - virtual void execute(const double current_time, const double step_time) = 0; + virtual auto execute(const double current_time, const double step_time) -> void = 0; virtual auto appendDebugMarker(visualization_msgs::msg::MarkerArray &) const -> void{}; }; } // namespace traffic diff --git a/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_sink.hpp b/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_sink.hpp index 0754ace3f92..e3a99f23a86 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_sink.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_sink.hpp @@ -31,6 +31,8 @@ #include #include #include +#include +#include #include #include @@ -38,25 +40,63 @@ namespace traffic_simulator { namespace traffic { +struct TrafficSinkConfig +{ + /** + * @brief Construct a new TrafficSinkConfig object + * @param radius Radius of the traffic sink + * @param position Position of the traffic sink + * @param sinkable_entity_types Candidates for despawn. + */ + explicit TrafficSinkConfig( + const double radius, const geometry_msgs::msg::Point & position, + const std::set & sinkable_entity_types, + const std::optional lanelet_id_opt) + : radius(radius), + position(position), + sinkable_entity_types(sinkable_entity_types), + description([](const std::optional lanelet_id_opt) -> std::string { + static long unique_id = 0L; + if (lanelet_id_opt.has_value()) { + return std::string("auto_") + std::to_string(lanelet_id_opt.value()); + } else { + return std::string("custom_") + std::to_string(unique_id++); + } + }(lanelet_id_opt)) + { + } + + const double radius; + const geometry_msgs::msg::Point position; + const std::set sinkable_entity_types; + const std::string description; +}; + class TrafficSink : public TrafficModuleBase { public: + /** + * @brief Construct a new Traffic Sink object + * @param entity_manager_ptr Shared pointer, refers to the EntityManager + * @param config TrafficSink configuration + */ explicit TrafficSink( - lanelet::Id lanelet_id, double radius, const geometry_msgs::msg::Point & position, - const std::function(void)> & get_entity_names_function, - const std::function & get_entity_pose_function, - const std::function & despawn_function); - const lanelet::Id lanelet_id; - const double radius; - const geometry_msgs::msg::Point position; - void execute(const double current_time, const double step_time) override; + const std::shared_ptr entity_manager_ptr, + const TrafficSinkConfig & config); + /** + * @note execute calls despawn on each entity only when both: + * 1. Its distance from the TrafficSink is <= config.radius [m]. + * 2. Its EntityType is in config.sinkable_entity_types. + */ + auto execute(const double current_time, const double step_time) -> void override; auto appendDebugMarker(visualization_msgs::msg::MarkerArray & marker_array) const -> void override; private: - const std::function(void)> get_entity_names_function; - const std::function get_entity_pose_function; - const std::function despawn_function; + auto isEntitySinkable(const std::string & entity_name) const noexcept(false) -> bool; + + const TrafficSinkConfig config_; + const std::shared_ptr entity_manager_ptr_; }; } // namespace traffic } // namespace traffic_simulator diff --git a/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_source.hpp b/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_source.hpp index cb2b70636cd..c9daa49273e 100644 --- a/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_source.hpp +++ b/simulation/traffic_simulator/include/traffic_simulator/traffic/traffic_source.hpp @@ -117,7 +117,8 @@ class TrafficSource : public TrafficModuleBase const std::size_t id; private: - auto makeRandomPose(const bool random_orientation = false) -> geometry_msgs::msg::Pose; + auto makeRandomPose(const bool random_orientation, const VehicleOrPedestrianParameter & parameter) + -> geometry_msgs::msg::Pose; auto isPoseValid(const VehicleOrPedestrianParameter &, const geometry_msgs::msg::Pose &) -> std::pair>; diff --git a/simulation/traffic_simulator/package.xml b/simulation/traffic_simulator/package.xml index 8113d65ce1e..57fb4c28ae3 100644 --- a/simulation/traffic_simulator/package.xml +++ b/simulation/traffic_simulator/package.xml @@ -1,7 +1,7 @@ traffic_simulator - 7.0.0 + 7.3.5 control traffic flow masaya kataoka diff --git a/simulation/traffic_simulator/src/api/api.cpp b/simulation/traffic_simulator/src/api/api.cpp index 26e5c0db2d7..21ff6e498d7 100644 --- a/simulation/traffic_simulator/src/api/api.cpp +++ b/simulation/traffic_simulator/src/api/api.cpp @@ -94,6 +94,7 @@ auto API::respawn( entity_manager_ptr_->asFieldOperatorApplication(name).clearRoute(); entity_manager_ptr_->asFieldOperatorApplication(name).plan({goal_pose}); + entity_manager_ptr_->asFieldOperatorApplication(name).enableAutowareControl(); entity_manager_ptr_->asFieldOperatorApplication(name).engage(); } } diff --git a/simulation/traffic_simulator/src/data_type/entity_status.cpp b/simulation/traffic_simulator/src/data_type/entity_status.cpp index b2bfb78432e..758d10b6abf 100644 --- a/simulation/traffic_simulator/src/data_type/entity_status.cpp +++ b/simulation/traffic_simulator/src/data_type/entity_status.cpp @@ -122,6 +122,11 @@ auto CanonicalizedEntityStatus::getMapPose() const noexcept -> const geometry_ms return entity_status_.pose; } +auto CanonicalizedEntityStatus::getAltitude() const -> double +{ + return entity_status_.pose.position.z; +} + auto CanonicalizedEntityStatus::getLaneletPose() const noexcept -> const LaneletPose & { if (canonicalized_lanelet_pose_) { diff --git a/simulation/traffic_simulator/src/entity/ego_entity.cpp b/simulation/traffic_simulator/src/entity/ego_entity.cpp index f18cd5e2c54..e4f9560c180 100644 --- a/simulation/traffic_simulator/src/entity/ego_entity.cpp +++ b/simulation/traffic_simulator/src/entity/ego_entity.cpp @@ -13,8 +13,7 @@ // limitations under the License. #include -#include -#include +#include #include #include #include @@ -54,15 +53,14 @@ auto EgoEntity::makeFieldOperatorApplication( parameters.push_back("use_foa:=false"); parameters.push_back("perception/enable_traffic_light:=" + std::string(architecture_type >= "awf/universe/20230906" ? "true" : "false")); parameters.push_back("use_sim_time:=" + std::string(getParameter(node_parameters, "use_sim_time", false) ? "true" : "false")); + parameters.push_back("localization_sim_mode:=" + std::string(getParameter(node_parameters, "simulate_localization") ? "api" : "pose_twist_estimator")); // clang-format on return getParameter(node_parameters, "launch_autoware", true) - ? std::make_unique< - concealer::FieldOperatorApplicationFor>( + ? std::make_unique( getParameter(node_parameters, "autoware_launch_package"), getParameter(node_parameters, "autoware_launch_file"), parameters) - : std::make_unique< - concealer::FieldOperatorApplicationFor>(); + : std::make_unique(); } else { throw common::SemanticError( "Unexpected architecture_type ", std::quoted(architecture_type), " was given."); @@ -116,8 +114,7 @@ auto EgoEntity::getRouteLanelets(double /*unused horizon*/) -> lanelet::Ids lanelet::Ids ids{}; if (const auto universe = - dynamic_cast *>( - field_operator_application.get()); + dynamic_cast(field_operator_application.get()); universe) { for (const auto & point : universe->getPathWithLaneId().points) { ids += point.lane_ids; @@ -277,7 +274,6 @@ auto EgoEntity::requestSpeedChange(double value, bool /* continuous */) -> void THROW_SEMANTIC_ERROR("You cannot set target speed to the ego vehicle after starting scenario."); } else { target_speed_ = value; - field_operator_application->restrictTargetSpeed(value); } } diff --git a/simulation/traffic_simulator/src/hdmap_utils/hdmap_utils.cpp b/simulation/traffic_simulator/src/hdmap_utils/hdmap_utils.cpp index 650fb0fd802..c6cb0554b23 100644 --- a/simulation/traffic_simulator/src/hdmap_utils/hdmap_utils.cpp +++ b/simulation/traffic_simulator/src/hdmap_utils/hdmap_utils.cpp @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +#include #include #include #include @@ -333,7 +334,7 @@ auto HdMapUtils::getNearbyLaneletIds( return lanelet_ids; } -auto HdMapUtils::getHeight(const traffic_simulator_msgs::msg::LaneletPose & lanelet_pose) const +auto HdMapUtils::getAltitude(const traffic_simulator_msgs::msg::LaneletPose & lanelet_pose) const -> double { return toMapPose(lanelet_pose).pose.position.z; @@ -594,6 +595,11 @@ auto HdMapUtils::toLaneletPose( return std::nullopt; } auto pose_on_centerline = spline->getPose(s.value()); + + if (!isAltitudeMatching(pose.position.z, pose_on_centerline.position.z)) { + return std::nullopt; + } + auto rpy = math::geometry::convertQuaternionToEulerAngle( math::geometry::getRotation(pose_on_centerline.orientation, pose.orientation)); double offset = std::sqrt(spline->getSquaredDistanceIn2D(pose.position, s.value())); @@ -617,6 +623,25 @@ auto HdMapUtils::toLaneletPose( return lanelet_pose; } +auto HdMapUtils::isAltitudeMatching( + const double current_altitude, const double target_altitude) const -> bool +{ + /* + Using a fixed `altitude_threshold` value of 1.0 [m] is justified because the + entity's Z-position is always relative to its base. This eliminates the + need to dynamically adjust the threshold based on the entity's dimensions, + ensuring consistent altitude matching regardless of the entity type. + + The position of the entity is defined relative to its base, typically + the center of the rear axle projected onto the ground in the case of vehicles. + + There is no technical basis for this value; it was determined based on + experiments. + */ + static constexpr double altitude_threshold = 1.0; + return std::abs(current_altitude - target_altitude) <= altitude_threshold; +} + auto HdMapUtils::toLaneletPose( const geometry_msgs::msg::Pose & pose, const lanelet::Ids & lanelet_ids, const double matching_distance) const -> std::optional @@ -1352,6 +1377,11 @@ auto HdMapUtils::getVectorFromPose(const geometry_msgs::msg::Pose & pose, const return vector; } +auto HdMapUtils::isInIntersection(const lanelet::Id lanelet_id) const -> bool +{ + return lanelet_map_ptr_->laneletLayer.get(lanelet_id).hasAttribute("turn_direction"); +} + auto HdMapUtils::isInLanelet(const lanelet::Id lanelet_id, const double s) const -> bool { return 0 <= s and s <= getCenterPointsSpline(lanelet_id)->getLength(); @@ -2166,6 +2196,18 @@ auto HdMapUtils::toPolygon(const lanelet::ConstLineString3d & line_string) const return ret; } +auto HdMapUtils::getLaneletAltitude( + const lanelet::Id & lanelet_id, const geometry_msgs::msg::Pose & pose, + const double matching_distance) const -> std::optional +{ + if (const auto spline = getCenterPointsSpline(lanelet_id)) { + if (const auto s = spline->getSValue(pose, matching_distance)) { + return spline->getPoint(s.value()).z; + } + } + return std::nullopt; +} + HdMapUtils::RoutingGraphs::RoutingGraphs(const lanelet::LaneletMapPtr & lanelet_map) { vehicle.rules = lanelet::traffic_rules::TrafficRulesFactory::create( diff --git a/simulation/traffic_simulator/src/traffic/traffic_controller.cpp b/simulation/traffic_simulator/src/traffic/traffic_controller.cpp index cd8ab6d5a37..5e764e933c1 100644 --- a/simulation/traffic_simulator/src/traffic/traffic_controller.cpp +++ b/simulation/traffic_simulator/src/traffic/traffic_controller.cpp @@ -37,48 +37,45 @@ namespace traffic_simulator namespace traffic { TrafficController::TrafficController( - std::shared_ptr hdmap_utils, - const std::function(void)> & get_entity_names_function, - const std::function & get_entity_pose_function, - const std::function & despawn_function, bool auto_sink) -: hdmap_utils_(hdmap_utils), - get_entity_names_function(get_entity_names_function), - get_entity_pose_function(get_entity_pose_function), - despawn_function(despawn_function), - auto_sink(auto_sink) + const std::shared_ptr entity_manager_ptr, + const std::set auto_sink_entity_types) +: entity_manager_ptr_(entity_manager_ptr), modules_() { - if (auto_sink) { - autoSink(); + if (not auto_sink_entity_types.empty()) { + appendAutoSinks(auto_sink_entity_types); } } -void TrafficController::autoSink() +auto TrafficController::appendAutoSinks(const std::set & auto_sink_entity_types) + -> void { - for (const auto & lanelet_id : hdmap_utils_->getLaneletIds()) { - if (hdmap_utils_->getNextLaneletIds(lanelet_id).empty()) { + static constexpr double sink_radius = 1.0; + const auto hdmap_utils_ptr = entity_manager_ptr_->getHdmapUtils(); + for (const auto & lanelet_id : hdmap_utils_ptr->getLaneletIds()) { + if (hdmap_utils_ptr->getNextLaneletIds(lanelet_id).empty()) { LaneletPose lanelet_pose; lanelet_pose.lanelet_id = lanelet_id; - lanelet_pose.s = pose::laneletLength(lanelet_id, hdmap_utils_); - const auto pose = pose::toMapPose(lanelet_pose, hdmap_utils_); - addModule( - lanelet_id, 1, pose.position, get_entity_names_function, get_entity_pose_function, - despawn_function); + lanelet_pose.s = pose::laneletLength(lanelet_id, hdmap_utils_ptr); + const auto pose = pose::toMapPose(lanelet_pose, hdmap_utils_ptr); + const auto traffic_sink_config = TrafficSinkConfig( + sink_radius, pose.position, auto_sink_entity_types, std::make_optional(lanelet_id)); + addModule(entity_manager_ptr_, traffic_sink_config); } } } -void TrafficController::execute(const double current_time, const double step_time) +auto TrafficController::execute(const double current_time, const double step_time) -> void { for (const auto & module : modules_) { module->execute(current_time, step_time); } } -auto TrafficController::makeDebugMarker() const -> const visualization_msgs::msg::MarkerArray +auto TrafficController::makeDebugMarker() const -> visualization_msgs::msg::MarkerArray { - static const auto marker_array = [&]() { + static const auto marker_array = [this]() { visualization_msgs::msg::MarkerArray marker_array; - for (size_t i = 0; i < modules_.size(); ++i) { + for (std::size_t i = 0UL; i < modules_.size(); ++i) { modules_[i]->appendDebugMarker(marker_array); } return marker_array; diff --git a/simulation/traffic_simulator/src/traffic/traffic_sink.cpp b/simulation/traffic_simulator/src/traffic/traffic_sink.cpp index b85663f17d6..dc41a3a3a72 100644 --- a/simulation/traffic_simulator/src/traffic/traffic_sink.cpp +++ b/simulation/traffic_simulator/src/traffic/traffic_sink.cpp @@ -26,9 +26,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -38,28 +40,17 @@ namespace traffic_simulator namespace traffic { TrafficSink::TrafficSink( - lanelet::Id lanelet_id, double radius, const geometry_msgs::msg::Point & position, - const std::function(void)> & get_entity_names_function, - const std::function & get_entity_pose_function, - const std::function & despawn_function) -: TrafficModuleBase(), - lanelet_id(lanelet_id), - radius(radius), - position(position), - get_entity_names_function(get_entity_names_function), - get_entity_pose_function(get_entity_pose_function), - despawn_function(despawn_function) + const std::shared_ptr entity_manager_ptr, const TrafficSinkConfig & config) +: TrafficModuleBase(), config_(config), entity_manager_ptr_(entity_manager_ptr) { } -void TrafficSink::execute( - [[maybe_unused]] const double current_time, [[maybe_unused]] const double step_time) +auto TrafficSink::execute( + [[maybe_unused]] const double current_time, [[maybe_unused]] const double step_time) -> void { - const auto names = get_entity_names_function(); - for (const auto & name : names) { - const auto pose = get_entity_pose_function(name); - if (math::geometry::getDistance(position, pose) <= radius) { - despawn_function(name); + for (const auto & entity_name : entity_manager_ptr_->getEntityNames()) { + if (isEntitySinkable(entity_name)) { + entity_manager_ptr_->despawnEntity(entity_name); } } } @@ -67,30 +58,46 @@ void TrafficSink::execute( auto TrafficSink::appendDebugMarker(visualization_msgs::msg::MarkerArray & marker_array) const -> void { - const auto lanelet_text = std::to_string(lanelet_id); visualization_msgs::msg::Marker traffic_sink_marker; traffic_sink_marker.header.frame_id = "map"; - traffic_sink_marker.ns = "traffic_controller/traffic_sink/" + lanelet_text; + traffic_sink_marker.ns = "traffic_controller/traffic_sink/" + config_.description; traffic_sink_marker.id = 0; traffic_sink_marker.action = traffic_sink_marker.ADD; traffic_sink_marker.type = 3; // cylinder traffic_sink_marker.pose = - geometry_msgs::build().position(position).orientation( - geometry_msgs::build().x(0).y(0).z(0).w(1)); + geometry_msgs::build() + .position(config_.position) + .orientation(geometry_msgs::build().x(0).y(0).z(0).w(1)); traffic_sink_marker.color = color_names::makeColorMsg("firebrick", 0.99); - traffic_sink_marker.scale.x = radius * 2; - traffic_sink_marker.scale.y = radius * 2; + traffic_sink_marker.scale.x = config_.radius * 2.0; + traffic_sink_marker.scale.y = config_.radius * 2.0; traffic_sink_marker.scale.z = 1.0; marker_array.markers.emplace_back(traffic_sink_marker); visualization_msgs::msg::Marker text_marker; text_marker = traffic_sink_marker; text_marker.id = 1; - text_marker.type = 9; //text - text_marker.text = lanelet_text; + text_marker.type = 9; // text + text_marker.text = config_.description; text_marker.color = color_names::makeColorMsg("white", 0.99); text_marker.scale.z = 0.6; marker_array.markers.emplace_back(text_marker); } + +auto TrafficSink::isEntitySinkable(const std::string & entity_name) const noexcept(false) -> bool +{ + if (const auto entity = entity_manager_ptr_->getEntity(entity_name); entity == nullptr) { + THROW_SEMANTIC_ERROR("Entity ", std::quoted(entity_name), " does not exists."); + } else if ( + config_.sinkable_entity_types.find(entity->getEntityType().type) == + config_.sinkable_entity_types.end()) { + return false; + } else if (math::geometry::getDistance(config_.position, entity->getMapPose()) > config_.radius) { + return false; + } else { + return true; + } +} + } // namespace traffic } // namespace traffic_simulator diff --git a/simulation/traffic_simulator/src/traffic/traffic_source.cpp b/simulation/traffic_simulator/src/traffic/traffic_source.cpp index 350920a42d1..68f82fdce61 100644 --- a/simulation/traffic_simulator/src/traffic/traffic_source.cpp +++ b/simulation/traffic_simulator/src/traffic/traffic_source.cpp @@ -72,7 +72,9 @@ auto TrafficSource::Validator::operator()( }); } -auto TrafficSource::makeRandomPose(const bool random_orientation) -> geometry_msgs::msg::Pose +auto TrafficSource::makeRandomPose( + const bool random_orientation, const VehicleOrPedestrianParameter & parameter) + -> geometry_msgs::msg::Pose { const double angle = angle_distribution_(engine_); @@ -83,6 +85,17 @@ auto TrafficSource::makeRandomPose(const bool random_orientation) -> geometry_ms random_pose.position.x += radius * std::cos(angle); random_pose.position.y += radius * std::sin(angle); + if (const auto nearby_lanelets = hdmap_utils_->getNearbyLaneletIds( + random_pose.position, radius, std::holds_alternative(parameter)); + !nearby_lanelets.empty()) { + // Get the altitude of the first nearby lanelet + if ( + const auto altitude = + hdmap_utils_->getLaneletAltitude(nearby_lanelets.front(), random_pose, radius)) { + random_pose.position.z = altitude.value(); + } + } + if (random_orientation) { random_pose.orientation = math::geometry::convertEulerAngleToQuaternion( traffic_simulator::helper::constructRPY(0.0, 0.0, angle_distribution_(engine_))); @@ -106,7 +119,7 @@ void TrafficSource::execute( static constexpr auto max_randomization_attempts = 10000; for (auto tries = 0; tries < max_randomization_attempts; ++tries) { - auto candidate_pose = makeRandomPose(configuration_.use_random_orientation); + auto candidate_pose = makeRandomPose(configuration_.use_random_orientation, parameter); if (auto [valid, lanelet_pose] = isPoseValid(parameter, candidate_pose); valid) { return std::make_pair(candidate_pose, lanelet_pose); } diff --git a/simulation/traffic_simulator/src/visualization/visualization_component.cpp b/simulation/traffic_simulator/src/visualization/visualization_component.cpp index 2af92b13bfe..10c1bc5d968 100644 --- a/simulation/traffic_simulator/src/visualization/visualization_component.cpp +++ b/simulation/traffic_simulator/src/visualization/visualization_component.cpp @@ -74,14 +74,14 @@ void VisualizationComponent::entityStatusCallback( entity_name_lists.emplace_back(data.status.name); } std::vector erase_names; - for (const auto & marker : markers_) { - auto itr = std::find(entity_name_lists.begin(), entity_name_lists.end(), marker.first); + for (const auto & [key, _] : markers_) { + auto itr = std::find(entity_name_lists.begin(), entity_name_lists.end(), key); if (itr == entity_name_lists.end()) { - auto delete_marker = generateDeleteMarker(marker.first); + auto delete_marker = generateDeleteMarker(key); std::copy( delete_marker.markers.begin(), delete_marker.markers.end(), std::back_inserter(current_marker.markers)); - erase_names.emplace_back(marker.first); + erase_names.emplace_back(key); } } for (const auto & name : erase_names) { @@ -336,7 +336,6 @@ const visualization_msgs::msg::MarkerArray VisualizationComponent::generateMarke arrow.id = 2; arrow.action = visualization_msgs::msg::Marker::ADD; - // constexpr double arrow_size = 0.3; double arrow_size = 0.4 * status.bounding_box.dimensions.y; constexpr double arrow_ratio = 1.0; geometry_msgs::msg::Point pf, pl, pr; diff --git a/simulation/traffic_simulator/test/src/hdmap_utils/test_hdmap_utils.cpp b/simulation/traffic_simulator/test/src/hdmap_utils/test_hdmap_utils.cpp index eaa36c849a4..e6ba6873f0d 100644 --- a/simulation/traffic_simulator/test/src/hdmap_utils/test_hdmap_utils.cpp +++ b/simulation/traffic_simulator/test/src/hdmap_utils/test_hdmap_utils.cpp @@ -2098,9 +2098,11 @@ TEST_F(HdMapUtilsTest_StandardMap, getLongitudinalDistance_differentLanelet) TEST_F(HdMapUtilsTest_FourTrackHighwayMap, getLongitudinalDistance_differentLaneletNoRoute) { const auto pose_to = hdmap_utils.toLaneletPose( - makePose(makePoint(81590.79, 50067.66), makeQuaternionFromYaw(90.0)), lanelet::Id{3002185}); + makePose(makePoint(81590.79, 50067.66, 35.0), makeQuaternionFromYaw(90.0)), + lanelet::Id{3002185}); const auto pose_from = hdmap_utils.toLaneletPose( - makePose(makePoint(81596.20, 50068.04), makeQuaternionFromYaw(90.0)), lanelet::Id{3002166}); + makePose(makePoint(81596.20, 50068.04, 35.0), makeQuaternionFromYaw(90.0)), + lanelet::Id{3002166}); ASSERT_TRUE(pose_from.has_value()); ASSERT_TRUE(pose_to.has_value()); @@ -2204,6 +2206,16 @@ TEST_F(HdMapUtilsTest_IntersectionMap, getLongitudinalDistance_laneChange) } } +/** + * @note Test for isInIntersection function + * + */ +TEST_F(HdMapUtilsTest_IntersectionMap, isInIntersection) +{ + EXPECT_TRUE(hdmap_utils.isInIntersection(662)); + EXPECT_FALSE(hdmap_utils.isInIntersection(574)); +} + /** * @note Test basic functionality. * Test obtaining stop line ids correctness with a route that has no stop lines. diff --git a/simulation/traffic_simulator/test/src/helper_functions.hpp b/simulation/traffic_simulator/test/src/helper_functions.hpp index a12b5e33328..c10cc1d4931 100644 --- a/simulation/traffic_simulator/test/src/helper_functions.hpp +++ b/simulation/traffic_simulator/test/src/helper_functions.hpp @@ -63,13 +63,14 @@ auto makeQuaternionFromYaw(const double yaw) -> geometry_msgs::msg::Quaternion geometry_msgs::build().x(0.0).y(0.0).z(yaw)); } -auto makePose(const double x, const double y, const double yaw_deg) -> geometry_msgs::msg::Pose +auto makePose(const double x, const double y, const double z, const double yaw_deg) + -> geometry_msgs::msg::Pose { /** * @note +x axis is 0 degrees; +y axis is 90 degrees */ return geometry_msgs::build() - .position(geometry_msgs::build().x(x).y(y).z(0.0)) + .position(geometry_msgs::build().x(x).y(y).z(z)) .orientation(math::geometry::convertEulerAngleToQuaternion( geometry_msgs::build().x(0.0).y(0.0).z( convertDegToRad(yaw_deg)))); diff --git a/simulation/traffic_simulator/test/src/utils/test_distance.cpp b/simulation/traffic_simulator/test/src/utils/test_distance.cpp index d288117c96b..8dc5b5cdee8 100644 --- a/simulation/traffic_simulator/test/src/utils/test_distance.cpp +++ b/simulation/traffic_simulator/test/src/utils/test_distance.cpp @@ -238,10 +238,10 @@ TEST_F(distanceTest_FourTrackHighwayMap, longitudinalDistance_noAdjacent_noOppos { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81595.44, 50006.09, 100.0), false, hdmap_utils_ptr); + makePose(81595.44, 50006.09, 35.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81584.48, 50084.76, 100.0), false, hdmap_utils_ptr); + makePose(81584.48, 50084.76, 35.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto result = traffic_simulator::distance::longitudinalDistance( @@ -260,10 +260,10 @@ TEST_F(distanceTest_StandardMap, longitudinalDistance_noAdjacent_noOpposite_noCh { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(3800.05, 73715.77, 30.0), false, hdmap_utils_ptr); + makePose(3800.05, 73715.77, 0.5, 30.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(3841.26, 73748.80, 110.0), false, hdmap_utils_ptr); + makePose(3841.26, 73748.80, 0.5, 110.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto result = traffic_simulator::distance::longitudinalDistance( @@ -283,10 +283,10 @@ TEST_F(distanceTest_FourTrackHighwayMap, longitudinalDistance_adjacent_noOpposit { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81585.79, 50042.62, 100.0), false, hdmap_utils_ptr); + makePose(81585.79, 50042.62, 35.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81588.34, 50083.23, 100.0), false, hdmap_utils_ptr); + makePose(81588.34, 50083.23, 35.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto result = traffic_simulator::distance::longitudinalDistance( @@ -305,10 +305,10 @@ TEST_F(distanceTest_FourTrackHighwayMap, longitudinalDistance_adjacent_noOpposit { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81599.02, 50065.76, 280.0), false, hdmap_utils_ptr); + makePose(81599.02, 50065.76, 35.0, 280.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81599.61, 50045.16, 280.0), false, hdmap_utils_ptr); + makePose(81599.61, 50045.16, 35.0, 280.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto result = traffic_simulator::distance::longitudinalDistance( @@ -328,10 +328,10 @@ TEST_F(distanceTest_FourTrackHighwayMap, longitudinalDistance_noAdjacent_noOppos { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81595.47, 49982.80, 100.0), false, hdmap_utils_ptr); + makePose(81595.47, 49982.80, 36.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81599.34, 50022.34, 100.0), false, hdmap_utils_ptr); + makePose(81599.34, 50022.34, 35.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -343,10 +343,10 @@ TEST_F(distanceTest_FourTrackHighwayMap, longitudinalDistance_noAdjacent_noOppos } { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81612.35, 50015.63, 280.0), false, hdmap_utils_ptr); + makePose(81612.35, 50015.63, 35.0, 280.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81612.95, 49991.30, 280.0), false, hdmap_utils_ptr); + makePose(81612.95, 49991.30, 35.5, 280.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -367,10 +367,10 @@ TEST_F(distanceTest_FourTrackHighwayMap, longitudinalDistance_noAdjacent_noOppos { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81592.96, 49997.94, 100.0), false, hdmap_utils_ptr); + makePose(81592.96, 49997.94, 35.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81570.56, 50141.75, 100.0), false, hdmap_utils_ptr); + makePose(81570.56, 50141.75, 35.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -383,10 +383,10 @@ TEST_F(distanceTest_FourTrackHighwayMap, longitudinalDistance_noAdjacent_noOppos } { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81587.31, 50165.57, 100.0), false, hdmap_utils_ptr); + makePose(81587.31, 50165.57, 35.0, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(81610.25, 49988.59, 100.0), false, hdmap_utils_ptr); + makePose(81610.25, 49988.59, 35.5, 100.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -406,10 +406,10 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_noAdjacent_noOpposite_ { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86627.71, 44972.06, 340.0), false, hdmap_utils_ptr); + makePose(86627.71, 44972.06, 3.0, 340.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86647.23, 44882.51, 240.0), false, hdmap_utils_ptr); + makePose(86647.23, 44882.51, 3.0, 240.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -421,10 +421,10 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_noAdjacent_noOpposite_ } { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86555.38, 45000.88, 340.0), false, hdmap_utils_ptr); + makePose(86555.38, 45000.88, 3.0, 340.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86647.23, 44882.51, 240.0), false, hdmap_utils_ptr); + makePose(86647.23, 44882.51, 3.0, 240.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -436,10 +436,10 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_noAdjacent_noOpposite_ } { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86788.82, 44993.77, 210.0), false, hdmap_utils_ptr); + makePose(86788.82, 44993.77, 3.0, 210.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86553.48, 44990.56, 150.0), false, hdmap_utils_ptr); + makePose(86553.48, 44990.56, 3.0, 150.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -451,10 +451,10 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_noAdjacent_noOpposite_ } { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86788.82, 44993.77, 210.0), false, hdmap_utils_ptr); + makePose(86788.82, 44993.77, 3.0, 210.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86579.91, 44979.00, 150.0), false, hdmap_utils_ptr); + makePose(86579.91, 44979.00, 3.0, 150.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -475,10 +475,10 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_adjacent_noOpposite_ch { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86736.13, 44969.63, 210.0), false, hdmap_utils_ptr); + makePose(86736.13, 44969.63, 3.0, 210.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86642.95, 44958.78, 340.0), false, hdmap_utils_ptr); + makePose(86642.95, 44958.78, 3.0, 340.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -490,10 +490,10 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_adjacent_noOpposite_ch } { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86732.06, 44976.58, 210.0), false, hdmap_utils_ptr); + makePose(86732.06, 44976.58, 3.0, 210.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86704.59, 44927.32, 340.0), false, hdmap_utils_ptr); + makePose(86704.59, 44927.32, 3.0, 340.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -514,9 +514,9 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_adjacent_noOpposite_ch { { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86637.19, 44967.35, 340.0), false, hdmap_utils_ptr); + makePose(86637.19, 44967.35, 3.0, 340.0), false, hdmap_utils_ptr); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86648.82, 44886.19, 240.0), false, hdmap_utils_ptr); + makePose(86648.82, 44886.19, 3.0, 240.0), false, hdmap_utils_ptr); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; lane_changeable_routing_configuration.allow_lane_change = true; @@ -528,10 +528,10 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_adjacent_noOpposite_ch } { const auto pose_from = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86719.94, 44957.20, 210.0), false, hdmap_utils_ptr); + makePose(86719.94, 44957.20, 3.0, 210.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); const auto pose_to = traffic_simulator::toCanonicalizedLaneletPose( - makePose(86599.32, 44975.01, 180.0), false, hdmap_utils_ptr); + makePose(86599.32, 44975.01, 3.0, 180.0), false, hdmap_utils_ptr); ASSERT_TRUE(pose_from.has_value()); traffic_simulator::RoutingConfiguration lane_changeable_routing_configuration; @@ -550,8 +550,8 @@ TEST_F(distanceTest_IntersectionMap, longitudinalDistance_adjacent_noOpposite_ch */ TEST(distance, boundingBoxDistance_intersection) { - const auto pose_from = makePose(100.0, 100.0, 0.0); - const auto pose_to = makePose(120.0, 100.0, 90.0); + const auto pose_from = makePose(100.0, 100.0, 0.0, 0.0); + const auto pose_to = makePose(120.0, 100.0, 0.0, 90.0); const auto bounding_box_from = makeCustom2DBoundingBox(30.0, 1.0); const auto bounding_box_to = makeCustom2DBoundingBox(1.0, 30.0); @@ -569,8 +569,8 @@ TEST(distance, boundingBoxDistance_intersection) */ TEST(distance, boundingBoxDistance_disjoint) { - const auto pose_from = makePose(100.0, 100.0, 0.0); - const auto pose_to = makePose(120.0, 100.0, 90.0); + const auto pose_from = makePose(100.0, 100.0, 0.0, 0.0); + const auto pose_to = makePose(120.0, 100.0, 0.0, 90.0); const auto bounding_box_from = makeCustom2DBoundingBox(1.0, 30.0); const auto bounding_box_to = makeCustom2DBoundingBox(30.0, 1.0); @@ -592,56 +592,56 @@ TEST_F(distanceTest_StandardMap, distanceToLeftLaneBound_single) constexpr lanelet::Id lanelet_id = 34741L; constexpr double tolerance = 0.1; { - const auto pose = makePose(3818.33, 73726.18, 30.0); + const auto pose = makePose(3818.33, 73726.18, 0.0, 30.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 0.5, tolerance); } { - const auto pose = makePose(3816.89, 73723.09, 30.0); + const auto pose = makePose(3816.89, 73723.09, 0.0, 30.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 2.6, tolerance); } { - const auto pose = makePose(3813.42, 73721.11, 30.0); + const auto pose = makePose(3813.42, 73721.11, 0.0, 30.0); const auto bounding_box = makeCustom2DBoundingBox(3.0, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 2.7, tolerance); } { - const auto pose = makePose(3813.42, 73721.11, 120.0); + const auto pose = makePose(3813.42, 73721.11, 0.0, 120.0); const auto bounding_box = makeCustom2DBoundingBox(3.0, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 1.3, tolerance); } { - const auto pose = makePose(3810.99, 73721.40, 30.0); + const auto pose = makePose(3810.99, 73721.40, 0.0, 30.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 1.0, 0.0); const double result = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 1.4, tolerance); } { - const auto pose = makePose(3810.99, 73721.40, 30.0); + const auto pose = makePose(3810.99, 73721.40, 0.0, 30.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, -1.0); const double result = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 2.4, tolerance); } { - const auto pose = makePose(3680.81, 73757.27, 30.0); + const auto pose = makePose(3680.81, 73757.27, 0.0, 30.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, 34684L, hdmap_utils_ptr); EXPECT_NEAR(result, 5.1, tolerance); } { - const auto pose = makePose(3692.79, 73753.00, 30.0); + const auto pose = makePose(3692.79, 73753.00, 0.0, 30.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, 34684L, hdmap_utils_ptr); @@ -656,7 +656,7 @@ TEST_F(distanceTest_StandardMap, distanceToLeftLaneBound_single) TEST_F(distanceTest_StandardMap, distanceToLeftLaneBound_multipleVector) { const auto lanelet_ids = lanelet::Ids{34603L, 34600L, 34621L, 34741L}; - const auto pose = makePose(3836.16, 73757.99, 120.0); + const auto pose = makePose(3836.16, 73757.99, 0.0, 120.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double actual_distance = std::transform_reduce( lanelet_ids.cbegin(), lanelet_ids.cend(), std::numeric_limits::max(), @@ -678,7 +678,7 @@ TEST_F(distanceTest_StandardMap, distanceToLeftLaneBound_multipleVector) TEST_F(distanceTest_StandardMap, distanceToLeftLaneBound_singleVector) { constexpr lanelet::Id lanelet_id = 34426L; - const auto pose = makePose(3693.34, 73738.37, 300.0); + const auto pose = makePose(3693.34, 73738.37, 0.0, 300.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double actual_distance = traffic_simulator::distance::distanceToLeftLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); @@ -693,7 +693,7 @@ TEST_F(distanceTest_StandardMap, distanceToLeftLaneBound_singleVector) */ TEST_F(distanceTest_StandardMap, distanceToLeftLaneBound_emptyVector) { - const auto pose = makePose(3825.87, 73773.08, 135.0); + const auto pose = makePose(3825.87, 73773.08, 0.0, 135.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); EXPECT_THROW( traffic_simulator::distance::distanceToLeftLaneBound( @@ -709,56 +709,56 @@ TEST_F(distanceTest_IntersectionMap, distanceToRightLaneBound_single) constexpr lanelet::Id lanelet_id = 660L; constexpr double tolerance = 0.1; { - const auto pose = makePose(86651.84, 44941.47, 135.0); + const auto pose = makePose(86651.84, 44941.47, 0.0, 135.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 4.1, tolerance); } { - const auto pose = makePose(86653.05, 44946.74, 135.0); + const auto pose = makePose(86653.05, 44946.74, 0.0, 135.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 0.6, tolerance); } { - const auto pose = makePose(86651.47, 44941.07, 120.0); + const auto pose = makePose(86651.47, 44941.07, 0.0, 120.0); const auto bounding_box = makeCustom2DBoundingBox(3.0, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 4.3, tolerance); } { - const auto pose = makePose(86651.47, 44941.07, 210.0); + const auto pose = makePose(86651.47, 44941.07, 0.0, 210.0); const auto bounding_box = makeCustom2DBoundingBox(3.0, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 3.1, tolerance); } { - const auto pose = makePose(86644.10, 44951.86, 150.0); + const auto pose = makePose(86644.10, 44951.86, 0.0, 150.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 1.0, 0.0); const double result = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 2.0, tolerance); } { - const auto pose = makePose(86644.10, 44951.86, 150.0); + const auto pose = makePose(86644.10, 44951.86, 0.0, 150.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, -1.0); const double result = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 1.1, tolerance); } { - const auto pose = makePose(86644.11, 44941.21, 0.0); + const auto pose = makePose(86644.11, 44941.21, 0.0, 0.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); EXPECT_NEAR(result, 11.2, tolerance); } { - const auto pose = makePose(86656.83, 44946.96, 0.0); + const auto pose = makePose(86656.83, 44946.96, 0.0, 0.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double result = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); @@ -773,7 +773,7 @@ TEST_F(distanceTest_IntersectionMap, distanceToRightLaneBound_single) TEST_F(distanceTest_IntersectionMap, distanceToRightLaneBound_multipleVector) { const auto lanelet_ids = lanelet::Ids{660L, 663L, 684L, 654L, 686L}; - const auto pose = makePose(86642.05, 44902.61, 60.0); + const auto pose = makePose(86642.05, 44902.61, 0.0, 60.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double actual_distance = std::transform_reduce( lanelet_ids.cbegin(), lanelet_ids.cend(), std::numeric_limits::max(), @@ -795,7 +795,7 @@ TEST_F(distanceTest_IntersectionMap, distanceToRightLaneBound_multipleVector) TEST_F(distanceTest_IntersectionMap, distanceToRightLaneBound_singleVector) { constexpr lanelet::Id lanelet_id = 654L; - const auto pose = makePose(86702.79, 44929.05, 150.0); + const auto pose = makePose(86702.79, 44929.05, 0.0, 150.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); const double actual_distance = traffic_simulator::distance::distanceToRightLaneBound( pose, bounding_box, lanelet_id, hdmap_utils_ptr); @@ -810,7 +810,7 @@ TEST_F(distanceTest_IntersectionMap, distanceToRightLaneBound_singleVector) */ TEST_F(distanceTest_IntersectionMap, distanceToRightLaneBound_emptyVector) { - const auto pose = makePose(3825.87, 73773.08, 135.0); + const auto pose = makePose(3825.87, 73773.08, 0.0, 135.0); const auto bounding_box = makeCustom2DBoundingBox(0.1, 0.1, 0.0, 0.0); EXPECT_THROW( traffic_simulator::distance::distanceToRightLaneBound( diff --git a/simulation/traffic_simulator_msgs/CHANGELOG.rst b/simulation/traffic_simulator_msgs/CHANGELOG.rst index cf8105964a2..c85edc363de 100644 --- a/simulation/traffic_simulator_msgs/CHANGELOG.rst +++ b/simulation/traffic_simulator_msgs/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package openscenario_msgs * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support diff --git a/simulation/traffic_simulator_msgs/package.xml b/simulation/traffic_simulator_msgs/package.xml index e7c090973f2..ec34af2836b 100644 --- a/simulation/traffic_simulator_msgs/package.xml +++ b/simulation/traffic_simulator_msgs/package.xml @@ -2,7 +2,7 @@ traffic_simulator_msgs - 7.0.0 + 7.3.5 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 91e98512908..e642432dfff 100644 --- a/test_runner/random_test_runner/CHANGELOG.rst +++ b/test_runner/random_test_runner/CHANGELOG.rst @@ -21,6 +21,132 @@ Changelog for package random_test_runner * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support diff --git a/test_runner/random_test_runner/package.xml b/test_runner/random_test_runner/package.xml index 4438911c445..eb67a633808 100644 --- a/test_runner/random_test_runner/package.xml +++ b/test_runner/random_test_runner/package.xml @@ -2,7 +2,7 @@ random_test_runner - 7.0.0 + 7.3.5 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 e2d016367e9..656922eada0 100644 --- a/test_runner/scenario_test_runner/CHANGELOG.rst +++ b/test_runner/scenario_test_runner/CHANGELOG.rst @@ -35,6 +35,150 @@ Changelog for package scenario_test_runner * Merge remote-tracking branch 'origin/master' into feature/publish_empty_context * Contributors: Masaya Kataoka +7.3.5 (2024-12-20) +------------------ +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge branch 'master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Merge remote-tracking branch 'origin/master' into refactor/concealer-1 +* Remove parameter `random_offset` from scenario `sample.yaml` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.3.4 (2024-12-20) +------------------ +* Merge branch 'master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Merge remote-tracking branch 'origin/master' into feature/is_in_intersection +* Contributors: Masaya Kataoka + +7.3.3 (2024-12-18) +------------------ + +7.3.2 (2024-12-18) +------------------ + +7.3.1 (2024-12-17) +------------------ +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Merge branch 'master' into fix/math-closest-point +* Contributors: Kotaro Yoshimoto + +7.3.0 (2024-12-16) +------------------ +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Merge branch 'master' into feature/multi-level-lanelet-support +* Contributors: Kotaro Yoshimoto, SzymonParapura + +7.2.0 (2024-12-16) +------------------ +* Merge pull request `#1484 `_ from tier4/RJD-736/autoware_msgs_support_and_localization_sim_mode_support + Rjd 736/autoware msgs support and localization sim mode support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge branch 'master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/master' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Merge remote-tracking branch 'origin/RJD-736/autoware_msgs_support' into RJD-736/autoware_msgs_support_and_localization_sim_mode_support +* Add launch argument `simulate_localization` to `scenario_test_runner` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.1.0 (2024-12-16) +------------------ +* Merge pull request `#1258 `_ from tier4/feature/time-to-collision-condition + Feature/time to collision condition +* Update `TimeToCollisionCondition` to call `SpeedCondition` in standard compatible mode +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Remove static member function `evaluateTimeToCollisionCondition` +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Fix `evaluateTimeToCollisionCondition` to not return meaningless value when collisions cannot occur +* Fix `TimeToCollisionCondition` to return inf if relative speed < zero +* Cleanup static member function `TimeToCollisionCondition::evaluate` +* Add new test scenario `...EntityCondition.TimeToCollisionCondition.yaml` +* Add new member function `evaluateCartesianTimeToCollisionCondition` +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Merge branch 'master' into feature/time-to-collision-condition +* Merge remote-tracking branch 'origin/master' into feature/time-to-collision-condition +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.4 (2024-12-13) +------------------ +* Merge pull request `#1486 `_ from tier4/fix/speed-condition/backward-compatibility + Fix/speed condition/backward compatibility +* Merge branch 'master' into fix/speed-condition/backward-compatibility +* Merge remote-tracking branch 'origin/master' into fix/speed-condition/backward-compatibility +* Add new parameter `speed_condition` to switch compatibility +* Add new enumeration `Compatibility` +* Contributors: Tatsuya Yamasaki, yamacir-kit + +7.0.3 (2024-12-13) +------------------ +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Merge branch 'master' into fix/request-enable-autoware-control +* Contributors: Kotaro Yoshimoto + +7.0.2 (2024-12-12) +------------------ +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Merge branch 'master' into fix/snor-cloud-issue-8-1 +* Contributors: Masaya Kataoka, Taiga + +7.0.1 (2024-12-11) +------------------ +* Merge branch 'master' into feature/act-starttrigger-optional +* Merge branch 'master' into feature/act-starttrigger-optional +* Contributors: Kotaro Yoshimoto, ぐるぐる + 7.0.0 (2024-12-10) ------------------ * Merge pull request `#1454 `_ from tier4/RJD-736/autoware_msgs_support diff --git a/test_runner/scenario_test_runner/config/workflow.txt b/test_runner/scenario_test_runner/config/workflow.txt index 46e762e2144..b5ae1aef8e6 100644 --- a/test_runner/scenario_test_runner/config/workflow.txt +++ b/test_runner/scenario_test_runner/config/workflow.txt @@ -7,6 +7,7 @@ $(find-pkg-share scenario_test_runner)/scenario/ByEntityCondition.EntityConditio $(find-pkg-share scenario_test_runner)/scenario/ByEntityCondition.EntityCondition.RelativeClearanceCondition.yaml $(find-pkg-share scenario_test_runner)/scenario/ByEntityCondition.EntityCondition.RelativeClearanceCondition-back.yaml $(find-pkg-share scenario_test_runner)/scenario/ByEntityCondition.EntityCondition.RelativeSpeedCondition.yaml +$(find-pkg-share scenario_test_runner)/scenario/ByEntityCondition.EntityCondition.TimeToCollisionCondition.yaml $(find-pkg-share scenario_test_runner)/scenario/ControllerAction.AssignControllerAction.yaml $(find-pkg-share scenario_test_runner)/scenario/LateralAction.LaneChangeAction-RoadShoulder.yaml $(find-pkg-share scenario_test_runner)/scenario/LongitudinalAction.SpeedAction.yaml diff --git a/test_runner/scenario_test_runner/launch/scenario_test_runner.launch.py b/test_runner/scenario_test_runner/launch/scenario_test_runner.launch.py index 98897b9badf..9ad03b6f027 100755 --- a/test_runner/scenario_test_runner/launch/scenario_test_runner.launch.py +++ b/test_runner/scenario_test_runner/launch/scenario_test_runner.launch.py @@ -87,6 +87,8 @@ def launch_setup(context, *args, **kwargs): scenario = LaunchConfiguration("scenario", default=Path("/dev/null")) sensor_model = LaunchConfiguration("sensor_model", default="") sigterm_timeout = LaunchConfiguration("sigterm_timeout", default=8) + simulate_localization = LaunchConfiguration("simulate_localization", default=True) + speed_condition = LaunchConfiguration("speed_condition", default="legacy") use_sim_time = LaunchConfiguration("use_sim_time", default=False) vehicle_model = LaunchConfiguration("vehicle_model", default="") # fmt: on @@ -111,6 +113,8 @@ def launch_setup(context, *args, **kwargs): print(f"scenario := {scenario.perform(context)}") print(f"sensor_model := {sensor_model.perform(context)}") print(f"sigterm_timeout := {sigterm_timeout.perform(context)}") + print(f"simulate_localization := {simulate_localization.perform(context)}") + print(f"speed_condition := {speed_condition.perform(context)}") print(f"use_sim_time := {use_sim_time.perform(context)}") print(f"vehicle_model := {vehicle_model.perform(context)}") @@ -135,6 +139,8 @@ def make_parameters(): {"rviz_config": rviz_config}, {"sensor_model": sensor_model}, {"sigterm_timeout": sigterm_timeout}, + {"simulate_localization": simulate_localization}, + {"speed_condition": speed_condition}, {"use_sim_time": use_sim_time}, {"vehicle_model": vehicle_model}, ] @@ -173,12 +179,14 @@ def collect_prefixed_parameters(): DeclareLaunchArgument("global_timeout", default_value=global_timeout ), DeclareLaunchArgument("launch_autoware", default_value=launch_autoware ), DeclareLaunchArgument("launch_rviz", default_value=launch_rviz ), - DeclareLaunchArgument("publish_empty_context", default_value=publish_empty_context ), DeclareLaunchArgument("output_directory", default_value=output_directory ), + DeclareLaunchArgument("publish_empty_context", default_value=publish_empty_context ), DeclareLaunchArgument("rviz_config", default_value=rviz_config ), DeclareLaunchArgument("scenario", default_value=scenario ), DeclareLaunchArgument("sensor_model", default_value=sensor_model ), DeclareLaunchArgument("sigterm_timeout", default_value=sigterm_timeout ), + DeclareLaunchArgument("simulate_localization", default_value=simulate_localization ), + DeclareLaunchArgument("speed_condition", default_value=speed_condition ), DeclareLaunchArgument("use_sim_time", default_value=use_sim_time ), DeclareLaunchArgument("vehicle_model", default_value=vehicle_model ), # fmt: on diff --git a/test_runner/scenario_test_runner/package.xml b/test_runner/scenario_test_runner/package.xml index 58ba79dc752..b54ac457339 100644 --- a/test_runner/scenario_test_runner/package.xml +++ b/test_runner/scenario_test_runner/package.xml @@ -2,7 +2,7 @@ scenario_test_runner - 7.0.0 + 7.3.5 scenario test runner package Tatsuya Yamasaki Apache License 2.0 diff --git a/test_runner/scenario_test_runner/scenario/ByEntityCondition.EntityCondition.TimeToCollisionCondition.yaml b/test_runner/scenario_test_runner/scenario/ByEntityCondition.EntityCondition.TimeToCollisionCondition.yaml new file mode 100644 index 00000000000..213ac429acd --- /dev/null +++ b/test_runner/scenario_test_runner/scenario/ByEntityCondition.EntityCondition.TimeToCollisionCondition.yaml @@ -0,0 +1,235 @@ +ScenarioModifiers: + ScenarioModifier: [] +OpenSCENARIO: + FileHeader: { revMajor: 1, revMinor: 1, date: '2024-11-25T04:18:18.703Z', description: '', author: Tatsuya Yamasaki } + 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: ego + CatalogReference: { catalogName: sample_vehicle, entryName: sample_vehicle } + ObjectController: + Controller: + name: '' + Properties: + Property: [] + - name: vehicle_01 + CatalogReference: { catalogName: sample_vehicle, entryName: sample_vehicle } + ObjectController: + Controller: + name: '' + Properties: + Property: [] + Storyboard: + Init: + Actions: + Private: + - entityRef: ego + PrivateAction: + - TeleportAction: + Position: + LanePosition: + roadId: '' + laneId: '34976' + s: 10 + offset: 0 + Orientation: + type: relative + h: 0 + p: 0 + r: 0 + - entityRef: vehicle_01 + PrivateAction: + - TeleportAction: + Position: + LanePosition: + roadId: '' + laneId: '34579' + s: 0 + offset: 0 + Orientation: + type: relative + h: 0 + p: 0 + r: 0 + - ControllerAction: + AssignControllerAction: + Controller: + name: '' + Properties: + Property: + - name: maxSpeed + value: '0.5' + Story: + - name: '' + Act: + - name: _EndCondition + ManeuverGroup: + - maximumExecutionCount: 1 + name: '' + Actors: + selectTriggeringEntities: false + EntityRef: + - entityRef: ego + Maneuver: + - name: '' + Event: + - name: '' + priority: parallel + StartTrigger: + ConditionGroup: + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByValueCondition: + SimulationTimeCondition: + value: 30 + rule: greaterThan + Action: + - name: '' + UserDefinedAction: + CustomCommandAction: + type: exitSuccess + - name: '' + Event: + - name: '' + priority: parallel + StartTrigger: + ConditionGroup: + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByEntityCondition: + TriggeringEntities: + triggeringEntitiesRule: any + EntityRef: [ entityRef: ego ] + EntityCondition: + TimeToCollisionCondition: + freespace: true + rule: lessThan + value: 0 + relativeDistanceType: longitudinal + coordinateSystem: lane + routingAlgorithm: undefined + TimeToCollisionConditionTarget: + EntityRef: + entityRef: vehicle_01 + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByEntityCondition: + TriggeringEntities: + triggeringEntitiesRule: any + EntityRef: [ entityRef: ego ] + EntityCondition: + TimeToCollisionCondition: + freespace: false + rule: lessThan + value: 0 + relativeDistanceType: longitudinal + coordinateSystem: lane + routingAlgorithm: undefined + TimeToCollisionConditionTarget: + EntityRef: + entityRef: vehicle_01 + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByEntityCondition: + TriggeringEntities: + triggeringEntitiesRule: any + EntityRef: [ entityRef: ego ] + EntityCondition: + TimeToCollisionCondition: + freespace: true + rule: lessThan + value: 0 + relativeDistanceType: longitudinal + coordinateSystem: entity + routingAlgorithm: undefined + TimeToCollisionConditionTarget: + EntityRef: + entityRef: vehicle_01 + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByEntityCondition: + TriggeringEntities: + triggeringEntitiesRule: any + EntityRef: [ entityRef: ego ] + EntityCondition: + TimeToCollisionCondition: + freespace: false + rule: lessThan + value: 0 + relativeDistanceType: longitudinal + coordinateSystem: entity + routingAlgorithm: undefined + TimeToCollisionConditionTarget: + EntityRef: + entityRef: vehicle_01 + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByEntityCondition: + TriggeringEntities: + triggeringEntitiesRule: any + EntityRef: [ entityRef: ego ] + EntityCondition: + TimeToCollisionCondition: + freespace: true + rule: lessThan + value: 0 + relativeDistanceType: cartesianDistance + coordinateSystem: entity + routingAlgorithm: undefined + TimeToCollisionConditionTarget: + EntityRef: + entityRef: vehicle_01 + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByEntityCondition: + TriggeringEntities: + triggeringEntitiesRule: any + EntityRef: [ entityRef: ego ] + EntityCondition: + TimeToCollisionCondition: + freespace: false + rule: lessThan + value: 0 + relativeDistanceType: cartesianDistance + coordinateSystem: entity + routingAlgorithm: undefined + TimeToCollisionConditionTarget: + EntityRef: + entityRef: vehicle_01 + Action: + - name: '' + UserDefinedAction: + CustomCommandAction: + type: exitFailure + StartTrigger: + ConditionGroup: + - Condition: + - name: '' + delay: 0 + conditionEdge: none + ByValueCondition: + SimulationTimeCondition: + value: 0 + rule: greaterThan + StopTrigger: + ConditionGroup: [] diff --git a/test_runner/scenario_test_runner/scenario/sample.yaml b/test_runner/scenario_test_runner/scenario/sample.yaml index d465b19c270..37d6440f158 100644 --- a/test_runner/scenario_test_runner/scenario/sample.yaml +++ b/test_runner/scenario_test_runner/scenario/sample.yaml @@ -10,16 +10,7 @@ OpenSCENARIO: revMajor: 1 revMinor: 0 ParameterDeclarations: - ParameterDeclaration: - - name: random_offset - parameterType: double - value: $(ros2 run openscenario_interpreter_example uniform_distribution -1.0 1.0) - ConstraintGroup: - - ValueConstraint: - - rule: lessOrEqual - value: 1.0 - - rule: greaterOrEqual - value: -1.0 + ParameterDeclaration: [] CatalogLocations: VehicleCatalog: Directory: @@ -54,7 +45,7 @@ OpenSCENARIO: roadId: '' laneId: LANE_ID s: 1 - offset: $random_offset + offset: 0 Orientation: type: relative h: 0