Introducing MORSE

Presentation outline

The MORSE project

The MORSE community

The MORSE community

MORSE specific features

What if...

...we want to simulate a PR2 mapping a kitchen environment?

$ morse create pr2_kitchen

This example requires latest git version of MORSE

$ vim pr2_kitchen/defaults.py


from morse.builder import *

robot = BasePR2() # Bare PR2 model
robot.add_default_interface('ros') # control PR2 via ROS

odometry = Odometry() # Sensor for Odometry information
odometry.add_interface('ros', topic="/odom")
robot.append(odometry)

keyboard = Keyboard() # Keyboard control
robot.append(keyboard)

scan = Hokuyo() # Hokuyo 2D laser scanner
scan.translate(x=0.275, z=0.252)
scan.add_interface('ros', topic='/scan')
robot.append(scan)

env = Environment("kitchen.blend") # load custom 3d model

$ morse run pr2_kitchen

Using standard ROS robot_state_publisher and gmapping

$ morse run pr2_kitchen

Using standard ROS amcl localization

Navigation using move_base and AMCL localization



[...]	
motion = MotionXYW() # Motion controller
motion.add_interface('ros', topic='/cmd_vel')
robot.append(motion)
[...]



$ morse run pr2_kitchen

MORSE Principles: Components

Available Robot Components


A click on the image redirect to MORSE Component Library in the on-line doc.
Scroll there to quickly show the available components.

MORSE Principles: Inner loop

- main_loop.svg

MORSE Principles: Interfaces

MORSE Principles: Serialization/Deserialization

Human-Robot interaction

Multi-node

Multi-node MORSE
Multi-node MORSE

Still missing...

MORSE Workshop 2013

Questions?