Package rst.geometry¶
Not documented
Messages¶
Message PolygonalPatch3DSet¶
-
class
rst.geometry.
PolygonalPatch3DSet
¶ A set of
PolygonalPatch3D
objects.Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
-
patches
¶ Type: array of rst.geometry.PolygonalPatch3D
Empty collection is allowed. Order is not important.
-
message PolygonalPatch3DSet {
/**
* Empty collection is allowed. Order is not important.
*/
repeated PolygonalPatch3D patches = 1;
}
Message PolygonalPatch3D¶
-
class
rst.geometry.
PolygonalPatch3D
¶ A two-dimensional patch in 3D space bounded by a polygon.
In contrast to planes (with infinite extend) this kind of bounded patch needs a local coordinate system in order to define the borders of the patch. Thus, instead of the widely used point-normal representation, we use a complete 6D pose for describing the location of the plane. We define that the X and Y axes of the resulting coordinate system span the plane. Accordingly, the Z axis corresponds to the normal on the plane. The patch border is a 2D polygon defined by a sequence of
Vec2DFloat
objects.In order to construct a 3D representation of the patch, the 2D coordinates of the polygon must be extended by a Z = 0 coordinate and transformed using the 6D pose. The polygon must not be self intersecting.
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
-
base
¶ Type: rst.geometry.Pose
The 6D transformation specifying the base (X and Y axes span the plane in which the patch and its bounding polygon reside).
-
border
¶ Type: array of rst.math.Vec2DFloat
Constraint:
len(value) >= 3
The 2D polygon defining the border of the patch.
Winding rule: ccw w.r.t. normal (Z axis) (right-hand rule)
Linear segments arise by connecting consecutive entries of the array (including an additional implicit segment connecting the last entry to the first entry).
Order of entries is significant.
-
message PolygonalPatch3D {
/**
* The 6D transformation specifying the base (X and Y axes span
* the plane in which the patch and its bounding polygon reside).
*/
required Pose base = 1;
/**
* The 2D polygon defining the border of the patch.
*
* Winding rule: ccw w.r.t. normal (Z axis) (right-hand rule)
*
* Linear segments arise by connecting consecutive entries of the
* array (including an additional implicit segment connecting the
* last entry to the first entry).
*
* Order of entries is significant.
*/
// @constraint(len(value) >= 3)
repeated math.Vec2DFloat border = 2;
}
Message BoundingBox¶
-
class
rst.geometry.
BoundingBox
¶ 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>
-
top_left
¶ Type: rst.math.Vec2DInt
Unit: pixel
Coordinates of the top left corner.
-
width
¶ Type: UINT32
Unit: pixel
Width of the bounding box.
-
height
¶ Type: UINT32
Unit: pixel
Height of the bounding box.
-
image_width
¶ Type: UINT32
Unit: pixel
Width of the image the bounding box is based on.
-
image_height
¶ 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;
}
Message SphericalDirectionFloat¶
-
class
rst.geometry.
SphericalDirectionFloat
¶ Describes a direction using two angles in a spherical coordinate system which is grounded in a right-handed 3D Cartesian coordinate system. Rotations follow the right-hand rule.
See also
Code author: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
-
azimuth
¶ Type: FLOAT32
Unit: radian
Describes the rotation around the z axis of the underlying Cartesian coordinate system. A value of 0 zero points into the positive direction of the X axis.
-
elevation
¶ Type: FLOAT32
Unit: radian
elevation angle with respect to the X-Y plane of the reference Cartesian coordinate system. A value of 0 points towards the “horizon”.
-
message SphericalDirectionFloat {
/**
* Describes the rotation around the z axis of the underlying
* Cartesian coordinate system. A value of 0 zero points into the
* positive direction of the X axis.
*/
// @unit(radian)
required float azimuth = 1;
/**
* elevation angle with respect to the X-Y plane of the reference
* Cartesian coordinate system. A value of 0 points towards the
* "horizon".
*/
// @unit(radian)
required float elevation = 2;
}
Message BoundingBox3DFloat¶
-
class
rst.geometry.
BoundingBox3DFloat
¶ Bounding-box in 3D in general position and orientation.
The general bounding-box with dimensions
width
xdepth
xheight
is constructed by translating and rotating (viatransformation
) 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>
-
transformation
¶ Type: rst.geometry.Pose
Transformation, consisting of translation and orientation, of the center of mass of the bounding-box.
-
width
¶ Type: FLOAT32
Unit: meter
The width (along the X axis) of the box.
-
depth
¶ Type: FLOAT32
Unit: meter
The depth (along the Y axis) of the box.
-
height
¶ 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;
}
Message Pose¶
-
class
rst.geometry.
Pose
¶ Pose data (camera, robot, ...).
Todo
extend explanation
Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>
-
translation
¶ Type: rst.geometry.Translation
TODO
-
rotation
¶ Type: rst.geometry.Rotation
TODO
-
message Pose {
/**
* TODO
*/
required Translation translation = 1;
/**
* TODO
*/
required Rotation rotation = 2;
}
Message Rotation¶
-
class
rst.geometry.
Rotation
¶ 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>
-
qw
¶ Type: FLOAT64
TODO
-
qx
¶ Type: FLOAT64
TODO
-
qy
¶ Type: FLOAT64
TODO
-
qz
¶ Type: FLOAT64
TODO
-
frame_id
¶ Type: ASCII-STRING
Identifier for the coordinate frame of the rotation.
-
message Rotation {
/**
* TODO
*/
required double qw = 4;
/**
* TODO
*/
required double qx = 5;
/**
* TODO
*/
required double qy = 6;
/**
* TODO
*/
required double qz = 7;
/**
* Identifier for the coordinate frame of the rotation.
*/
optional string frame_id = 8;
}
Message AxisAlignedBoundingBox3DFloat¶
-
class
rst.geometry.
AxisAlignedBoundingBox3DFloat
¶ An axis-aligned bounding-box in 3D.
The bounding-box is constructed by spanning at
left_front_bottom
a rectangular volume of lengthswidth
xdepth
xheight
along the positive directions of the X, Y and Z axis respectively.^ Z | | +----------------------+ ^ | / /| | / / | | / / |
height
| +----------------------+ | | | | | | | | + v | Y | | / ^ | ^ | | /depth
| / | |/ | / +----------------------+ v | /left_front_bottom
| / <width
> |/ +-----------------------------> XFor 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>
-
left_front_bottom
¶ Type: rst.geometry.Translation
Coordinates of the bottom left front corner.
-
width
¶ Type: FLOAT32
Unit: meter
The width (along the X axis) of the box.
-
depth
¶ Type: FLOAT32
Unit: meter
The depth (along the Y axis) of the box.
-
height
¶ 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;
}
Message Translation¶
-
class
rst.geometry.
Translation
¶ 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>
-
x
¶ Type: FLOAT64
Unit: meter
Cartesian displacement along the x axis
-
y
¶ Type: FLOAT64
Unit: meter
Cartesian displacement along the y axis
-
z
¶ Type: FLOAT64
Unit: meter
Cartesian displacement along the z axis
-
frame_id
¶ Type: ASCII-STRING
Identifier for the coordinate frame of the rotation.
-
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;
/**
* Identifier for the coordinate frame of the rotation.
*/
optional string frame_id = 8;
}