opSimulation merge requestshttps://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/merge_requests2024-03-04T07:42:18Zhttps://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/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/160Draft: Evaluate cross compilation2023-10-20T06:48:46ZReinhard BiegelDraft: Evaluate cross compilationJust testing the pipelineJust testing the pipelineRelease vX.X.Xhttps://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/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/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/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/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/185Remove unwanted files2024-03-11T10:19:33ZRaghunandan Netrapalli MadhusudhanRemove unwanted filesRaghunandan Netrapalli MadhusudhanRaghunandan Netrapalli Madhusudhanhttps://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/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 components