Source code for ros_gazebo_gym.task_envs.panda.markers.puck_marker

"""Contains a class that cna be used used for displaying a marker for the puck object in
RViz.

.. note::
    This class overloads
    the :obj:`ros_gazebo_gym.common.markers.target_marker.TargetMarker` class in order
    to pre-initialize some of its attributes. Most importantly, a pose offset was
    applied to align the marker frame with the object frame.
"""

from geometry_msgs.msg import Vector3
from ros_gazebo_gym.common.markers import TargetMarker
from std_msgs.msg import ColorRGBA
from visualization_msgs.msg import Marker


[docs]class PuckMarker(TargetMarker): """RViz sliding puck marker. Attributes: id (int): The marker object id. type (str): The marker type. action (float): The marker message action (add or remove). scale (:obj:`geometry_msgs.Vector3`): The marker scale. color (:obj:`std_msgs.ColorRGBA`): The marker color. lifetime (:obj:`rospy.duration`): The lifetime duration. frame_locked (bool): Boolean specifying whether the marker frame is locked to the world. point (:obj:`geometry_msgs.Point`): The marker points. text (str): The text that is used for text markers. mesh_resource (str): Marker mess location. mesh_use_embedded_materials (bool): Boolean specifying whether we want to use a mesh. .. important:: If both the ``x``, ``y``, ``z`` positions and a Pose is supplied the ``x``, ``y``, ``z`` positions are used. """ def __init__(self, *args, **kwargs): """Initialize PuckMarker object. Args: *args: Arguments passed to the :obj:`~ros_gazebo_gym.common.markers.target_marker.TargetMarker` super class. **kwargs: Keyword arguments that are passed to the :obj:`~ros_gazebo_gym.common.markers.target_marker.TargetMarker` super class. """ super().__init__(*args, **kwargs) # Overwrite attributes with defaults if not supplied in the constructor. if "color" not in kwargs.keys(): self.color = ColorRGBA(0.0, 0.0, 0.0, 1.0) if "scale" not in kwargs.keys(): self.scale = Vector3(0.05, 0.05, 0.02) self.type = Marker.CYLINDER if "type" not in kwargs.keys() else self.type # Apply offset to align marker frame with cube object frame. self.pose.position.z += 0.01