Skip to content

Update osi_occupant.proto #305

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

Closed
wants to merge 11 commits into from
Closed

Conversation

FlorianBadeBMW
Copy link

Added initial definition for (physiological) occupant state.

Goal: Provide the means for enabling a basic form of driver modeling within a simulation framework.

Added initial definition for (physiological) occupant state.
Copy link

@MartinBuchnerBMW MartinBuchnerBMW left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good te me as an DriverModel expert.

Copy link
Contributor

@pmai pmai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason that the new attributes are part of a state message, whereas e.g. the steering wheel interaction is not? Wouldn't it make more sense to keep the new attributes as part of the occupant message directly?

The use of repeated for left and right eye entries seems a bit problematic (what if an occupant only has one eye, i.e. the right eye?). It seems to me that those should just be seperate left_ and right_ fields… and should be at the top-level, i.e. there should be separate left_eye_state and right_eye_state fields, with the option that each eye has not been detected/is not present/….

Use occupant xxx instead of occupant's/occupants wording.

@mbencik
Copy link

mbencik commented Feb 25, 2019

I tend to agree with P. Mai. Little side notice is either there is a field EyesState and not EyeState which covers boths eyes or there is an LeftEyeState and RightEyeState. The naming convention is confusing.

@ghost ghost added this to the v3.2.0 milestone Feb 25, 2019
@FlorianBadeBMW
Copy link
Author

Is there a reason that the new attributes are part of a state message, whereas e.g. the steering wheel interaction is not? Wouldn't it make more sense to keep the new attributes as part of the occupant message directly?

The use of repeated for left and right eye entries seems a bit problematic (what if an occupant only has one eye, i.e. the right eye?). It seems to me that those should just be seperate left_ and right_ fields… and should be at the top-level, i.e. there should be separate left_eye_state and right_eye_state fields, with the option that each eye has not been detected/is not present/….

Use occupant xxx instead of occupant's/occupants wording.

The reasoning behind a separate state message is to differentiate between HMI (steering wheel, pedals, etc.) and physiological state (head pose, gaze, heartbeat, etc.). Should be discussed.

I concur with all your further comments and will adjust the change accordingly.

@FlorianBadeBMW
Copy link
Author

I tend to agree with P. Mai. Little side notice is either there is a field EyesState and not EyeState which covers boths eyes or there is an LeftEyeState and RightEyeState. The naming convention is confusing.

THanks for the side note; I will incorporate this as well.

@ghost
Copy link

ghost commented Mar 5, 2019

@FlorianBadeBMW please also have a look at the build details. It will tell you about missing documentation or problems with the style guidelines.

Corrected missing documentation
@FlorianBadeBMW
Copy link
Author

@FlorianBadeBMW please also have a look at the build details. It will tell you about missing documentation or problems with the style guidelines.

@CarloVanDriestenBMW : I fixed the missing doc and will incorporate the changes proposed above next.

@MartinBuchnerBMW MartinBuchnerBMW requested a review from pmai April 1, 2019 15:32
@MartinBuchnerBMW MartinBuchnerBMW added the FeatureRequest Proposals which enhance the interface or add additional features. label Apr 1, 2019
@MartinBuchnerBMW
Copy link

@pmai: Would you please review our latest changes?

@ghost
Copy link

ghost commented Apr 4, 2019

@MartinBuchnerBMW LGTM

Can you give me a feedback if the head_pose in the Detected Moving Object is insufficiently defined and it should be done accoring to your proposal? [Link](optional Orientation3d osi3::DetectedMovingObject::CandidateMovingObject::head_pose = 4)

@pmai I will wait for your approval before we merge.

@ghost
Copy link

ghost commented Apr 4, 2019

@MartinBuchnerBMW I just relaized after reading a comment from @ppannusch that this should be part of the DetectedOccupant because it is in fact something that has to be modelled first.

@ghost
Copy link

ghost commented Apr 4, 2019

I must admit that the DetectedOccupant looks wired.... I guess we have to think about the "how does what model" here again and make a picture of the involved parties and needed interfaces

@ghost
Copy link

ghost commented May 21, 2019

Compare here

@FlorianBadeBMW
Copy link
Author

Waiting for pending reviwer.

@jdsika
Copy link
Contributor

jdsika commented Aug 8, 2019

Look at the osi_detectedobject.proto for the head_pose signal. I think it is necessary to harmonize these definitions and not have two competing ones. This description does have an explanatory reference which is currently missing in the osi_occupant.

// Pedestrian head pose for behavior prediction. Describes the head
// orientation w.r.t. the host vehicle orientation.
// The x-axis of the right-handed head frame is pointing along the
// pedestrian's straight ahead viewing direction and the z-axis is
// pointing upwards (cranial direction [1] i.e. to pedestrian's skull
// cap).
//
// View_normal_base_coord_system = // Inverse_Rotation(#head_pose)*Unit_vector_x
//
// \note This field is mandatory if the \c CandidateMovingObject.type is
// \c MovingObject::TYPE_PEDESTRIAN
//
// \par References:
// - [1] https://en.wikipedia.org/wiki/Anatomical_terms_of_location
//
optional Orientation3d head_pose = 4;

@jdsika
Copy link
Contributor

jdsika commented Aug 8, 2019

The message EyeState is also missing a proper reference. Why is it defined like this? Any publications or normative paper to link here?

@FlorianBadeBMW
Copy link
Author

Look at the osi_detectedobject.proto for the head_pose signal. I think it is necessary to harmonize these definitions and not have two competing ones. This description does have an explanatory reference which is currently missing in the osi_occupant.

// Pedestrian head pose for behavior prediction. Describes the head
// orientation w.r.t. the host vehicle orientation.
// The x-axis of the right-handed head frame is pointing along the
// pedestrian's straight ahead viewing direction and the z-axis is
// pointing upwards (cranial direction [1] i.e. to pedestrian's skull
// cap).
//
// View_normal_base_coord_system = // Inverse_Rotation(#head_pose)*Unit_vector_x
//
// \note This field is mandatory if the \c CandidateMovingObject.type is
// \c MovingObject::TYPE_PEDESTRIAN
//
// \par References:
// - [1] https://en.wikipedia.org/wiki/Anatomical_terms_of_location
//
optional Orientation3d head_pose = 4;

We should definitely synch the definitions. Two additional points here:

  1. For the occupant, we need a clearly defined head position in addition to the orientation.
  2. The orientation axes still have to be defined (i.e. the relevant anatomical intersections, which are missing from the above description as well as from the Wikipedia article).

@mbencik
Copy link

mbencik commented Aug 16, 2019

@FlorianBadeBMW after reviewing the EyeState message I noticed that the definition might not be sufficient for simulations. Some basic problems are there is no base line anatomy definition. For example there is no distance between the two eyes. This is kind of a covered by the position of the eyes, but this is not saying what is the reference point in the car or otherwise to witch are the eyes positions calculated.

image

https://www.sciencedirect.com/science/article/pii/S0042698915003508

The question is if there must be a definition of the complete horopter system for the human. This differs from the wiki definitions quite a bit, and it need a lot of details.

Difference in FOV

image

The question is if we need to parameterize the FOV for humans. Then the EyeState openning parameter is not enough.

My suggestion would be to replace EyeState openning, with a FOV of each eye vertical and horizontal angle.

The next question is there a plan to simulate near and far vision? Since many people have this condition and do not wear lenses or glasses.

@jdsika jdsika modified the milestones: v3.2.0, v4.0.0 Feb 19, 2020
@jdsika jdsika added the Bug Problems in the build system, build scripts, etc or faults in the interface. label Feb 19, 2020
@kmeids kmeids removed this from the (REMOVE) ASAM OSI x.x.x milestone Oct 28, 2020
@kmeids kmeids added the TrafficParticipants The group in the ASAM development project working on traffic participants. label Oct 28, 2020
@clemenshabedank
Copy link
Contributor

Hello together,
is anyone of this lively discussion here still interested in finding a solution? I agree with you that the way humans (pedestrians and occupants) are modelled in OSI should be reworked. I have already had some discussion on this topic and have a few ideas about it. So I would be very interested in further discussion about potential usecases and first like to answer the question what information about humans shall be available in the GroundTruth (i.e. input to sensormodels) and what shall be on the output side (so the detected information in SensorData). Also a usecase where pedestrian/occupant behavior is modelled would be very interesting, especially with the model type Traffic Participant which will be introduced in the upcoming V3.3 release. @mbencik @FlorianBadeBMW @MartinBuchnerBMW @jdsika

@kmeids
Copy link

kmeids commented Feb 6, 2021

@clemenshabedank, we (Ansys) have some use case on this topic. Count me in for further discussions.

@clemenshabedank
Copy link
Contributor

I am planning a discussion at the meeting on Thursday this week. Anybody who is interested and doesnt have the invitation, please let me know.

Signed-off-by: Habedank Clemens <qxs2704@europe.bmw.corp>
optional Vector3d head_position = 1;

// The orientation from the occupant's head, always relative to the host vehicle frame
// (for ground truth occupants an detected occupants).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarify with Coordinate system group.

@jdsika
Copy link
Contributor

jdsika commented Apr 25, 2024

replaced by #710

@jdsika jdsika closed this Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Problems in the build system, build scripts, etc or faults in the interface. FeatureRequest Proposals which enhance the interface or add additional features. TrafficParticipants The group in the ASAM development project working on traffic participants.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants