-
Notifications
You must be signed in to change notification settings - Fork 129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add flag to filter static content from SensorView #407
Conversation
@pmai (CC @clemenshabedank) Any chance this can make it into OSI 3.4? I understand that there needs to be some description of what will be omitted if this flag is set. A relatively simple suggestion:
It seems to me that this could be done in a backwards-compatible manner for OSI 3.4. |
osi_sensorviewconfiguration.proto
Outdated
@@ -190,6 +190,16 @@ message SensorViewConfiguration | |||
// Unit: s | |||
optional Timestamp simulation_start_time = 10; | |||
|
|||
// TBD: I guess we would not introduce this field in favor of the | |||
// GroundTruthInitConfiguration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TBD
// Omit static street layer | ||
// | ||
// The street layer, i.e. \c Lane, \c LaneBoundary and \c RoadMarking | ||
// is regarded static and should be sent only at initialization. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TBD. Maybe we want a description more similar to the bool omit_static_objects, because even elements from the street layer might change during simulation.
@ThomasNaderBMW @pmai @tbleher please have a look as well as the corresponding OSMP PR OpenSimulationInterface/osi-sensor-model-packaging#69 |
OSI CCB:
|
@tbleher @pmai @ThomasNaderBMW friendly reminder. Tomorrow we want to discuss it in the architecture group meeting together with the OSMP PR. Thank you ! |
// \note: While sending certain object at initialization and others | ||
// at runtime, it must be ensured that each object still has a unique id. | ||
// | ||
optional bool omit_static_objects = 3; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is a sensible definition, but will need matching changes to OSMP. Currently https://github.com/OpenSimulationInterface/osi-sensor-model-packaging/blob/master/doc/specification.rst says:
OSMPGroundTruthInit
MUST contain all static data (e.g. roads) encountered by the model during a simulation run. Any dynamic data (e.g. MovingObjects) it contains MUST NOT be used and has no specified semantics.
If I remember correctly, the second sentence was added on request of dSpace, who said they could not guarantee that only static objects would be present in the GroundTruthInit message. (The change was OpenSimulationInterface/osi-sensor-model-packaging@cf890b4, in case you want to look up the original discussion in SETLevel4to5). I understand where this argument is coming from (probably most people just use an already existing function to generate the GroundTruth, add an object to the world, set the radius to maximum, and generate the GroundTruth from there), but I do not find it particularly compelling: it's quite easy to remove the dynamic objects before passing them to an FMU as part of OSMPGroundTruthInit
.
If we allow to omit static objects
(which I find important), then OSMP has to be changed to say that the OSMPGroundTruthInit
message may only contain completely static objects, which will not appear in later messages. If any dynamic object (which can change later or disappear) is present in the initial ground truth, then it becomes impossible to later determine whether the object is static (and thus not present in a later sensor view), or whether it moved out of sight.
Note: I do find omit static objects
to be important: our maps typically have 1000s of static objects (trees, poles, patches on the roads, buildings, ...). Example: the map I demoed on the "SETLevel4to5 Halbzeitevent" contains 3574 static objects on the 1x1km map. I had to disable transmitting any static objects (even just within the 200m radius of the pedestrian) to get acceptable performance. So this flag is quite crucial to get realtime performance.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I see now that this is addressed in OpenSimulationInterface/osi-sensor-model-packaging#69 .
FYI. This PR is a likely candidate to be dropped from V3.4. Otherwise get in touch! |
From my POV, this patch is critical to support agent models with OSI in a driving simulator. Without this, it is impossible to run agent models in real time on the maps we use. What would be needed to get this into OSI 3.4? |
Well, getting the PR ready to merge in the next few day. Mid of next week at the latest! |
@tbleher I think it's good that you make pressure to get it into v3.4. A bit of a problem is that we haven't finalized the discussion about what OSI regards as static / not static and didn't discuss the changes I made. Probably we won't be able to finish the discussion in the next few days (or maybe Friday Architecture meeting?). A potential solution would be to merge it as it came out of SET Level but we didn't define what static means so this would be open to interpretation. |
@kmeids Please decide what to do with this PR. If the project wants this in 3.4 we would need to merge in the next 2-3 days. |
Hello everyone,
Moving this now to 4.0, if it is later on decided that a 3.5 will be created then we can update. |
The major reason this PR was delayed was because we wanted to introduce the GroundTruthInitConfiguration system, and it was hence waiting whether the flag is still needed in this case. That being said, I think the flag part of the PR could be merged, just clarifying that it just removes everything that is in the GroundTruthInit message. This will be true now, and will continue to be true in the future with the added configuration system. The configuration system is IMHO too late for 3.4, but the flag could be easily done. I'll split out Clemens changes and adjust the wording accordingly. |
Signed-off-by: Pierre R. Mai <[email protected]>
Signed-off-by: Pierre R. Mai <[email protected]>
d0e991e
to
7f11084
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, this looks sensible and covers my use-case 👍
Good from my side as well, just please keep in mind that we need to pick this up again after this release! |
@ThomasNaderBMW, |
@kmeids What was the outcome of the CCB? Will this be merged for 3.4? |
@tbleher, CCB meeting will take place tomorrow. |
Output CCB 13.10.2021:
|
This PR represents a PR from the SETLevel4To5 project to add a flag to the SensorViewConfiguration to indicate that no static content should be included in the SensorView ground truth information. It is purposefully left open what constitutes static information, to defer to ASAM discussions on this that transcend this PR. See OpenSimulationInterface/osi-sensor-model-packaging#56 for more details and the corresponding changes to packaging.
This PR is provided as a starting point for discussions in the relevant ASAM WPs.
Signed-off-by: Pierre R. Mai [email protected]