Geometry is a branch of mathematics concerned with questions of shape, size, relative position of figures, and the properties of space.
This package contains data types which represent geometrical objects.
See also
See also
A set of BoundingBox3DFloat objects.
Code author: Christian Emmerich <cemmeric@cor-lab.de>
Type : | array of rst.geometry.BoundingBox3DFloat |
---|
Empty collection of boxes is allowed. The order of box objects is not significant.
message BoundingBox3DFloatSet {
/**
* Empty collection of boxes is allowed.
* The order of box objects is not significant.
*/
repeated geometry.BoundingBox3DFloat boxes = 1;
}
A message representing a pair of 2D Points
Code author: TODO
Type : | rst.math.Vec2DFloat |
---|
TODO
Type : | rst.math.Vec2DFloat |
---|
TODO
message PointPair {
/**
* TODO
*/
required math.Vec2DFloat first = 1;
/**
* TODO
*/
required math.Vec2DFloat second = 2;
}
Description of a 3D shape as a union of geometric primitives.
New primitive types can be added to this type.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Code author: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
Type : | array of rst.geometry.BoundingBox3DFloat |
---|
Set of oriented bounding boxes contributing to the described 3D shape.
The order of bounding boxes is not significant.
message Shape3DFloat {
/**
* Set of oriented bounding boxes contributing to the described 3D
* shape.
*
* The order of bounding boxes is not significant.
*/
repeated geometry.BoundingBox3DFloat box = 1;
}
Constraint: .maximal_distance > .minimal_distance
A camera’s view frustum.
Adds information about the maximal and minimal perceivable distance (minimal_distance, maximal_distance) of a sensor to the definition of its field of view (fov).
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
Type : | rst.geometry.FieldOfView |
---|
The field of view of the frustum.
Type : | FLOAT32 |
---|
Constraint: value > 0
Unit: meter
The minimal perceivable distance.
Type : | FLOAT32 |
---|
Constraint: value > 0
Unit: meter
The maximal perceivable distance.
message ViewFrustum {
/**
* The field of view of the frustum.
*/
required FieldOfView fov = 1;
/**
* The minimal perceivable distance.
*/
// @constraint(value > 0)
// @unit(meter)
optional float minimal_distance = 2 [default = 0];
/**
* The maximal perceivable distance.
*/
// @constraint(value > 0)
// @unit(meter)
optional float maximal_distance = 3 [default = 99999];
}
A sequence of length measurements (e.g. length of a link in a kinematics chain).
Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>
Type : | array of FLOAT64 |
---|
Unit: meter
message Lengths {
// @unit(meter)
repeated double lengths = 1;
}
Pose of a camera with semantic annotation of the axes.
The pure transformation of the camera’s pose (in terms of coordinate systems) does not provide information about the viewing direction. There must be a convention about the semantic meaning of the transformation in order to convey the information about where the camera actually looks. coordinate_frame realizes this convention by describing the three axes of the camera’s coordinate system semantically including viewing direction and up direction.
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
Type : | rst.geometry.CameraPose.CoordinateFrame |
---|
Annotation of the axes.
Type : | rst.geometry.Pose |
---|
The pose of the camera’s coordinate system in 3d space relative to a given parent coordinate system.
message CameraPose {
/**
* Semantic annotation of the axes. (all right-handed)
*/
enum CoordinateFrame {
/**
* X: right - Y: down - Z: forward (depth axis)
*/
CAMERA_IMAGE_FRAME = 0;
/**
* X: up - Y: right - Z: forward (depth axis)
*/
CAMERA_X_UP_FRAME = 1;
/**
* X: left - Y: up - Z: forward (depth axis)
*/
CAMERA_Y_UP_FRAME = 2;
/**
* X: forward (depth axis) - Y: left - Z: up
*/
LASER_FRAME = 3;
/**
* X: right - Y: up - Z: towards viewer (negative depth axis)
*/
SCREEN_FRAME = 4;
}
/**
* Annotation of the axes.
*/
optional CoordinateFrame coordinate_frame = 1 [default = CAMERA_IMAGE_FRAME];
/**
* The pose of the camera's coordinate system in 3d space relative
* to a given parent coordinate system.
*/
required geometry.Pose pose = 2;
}
Semantic annotation of the axes. (all right-handed)
X: right - Y: down - Z: forward (depth axis)
X: up - Y: right - Z: forward (depth axis)
X: left - Y: up - Z: forward (depth axis)
X: forward (depth axis) - Y: left - Z: up
X: right - Y: up - Z: towards viewer (negative depth axis)
enum CoordinateFrame {
/**
* X: right - Y: down - Z: forward (depth axis)
*/
CAMERA_IMAGE_FRAME = 0;
/**
* X: up - Y: right - Z: forward (depth axis)
*/
CAMERA_X_UP_FRAME = 1;
/**
* X: left - Y: up - Z: forward (depth axis)
*/
CAMERA_Y_UP_FRAME = 2;
/**
* X: forward (depth axis) - Y: left - Z: up
*/
LASER_FRAME = 3;
/**
* X: right - Y: up - Z: towards viewer (negative depth axis)
*/
SCREEN_FRAME = 4;
}
A set of Cylinder3DFloat objects.
Code author: Christian Emmerich <cemmeric@cor-lab.de>
Type : | array of rst.geometry.Cylinder3DFloat |
---|
Empty collection of cylinders is allowed. The order of cylinders is not significant.
message Cylinder3DFloatSet {
/**
* Empty collection of cylinders is allowed.
* The order of cylinders is not significant.
*/
repeated geometry.Cylinder3DFloat cylinders = 1;
}
Cylinder in 3D in general position and orientation.
The general cylinder with dimensions radius and height is constructed by translating and rotating (via transformation) a zero-centered, z-oriented axis-aligned cylinder such as below around its center of mass.
< radius > .---------------------. / \ / \ + + + ^ |\ /| | \ / | | `---------------------' | | | | Z ^ | | | ^ Y | height | | / | | |/ | | +-----> X | | | ˙ | | | | | | + + v \ / \ / `---------------------'
Code author: Christian Emmerich <cemmeric@cor-lab.de>
Type : | rst.geometry.Pose |
---|
Transformation, consisting of translation and orientation, of the center of mass of the cylinder.
Type : | FLOAT32 |
---|
Unit: meter
The radius of the cylinder.
Type : | FLOAT32 |
---|
Unit: meter
The height of the cylinder.
message Cylinder3DFloat {
/**
* Transformation, consisting of translation and orientation, of
* the center of mass of the cylinder.
*/
required geometry.Pose transformation = 1;
/**
* The radius of the cylinder.
*/
// @unit(meter)
required float radius = 2;
/**
* The height of the cylinder.
*/
// @unit(meter)
required float height = 3;
}
A set of 3D Point clouds.
Code author: Christian Emmerich <cemmeric@cor-lab.de>
Type : | array of rst.geometry.PointCloud3DFloat |
---|
Empty collection of clouds is allowed. The order of cloud objects is not significant.
message PointCloudSet3DFloat {
/**
* Empty collection of clouds is allowed.
* The order of cloud objects is not significant.
*/
repeated geometry.PointCloud3DFloat clouds = 1;
}
A collection of points in 3D space.
Code author: Jordi Sanchez Riera <jordi.sanchez-riera@inrialpes.fr>
Todo
correct author?
Type : | array of rst.math.Vec3DFloat |
---|
TODO @unit(meter?)
message PointCloud3DFloat {
/**
* TODO
*/
// @unit(meter?)
repeated math.Vec3DFloat points = 1;
}
Bounding-box in 3D in general position and orientation.
The general bounding-box with dimensions width x depth x height is constructed by translating and rotating (via transformation) an axis-aligned bounding-box around its center of mass.
For an axis-aligned version, see AxisAlignedBoundingBox3DFloat.
Code author: Christian Emmerich <cemmeric@cor-lab.de>
Code author: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
Type : | rst.geometry.Pose |
---|
Transformation, consisting of translation and orientation, of the center of mass of the bounding-box.
Type : | FLOAT32 |
---|
Unit: meter
The width (along the X axis) of the box.
Type : | FLOAT32 |
---|
Unit: meter
The depth (along the Y axis) of the box.
Type : | FLOAT32 |
---|
Unit: meter
The height (along the Z axis) of the box.
message BoundingBox3DFloat {
/**
* Transformation, consisting of translation and orientation, of
* the center of mass of the bounding-box.
*/
required geometry.Pose transformation = 1;
/**
* The width (along the X axis) of the box.
*/
// @unit(meter)
required float width = 2;
/**
* The depth (along the Y axis) of the box.
*/
// @unit(meter)
required float depth = 3;
/**
* The height (along the Z axis) of the box.
*/
// @unit(meter)
required float height = 4;
}
Pose data (camera, robot, ...).
Todo
extend explanation
Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>
Type : | rst.geometry.Translation |
---|
TODO
Type : | rst.geometry.Rotation |
---|
TODO
message Pose {
/**
* TODO
*/
required Translation translation = 1;
/**
* TODO
*/
required Rotation rotation = 2;
}
Cartesian 3-dimensional rotatory displacement or orientation.
The displacement or orientation (orientation being a rotation from an origin) is in world coordinates and expressed as unit quaternion (all-zero quaternion denotes an invalid orientation/rotation).
Code author: Arne Nordmann <anordman@cor-lab.uni-bielefeld.de>
Type : | FLOAT64 |
---|
TODO
Type : | FLOAT64 |
---|
TODO
Type : | FLOAT64 |
---|
TODO
Type : | FLOAT64 |
---|
TODO
message Rotation {
/**
* TODO
*/
required double qw = 4;
/**
* TODO
*/
required double qx = 5;
/**
* TODO
*/
required double qy = 6;
/**
* TODO
*/
required double qz = 7;
}
An axis-aligned bounding-box in 3D.
The bounding-box is constructed by spanning at left_front_bottom a rectangular volume of lengths width x depth x height along the positive directions of the X, Y and Z axis respectively.
^ Z | | +----------------------+ ^ | / /| | / / | | / / | height | +----------------------+ | | | | | | | | + v | Y | | / ^ | ^ | | / depth | / | |/ | / +----------------------+ v | / left_front_bottom | / < width > |/ +-----------------------------> X
For a bouding-box in general orientation (i.e. not axis-aligned) see BoundingBox3DFloat.
Code author: Christian Emmerich <cemmeric@cor-lab.de>
Code author: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
Type : | rst.geometry.Translation |
---|
Coordinates of the bottom left front corner.
Type : | FLOAT32 |
---|
Unit: meter
The width (along the X axis) of the box.
Type : | FLOAT32 |
---|
Unit: meter
The depth (along the Y axis) of the box.
Type : | FLOAT32 |
---|
Unit: meter
The height (along the Z axis) of the box.
message AxisAlignedBoundingBox3DFloat {
/**
* Coordinates of the bottom left front corner.
*/
required geometry.Translation left_front_bottom = 1;
/**
* The width (along the X axis) of the box.
*/
// @unit(meter)
required float width = 2;
/**
* The depth (along the Y axis) of the box.
*/
// @unit(meter)
required float depth = 3;
/**
* The height (along the Z axis) of the box.
*/
// @unit(meter)
required float height = 4;
}
Cartesian 3-dimensional translatory displacement or position.
The displacement or position (position being translation from an origin) is expressed in world coordinates.
Code author: Arne Nordmann <anordman@cor-lab.uni-bielefeld.de>
Type : | FLOAT64 |
---|
Unit: meter
Cartesian displacement along the x axis
Type : | FLOAT64 |
---|
Unit: meter
Cartesian displacement along the y axis
Type : | FLOAT64 |
---|
Unit: meter
Cartesian displacement along the z axis
message Translation {
/**
* Cartesian displacement along the x axis
*/
// @unit(meter)
required double x = 1;
/**
* Cartesian displacement along the y axis
*/
// @unit(meter)
required double y = 2;
/**
* Cartesian displacement along the z axis
*/
// @unit(meter)
required double z = 3;
}
The field of view of a sensor.
The sensor’s FOV is defined as the angular extent of a scene that is imaged by a visual sensor. The outermost observable ray that falls in a sensor’s FOV has the angular distance +/- AOV/2.0 from the optical axis in the respective extent (vertical/horizontal). The angles are given in radian.
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
Type : | FLOAT32 |
---|
Constraint: value > 0
Unit: radian
An angle defining the horizontal bounds of the FOV.
Type : | FLOAT32 |
---|
Constraint: value > 0
Unit: radian
An angle defining the vertical bounds of the FOV.
message FieldOfView {
/**
* An angle defining the horizontal bounds of the FOV.
*/
// @constraint(value > 0)
// @unit(radian)
required float horizontal_aov = 1;
/**
* An angle defining the vertical bounds of the FOV.
*/
// @constraint(value > 0)
// @unit(radian)
required float vertical_aov = 2;
}
Constraint: .top_left.x < .image_width
Constraint: .top_left.x + .width <= .image_width
Constraint: .top_left.y < .image_height
Constraint: .top_left.y + .height <= .image_height
A bounding box, which is associated to a raster image.
(0,0) Image +----------------------------------+ ^ | | | top_left | | +---------------+ ^ | | | | | | | | height | image_height | | | | | +---------------+ v | | < width > | | | +----------------------------------+ v < image_width >
All values are in pixels and refer to the associated image.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Type : | rst.math.Vec2DInt |
---|
Unit: pixel
Coordinates of the top left corner.
Type : | UINT32 |
---|
Unit: pixel
Width of the bounding box.
Type : | UINT32 |
---|
Unit: pixel
Height of the bounding box.
Type : | UINT32 |
---|
Unit: pixel
Width of the image the bounding box is based on.
Type : | UINT32 |
---|
Unit: pixel
Height of the image the bounding box is based on.
message BoundingBox {
/**
* Coordinates of the top left corner.
*/
// @unit(pixel)
required math.Vec2DInt top_left = 1;
/**
* Width of the bounding box.
*/
// @unit(pixel)
required uint32 width = 2;
/**
* Height of the bounding box.
*/
// @unit(pixel)
required uint32 height = 3;
/**
* Width of the image the bounding box is based on.
*/
// @unit(pixel)
optional uint32 image_width = 4;
/**
* Height of the image the bounding box is based on.
*/
// @unit(pixel)
optional uint32 image_height = 5;
}
Enter search terms or a module, class or function name.