Segway RMP 400 platform


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 v_omega_diff_drive actuator.

Configuration parameters for Segway RMP 400 platform

You can :

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, nor this X and Y rotation axis
  • HasSuspension (bool, default: True)
    Determine if the underlaying robot has suspension, i.e. wheels can move 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. If the value 0.0 is used, the real distance between wheels is used.

Services for Segway RMP 400 platform

  • get_configurations() (blocking)

    Returns the configurations of a component (parsed from the properties).

    • Return value

      a dictionary of the current component’s configurations

  • get_properties() (blocking)

    Returns the properties of a component.

    • Return value

      a dictionary of the current component’s properties

  • set_property(prop_name, prop_val) (blocking)

    Modify one property on a component

    • Parameters

      • prop_name: the name of the property to modify (as shown the documentation)
      • prop_val: the new value of the property. Note that there is no checking about the type of the value so be careful
    • Return value



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

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'

env = Environment('empty')

Other sources of examples

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