Package rst.geometry

Not documented

Messages

digraph message_graph { fontname="Arial"; fontsize=11; stylesheet="../_static/graphs.css"; node [fontsize=11,fontname="Arial"] edge [fontsize=11,fontname="Arial"] "6" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox" TITLE="Structure rst.geometry.BoundingBox" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">BoundingBox</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-math.html#rst.math.Vec2DInt" TITLE="Structure rst.math.Vec2DInt" TARGET="_parent">Vec2DInt</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.top_left" TITLE="Field rst.geometry.BoundingBox.top_left" TARGET="_parent" PORT="top_left">top_left</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.width" TITLE="Field rst.geometry.BoundingBox.width" TARGET="_parent" PORT="width">width</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.height" TITLE="Field rst.geometry.BoundingBox.height" TARGET="_parent" PORT="height">height</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.image_width" TITLE="Field rst.geometry.BoundingBox.image_width" TARGET="_parent" PORT="image_width">image_width</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox.image_height" TITLE="Field rst.geometry.BoundingBox.image_height" TARGET="_parent" PORT="image_height">image_height</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "7" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-math.html#rst.math.Vec2DInt" TITLE="Structure rst.math.Vec2DInt" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Vec2DInt</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-INT32.html#INT32" TITLE="Fundamental INT32" TARGET="_parent">INT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-math.html#rst.math.Vec2DInt.x" TITLE="Field rst.math.Vec2DInt.x" TARGET="_parent" PORT="x">x</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-INT32.html#INT32" TITLE="Fundamental INT32" TARGET="_parent">INT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-math.html#rst.math.Vec2DInt.y" TITLE="Field rst.math.Vec2DInt.y" TARGET="_parent" PORT="y">y</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "5" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.AxisAlignedBoundingBox3DFloat" TITLE="Structure rst.geometry.AxisAlignedBoundingBox3DFloat" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">AxisAlignedBoundingBox3DFloat</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Translation" TITLE="Structure rst.geometry.Translation" TARGET="_parent">Translation</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.AxisAlignedBoundingBox3DFloat.left_front_bottom" TITLE="Field rst.geometry.AxisAlignedBoundingBox3DFloat.left_front_bottom" TARGET="_parent" PORT="left_front_bottom">left_front_bottom</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.AxisAlignedBoundingBox3DFloat.width" TITLE="Field rst.geometry.AxisAlignedBoundingBox3DFloat.width" TARGET="_parent" PORT="width">width</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.AxisAlignedBoundingBox3DFloat.depth" TITLE="Field rst.geometry.AxisAlignedBoundingBox3DFloat.depth" TARGET="_parent" PORT="depth">depth</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.AxisAlignedBoundingBox3DFloat.height" TITLE="Field rst.geometry.AxisAlignedBoundingBox3DFloat.height" TARGET="_parent" PORT="height">height</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "1" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox3DFloat" TITLE="Structure rst.geometry.BoundingBox3DFloat" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">BoundingBox3DFloat</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Pose" TITLE="Structure rst.geometry.Pose" TARGET="_parent">Pose</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox3DFloat.transformation" TITLE="Field rst.geometry.BoundingBox3DFloat.transformation" TARGET="_parent" PORT="transformation">transformation</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox3DFloat.width" TITLE="Field rst.geometry.BoundingBox3DFloat.width" TARGET="_parent" PORT="width">width</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox3DFloat.depth" TITLE="Field rst.geometry.BoundingBox3DFloat.depth" TARGET="_parent" PORT="depth">depth</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-FLOAT32.html#FLOAT32" TITLE="Fundamental FLOAT32" TARGET="_parent">FLOAT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.BoundingBox3DFloat.height" TITLE="Field rst.geometry.BoundingBox3DFloat.height" TARGET="_parent" PORT="height">height</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "2" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Pose" TITLE="Structure rst.geometry.Pose" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Pose</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Translation" TITLE="Structure rst.geometry.Translation" TARGET="_parent">Translation</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Pose.translation" TITLE="Field rst.geometry.Pose.translation" TARGET="_parent" PORT="translation">translation</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Rotation" TITLE="Structure rst.geometry.Rotation" TARGET="_parent">Rotation</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Pose.rotation" TITLE="Field rst.geometry.Pose.rotation" TARGET="_parent" PORT="rotation">rotation</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "4" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Rotation" TITLE="Structure rst.geometry.Rotation" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Rotation</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Rotation.qw" TITLE="Field rst.geometry.Rotation.qw" TARGET="_parent" PORT="qw">qw</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Rotation.qx" TITLE="Field rst.geometry.Rotation.qx" TARGET="_parent" PORT="qx">qx</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Rotation.qy" TITLE="Field rst.geometry.Rotation.qy" TARGET="_parent" PORT="qy">qy</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Rotation.qz" TITLE="Field rst.geometry.Rotation.qz" TARGET="_parent" PORT="qz">qz</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-ASCII-STRING.html#ASCII-STRING" TITLE="Fundamental ASCII-STRING" TARGET="_parent">ASCII-STRING</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Rotation.frame_id" TITLE="Field rst.geometry.Rotation.frame_id" TARGET="_parent" PORT="frame_id">frame_id</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "3" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Translation" TITLE="Structure rst.geometry.Translation" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Translation</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Translation.x" TITLE="Field rst.geometry.Translation.x" TARGET="_parent" PORT="x">x</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Translation.y" TITLE="Field rst.geometry.Translation.y" TARGET="_parent" PORT="y">y</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Translation.z" TITLE="Field rst.geometry.Translation.z" TARGET="_parent" PORT="z">z</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-ASCII-STRING.html#ASCII-STRING" TITLE="Fundamental ASCII-STRING" TARGET="_parent">ASCII-STRING</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-geometry.html#rst.geometry.Translation.frame_id" TITLE="Field rst.geometry.Translation.frame_id" TARGET="_parent" PORT="frame_id">frame_id</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "6":top_left -> "7" []; "5":left_front_bottom -> "3" []; "1":transformation -> "2" []; "2":rotation -> "4" []; "2":translation -> "3" []; }

Message BoundingBox3DFloat

class rst.geometry.BoundingBox3DFloat

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>

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.

Download this file

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

Represents the pose (translation and rotation) of something in a coordinate system.

Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>

@create_collection

translation
Type:rst.geometry.Translation

The translation of the object with respect to the origin of the coordinate system.

rotation
Type:rst.geometry.Rotation

The rotation of the object at the position described by translation with respect to the coordinate system.

Download this file

message Pose {

    /**
     * The translation of the object with respect to the origin of the
     * coordinate system.
     */
    required Translation translation = 1;

    /**
     * The rotation of the object at the position described by
     * @ref .translation with respect to the coordinate system.
     */
    required Rotation rotation = 2;

}

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 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>

@create_collection

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.

Download this file

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 Rotation

class rst.geometry.Rotation

Constraint: .qw x .qw + .qx x .qx + .qy x .qy + .qz x .qz = 1

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>

@create_collection

qw
Type:FLOAT64

Angle component of the quaternion.

qx
Type:FLOAT64

Defines the orientation of the turning axis wrt. the X axis of the world (or the frame specified in frame_id).

qy
Type:FLOAT64

Defines the orientation of the turning axis wrt. the Y axis of the world (or the frame specified in frame_id).

qz
Type:FLOAT64

Defines the orientation of the turning axis wrt. the Y axis of the world (or the frame specified in frame_id).

frame_id
Type:ASCII-STRING

Identifier for the coordinate frame of the rotation.

Download this file

message Rotation {

    /**
     * Angle component of the quaternion.
     */
    required double qw = 4;

    /**
     * Defines the orientation of the turning axis wrt. the X axis of
     * the world (or the frame specified in @ref .frame_id).
     */
    required double qx = 5;

    /**
     * Defines the orientation of the turning axis wrt. the Y axis of
     * the world (or the frame specified in @ref .frame_id).
     */
    required double qy = 6;

    /**
     * Defines the orientation of the turning axis wrt. the Y axis of
     * the world (or the frame specified in @ref .frame_id).
     */
    required double qz = 7;

    /**
     * Identifier for the coordinate frame of the rotation.
     */
    optional string frame_id = 8;

}

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>

@create_collection

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.

Download this file

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;
}

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>

@create_collection

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.

Download this file

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;

}