Stabilized Flight for quadrotor
===============================


**Motion controller using linear model of a stabilized                    quadrotor**



    This actuator controls a stabilized quadrotor using a linear model.
    Basically, it reads a command (phi, theta, psi, h), and computes,
    using a second order filter the speed and the position of the robot.
    The quadrotor must not have Rigid Body physics.

    .. note::
        Coordinates are given with respect to the origin of Blender's
        coordinate axis.

    .. note::
        The actuator does not consider friction force. Setting theta_c
        or phi_c to 0 leads to a constant speed on axis x or y.
    

.. cssclass:: properties morse-section

Configuration parameters for stabilized flight for quadrotor
------------------------------------------------------------

*No configurable parameter.*

.. cssclass:: fields morse-section

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


This actuator reads these datafields at each simulation step:

- ``theta_c`` (float, initial value: ``0.0``)
	Commands the pitch of the quadrotor. It is directly                      related to the quadrotor acceleration on the x axis.
- ``phi_c`` (float, initial value: ``0.0``)
	Commands the roll of the quadrotor. It is directly                      related to the quadrotor acceleration on the y axis.
- ``psi_c`` (float, initial value: ``0.0``)
	Commands the yaw of the quadrotor.
- ``h_c`` (float, initial value: ``0.0``)
	Commands the z of the quadrotor.

*Interface support:*

- :tag:`socket`  as straight JSON deserialization (:py:mod:`morse.middleware.socket_datastream.SocketReader`)
- :tag:`yarp`  as yarp::Bottle (:py:mod:`morse.middleware.yarp_datastream.YarpReader`)


.. cssclass:: services morse-section

Services for Stabilized Flight for quadrotor
--------------------------------------------

- ``stop()`` (blocking)
    Stop the robot. It basically means that speed on the different
    axis is set to 0. Moreover, the different filters are reset.
    
- ``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  

- ``set_cons(phi, theta, psi, h)`` (blocking)
    Specify a consign for the robot. It has the same effect that
    writing the corresponding constraint in the datastream.
    
    
  - Parameters

    - ``phi``: commands the roll of the quadrotor
    - ``theta``: command the pitch of the quadrotor
    - ``psi``: command the yaw of the quadrotor
    - ``h``: the expected height for the quadrotor.



.. 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 actuator
    stabilizedquadrotor = StabilizedQuadrotor()

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

    env = Environment('empty')
    

.. cssclass:: files morse-section

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

- `Source code <../../_modules/morse/actuators/stabilized_quadrotor.html>`_
- `Unit-test <../../_modules/base/stabilized_quadrotor_testing.html>`_




*(This page has been auto-generated from MORSE module morse.actuators.stabilized_quadrotor.)*
