Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/spelling_custom_words_en_US.txt
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,7 @@ OSI's
osmp
Ouml
ouml
oversized
parametrization
parametrize
Parkausweis
Expand All @@ -259,6 +260,7 @@ Parkschein
Parkstände
Paulat
pdf
perceivably
png
Polizeikontrolle
polyline
Expand Down
86 changes: 79 additions & 7 deletions osi_object.proto
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not too familiar with the OSI structure, but in 3.7 I found the roles under "Vehicle Classification", see screenshot below. Is this something we need to change as we address all kinds of moving objects here?

Image

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, we should also think about how to include it generically for all moving objects. But I though, we might want to harmonize the existing enum first.

We could just reference the existing enum definition in MovingObjectClassification or - for a cleaner result - move the role enum definition out of the VehicleClassification to be a generic enum definition (osi3::Role instead of osi3::MovingObject::VehicleClassification::Role) and then reference it in two places. I believe this should work in a backwards compatible way because we wouldn't change the data representation by moving enum definitions.

Original file line number Diff line number Diff line change
Expand Up @@ -1250,6 +1250,10 @@ message MovingObject
//
enum Role
{
// Allow aliases in enum
//
option allow_alias = true;

// Role of vehicle is unknown (must not be used in ground truth).
//
ROLE_UNKNOWN = 0;
Expand All @@ -1258,41 +1262,109 @@ message MovingObject
//
ROLE_OTHER = 1;

// The vehicle role is civil, e.g. a "normal" car.
// Traffic participant that can be perceived as regular civilian and
// does not perceivably indicate any other role.
//
ROLE_CIVIL = 2;

// The vehicle role is ambulance.
// Traffic participant that can be perceived as belonging to a
// medical emergency service.
//
ROLE_AMBULANCE = 3;

// Traffic participant that can be perceived as belonging to the
// fire brigade.
//
ROLE_FIRE_BRIGADE = 4;

// The vehicle role is fire fighting, e.g. fire engine.
//
// \note Deprecated differentiation, use ROLE_FIRE_BRIGADE instead
//
ROLE_FIRE = 4;

// The vehicle role is police.
// Traffic participant that can be perceived as belonging to a law
// enforcement agency.
//
ROLE_POLICE = 5;

// The vehicle role is public transport, e.g. a school bus.
// Traffic participant that can be perceived as a form of mass
// passenger transportation mode (e.g. public transport bus, rental
// passenger bus, tram) or clearly recognizable passenger
// transportation mode (e.g. taxi).
//
// \note Should not be used for HOV (high-occupancy vehicle) lane
// access: No indication of occupation state.
//
ROLE_PUBLIC_TRANSPORT = 6;

// Traffic participant that can be perceived as belonging to a
// roadside/breakdown assistance service, e.g. towing vehicle.
//
ROLE_ROADSIDE_ASSISTANCE = 7;

// The vehicle role is roadside assistance, e.g. tow truck.
//
// \note Deprecated differentiation, use ROLE_ROADSIDE_ASSISTANCE
// instead
//
ROLE_ROAD_ASSISTANCE = 7;

// The vehicle role is garbage collection, e.g. a garbage truck or sweeper.
// Traffic participant that can be perceived as belonging to a
// garbage collection service.
//
ROLE_GARBAGE_COLLECTION = 8;

// The vehicle role is road construction, e.g. a excavator or tipper truck.
// Traffic participant that can be perceived as construction
// vehicle/construction worker (e.g. road construction, rail
// construction).
//
ROLE_CONSTRUCTION = 9;

// The vehicle role is road construction, e.g. a excavator or tipper
// truck.
//
// \note Deprecated differentiation, use ROLE_CONSTRUCTION instead
//
ROLE_ROAD_CONSTRUCTION = 9;

// The vehicle role is military, e.g. camouflaged truck.
// Traffic participant that can be perceived as belonging to a
// military force.
//
ROLE_MILITARY = 10;

// Traffic participant that can be perceived as freight transport,
Copy link
Contributor

Choose a reason for hiding this comment

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

See comment below.

Suggested change
// Traffic participant that can be perceived as freight transport,
// Traffic participant that can be perceived as a shipping actor,

// e.g. freight truck, delivery van, delivery bike, postman.
//
ROLE_FREIGHT_TRANSPORT = 11;
Copy link
Contributor

Choose a reason for hiding this comment

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

I thought about this one and researched a little bit, e.g. at UPS (see screenshot). Maybe, we should use the term "shipping" instead as an umbrella term for delivery, freight, cargo etc. that would include them all, I believe.

Suggested change
ROLE_FREIGHT_TRANSPORT = 11;
ROLE_SHIPPING = 11;
Image

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 me "shipping" seems like a customer oriented logistics term. It sounds more like the process of arranging the transportation of goods from start to end which includes a lot more than just the act of transportation itself. Would a person working in a logistics center be assigned the role "shipping" just because he/she contributes to the process of shipping? I know that the role would have to be perceivable but still for me this adds some ambiguity.

I'd still be in favor of using "freight" or maybe "goods" if we want an even less logistics-specific term. In our use case this is more about differentiating the transportation of people vs. the transportation of freight/goods. "Güterverkehr" in German includes the logistics terms "Nahverkehr" (parcel courier) and "Fernverkehr" (long distance transportation). But "Güterverkehr" usually translates to "freight transport" rather than "goods transport".


// Traffic participant that can be perceived as part of special
// transport (e.g. heavy or oversized load).
//
// \note The transport vehicle may be accompanied by support
// vehicles which can be assigned to the role Traffic Control.
//
ROLE_SPECIAL_TRANSPORT = 12;

// Traffic participant that can be perceived as part of dangerous
// goods/hazardous materials transport.
//
// \note The transport vehicle may be accompanied by support
// vehicles which can be assigned to the role Traffic Control.
//
ROLE_DANGEROUS_GOODS_TRANSPORT = 13;

// Traffic participant that can be perceived as agricultural
// machinery.
//
ROLE_AGRICULTURE = 14;

// Traffic participant that can be perceived as an obligated traffic
// control unit (e.g. railroad flagman, person responsible for
// traffic control at construction site, support vehicle for
// dangerous goods transport).
//
ROLE_TRAFFIC_CONTROL = 15;
}
}

Expand Down