Skip to content

osi_vehicle: A deeper description of a vehicle #350

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 33 commits into from

Conversation

ThomasNaderBMW
Copy link
Contributor

Reference to a related issue in the repository

This is the continuation of Extension by HMI-, ADAS- and Dynamic-Values (Part II) #309.

Add a description

osi_vehicle is a deeper description of a vehicle.
The logic is, that it categorizes the vehicle through different messages. The categories are:
Vehicle-Basics, Vehicle-Kinematics, Vehicle-Powertrain, Vehicle-SteeringWheel, Vehicle-Wheels, Vehicle-Light-State, Vehicle-Automated-Driving-Functions.

As it is an description of the whole vehicle it can be used as interface for various reasons.
Three proof-of-concepts are still running, they use osi_vehicle as interface to

  • the vehicle-model for kinematics calculation (Driver-Inputs are included in the categories)
  • the graphic-engine for the visualisation
  • a real car for measurement reasons.

Some questions to ask:
What is this change?
It is an extension that enables new use-cases for osi and helps to modularize simulation-components.
What does it fix?
Proprietary connections.
Is this a bug fix or a feature? Does it break any existing functionality or force me to update to a new version?
As it is an additionaly .proto-file it hasn't any effect on the rest.
How has it been tested?
In three proof-of-concepts (see above).

Mention a member

@jdsika @pmai @ThomasSchloemicherAVL

and @ALL:
Thanks for the many contributions so far. Go on with that! 👍

@ThomasNaderBMW ThomasNaderBMW added FeatureRequest Proposals which enhance the interface or add additional features. HelpWanted I have tried my best - please help me! labels Oct 23, 2019
@ThomasNaderBMW ThomasNaderBMW added this to the v3.2.0 milestone Oct 23, 2019
@ThomasNaderBMW ThomasNaderBMW self-assigned this Oct 23, 2019
@ThomasNaderBMW ThomasNaderBMW changed the title Create osi_vehicle.proto osi_vehicle: A deeper description of a vehicle Oct 23, 2019
@0815-code
Copy link
Contributor

Maybe merge with osi_vehicle.proto with osi_hostvehicledata.proto. Personally i like the term HostVehicleData.
Furthermore maybe adding localization info fields plus the method of localization behind. Was the localization method based on pure reading GNSS data or some more advanced localization methods behind such as GNSS-RTK and/or fusing (U)HD-Map info with CV feature extraction etc...

// Unit: [m/s^2]
//
optional double acceleration = 8;

Copy link
Contributor

Choose a reason for hiding this comment

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

Isnt that redundant information to mention here accleration and velocity again? See VehicleKinematics --> Base Moving

Copy link
Contributor Author

Choose a reason for hiding this comment

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

meant is the targeted velocity and acceleration at the planned point.. but I am not sure here

// Unit: [1/(m*s)]
//
optional double curvature_change = 6;

Copy link
Contributor

Choose a reason for hiding this comment

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

out of doubles 3, 4, 5, and 6 one can formulate a polyline. us same data type here as for lane boundary polyline (still need to commit these changes, though)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

maybe it makes sense to use your polyline-definition? Let's discuss this next time.

// Range: [0, 1]
//
optional double steering_override_factor = 3;

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe pedal (accelerator and/or brake) override here also?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Values I would say on the "waiting-list". Is there a use-case?

// Unit: [rad]
//
optional double camber = 5;

Copy link
Contributor

Choose a reason for hiding this comment

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

Wheel toe for completness?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is this value in generell important? I think about to delete it.. Otherwise you are right!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

at least it is the same like the steering-angle right?

// Warning by the danger of a collision.
//
FUNCTION_NAME_LEVEL_0_FORWARD_COLLISION_WARNING = 14;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Well done, thats a great list. Is it accounted for that some of these funtions can occur in parallel?

Choose a reason for hiding this comment

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

localization has some overlap with position and position_rmse in osi_hostvehicledata.proto

Copy link

@ManuelKugelmann ManuelKugelmann left a comment

Choose a reason for hiding this comment

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

Is is wise to change the field ids of an existing message? This will break backward compatibility ...
Gaps in the list of field ids are not a problem.

@ManuelKugelmann
Copy link

How will the overlap with MovingObject and HostVehicleData be solved? Duplicate and potentially inconsistent places for data might cause maintenance and compatibility nightmares...

@pmai
Copy link
Contributor

pmai commented Dec 4, 2019

Is is wise to change the field ids of an existing message? This will break backward compatibility ...
Gaps in the list of field ids are not a problem.

Since moving the field to the classification is likely to only happen in a major release anyway, the id change is probably immaterial. That said, I think the lane_id stuff should be aligned with ISO 26150 DIS once that is available/forseeable at the same time as the changeover to the classification.

{
// The id of the car in the simulation.
//
optional Identifier id = 1;
Copy link

@ManuelKugelmann ManuelKugelmann Dec 10, 2019

Choose a reason for hiding this comment

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

Identifier id is maybe better placed into the root of the VehicleClass message to mirror MovingObject etc..
That it is nested forced me to add some extra code in my framework ...
==> Done. Thanks for the hint.

BTW: what is the reasoning behind the name "VehicleClass" ?
==> VehicleClass is not sent directly, but can be embedded as you can see in the message "Vehicle" or "Traffic"

Copy link
Contributor Author

@ThomasNaderBMW ThomasNaderBMW left a comment

Choose a reason for hiding this comment

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

Is is wise to change the field ids of an existing message? This will break backward compatibility ...
Gaps in the list of field ids are not a problem.

Can you post the hint again in the right PR? The change moved out of this PR. Next time I will tell Thomas, if I remember.

//
message VehicleWheels
{
// Contains the physical description of the front-left wheel.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes i know, that is sth that will be discussed. I think this format should have the focus on cars and dont become complicated. But its a good point and a decission has to be made (osi_vehicle or osi_car?) thx

// Unit: [rad]
//
optional double camber = 5;

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is this value in generell important? I think about to delete it.. Otherwise you are right!


// Contains the tirepressure of each tire.
//
// Unit: [Pa]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Now I think it is not that important. Interesting is just the pressure to show it in the HMI-Screen I would guess..


// Contains the tirepressure of each tire.
//
// Unit: [Pa]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

To show there is a flat tire e.g.

@jdsika jdsika modified the milestones: v3.2.0, v4.0.0 Feb 19, 2020
@kmeids kmeids added the TrafficParticipants The group in the ASAM development project working on traffic participants. label Oct 28, 2020
@kmeids kmeids removed this from the (REMOVE) ASAM OSI x.x.x milestone Oct 28, 2020
@ThomasNaderBMW
Copy link
Contributor Author

Topic is integrated in updating hostVehicleData, see here:
#441

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FeatureRequest Proposals which enhance the interface or add additional features. HelpWanted I have tried my best - please help me! 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.

6 participants