OpenSimulationInterface / open-simulation-interface

A generic interface for the environmental perception of automated driving functions in virtual scenarios.
Other
267 stars 125 forks source link

Streaming Interface #718

Closed ThomasNaderBMW closed 1 year ago

ThomasNaderBMW commented 1 year ago

#### Reference to a related issue in the repository https://github.com/OpenSimulationInterface/open-simulation-interface/issues/700

Add a description

A streaming interface is needed for e.g. powering a graphics engine with dynamic changing data in a higher frequency.

Some questions to ask: What is this change? New generic interface for powering other components with dynamic data. Is this a bug fix or a feature? Does it break any existing functionality or force me to update to a new version? It is a new feature. How has it been tested? It is tested with a similar interrface.

Take this checklist as orientation for yourself, if this PR is ready for the Change Control Board:

If you can’t check all of them, please explain why. If all boxes are checked or commented and you have achieved at least one positive review, you can assign the label ReadyForCCBReview!

ThomasNaderBMW commented 1 year ago

// Approach 1: is_obsolete flags inside the messages (example see osi_object.proto)

// Approach 2: Is shown below, id_lists (also for traffic lights etc.) //repeated Identifier obsolete_moving_object_id = x;

// Approach 3: This message with an enum describing if content is to update or to delete.

globberwops commented 1 year ago

Approach 1)

Pros:

Cons:

Approach 2)

Pros:

Cons:

ThomasNaderBMW commented 1 year ago

Regarding realising a streaming interface, these are the open questions/points: - Why not the approach sending GroundTruth cyclic (with a delta encoding flag) + a obsolete_id-Message? Or an inherited mechanism?

thomassedlmayer commented 1 year ago

Refering to earlier discussions, this interface was planned to improve performance for use cases like visualization or similar but did not intend to be a "real"/full delta encoding for OSI, right? So I guess one reason why we opted for a separate message for this interface and did not aim to use the GroundTruth message with some indicator flag (+ obsolete_id list) may be that it would not be accidently misunderstood/misused as delta encoding. In contrast to delta encoding, this "partial update" approach would enable to send updates only for objects that are considered relevant for the receiver (from sender point of view) and omit non-relevant object updates, right? It would not necessarily result in a complete representation of the groundtruth at the receiver. You would not know what happened to objects that were not included in the update.

I'd like to clarify which of the following variants we are discussing:

I thought, initially we would aim for the first variant or did I understand something wrong? I think it would make sense to have some precise definition of what we want to achieve with this interface and how it would work in practice because for me it is quite confusing and unclear what the general understanding of the group concerning this topic is.

Also, I think we agreed on not using delta updates on fields like position etc., right? So an update message still contains the complete position/orientation/etc. values just like in the "original" groundtruth. That's why I think, we should not include "delta" in the name. It could be easily misunderstood IMO.

@ThomasNaderBMW I did not yet receive an invitation for the separate meeting to discuss the streaming interface. What was the date/time again?

ThomasNaderBMW commented 1 year ago

@thomassedlmayer : Thank you very much for your input.

I sent you the meeting, but you should already have gotten it. It is on 2nd May.

I agree on, that the whole object (moving object e.g.) has to be sent if a single value changes.

ThomasNaderBMW commented 1 year ago

Special Meeting Performance & Packaging: Regarding realising a streaming interface, these are the open questions/points:

ThomasNaderBMW commented 1 year ago

Performance & Packaging, 04.05.23: New Open Points:

ThomasNaderBMW commented 1 year ago

CCB Review, 19.06.23: