Segway RMP 400 platform
=======================

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


Simple definition of the RMP400 platform distributed by Segway.

This robot uses the Physics Constraints in Blender to allow the wheels to
behave more realistically. The wheels turn as the robot moves, and they have
``Rigid Body`` physics, so that they can also have collisions with nearby
objects.

It has four differential drive wheels, with the pairs of wheels on each side
always moving at the same speed. Since the wheels of this robot use the
``Rigid Body`` physics, it must be controlled with the :doc:`v_omega_diff_drive
<../actuators/v_omega_diff_drive>` actuator.



.. cssclass:: properties morse-section

Configuration parameters for segway rmp 400 platform
----------------------------------------------------


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>=...)``.

- ``HasSuspension`` (bool, default: ``True``)
	Determine if the underlaying robot has suspension,                   i.e. wheels can move independently of the body of the                   robot
- ``HasSteering`` (bool, default: ``True``)
	Determine if the wheels turn independently of the body                   of the robot.
- ``FixTurningSpeed`` (double, default: ``0.0``)
	Overwrite the value of the distance between wheels in the computations of the wheel speeds. This effectively changes the turning speed of the robot, and can be used to compensate for the slip of the wheels while turning. The real distance between wheels in the robot is 0.624m. By forcing a distance of 1.23m, the robot will turn over a smaller radius, as would a two wheeled differential drive robot. If the value 0.0 is used, the real distance between wheels is used.


.. cssclass:: services morse-section

Services for Segway RMP 400 platform
------------------------------------

*This component does not expose any service.*

.. cssclass:: examples morse-section

Examples
--------


The following example shows how to use this component in a *Builder* script:

.. code-block:: python


    from morse.builder import *
    
    # creates a new instance of the robot
    segwayrmp400 = SegwayRMP400()

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

    env = Environment('empty')
    

.. cssclass:: files morse-section

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

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




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