Keyboard Actuator
=================


**A 'fake' actuator that allows to move a robot from the keyboard.**


This actuator does not require a connection with external data. It
simply responds to the keyboard arrows to generate movement
instructions for the robot attached.

When parented to a robot, the user can press the arrow keys to modify the
linear and angular velocities (V, W) of the robot.

:kbd:`Up` forward
:kbd:`Down` backwards
:kbd:`Left` turn left
:kbd:`Right` turn right


.. cssclass:: properties morse-section

Configuration parameters for keyboard actuator
----------------------------------------------


You can set these properties in your scripts with ``<component>.properties(<property1>=..., <property2>=...)``.

- ``ControlType`` (string, default: ``"Position"``)
	Kind of control to move the parent robot, in ['Position', 'Velocity', 'Differential']
- ``Speed`` (float, default: ``1.0``)
	Movement speed of the parent robot, in m/s


.. cssclass:: fields morse-section

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

No data field documented (see above for possible notes).

.. cssclass:: services morse-section

Services for Keyboard Actuator
------------------------------

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



.. 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
    keyboard = Keyboard()

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

    env = Environment('empty')
    

.. cssclass:: files morse-section

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

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




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