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.
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.
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.
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.
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.
-
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.
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.
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.
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.
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.
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
.- Create sensors and actuators to control the PR2 armature. A SensorActuator class would be handy for this.
- Expand the armature to include the hands.
- Add an actuator to control the movement of the PR2 base.
- ROS integration.
- …
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:
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:
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.
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.
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”.
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.