mosaic
mosaic copied to clipboard
feat: introducing SensorModule to provide access to environmental events
Description
- Provides new interfaces to provide vehicle applications with sensor modules.
- The
BasicSensorModuleis a single-value based sensor model which can be used to detect icy or rainy areas (e.g., viagetOs().getBasicSensorModule().getStrengthOf(SensorType.ICE). This replaces the methodgetOs().getStateOfEnvironmentSensor(SensorType.ICE)in the generalOperatingSystem. The data for this sensor module is produced by theEnvironmentAmbassador. - The
LidarSensorModuleprovides access to the previously addedPointCloudstructure which is produced by vehicle simulators such as PHABMACS or Carla. - For now, only
VehicleUnits are able to use the new sensor modules.
- The
- Adjusted all apps (e.g.,
WeatherWarningApp).
Issue(s) related to this PR
- Resolves internal issue 889
Affected parts of the online documentation
Changes in the documentation required?
Yes, documentation and Barnim tutorials must be adjusted to use
getBasicSensorModuleinstead now.
Definition of Done
Prerequisites
- [x] You have read CONTRIBUTING.md carefully.
- [x] You have signed the Contributor License Agreement.
- [x] Your GitHub user id is linked with your Eclipse Account.
Required
- [x] The title of this merge request follows the scheme
type(scope): description(in the style of Conventional Commits) - [x] You have assigned a suitable label to this pull request (e.g.,
enhancement, orbugfix) - [x]
origin/mainhas been merged into your Fork. - [ ] Coding guidelines have been followed (see CONTRIBUTING.md).
- [ ] All checks on GitHub pass.
- [ ] All tests on Jenkins pass.
Requested (can be enforced by maintainers)
- [ ] New functionality is covered by unit tests or integration tests. Code coverage must not decrease.
- [ ] If a bug has been fixed, a new unit test has been written (beforehand) to prove misbehavior
- [ ] There are no new SpotBugs warnings.
Special notes to reviewer
had a very brief read and came up with following things:
- [ ] getEnvironmentSensor(): environment here gets a very special naming meaning "coming from environment simulator". also lidar data is from the environment... right? not sure how confusing this is in the future >>
getSimpleSensor() - [ ] getEnvironmentSensor(): singular "Sensor" may be confusing, because environment has multiple sensor types...
- [ ] getOs().getSensorModule().getEnvironmentSensor().enable() : this enable was happening on the module itself (looking at adhoc / cell), so after getModule(), now it's one layer deeper. I find this confusing and for my taste this should be unified.
- [ ] same thing different perspective: with "sensible" you give access to both environment + lidar. so why would you
enable()those separately? - discussed: have
getLidarSensorModule()andgetSimpleSensorModule()as two different modules - [ ] why
DefaultSensorModuleand notSensorModule(cmp AdhocModule / CellModule) (I don't fully understand why you want to split this very little functionality into the interface SensorModule, this only makes sense if you can reuse it, like for theSensor<T>). I would merge Default + SensorModule