morse.robots package

Submodules

morse.robots.atrv module

class ATRV(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Definition for the well-known ATRV robot, distributed by I-Robot.

default_action()[source]

Main function of this component.

morse.robots.b21 module

class B21(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Definition for the B21 platform, distributed by RWI. This cylindrical robot for Human-Robot interactions.

default_action()[source]

Main function of this component.

morse.robots.fakerobot module

class FakeRobot(obj, parent=None)[source]

Bases: morse.core.robot.Robot

This is a special case of component in MORSE. Since all sensors or actuators must be attached to one robot, it would not normally be possible to use “stand-alone” sensors in the environment.

If you need to use a sensor in this way, (i.e. for motion capture sensors, or independent cameras) you should add an virtual (fake) robot to the scene, and make it the parent of your stand-alone sensors.

This robot has no visual representation, and consists of a single Blender Empty. Its only purpose is to provide the base to attach sensors. A single fake robot can be the parent of as many sensors/actuators as needed.

default_action()[source]

Main function of this component.

morse.robots.grasping_robot module

class GraspingRobot(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Class definition for a “virtual” robot.

This robot class does not have a graphical representation, and it can not move. Its only purpose is to define the service grasp that may be used by other robot to pick up object.

The robot need to have a “hand_name” with a near sensor in order to be able to use the grasp service.

default_action()[source]

Main function of this component

grasp(grab, obj_name=None)[source]

Grasp near object.

Parameters:
  • grab – set to True to take an object and False to release it.
  • obj_name – when None, the robot will just grasp the nearest object without any consideration for the object name.

morse.robots.human module

class Human(obj, parent=None)[source]

Bases: morse.robots.grasping_robot.GraspingRobot

MORSE allows the simulation of humans: you can add a human model in your scene, you can control it like any other robot (including from the keyboard or via external scripts), and export from your simulation various data like the full body pose.

The human is managed by MORSE as a regular robot, which means it can have sensors and actuators attached to it.

For a general introduction to human-robot interaction simulation with MORSE, check the HRI main page.

apply_speed(kind, linear_speed, angular_speed)[source]

Apply speed parameter to the human.

This overloaded version of Robot.apply_speed manage the walk/rest animations of the human avatar.

Parameters:
  • kind (string) – not used. Forced to ‘Position’ control for now.
  • linear_speed (list) – the list of linear speed to apply, for

each axis, in m/s. :param list angular_speed: the list of angular speed to apply, for each axis, in rad/s.

default_action()[source]

Main function of this component.

morse.robots.hummer module

class Hummer(obj, parent=None)[source]

Bases: morse.core.robot.Robot

This is a generic car like robot. It is driven using steering, power and braking as provided by the steer/force actuator. This vehicle uses the Blender vehicle wrapper constraint, to give it a realistic behaviour, including the interaction of the wheels with the ground and suspension.

default_action()[source]

Main function of this component.

morse.robots.jido module

class Jido(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Definition of the very specific LAAS robot Jido. It is built on a NeoBotix base.

default_action()[source]

Main function of this component.

morse.robots.morsy module

class Morsy(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Morsy is the little mascot of the MORSE project.

The model does not feature any particular behaviour. It’s main purpose is for teaching and examples.

default_action()[source]

Main function of this component.

morse.robots.patrolbot module

class PatrolBot(obj, parent=None)[source]

Bases: morse.core.wheeled_robot.PhysicsDifferentialRobot

The Research PatrolBot, developed by MobileRobots, is a differential-drive robot to carry payloads and sensors over all normal indoor surfaces in wheelchair-accessible facilities. The PatrolBot is an all-purpose indoor base, it can travel at speeds up to 2 m/s, and can carry up to 40kg over flat surfaces.

default_action()[source]

Main function of this component.

morse.robots.pioneer3dx module

class Pioneer3DX(obj, parent=None)[source]

Bases: morse.core.wheeled_robot.PhysicsDifferentialRobot

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 two differential drive wheels, and an additional caster wheel for stability. Since the wheels of this robot use the Rigid Body physics, it must be controlled with the v_omega_diff_drive actuator.

default_action()[source]

Main function of this component.

morse.robots.pr2 module

class PR2(obj, parent=None)[source]

Bases: morse.robots.grasping_robot.GraspingRobot

The MORSE model of the Willow Garage’s PR2 robot.

The PR2 uses the armature_actuator for control of the armatures.

The model is imported from a Collada file that is generated from the PR2 URDF file. The .dae file can be found at: $MORSE_ROOT/data/robots/pr2/pr2.dae The imported .blend file can be found at: $MORSE_ROOT/data/robots/pr2/pr2_25_original.blend

The URDF to Collada converter changed all the object names, so these were remapped to the original URDF names. A renamed version of the PR2 model can be found at: $MORSE_ROOT/data/robots/pr2/pr2_25_rename.blend , this file includes the script that is used to rename all the objects.

A model with MORSE integration for the armature can be found at (This is the model that you probably want to use in MORSE): $MORSE_ROOT/data/robots/pr2/pr2_25_morse.blend.

default_action()[source]

Main function of this component.

get_armatures()[source]

Returns a list of all the armatures on the PR2 robot.

get_torso()[source]

Returns the z-translation of the torso.

get_torso_minmax()[source]

Returns the minimum an maximum z-translation that the torso can make from the base. Returns a list [min,max]

set_torso(height)[source]

MORSE Service that sets the z-translation of the torso to original_z + height.

morse.robots.quadrotor module

class Quadrotor(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Definition of a generic quadrotor without Rigid Body physics. It is expected to be used with actuators such as:

from morse.builder import *

quadrotor = QUAD2012()

# place your component at the correct location
quadrotor.translate(<x>, <y>, <z>)
quadrotor.rotate(<rx>, <ry>, <rz>)

# define one or several communication interface, like 'socket'
quadrotor.add_interface(<interface>)

env = Environment('empty')

Note

The rotation of the rotors is fixed and only for show. Its speed can be adjusted in the Logic panel in Blender (shown with F4) when the cube object are selected.

Noautoexample:
default_action()[source]

Main function of this component.

morse.robots.quadrotor_dynamic module

class Quadrotor(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Simple definition of a quadrotor, with Rigid Body physics.

It is expected to be used with actuators such as:
default_action()[source]

Main function of this component.

morse.robots.rmax module

class RMax(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Simple definition of the Yamaha RMAX unmanned helicopter.

Note

The rotation of the rotor is fixed and only for show. Its speed can be adjusted in the Logic panel in Blender (shown with F4) when the rotor object is selected.

default_action()[source]

Main function of this component.

morse.robots.segwayrmp400 module

class SegwayRMP400(obj, parent=None)[source]

Bases: morse.core.wheeled_robot.PhysicsDifferentialRobot

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.

default_action()[source]

Main function of this component.

morse.robots.submarine module

class Submarine(obj, parent=None)[source]

Bases: morse.core.robot.Robot

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

default_action()[source]

Main function of this component.

morse.robots.victim module

class Victim(obj, parent=None)[source]

Bases: morse.core.robot.Robot

Class definition for the pseudo-robot that represents a human victim. Mainly used for the ROSACE rescue scenario. Sub class of Morse_Object.

default_action()[source]

Main function of this component.

heal()[source]

Change the status of the victim

Change the material to a green color, and the status to healed.

Module contents