.. _package-rst-geometry: ====================== Package rst.geometry ====================== *Not documented* Messages ======== .. container:: mess4ge-multi .. container:: mess4ge-graph .. digraph:: message_graph fontname="Arial"; fontsize=11; stylesheet="../_static/graphs.css"; node [fontsize=11,fontname="Arial"] edge [fontsize=11,fontname="Arial"] "6" [label=<
BoundingBox
Vec2DInttop_left
UINT32width
UINT32height
UINT32image_width
UINT32image_height
>,shape=box,style=filled,fillcolor="white"]; "7" [label=<
Vec2DInt
INT32x
INT32y
>,shape=box,style=filled,fillcolor="white"]; "5" [label=<
AxisAlignedBoundingBox3DFloat
Translationleft_front_bottom
FLOAT32width
FLOAT32depth
FLOAT32height
>,shape=box,style=filled,fillcolor="white"]; "1" [label=<
BoundingBox3DFloat
Posetransformation
FLOAT32width
FLOAT32depth
FLOAT32height
>,shape=box,style=filled,fillcolor="white"]; "2" [label=<
Pose
Translationtranslation
Rotationrotation
>,shape=box,style=filled,fillcolor="white"]; "4" [label=<
Rotation
FLOAT64qw
FLOAT64qx
FLOAT64qy
FLOAT64qz
ASCII-STRINGframe_id
>,shape=box,style=filled,fillcolor="white"]; "3" [label=<
Translation
FLOAT64x
FLOAT64y
FLOAT64z
ASCII-STRINGframe_id
>,shape=box,style=filled,fillcolor="white"]; "6":top_left -> "7" []; "5":left_front_bottom -> "3" []; "1":transformation -> "2" []; "2":rotation -> "4" []; "2":translation -> "3" []; .. container:: mess4ge-list .. container:: messages * :ref:`BoundingBox3DFloat ` * :ref:`Pose ` * :ref:`AxisAlignedBoundingBox3DFloat ` * :ref:`Rotation ` * :ref:`Translation ` * :ref:`BoundingBox ` .. container:: clearer clearer: should be made invisible via css .. _message-rst-geometry-boundingbox3dfloat: Message BoundingBox3DFloat -------------------------- .. container:: message-rst-geometry-boundingbox3dfloat-multi .. container:: message-rst-geometry-boundingbox3dfloat-documentation .. py:class:: rst.geometry.BoundingBox3DFloat Bounding-box in 3D in general position and orientation. The general bounding-box with dimensions :py:attr:`width ` x :py:attr:`depth ` x :py:attr:`height ` is constructed by translating and rotating (via :py:attr:`transformation `) an axis-aligned bounding-box around its center of mass. For an axis-aligned version, see :py:class:`AxisAlignedBoundingBox3DFloat `. .. codeauthor:: Christian Emmerich .. codeauthor:: Jan Moringen .. py:attribute:: transformation :type: :py:class:`rst.geometry.Pose` Transformation, consisting of translation and orientation, of the center of mass of the bounding-box. .. py:attribute:: width :type: :py:class:`FLOAT32` **Unit**: meter The width (along the X axis) of the box. .. py:attribute:: depth :type: :py:class:`FLOAT32` **Unit**: meter The depth (along the Y axis) of the box. .. py:attribute:: height :type: :py:class:`FLOAT32` **Unit**: meter The height (along the Z axis) of the box. .. container:: message-rst-geometry-boundingbox3dfloat-source :download:`Download this file ` .. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/stable/rst/geometry/BoundingBox3DFloat.proto :lines: 24-50 :language: protobuf :emphasize-lines: 7-7,13-13,19-19,25-25 .. _message-rst-geometry-pose: Message Pose ------------ .. container:: message-rst-geometry-pose-multi .. container:: message-rst-geometry-pose-documentation .. py:class:: rst.geometry.Pose Represents the pose (translation and rotation) of something in a coordinate system. .. codeauthor:: Arne Nordmann @create_collection .. py:attribute:: translation :type: :py:class:`rst.geometry.Translation` The translation of the object with respect to the origin of the coordinate system. .. py:attribute:: rotation :type: :py:class:`rst.geometry.Rotation` The rotation of the object at the position described by :py:attr:`translation ` with respect to the coordinate system. .. container:: message-rst-geometry-pose-source :download:`Download this file ` .. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/stable/rst/geometry/Pose.proto :lines: 17-31 :language: protobuf :emphasize-lines: 7-7,13-13 .. _message-rst-geometry-axisalignedboundingbox3dfloat: Message AxisAlignedBoundingBox3DFloat ------------------------------------- .. container:: message-rst-geometry-axisalignedboundingbox3dfloat-multi .. container:: message-rst-geometry-axisalignedboundingbox3dfloat-documentation .. py:class:: rst.geometry.AxisAlignedBoundingBox3DFloat An axis-aligned bounding-box in 3D. The bounding-box is constructed by spanning at :py:attr:`left_front_bottom ` a rectangular volume of lengths :py:attr:`width ` x :py:attr:`depth ` x :py:attr:`height ` along the positive directions of the X, Y and Z axis respectively. .. parsed-literal:: ^ Z | | +----------------------+ ^ | / /| | / / | | / / | :py:attr:`height ` | +----------------------+ | | | | | | | | + v | Y | | / ^ | ^ | | / :py:attr:`depth ` | / | |/ | / +----------------------+ v | / :py:attr:`left_front_bottom ` | / < :py:attr:`width ` > |/ +-----------------------------> X For a bouding-box in general orientation (i.e. not axis-aligned) see :py:class:`BoundingBox3DFloat `. .. codeauthor:: Christian Emmerich .. codeauthor:: Jan Moringen @create_collection .. py:attribute:: left_front_bottom :type: :py:class:`rst.geometry.Translation` Coordinates of the bottom left front corner. .. py:attribute:: width :type: :py:class:`FLOAT32` **Unit**: meter The width (along the X axis) of the box. .. py:attribute:: depth :type: :py:class:`FLOAT32` **Unit**: meter The depth (along the Y axis) of the box. .. py:attribute:: height :type: :py:class:`FLOAT32` **Unit**: meter The height (along the Z axis) of the box. .. container:: message-rst-geometry-axisalignedboundingbox3dfloat-source :download:`Download this file ` .. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/stable/rst/geometry/AxisAlignedBoundingBox3DFloat.proto :lines: 44-69 :language: protobuf :emphasize-lines: 6-6,12-12,18-18,24-24 .. _message-rst-geometry-rotation: Message Rotation ---------------- .. container:: message-rst-geometry-rotation-multi .. container:: message-rst-geometry-rotation-documentation .. py: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). .. codeauthor:: Arne Nordmann @create_collection .. py:attribute:: qw :type: :py:class:`FLOAT64` Angle component of the quaternion. .. py:attribute:: qx :type: :py:class:`FLOAT64` Defines the orientation of the turning axis wrt. the X axis of the world (or the frame specified in :py:attr:`frame_id `). .. py:attribute:: qy :type: :py:class:`FLOAT64` Defines the orientation of the turning axis wrt. the Y axis of the world (or the frame specified in :py:attr:`frame_id `). .. py:attribute:: qz :type: :py:class:`FLOAT64` Defines the orientation of the turning axis wrt. the Y axis of the world (or the frame specified in :py:attr:`frame_id `). .. py:attribute:: frame_id :type: :py:class:`ASCII-STRING` Identifier for the coordinate frame of the rotation. .. container:: message-rst-geometry-rotation-source :download:`Download this file ` .. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/stable/rst/geometry/Rotation.proto :lines: 18-48 :language: protobuf :emphasize-lines: 6-6,12-12,18-18,24-24,29-29 .. _message-rst-geometry-translation: Message Translation ------------------- .. container:: message-rst-geometry-translation-multi .. container:: message-rst-geometry-translation-documentation .. py: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. .. codeauthor:: Arne Nordmann @create_collection .. py:attribute:: x :type: :py:class:`FLOAT64` **Unit**: meter Cartesian displacement along the x axis .. py:attribute:: y :type: :py:class:`FLOAT64` **Unit**: meter Cartesian displacement along the y axis .. py:attribute:: z :type: :py:class:`FLOAT64` **Unit**: meter Cartesian displacement along the z axis .. py:attribute:: frame_id :type: :py:class:`ASCII-STRING` Identifier for the coordinate frame of the rotation. .. container:: message-rst-geometry-translation-source :download:`Download this file ` .. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/stable/rst/geometry/Translation.proto :lines: 16-40 :language: protobuf :emphasize-lines: 7-7,13-13,19-19,24-24 .. _message-rst-geometry-boundingbox: Message BoundingBox ------------------- .. container:: message-rst-geometry-boundingbox-multi .. container:: message-rst-geometry-boundingbox-documentation .. py: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. .. parsed-literal:: (0,0) Image +----------------------------------+ ^ | | | :py:attr:`top_left ` | | +---------------+ ^ | | | | | | | | :py:attr:`height ` | :py:attr:`image_height ` | | | | | +---------------+ v | | < :py:attr:`width ` > | | | +----------------------------------+ v < :py:attr:`image_width ` > All values are in pixels and refer to the associated image. .. codeauthor:: Johannes Wienke @create_collection .. py:attribute:: top_left :type: :py:class:`rst.math.Vec2DInt` **Unit**: pixel Coordinates of the top left corner. .. py:attribute:: width :type: :py:class:`UINT32` **Unit**: pixel Width of the bounding box. .. py:attribute:: height :type: :py:class:`UINT32` **Unit**: pixel Height of the bounding box. .. py:attribute:: image_width :type: :py:class:`UINT32` **Unit**: pixel Width of the image the bounding box is based on. .. py:attribute:: image_height :type: :py:class:`UINT32` **Unit**: pixel Height of the image the bounding box is based on. .. container:: message-rst-geometry-boundingbox-source :download:`Download this file ` .. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/stable/rst/geometry/BoundingBox.proto :lines: 37-69 :language: protobuf :emphasize-lines: 7-7,13-13,19-19,25-25,31-31