Submarine robot
===============

.. image:: ../../../media/robots/submarine.png
  :align: center
  :width: 600


A generic submarine robot. The robot has no mass and its physics is
set to "NoCollision".


.. cssclass:: properties morse-section

Configuration parameters for submarine robot
--------------------------------------------


You can :

- set the mass of the robot using the builder method :py:meth:`morse.builder.morsebuilder.Robot.set_mass()`
- set the friction coefficient of the robot using the builder method :py:meth:`morse.builder.morsebuilder.Robot.set_friction()`


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

- ``NoGravity`` (bool, default: ``False``)
	Indicate if we want to consider the gravity for this                 robot If true, the behaviour is less realistic as the                 simulator will automatically compensate it. This setting                 is useful for non-realistic model flying or submarine                 robot 
- ``GroundRobot`` (bool, default: ``False``)
	Indicate if the robot is a ground robot, i.e.                   basically if it has no way to control its position on the                   Z axis


.. cssclass:: services morse-section

Services for Submarine robot
----------------------------

- ``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 *
    
    # creates a new instance of the robot
    submarine = Submarine()

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

    env = Environment('empty')
    

.. cssclass:: files morse-section

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

- `Source code <../../_modules/morse/robots/submarine.html>`_
- `Unit-test <../../_modules/base/submarine_testing.html>`_




*(This page has been auto-generated from MORSE module morse.robots.submarine.)*
