Skip to content

Conversation

@carsten-kuebler
Copy link
Contributor

According to the OSI workshop in Ulm (November 2017), I propose this new lane model and the corresponding OSI messages. Change break downward compatibility.

@pmai
Copy link
Contributor

pmai commented Jan 17, 2018

This looks good to me at first glance, but I think it would be good to get feedback from the other workshop participants, e.g. @HendrikAmelunxen, @AndreHildebrandt, @MHerrmannIPG, @JonathanSchmalhoferBMW, or @AndreasVIRES if this matches what they expect.

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.

This is just a review of the technical changes needed to retain technical backward compatibility; this can be ignored to a certain degree if we decide to switch to V3.0.0 release, which might make sense since even if we stay technically backward compatible, I do not think that the changes to the lane model makes new code usable with old data or vice versa...

// also be additional free lanes.
repeated LaneBoundary lane_boundary = 4;
// \note CenterlineIsDrivingDirection is defined for \c Lane::type = TYPE_DRIVING.
optional bool center_line_is_driving_direction = 4;
Copy link
Contributor

Choose a reason for hiding this comment

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

To maintain basic backward compatibility field tag 4 should be reserved and center_line_is_driving_direction should get a new tag (after existing ones).


// The id of the free boundary ID.
//
optional LaneFraming lane_framing = 9;
Copy link
Contributor

Choose a reason for hiding this comment

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

lane_framing tag number should be reserved, and not reused.


// A normal lane.
// E.g. lanes with ids 1, 2, 3, 4 and 7 of the highway_exit image.
TYPE_NORMAL = 2;
Copy link
Contributor

Choose a reason for hiding this comment

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

To retain backward compatiblity TYPE_NORMAL can be changed to TYPE_DRIVING, I think, but the new TYPE_NONDRIVING and TYPE_INTERSECTION enum values should be new unused values to avoid misinterpretation, I think...

//
message LaneBoundary
{
//The id of the lane boundary.
Copy link
Contributor

Choose a reason for hiding this comment

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

Again, if we want to technically remain backward compatible, the id field need to use a new tag number and the remaining fields should retain their tag numbers.

@pmai
Copy link
Contributor

pmai commented Jan 18, 2018

@CarloVanDriestenBMW I think we need to decide soonish whether it makes more sense to release as 3.0.0 rather than 2.3.0 given the changes to the lane model (and some other changes)...

@ghost
Copy link

ghost commented Jan 18, 2018

I am starting to think that the version change to 3.0.0 is reflecting the now aligned development with VDA in a better way -> and yes it may not be backward compatible

This was referenced Jan 26, 2018
@pmai
Copy link
Contributor

pmai commented Jan 26, 2018

BTW, I think this changeset is still missing the predecessor/successor pairings that @CarloVanDriestenBMW suggested to better express valid ways to cross a junction, right?

@carsten-kuebler
Copy link
Contributor Author

@pmai no, there will be no pairings for junctions. This decision was taken at OSI workshop in Ulm (2017). Valid ways depend on road markings, traffic signs linked to predecessor lanes and road markings and free lane boundaries of the junction. For this purpose, junctions have no center lines...

@pmai
Copy link
Contributor

pmai commented Jan 29, 2018

Yes the Ulm consensous was to throw out the relationships for junctions. @CarloVanDriestenBMW proposed switching from separate predecessor/successor lists to a new combined pair list afterwards, to enable the logical possibilities to be still represented after the Workshop. Just wanted to ensure that it was clear whether this changeset included that or not. Thanks, will merge as soon as someone from the Environment Simulation side has reviewed.

@carsten-kuebler
Copy link
Contributor Author

highway_exit_2

we add the lane pairing to OSI::Lanes. We have to improve the documentation with this image.

So for lane 6 the lane pairing will be (4,7) and (4,8).
(In the previous version of the image lane 6 will be only the right adjacent lane.)

@pmai and @CarloVanDriestenBMW: PR now with lane pairing.

@carsten-kuebler
Copy link
Contributor Author

highway_exit

In this case lane 4 has two right adjacent lanes (lane 5 and 6). 6 is no successor lane of lane 4. @pmai and @CarloVanDriestenBMW do you agree?

@ghost ghost added the FeatureRequest Proposals which enhance the interface or add additional features. label Feb 1, 2018
carsten-kuebler and others added 2 commits February 6, 2018 00:13
Restructuring the lane model: Lane boundaries are seperated from the
lanes and only referenced in lanes.
Logical definition for possible lane pairings, improved logic for intersections.
@pmai pmai self-assigned this Feb 5, 2018
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.

The proposed changes look good to me, and are in line with the Ulm Workshop findings, will merge with cleanup.

@pmai pmai merged commit 046e743 into master Feb 5, 2018
pmai added a commit that referenced this pull request Feb 6, 2018
…e-model

New detected lane model (related to Handling Junctions with OSI::GroundTruth::Lane - issue #80 and pull request #110)
Copy link

@solosito solosito left a comment

Choose a reason for hiding this comment

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

I added some comments that, in my opinion, are making it more understandable.

//
repeated Lane lane = 9;

// A list of lane boundaries from lanes.
Copy link

Choose a reason for hiding this comment

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

In my opinion this is redundant. Just A list of lane boundaries. would be enough.


// Marking with violet color.
//
Copy link

Choose a reason for hiding this comment

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

Suggestion: the same typo might be fixed in the line 58

// might be used e.g. in construction sites. The lane markings do not have to be parallel to the center_line, but
// they are the basis for calculating the width of the lane at any given distance.
// Defined and used for driving lanes.
// true means driving direction is according to ascending order of center line points.
Copy link

Choose a reason for hiding this comment

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

true means driving direction agrees with ascending storage order of the points defining the center_line.

// they are the basis for calculating the width of the lane at any given distance.
// Defined and used for driving lanes.
// true means driving direction is according to ascending order of center line points.
// false means driving direction is according to descending order of center line points.
Copy link

Choose a reason for hiding this comment

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

false means driving direction disagrees with descending storage order of the points defining the center_line.

@pmai pmai deleted the New-lane-model branch March 27, 2018 12:15
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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants