opSimulation merge requestshttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests2024-03-21T08:36:33Zhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/186Update install prequisites documentation2024-03-21T08:36:33ZRaghunandan Netrapalli MadhusudhanUpdate install prequisites documentationOnly the commit https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/commit/8466a3c12453a1288157cec65d717947e512f0ee (Update documentation on third-party library installations using conan2) is part of this PR and the rest of the co...Only the commit https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/commit/8466a3c12453a1288157cec65d717947e512f0ee (Update documentation on third-party library installations using conan2) is part of this PR and the rest of the commits are part of MR !181
This PR should be merged after MR !181 is mergedRaghunandan Netrapalli MadhusudhanRaghunandan Netrapalli Madhusudhanhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/185Remove unwanted files2024-03-11T10:19:33ZRaghunandan Netrapalli MadhusudhanRemove unwanted filesRaghunandan Netrapalli MadhusudhanRaghunandan Netrapalli Madhusudhanhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/184Update vehicle dynamics model2024-03-06T15:58:11ZEnno MaschkeUpdate vehicle dynamics model- add steering elasticity parameter
- remove Qt dependencies (except Q_DECL_EXPORT & Q_DECL_IMPORT) from dynamics components
- solve issue #246 (add `ReadPreviousState()` call to trigger in MotionModel; see !176 )
- update PCM E2E test
-...- add steering elasticity parameter
- remove Qt dependencies (except Q_DECL_EXPORT & Q_DECL_IMPORT) from dynamics components
- solve issue #246 (add `ReadPreviousState()` call to trigger in MotionModel; see !176 )
- update PCM E2E test
- apply clang tidy rules to dynamics componentshttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/183Apply iwyu (include-what-you-use)2024-03-04T07:40:13ZRaghunandan Netrapalli MadhusudhanApply iwyu (include-what-you-use)- Apply iwyu on source code
- Refactor FmuCommunication
- Remove agent from OSI groundtruth- Apply iwyu on source code
- Refactor FmuCommunication
- Remove agent from OSI groundtruthRaghunandan Netrapalli MadhusudhanRaghunandan Netrapalli Madhusudhanhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/182Fix missing imports gcc 12/13 and issue 2412024-03-06T15:26:25ZEnno MaschkeFix missing imports gcc 12/13 and issue 241- Fix issue #241
- Add missing header for gcc 12/13- Fix issue #241
- Add missing header for gcc 12/13https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/181Draft: integrate new windows build agent and update conan to v22024-03-28T08:19:08ZRaghunandan Netrapalli MadhusudhanDraft: integrate new windows build agent and update conan to v2https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/180Improve documentation and pyOpenPASS2024-03-04T07:40:46ZRaghunandan Netrapalli MadhusudhanImprove documentation and pyOpenPASSFollowing changes are made as part of this MR
- Update images within documentation
- Fix subprocess to handle dead processes in pyOpenPASS
- Write stdout and stderr into a file in results when executing pyOpenPASS
- Fix and enhance WITH...Following changes are made as part of this MR
- Update images within documentation
- Fix subprocess to handle dead processes in pyOpenPASS
- Write stdout and stderr into a file in results when executing pyOpenPASS
- Fix and enhance WITH_COVERAGE option
- Update program installation path, linux cmake settings, windows vscode settings in documentation
- Documentation for dev containers
- Adapt pyOpenPASS to fail an E2E test, when there is a warning in the output.logRaghunandan Netrapalli MadhusudhanRaghunandan Netrapalli Madhusudhanhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/179Apply clang-tidy on the source code2024-03-04T07:42:18ZRaghunandan Netrapalli MadhusudhanApply clang-tidy on the source codeThe following features are implemented as part of this MR
- Fix clang-tidy warnings
1. bugprone
2. cppcoreguidelines
3. misc
4. llvm warnings
5. google warnings
6. Modernize warnings...The following features are implemented as part of this MR
- Fix clang-tidy warnings
1. bugprone
2. cppcoreguidelines
3. misc
4. llvm warnings
5. google warnings
6. Modernize warnings
7. Performance
8. readablility
- Move sampler.cpp to Common library
- Load fmu in FmuWrapper constructor
- Create a schema file for each xml file
- LINKOSI dropped from command add_openpass_target and replaced with find_package and FindOSI.cmakeRaghunandan Netrapalli MadhusudhanRaghunandan Netrapalli Madhusudhanhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/178Implement features and fix bugs2024-03-04T07:42:42ZRaghunandan Netrapalli MadhusudhanImplement features and fix bugs- fix deprecation warnings in pyopenpass after updating pytest to 7.4.2 and pandas to 2.1.0
- Improve documentation of published agent values
- Add lost VehicleModels oldtimer and lorry configs in VehicleModelsCatalog
- Add model3d and m...- fix deprecation warnings in pyopenpass after updating pytest to 7.4.2 and pandas to 2.1.0
- Improve documentation of published agent values
- Add lost VehicleModels oldtimer and lorry configs in VehicleModelsCatalog
- Add model3d and mass to oldtimer and lorry in VehicleModelsCatalog
- Rename targets of osi from osi::<> to open_simulation_interface::<>
- Implement parallel processing for pyOpenPASS
- Add t_axis_yaw to OSI ReferenceLine in World_OSI
- Update OSI version to 3.6.0
- Replace QCommandLineParser with boost::program_options
- Start to remove other QT libraries from main
- Replace tmpnam() with mkstemp() for thread safety
- Remove the patch for building the FMI library
- Adopt opendrive naming convention in documentation
- Fix broken handling of MSYS dependency paths
- Update coding conventions EOL section in documentationRaghunandan Netrapalli MadhusudhanRaghunandan Netrapalli Madhusudhanhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/177Draft: Test merge request 176 without e2e pcm2024-02-14T08:10:23ZSimon ZipfelDraft: Test merge request 176 without e2e pcmDuplicate to MR176. Only for testing purposesDuplicate to MR176. Only for testing purposeshttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/176Possible fix to bug in PCM use case2024-03-06T15:58:11ZPaul RomahnPossible fix to bug in PCM use caseWe were investigating a bug in the [PCM use case](https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/tree/main/sim/contrib/examples/Configurations/PCM?ref_type=heads), in which the agents drive towards each other on a parking lot...We were investigating a bug in the [PCM use case](https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/tree/main/sim/contrib/examples/Configurations/PCM?ref_type=heads), in which the agents drive towards each other on a parking lot and don't collide but drive through each other.
In our investigations we noticed, that at the moment of the collision, the velocities and accelerations jumped for a cycleTime unit, but then reset to the values before the crash and agents passed through each other without influencing each other. For that we reviewed the crash calculation component, `DynamicsCollisionPCM`, and debugged the calculation of the crash. The collision impulse (modified velocity vector) for the moment of the `COLLISIONIMPULS` was calculated and written directly to the corresponding agent.
When investigated the motion-model (`Dynamics_MotionModel`) we checked whether the modifications to the velocity vector influenced the motion-model and found out that it did not. As far as we could tell in `Dynamics_MotionModel_Implementation`, the velocity and acceleration of an agent are read only once during initialization of the motion-model and from then on only updated without reading them first. This causes the issue in the parking lot scenario, as the modifications made by the `DynamicsCollisionPCM` component are never read but overwritten by the `Dynamics_MotionModel` component.
A simple fix for this bug that caused expected behaviour of the agents in the parking lot scenario was, to read the current velocity and acceleration of the agent before the logic of the motion-model translates and rotates it each cycle. We implemented this by calling `ReadPreviousState()` in the `Dynamics_MotionModel_Implementation::Trigger` method before the motion-model logic to force an update of the local variables.
We have tested the modifications only for the PCM use case and are aware that our solution might cause side effects in other scenarios.
Furthermore, we still have the following open questions:
1. In component `DynamicsCollisionPCM` in method `Dynamics_Collision_Implementation::Trigger`, variables `accelerationImpact` and `yawAccel` are created, initialized with 0 mps² and written to the agent. For us, it seemed like some additional logic was missing to calculate the modifications to the acceleration that we would expect during an collision.
1. In other components signals are used to return modifications of an agent. Why do `DynamicsCollisionPCM` and `Dynamics_MotionModel` modify the agents directly (e.g. `GetAgent()->SetVelocityVector({x, y, z})` call in `DynamicsCollisionPCM`) and not with signals?
Paul Romahn, on behalf of Mercedes-Benz Tech Innovation GmbH, [Provider Information](https://github.com/mercedes-benz/foss/blob/master/PROVIDER_INFORMATION.md)https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/175fix(CI): Fix CI script to handle realease artifacts and Windows artifacts2024-02-05T13:47:40ZRaghunandan Netrapalli Madhusudhanfix(CI): Fix CI script to handle realease artifacts and Windows artifactshttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/174fix for collision detection, if the polygons do not collide at T=0, but short...2024-02-01T08:41:04ZBenjamin Hohlfix for collision detection, if the polygons do not collide at T=0, but shortly afterwardsWe had some trouble with the collision detection: under some particular edge cases,
- `CollisionDetector::CalculateCrash()` would be called, because a collision had been detected between the bounding boxes of two cars
- however, subseque...We had some trouble with the collision detection: under some particular edge cases,
- `CollisionDetector::CalculateCrash()` would be called, because a collision had been detected between the bounding boxes of two cars
- however, subsequently `CollisionDetectionPostCrash::GetFirstContact()` could not determine the first contact between the two polygons
- subsequently, `CollisionDetectionPostCrash::CreatePostCrashDynamics()` could not fill in the correct values (speed, etc.) for the collision.
This is probably related to https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/issues/247 - at least that is where we encountered the bug.
The reason for this bug appears to be: sometimes `CalculateCrash()` is called for a time T that is a few milliseconds before the actual collision of the polygons.
This fix extends the logic in `GetFirstContact()`
The old logic was:
- starting with T1=0, search backwards in 100ms steps, until a time T2 where both shapes do not collide
- then search for the exact time of first contact between T1 and T2
The new behaviour adds another step before that:
- if the polygons do not collide at T=0, search forwards and backwards to find a time T1 where both shapes do collide
- then, as before, starting with T1, search backwards in 100ms steps, until a time T2 where both shapes do not collide
- then, as before search for the exact time of first contact between T1 and T2
This fix also includes some log warnings and errors when the collision detection fails, and some debug log messages in the normal case.
To allow logging, `FrameworkModuleContainer `now passes the `CallbackInterface `to the `CollisionDetector`.
Benjamin Hohl, on behalf of Mercedes-Benz Tech Innovation GmbH, [Provider Information](https://github.com/mercedes-benz/foss/blob/master/PROVIDER_INFORMATION.md)https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/173Draft: Test: Merge Request Title2024-02-05T13:15:00ZArun DasDraft: Test: Merge Request TitleMerge Request DescriptionMerge Request Descriptionhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/172Draft: Test: Merge Request Title2023-12-12T16:54:34ZArun DasDraft: Test: Merge Request TitleMerge Request DescriptionMerge Request Descriptionhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/171fix(Configs): Add model3d and mass to oldtimer and lorry2023-12-14T09:19:10ZDavid Weißfix(Configs): Add model3d and mass to oldtimer and lorryThomas PlatzerThomas Platzerhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/170Setup nightly build2024-02-28T07:57:39ZRaghunandan Netrapalli MadhusudhanSetup nightly buildhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/169Add missing VehicleModels oldtimer and lorry2023-11-10T08:48:42ZDavid WeißAdd missing VehicleModels oldtimer and lorryThomas PlatzerDavid WeißThomas Platzerhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/168Fix minor issues2023-11-10T06:09:41ZRaghunandan Netrapalli MadhusudhanFix minor issues- Change publish_artifacts.sh to an executable mode
- Remove redundant check_inline_docu.sh (It is replaced with 25_check_inline_docu.sh)
- Fix version comparison in 25_check_inline_docu.sh- Change publish_artifacts.sh to an executable mode
- Remove redundant check_inline_docu.sh (It is replaced with 25_check_inline_docu.sh)
- Fix version comparison in 25_check_inline_docu.shhttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests/167Merge v1.02023-11-10T14:23:55ZTuan Duong QuangMerge v1.0- Updated Documentation: The documentation has been revised and updated for clarity and accuracy.
- Implementation of openScenarioEngine and MantleAPI Dependencies: openScenarioEngine and MantleAPI dependencies have been implemented to e...- Updated Documentation: The documentation has been revised and updated for clarity and accuracy.
- Implementation of openScenarioEngine and MantleAPI Dependencies: openScenarioEngine and MantleAPI dependencies have been implemented to enhance functionality.
- CI Enhancements: Several fixes have been applied to enhance Continuous Integration (CI) processes.
- Removal of Qt GUI: Dependencies, build instructions, tutorials, user documentation related to the Qt GUI, and the openPASS Jenkins CI have been removed.
- Third-Party Dependency Handling via Conan: Improved management of third-party dependencies using Conan package manager.
- CMake Option for Configuration Examples: Added a CMake option to install configuration examples for easier setup.
- Adaptation to Semantic Versioning: openPASS is now aligned with semantic versioning principles.
- Removal of Unused Components: Unnecessary components have been removed to streamline the software.
- Bug Fixes: Numerous bug fixes have been implemented to enhance stability and performance.
- Introduction of SSP (System Structure & Parameterization): The introduction of Semantic Scene Parser (SSP) for improved scene parsing capabilities.Release v1.0.0Tuan Duong QuangTuan Duong Quang