Not documented
A set of TriangleMesh3DFloat objects.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Type : | array of rst.geometry.TriangleMesh3DFloat |
---|
Empty collection is allowed. Order is not important.
message TriangleMesh3DFloatSet {
/**
* Empty collection is allowed. Order is not important.
*/
repeated TriangleMesh3DFloat meshes = 1;
}
Defines a triangle mesh for describing 3D objects through vertices and their assembly to triangles. Edges are therefore only implicitly defined through the definitions of the triangles. Other typical mesh properties like faces, and surfaces are not defined.
Code author: Johannes Wienke <jwienke@techfak.uni-bielefeld.de>
Type : | rst.geometry.PointCloud3DFloat |
---|
The collection of vertices in the mesh.
Type : | array of rst.geometry.TriangleMesh3DFloat.Triangle |
---|
Defines the triangles that form the mesh in the form of 3-tuples to indexes in the vertices point cloud. No particular ordering is assumed here.
message TriangleMesh3DFloat {
/**
* The collection of vertices in the mesh.
*/
required PointCloud3DFloat vertices = 1;
/**
* Definition of a single triangle in a mesh by means of indices to the
* vertex point cloud for all corners of the triangle. Vertices are indexed
* in counter-clockwise order to define a normal of the triangle that
* points outwards.
*/
message Triangle {
/**
* Index of the first vertex defining the triangle.
*/
required uint32 point1 = 1;
/**
* Index of the second vertex defining the triangle.
*/
required uint32 point2 = 2;
/**
* Index of the third vertex defining the triangle.
*/
required uint32 point3 = 3;
}
/**
* Defines the triangles that form the mesh in the form of 3-tuples to
* indexes in the vertices point cloud. No particular ordering is assumed
* here.
*/
repeated Triangle triangles = 2;
}
Definition of a single triangle in a mesh by means of indices to the vertex point cloud for all corners of the triangle. Vertices are indexed in counter-clockwise order to define a normal of the triangle that points outwards.
Type : | UINT32 |
---|
Index of the first vertex defining the triangle.
Type : | UINT32 |
---|
Index of the second vertex defining the triangle.
Type : | UINT32 |
---|
Index of the third vertex defining the triangle.
message Triangle {
/**
* Index of the first vertex defining the triangle.
*/
required uint32 point1 = 1;
/**
* Index of the second vertex defining the triangle.
*/
required uint32 point2 = 2;
/**
* Index of the third vertex defining the triangle.
*/
required uint32 point3 = 3;
}
A set of PolygonalPatch3D objects.
Code author: Leon Ziegler <lziegler@techfak.uni-bielefeld.de>
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;
}
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>
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).
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;
}
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;
}
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;
}
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;
}
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;
}
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
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;
}
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
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;
}
Enter search terms or a module, class or function name.