PTU Pose Sensor
===============


**Returns the pan/tilt values of a pan-tilt unit**


Simple sensor that provides the current rotation angles of the *pan* and *tilt*
segments of the :doc:`PTU actuator <../actuators/ptu>`.
The angles returned are in radians in the range (-pi, pi).

.. note::

    This sensor **must** be added as a child of the PTU
    you want to sense, like in the example below:

    .. code-block:: python

        robot = ATRV()

        ptu = PTU()
        robot.append(ptu)
        ptu.translate(z=0.9)

        ptu = PTUPosture('ptu_pose')
        ptu.append(ptu_pose)

.. note:: The angles are given with respect to the orientation of the robot


**See also:** :doc:`PTU actuator <../actuators/ptu>`.


.. cssclass:: properties morse-section

Configuration parameters for ptu pose sensor
--------------------------------------------

*No configurable parameter.*

.. cssclass:: fields morse-section

Data fields
-----------


This sensor exports these datafields at each simulation step:

- ``timestamp`` (float, initial value: ``0.0``)
	number of milliseconds in simulated time
- ``pan`` (float, initial value: ``0.0``)
	pan value, in radians
- ``tilt`` (float, initial value: ``0.0``)
	tilt value, in radians

*Interface support:*

- :tag:`text`  as key = value format with timestamp and index value (:py:mod:`morse.middleware.text_datastream.Publisher`)
- :tag:`ros`  as JointStatePublisher (:py:mod:`morse.middleware.ros.jointstate.JointStatePublisher`)
- :tag:`pocolibs`  as `PLATINE_STATES <http://trac.laas.fr/git/platine-genom/tree/platineStruct.h#n53>`_ (:py:mod:`morse.middleware.pocolibs.sensors.platine_posture.PlatinePoster`)
- :tag:`socket`  as straight JSON serialization (:py:mod:`morse.middleware.socket_datastream.SocketPublisher`)
- :tag:`yarp`  as yarp::Bottle (:py:mod:`morse.middleware.yarp_datastream.YarpPublisher`)


.. cssclass:: services morse-section

Services for PTU Pose Sensor
----------------------------

- ``get_properties()`` (blocking)
    Returns the properties of a component.
    
    
  - Return value

    a dictionary of the current component's properties  

- ``get_configurations()`` (blocking)
    Returns the configurations of a component (parsed from the properties).
    
    
  - Return value

    a dictionary of the current component's configurations  

- ``get_local_data()`` (blocking)
    Returns the current data stored in the sensor.
    
    
  - Return value

    a dictionary of the current sensor's data 



.. cssclass:: examples morse-section

Examples
--------


The following examples show how to use this component in a *Builder* script:

.. code-block:: python


    from morse.builder import *
    
    robot = ATRV()
    
    # creates a new instance of the sensor
    ptuposture = PTUPosture()

    # place your component at the correct location
    ptuposture.translate(<x>, <y>, <z>)
    ptuposture.rotate(<rx>, <ry>, <rz>)
    
    robot.append(ptuposture)
    
    # define one or several communication interface, like 'socket'
    ptuposture.add_interface(<interface>)

    env = Environment('empty')
    

.. cssclass:: files morse-section

Other sources of examples
+++++++++++++++++++++++++

- `Source code <../../_modules/morse/sensors/ptu_posture.html>`_
- `Unit-test <../../_modules/base/ptu_posture_testing.html>`_




*(This page has been auto-generated from MORSE module morse.sensors.ptu_posture.)*
