Skip to content

Commit 2a4902a

Browse files
ndunningbmwpmai
authored andcommitted
Add BoundingBox section
Signed-off-by: Nicholas Dunning <Nicholas.Dunning@bmw.de>
1 parent 659a95c commit 2a4902a

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed

osi_common.proto

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,125 @@ message LogicalLaneAssignment
387387
optional double angle_to_lane = 4;
388388
}
389389

390+
// \brief A bounding box containing a sub-section of a object.
391+
//
392+
// A bounding box representing a sub-section of it's parents overall dimension,
393+
// either that of a \c MovingObject or \c StationaryObject .
394+
//
395+
// The parent frame of the \c BoundingBox is not relative to the parent object
396+
// it is associated to, but in the same parent frame as the parent object.
397+
//
398+
message BoundingBox
399+
{
400+
// The 3D dimensions of the bounding box.
401+
//
402+
optional Dimension3d dimension = 1;
403+
404+
// The 3D position of the bounding box.
405+
//
406+
// \note The position should be within the same coordinate frame as it's
407+
// parent, not relative to coordinate frame of the parent object. The
408+
// position becomes global/absolute if the parent frame is inertial
409+
// (all parent frames up to ground truth).
410+
//
411+
optional Vector3d position = 2;
412+
413+
// The 3D orientation of the bounding box.
414+
//
415+
// \note The orientation should be within the same coordinate frame as it's
416+
// parent, not relative to coordinate frame of the parent object. The
417+
// orientation becomes global/absolute if the parent frame is inertial
418+
// (all parent frames up to ground truth).
419+
//
420+
optional Orientation3d orientation = 3;
421+
422+
// The type of object contained in the bounding box.
423+
//
424+
optional Type contained_object_type = 4;
425+
426+
// Opaque reference of an associated 3D model of the bounding box.
427+
//
428+
// \note It is implementation-specific how model_references are resolved to
429+
// 3d models. This means the coordinate system, model origin, and model
430+
// orientation are also implementation-specific.
431+
//
432+
optional string model_reference = 5;
433+
434+
// Definition of different types of object contained within the bounding box
435+
//
436+
enum Type
437+
{
438+
// Object of unknown type (must not be used in ground truth).
439+
//
440+
TYPE_UNKNOWN = 0;
441+
442+
// Any other type of object.
443+
//
444+
TYPE_OTHER = 1;
445+
446+
// The main chassis of a vehicle.
447+
//
448+
TYPE_CHASSIS = 2;
449+
450+
// The door of a vehicle.
451+
//
452+
// \note A door may extend beyond the dimension of the parent when in
453+
// an open state. A closed door must be within the original dimension.
454+
//
455+
TYPE_DOOR = 3;
456+
457+
// The side mirror of a vehicle.
458+
//
459+
// \note A side mirror may extend beyond the dimension of the parent.
460+
//
461+
TYPE_SIDE_MIRROR = 4;
462+
463+
// Additional cargo attached to the a vehicle which is temporarily
464+
// attached.
465+
//
466+
// \note Cargo may extend beyond the dimension of the parent.
467+
//
468+
TYPE_CARGO = 5;
469+
470+
// The wheel of a vehicle.
471+
//
472+
// \note A wheel may extend beyond the dimension of the parent.
473+
//
474+
// \note For more detailed information about the wheels of an object,
475+
// please refer to \c MovingObject/VehicleAttributes/WheelData .
476+
//
477+
TYPE_WHEEL = 6;
478+
479+
// The torso section of a person or animal.
480+
//
481+
TYPE_TORSO = 7;
482+
483+
// An external limb of a person or animal.
484+
//
485+
TYPE_LIMB = 8;
486+
487+
// The head of a person or animal.
488+
//
489+
TYPE_HEAD = 9;
490+
491+
// The trunk section of a tree.
492+
//
493+
TYPE_TREE_TRUNK = 10;
494+
495+
// The crown of a tree, usually encompassing the branches and leaves.
496+
//
497+
TYPE_TREE_CROWN = 11;
498+
499+
// The vertical pole of a street light.
500+
//
501+
TYPE_STREET_LIGHT_POLE = 12;
502+
503+
// The horizontal arm of a street light.
504+
//
505+
TYPE_STREET_LIGHT_ARM = 13;
506+
}
507+
}
508+
390509
//
391510
// \brief The base attributes of a stationary object or entity.
392511
//
@@ -447,6 +566,23 @@ message BaseStationary
447566
// The polygon is defined counter-clockwise.
448567
//
449568
repeated Vector2d base_polygon = 4;
569+
570+
// Sub-divisions of the overall bounding box of the \c BaseStationary object.
571+
//
572+
// The bounding box sections can include separate parts on partially-opaque
573+
// objects such are trees with a distinction between trunk and crown.
574+
//
575+
// \note When one or more \c BoundingBox s are associated to a
576+
// \c BaseStationary , the expectation is that all sections are contained
577+
// within the bounds of the \c #dimension .
578+
//
579+
// \note It is also expcted that when using \c #bounding_box_section ,
580+
// anyone consuming this data has the guarantee that all others parts of
581+
// the \c BaseStationary are covered by a sub-section, such that the
582+
// guarentee is that the remaining area of the objects dimension is
583+
// represented by space where no physical collisions could be detected.
584+
//
585+
repeated BoundingBox bounding_box_section = 5;
450586
}
451587

452588
//
@@ -569,6 +705,23 @@ message BaseMoving
569705
// The polygon is defined counter-clockwise.
570706
//
571707
repeated Vector2d base_polygon = 7;
708+
709+
// Sub-divisions of the overall bounding box of the \c BaseMoving object.
710+
//
711+
// The bounding box sections can include side mirrors, cargo, etc. for
712+
// vehicles, as well as body-part sections for pedestrians.
713+
//
714+
// \note When one or more \c BoundingBox s are associated to a
715+
// \c BaseMoving , the expectation is that all sections are contained
716+
// within the bounds of the \c #dimension .
717+
//
718+
// \note It is also expcted that when using \c #bounding_box_section ,
719+
// anyone consuming this data has the guarantee that all others parts of
720+
// the \c BaseMoving are covered by a sub-section, such that the
721+
// guarentee is that the remaining area of the objects dimension is
722+
// represented by space where no physical collisions could be detected.
723+
//
724+
repeated BoundingBox bounding_box_section = 9;
572725
}
573726

574727
//

0 commit comments

Comments
 (0)