20.01.2014 Views

ORCA: A physics based, robotics simulator able to distribute ...

ORCA: A physics based, robotics simulator able to distribute ...

ORCA: A physics based, robotics simulator able to distribute ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>ORCA</strong>: A <strong>physics</strong> <strong>based</strong>, <strong>robotics</strong> <strong>simula<strong>to</strong>r</strong> <strong>able</strong> <strong>to</strong><br />

<strong>distribute</strong> processing across several peers<br />

Hourdakis E 1 ., Chliveros G 1 . and Trahanias P 1,2 .<br />

1 Institute of Computer Science, Foundation for Research and Technology Hellas,<br />

2 University of Crete, Computer Science Department, Hellas<br />

ehourdak@ics.forth.gr, chlivero@ics.forth.gr, trahania@ics.forth.gr<br />

Heraklion, Crete GR70013<br />

Abstract—The nature of the research and development<br />

workflow in <strong>robotics</strong> has reshaped drastically during the<br />

last decade. Activities are fundamentally interdisciplinary<br />

and usually wide-spread across several research institutions.<br />

To cope with these new requirements, researchers are<br />

increasingly using simulation <strong>to</strong> communicate algorithmic<br />

developments, and seamlessly integrate their work in<strong>to</strong><br />

larger projects. In the current paper we present the <strong>ORCA</strong><br />

<strong>simula<strong>to</strong>r</strong>, a versatile 3D-<strong>based</strong> <strong>physics</strong> <strong>simula<strong>to</strong>r</strong> that was<br />

designed <strong>to</strong> facilitate those needs. <strong>ORCA</strong> integrates a<br />

middleware backend directly in<strong>to</strong> the server-<strong>simula<strong>to</strong>r</strong><br />

environment, making the sharing of resources amongst<br />

peers a seamless task. To this end, we present <strong>ORCA</strong>’s main<br />

features, its ability <strong>to</strong> load and render large environments,<br />

as well as the capacity of the <strong>simula<strong>to</strong>r</strong> <strong>to</strong> share resources<br />

amongst different workstations.<br />

Index Terms-Robotics, <strong>physics</strong>, animation, <strong>distribute</strong>d systems<br />

I. INTRODUCTION<br />

Recent advances in hardware, software and sensing<br />

systems, have steered <strong>robotics</strong> research <strong>to</strong>wards the<br />

development of large-scale integrated systems. Scientists,<br />

instead on focusing on the solution of single problems, are<br />

nowadays required <strong>to</strong> assimilate their algorithms in<strong>to</strong><br />

interoper<strong>able</strong> systems, aimed <strong>to</strong> deal with complex<br />

problems. Therefore, integration has become a crucial<br />

miles<strong>to</strong>ne in the workflow of activities that take place in<br />

any large scale <strong>robotics</strong> project. The need is also depicted<br />

in several European initiatives, including the Robot<br />

Standards and Reference Architectures (RoSta) [1] and<br />

BRICS – Best Practice in Robotics [2], which have<br />

identified integration as one of the main issues in any<br />

<strong>robotics</strong> development process.<br />

In this context, an important corners<strong>to</strong>ne in <strong>robotics</strong><br />

research is simulation, which has now become a standard<br />

in most collaborative projects. There are several reasons<br />

for the advent of <strong>simula<strong>to</strong>r</strong>s, including the ability <strong>to</strong>: (i)<br />

render any robotic platform with very low costs, (ii) make<br />

cost-free modifications on existing robotic configurations,<br />

as well as (iii) share resources amongst researchers and<br />

organizations, <strong>to</strong> name a few. Most state of the art<br />

<strong>simula<strong>to</strong>r</strong>s can adequately confront the first two issues, by<br />

providing user-friendly interfaces, configurations for<br />

popular robotic platforms, as well as virtual components<br />

<strong>to</strong> equip the underlying robots, such as sensors, actua<strong>to</strong>rs<br />

and controllers.<br />

The requisite for integration is usually covered<br />

indirectly, by providing support for middleware<br />

components, with several being developed in recent years,<br />

including Robot Operating System (ROS) [3], playerstage<br />

[4], OpenRDK [5] and Miro [6]. These libraries<br />

have quickly gained an increased popularity amongst<br />

researchers because they provide an interface <strong>to</strong><br />

communicate results across teams or integrate algorithmic<br />

developments in<strong>to</strong> a single robotic platform. However,<br />

due <strong>to</strong> the fact that they are built on <strong>to</strong>p of software<br />

packages, the functionality that is offered is usually<br />

bounded <strong>to</strong> communicating only a small set of properties,<br />

i.e. it is not integrated directly in<strong>to</strong> the 3D simulation<br />

environment.<br />

In contrast <strong>to</strong> all existing software, <strong>ORCA</strong> (Open<br />

Robot Control Architecture) uses a different approach, in<br />

which a middleware component is built at the core of all<br />

of its software packages. That is, <strong>ORCA</strong> is equipped with<br />

a dedicated backend, which en<strong>able</strong>s the utilization of the<br />

streams of information produced by a simulation. As a<br />

result of this architecture, it can provide valu<strong>able</strong> features<br />

<strong>to</strong> the development workflow of a <strong>robotics</strong> project,<br />

including environment sharing, distributing resources<br />

across workstations and algorithmic integration.<br />

Moreover, <strong>ORCA</strong> maximizes the potential of its<br />

architecture <strong>to</strong> tackle the processing needs of<br />

computationally intensive environments. Computational<br />

costs, especially for large environments are difficult <strong>to</strong><br />

handle, despite the increase in computational power or the<br />

use of chipset/multicore <strong>based</strong> languages such as CUDA<br />

[7] and OpenMP [8]. One of the most popular solutions <strong>to</strong><br />

this problem is discretization, i.e. the distribution of<br />

resources amongst different workstations. The <strong>ORCA</strong><br />

<strong>simula<strong>to</strong>r</strong> was designed with this property in mind. It is<br />

<strong>based</strong> on a 3-tier architecture, consisting of a server<br />

object, client instances and add-on modules. A direct<br />

consequence of this architecture is the ability <strong>to</strong> share<br />

resources between simulation instances, thus discretizing<br />

and rendering a large environment in<strong>to</strong> smaller sub-parts.<br />

In the current paper, we provide a detailed outline of<br />

the main traits of the <strong>ORCA</strong> <strong>simula<strong>to</strong>r</strong>, and describe two<br />

important features: (i) its ability <strong>to</strong> render virtually<br />

unlimited environments and (ii) share information<br />

amongst simulation instances. The current version of<br />

<strong>ORCA</strong> is freely avail<strong>able</strong> at<br />

http://139.91.185.14/Orca_Release/orca_setup.exe. A<br />

video accompanying the publication, and demonstrates the<br />

environment sharing ability of the <strong>ORCA</strong> <strong>simula<strong>to</strong>r</strong> can be<br />

found at http://139.91.185.14/Orca_Release/isrdemo.mp4


Due <strong>to</strong> their increasing popularity, several simulation<br />

packages have becomee avail<strong>able</strong> in the <strong>robotics</strong><br />

community, including Gazebo [9], MORSE [10], Webots<br />

[11] and SimRobot [12]. When selecting simulation<br />

software, one<br />

usually evaluates several important fac<strong>to</strong>rs,<br />

including its<br />

<strong>physics</strong> processing capabilities, avail<strong>able</strong><br />

robotic platforms, sensor models and packages that it can<br />

support.<br />

Amongst the aforementioned<br />

<strong>simula<strong>to</strong>r</strong>s,<br />

SimRobot and Webots use the Open Dynamics Engine<br />

(ODE) [13] <strong>to</strong> handle <strong>physics</strong> processing. MORSE builds<br />

upon Blender’s python API [14], which in turn uses the<br />

Bullet library<br />

[15] for its <strong>physics</strong> implementation. Finally<br />

Gazebo [9], is an open source <strong>simula<strong>to</strong>r</strong> that supports<br />

ODE and more recently Bullet.<br />

<strong>ORCA</strong> (Fig. 1) uses the New<strong>to</strong>n Dynamics Engine<br />

(NDE) [16], a powerful engine that has recently become<br />

avail<strong>able</strong> as open source. One of the main benefits of NDE<br />

is that it allows writing specific behaviors on how physical<br />

entities interact with each<br />

other. Consequently, onee can<br />

define explicit material properties for each object, , and<br />

thus control properties such as collision, friction n and<br />

elasticity.<br />

Figure 1. (left) 3-tier architecture of the <strong>ORCA</strong><br />

software package.<br />

The choice of an engine is a matter of context. Several<br />

works have used various<br />

metrics [17] <strong>to</strong> evaluatee the<br />

properties that affect the quality of <strong>physics</strong> processingg [18-<br />

20]. Amongst the most important include friction models,<br />

modeling scalability, energy preservation. In [21], the<br />

authors use the Physics Abstraction Layer <strong>to</strong> carry out an<br />

evaluation of 7 commercial and open-source <strong>physics</strong><br />

engines, including ODE and NDE. They present thee two<br />

engines as having similar capacities, with NDE being<br />

more accurate when modeling friction and a rolling contact<br />

events. In [22] the authors present a more thorough<br />

evaluation between the two engines, in which they<br />

undergo a series of tests including bounce, stability of<br />

constraints, energy preservation and gyroscopic force<br />

modeling. Test results indicate, that NDE outperforms<br />

ODE in most<br />

cases.<br />

III.<br />

II. RELATED WORK<br />

<strong>ORCA</strong> SIMULATION ENVIRONMENT<br />

To facilitate research and development tailed made for<br />

<strong>robotics</strong> research, we have<br />

designed <strong>ORCA</strong> <strong>based</strong> on a 3-<br />

tier architecture. At the core of the software there exists a<br />

server object which is responsible for handlingg all<br />

communication events amongst the different simulation<br />

instances. Each package is<br />

then built on<br />

<strong>to</strong>p of the server<br />

object, and is responsible forr rendering and a sharing a<br />

specific aspect of f the environment. Packagess fall in<strong>to</strong> two<br />

categories: (i) Simulation instances, which are responsiblee<br />

for replicating a specific aspect or structure of the<br />

environment (including objectss and robots) and (ii) add-<br />

ons, which provide some functionality <strong>to</strong> each simulation<br />

instance. The result of this architecture is that different<br />

simulation instances can process differentt parts of an<br />

environment, andd communicatee concurrently<br />

through the<br />

server object. Inn addition, with the use of add-ons,<br />

researchers can augment a an existing project with new<br />

functionalities using an I/O convention. In the following<br />

section we outline in detail the functionality of each<br />

component in the <strong>ORCA</strong> package.<br />

A. Orca Server<br />

All communication between <strong>simula<strong>to</strong>r</strong> instances is<br />

handled through a network pro<strong>to</strong>col that supports a great<br />

variety of messages and control commands. Packages are<br />

broadcast in a designated d listening port by the serverr<br />

either on demand, by publishing a message when<br />

avail<strong>able</strong>, or in a timely manner, where a package is<br />

posted on regular intervals. Client modules produce<br />

packages either:<br />

As a result of a specific event (e.g. a module attached <strong>to</strong><br />

a motion sensor produces a package when motion is<br />

detected).<br />

Periodically (e. g. a module attached <strong>to</strong> a laser scanner<br />

produces a neww frame at regular intervals).<br />

As a result off incoming data (e.g. a text-genera<strong>to</strong>rt<br />

r<br />

module produces annotated text for an exhibit, each<br />

time new text iss created).<br />

When a requestt is received (e.g. a server, attached <strong>to</strong> a<br />

high-resolution<br />

camera, that produces frames containing<br />

camera images only afterr an explicit request is<br />

received).<br />

Network<br />

communication<br />

is accomplished<br />

by<br />

publishing packages <strong>to</strong> the server. Communications are<br />

organized in a “producer-con“<br />

nsumer” basis. That is, alll<br />

pieces of information that needd <strong>to</strong> be exchanged between<br />

modules are organized in<strong>to</strong> packets (categories) and each<br />

packet is assignedd a different code (packet code). c Packets<br />

and their codes are a defined according <strong>to</strong> the application,<br />

and are s<strong>to</strong>red in a configuration file. The communicationn<br />

server reads the configuration<br />

c<br />

file and for each e different<br />

packet code, the server creates two lists:<br />

the list of connections c (modules) thatt produce this<br />

particular packet (producers), and<br />

the list of connections (modules) that consume this<br />

particular packet (consumers).<br />

The server object is responsible for regulating r the<br />

TCP/IP bandwidth amongst t the different software<br />

components. When running, each instance registers and<br />

can then publishh information n throughout the network.<br />

When the serverr receives a package from a specificc<br />

connection, it reads the contents of the data field and<br />

expects <strong>to</strong> find a string and two lists of integers. Thesee<br />

lists correspond <strong>to</strong> the codess of the packets that are


produced and<br />

consumed respectively by<br />

the module at the<br />

other side of<br />

the connection. For each listed l packet code,<br />

the server accordingly updates its<br />

corresponding<br />

“producers” and “consumers” lists. When a module<br />

disconnects from the server, the latter erases all references<br />

<strong>to</strong> the corresponding connection from<br />

the “consumers”<br />

and the “producers” lists of all packages and terminates<br />

the corresponding connection thread.<br />

Currently<br />

<strong>ORCA</strong> supports more than<br />

100 TCP/IPP type<br />

packet messages that pertain <strong>to</strong> information about control<br />

commands, sensor information, <strong>physics</strong>s related data, HRI<br />

interface commands and object handling messages. In<br />

addition,<br />

<strong>ORCA</strong> provides<br />

templates for client<br />

redistribut<strong>able</strong>s for Java, ANSI C++ and<br />

C. Consequently,<br />

through the server communication pro<strong>to</strong>col, one cann run<br />

instances of<br />

a simulation on any machine, including<br />

Windows and Linux, and<br />

use the server <strong>to</strong> handle their<br />

interaction.<br />

More importantly, the communication pro<strong>to</strong>col can be<br />

easily extended using a text-<strong>based</strong> structure. The server<br />

object scanss a set of predefined direc<strong>to</strong>ries upon<br />

initialization and registers new messages as required.<br />

Therein we demonstrate how <strong>ORCA</strong>’ s pro<strong>to</strong>col can be<br />

used <strong>to</strong> share<br />

information processed by one instance of the<br />

<strong>physics</strong> simulation <strong>to</strong> other instances, thus t allowing it <strong>to</strong><br />

tackle the computational<br />

needs of a simulation, s despite<br />

them being intensive.<br />

B. Simula<strong>to</strong>r<br />

<strong>ORCA</strong> includes several features which en<strong>able</strong><br />

developers <strong>to</strong><br />

generate new world scenarios seamlessly,<br />

without requiring advanced computer skills. Rendering,<br />

handled by OpenGL, and <strong>physics</strong> processing, by NDE, are<br />

coupled <strong>to</strong>gether through a tree-<strong>based</strong><br />

hierarchy, called<br />

environment tree, which can be setup using configuration<br />

files. Currently, <strong>ORCA</strong>’s environment tree supports the<br />

insertion of (i) objects, (ii) kinematicc constraints, (iii)<br />

sensor, (iv) robot models and (v) interaction behaviors.<br />

Object definition<br />

Upon initialization the <strong>simula<strong>to</strong>r</strong> loads an environment<br />

file, which contains the definitions and <strong>physics</strong> properties<br />

of each object. Several different types of objectss are<br />

supported, including (i) primitive geometries (cube,<br />

polygon, capsule and triangles), (ii) containers, that bundle<br />

entities <strong>to</strong>gether, as well as (iii) freeform objects, which<br />

allow importing meshes from CAD software directlyy in<strong>to</strong><br />

a simulated world (<strong>ORCA</strong><br />

supports thee .obj format, used<br />

by several modeling packages, including Blender).<br />

Through the<br />

NDE <strong>physics</strong> engine, <strong>ORCA</strong> providess the<br />

largest number of primitive objects than<br />

any other engine.<br />

In addition, it supports the definition of extrude objects,<br />

i.e. abstract geometries defined by a series s of 3D point<br />

edges, as well as various light sources.<br />

Mesh and boundary<br />

informationn are generated<br />

au<strong>to</strong>matically<br />

for each object that is inserted inn the<br />

simulation environment. In<br />

addition, one has the choice of<br />

selecting what type of bounding boxes will be generated<br />

from each object entered in<strong>to</strong> the world. Additional<br />

options include the initial position of an object, orientation<br />

vec<strong>to</strong>rs, object materials, m whether it will be subject <strong>to</strong><br />

gravitational forces, its mass and density.<br />

Kinematic Constraints<br />

<strong>ORCA</strong> also supports the definition of various different<br />

types of constraints, which can be used <strong>to</strong> limit the<br />

movement of kinematic structures in one or more axes.<br />

These are also specified s upon initialization, using the<br />

environment tree hierarchy, andd can be used <strong>to</strong> restrict the<br />

motion of a body in relation <strong>to</strong> o another. Currently various<br />

different types of constraints are supported, including i ball,<br />

hinge and socket joints. <strong>ORCA</strong>A exports all the properties<br />

supported by the <strong>physics</strong> engine, type and stiffness of the<br />

joint, pivot points and transformation axis, as well as<br />

acceleration bounds.<br />

Sensor models<br />

Most robots have h a large number of mounted sensors.<br />

These can be modeled accurately for a <strong>simula<strong>to</strong>r</strong> that is<br />

intended for research <strong>based</strong> purposes. <strong>ORCA</strong><br />

has a great<br />

variety of sensor models avail<strong>able</strong>, which can be inserted<br />

directly in<strong>to</strong> its environment e tree. Currently it supportss<br />

sensor objects, used <strong>to</strong> moni<strong>to</strong>r the forces that different<br />

geometries exert upon each other, bumping sensors,<br />

responsible for detecting the collision among objects, as<br />

welll as virtual cameras, that simulate a scene using RGB<br />

and depth data (Fig. 2). The <strong>simula<strong>to</strong>r</strong> also<br />

supports the<br />

definition of extrinsic and intrinsic camera parameters, as<br />

welll as specific camera models including<br />

the Kinect<br />

RGBD, PointGrey and Logitech Quickcam Pro 50000<br />

camera.<br />

Each sensor model can be easily inserted <strong>to</strong> a<br />

simulation, by defining a set of initial parameters. For<br />

cameras,<br />

avail<strong>able</strong><br />

properties<br />

include the image<br />

width/height and pixel per unit, model parameters for<br />

dis<strong>to</strong>rtion and noise, as well as intrinsic and extrinsic<br />

parameters. To facilitate the realistic simulation we have<br />

also incorporatedd appropriate sampling rates for each<br />

sensor, which can be specified upon initialization.<br />

Figure 2. Client output produced from <strong>ORCA</strong>’s RGBD simulated<br />

sensor.<br />

In addition, <strong>ORCA</strong> supportss range objectt sensors, such<br />

as laser and sonar. Avail<strong>able</strong> parameters forr these objects<br />

include the number of measurements at each time step, the<br />

minimum and maximum radius of the range sensors, as<br />

welll as noise models m relative <strong>to</strong> the distance of the<br />

measurement.


Robot models<br />

Using the aforementioned threee components, a<br />

developer can instantiate any type of f robotic platform.<br />

However, <strong>ORCA</strong> comes with a number of pre-defined<br />

structures for<br />

some popular robots (Fig. 3), includingng the<br />

Pioneer 3-AT<br />

platform, the iRobot3ADm, the Kuka LWR<br />

and a generic<br />

hand and arm<br />

model with 27-DoF.<br />

national projects. As a result of f these projects, the package<br />

was extended <strong>to</strong> include severall add-ons.<br />

The first class of add-ons regards human-robot<br />

communication technologies t<br />

(Fig. 4). These include<br />

components for natural n language interaction and virtual<br />

emotions, as well as HRI interfaces for human-robot<br />

interaction.<br />

Figure 3. (left)<br />

The simulated<br />

iRobotB21R. (right) The simulated<br />

Pioneer 3-AT platform.<br />

In addition, we are working <strong>to</strong>wards including other<br />

platforms, such as the NAO and Hoap3 humanoids, the<br />

Kuka mobile<br />

platform and<br />

the PR2 robot. These will be<br />

made avail<strong>able</strong> upon <strong>ORCA</strong>’s next major release, andd will<br />

be optimized<br />

<strong>to</strong> reflect the physical properties of the actual<br />

hardware robotic platforms.<br />

Interaction Behaviors<br />

One of the main benefits of <strong>ORCA</strong><br />

is that it defines<br />

explicitly how objects and physical entities will interact<br />

with each other. This is supported through NDE’s ability<br />

<strong>to</strong> define explicit materials on each object. Properties of<br />

the interaction include the<br />

use of gravity, collision mode,<br />

convex collision <strong>to</strong>lerance, net force limit, linear<br />

damping, translation and rotational impulse velocity.<br />

Moreover, each behavior can be set <strong>to</strong> run <strong>based</strong> on<br />

different collision primitives, be it mesh, or primitive<br />

bounding boxes, and can<br />

assign different mass, density<br />

values <strong>to</strong> interacting objects. Finally, <strong>to</strong>rque and<br />

collision estimation can be performed<br />

locally for each<br />

behavior, through the implementation of appropriate<br />

callback functions.<br />

One important benefit from this feature is that it gives<br />

complete control on the physical representation of objects<br />

in the world. One can use it <strong>to</strong> describe how different<br />

materials will interact <strong>to</strong>gether, and as a a result define<br />

explicitly cross-object interactions, instead of describing<br />

a set of simple <strong>physics</strong> properties, as it i is the case with<br />

other <strong>simula<strong>to</strong>r</strong>s. One important result from this feature,<br />

is that one can turn off and on the <strong>physics</strong> processing of<br />

an object on demand, by freeing its assigned behaviors at<br />

any time, thus improving the speed of simulationn by<br />

eliminating redundant entities. In the video that<br />

accompanies<br />

the publication we demonstrate an example<br />

in which we<br />

make use of this property, <strong>to</strong> segment the<br />

<strong>physics</strong> processing of a simulation environment in<strong>to</strong><br />

different workstations.<br />

C. Add-ons<br />

<strong>ORCA</strong> has already been used in a large number of<br />

national and<br />

international projects, ncluding the EC-<br />

running FP7<br />

project FIRST-MM, ass well as several<br />

funded FP6 projects GNOSYS and INDIGO, the currently<br />

Figure 4. Add-ons developed for project purposes. (left) Speech<br />

synthesis module (right) HRI interface for robot control through a<br />

<strong>to</strong>uchscreen.<br />

More specifically, this family of add-ons for synthesizing speech<br />

and phrases, simply by typingg in the desired text, (ii) a<br />

includes<br />

threee modules; (i)) an application<br />

virtual emotion module, m whichh provides an<br />

interface for<br />

drawing 2D template faces from standard emotions and<br />

(iii) a GUI interface that allows humans <strong>to</strong> t control the<br />

robots by typing on o a <strong>to</strong>uch screen.<br />

The second class of add-ons that have been developedd<br />

pertains <strong>to</strong> locomotion modules. More specifically, <strong>ORCA</strong><br />

includes specific controllers that en<strong>able</strong> mobile robots <strong>to</strong><br />

perform localization, obstacle avoidance, and a mapping.<br />

These modules, despite running in their own instance,<br />

interact with <strong>ORCA</strong>’s server communication system, in<br />

order <strong>to</strong> read sensor measurements and dispatch control<br />

commands <strong>to</strong> the robots being simulated (Fig. 5).<br />

Figure 5. Mapping and localization add-ons developed for project<br />

purposes.<br />

Finally, <strong>ORCA</strong>A is currently being expanded in the FP7<br />

project FIRST-MM, which aims at developing novel<br />

components for mobile m manipulation. In the course of the<br />

project, <strong>ORCA</strong> is being extended <strong>to</strong> includee visual object<br />

tracking modules, as well as additional components thatt<br />

allow<br />

for instructing robots <strong>to</strong> perform guidance, delivery<br />

and transportationn tasks.<br />

IV<br />

. RESOURCE SHARING<br />

One of the strong benefits of <strong>ORCA</strong> iss its ability <strong>to</strong><br />

share resources amongst different simulation<br />

instances. To<br />

cope<br />

with this requirement, <strong>ORCA</strong> has been<br />

designed <strong>to</strong>


handle all environment processing through its server<br />

object. Consequently it can<br />

tackle the large computational<br />

costs that are<br />

inherent in complex robotic structuress and<br />

large environments, by sharing and distributing resources<br />

across simulation<br />

instances.<br />

This functionalityy<br />

is<br />

embodied through threee different properties in n the<br />

<strong>simula<strong>to</strong>r</strong>’s environment: (i) robot<br />

sharing, (ii)<br />

environment sharing, (iii) object sharing. Thesee are<br />

outlined below.<br />

A. Robot sharing<br />

One of the main characteristics of a simulated robot is<br />

that it utilizes resources that are modular, and can be<br />

described by<br />

an I/O convention. Consequently, in most<br />

cases, rendering a simulated robot is a computationally<br />

intensive task<br />

that outputs only a small set s of parameters.<br />

Consider for example the case where a “high degrees<br />

of freedom” manipula<strong>to</strong>r has <strong>to</strong> be processed within a<br />

large environment. At any<br />

given time, the <strong>simula<strong>to</strong>r</strong>r has<br />

the duty <strong>to</strong> process its kinematic chain, integratee the<br />

appropriate equations, and<br />

update the position of the joints<br />

of the hand<br />

<strong>to</strong> simulate it. Even though this process<br />

contains a large number of<br />

computations, it is only used <strong>to</strong><br />

output a small amount of<br />

information, , such as the end-<br />

with such a robot, it is usually important <strong>to</strong> have onlyy this<br />

point location<br />

of the hand. Consequently, when interacting<br />

piece of information avail<strong>able</strong>. Due <strong>to</strong> its design, <strong>ORCA</strong><br />

can facilitate<br />

processing of<br />

such roboticc structures locally,<br />

and <strong>distribute</strong> outputs from the simulation on demand,<br />

only when required (Fig. 6).<br />

simulation environments or being transmitted by the<br />

server.<br />

B. Environment sharing<br />

Another important feature of the <strong>ORCA</strong><br />

<strong>simula<strong>to</strong>r</strong> is<br />

its ability <strong>to</strong> share the processing requirements of large<br />

environments. Such feature is becoming increasingly<br />

important across research projects, and finds applications<br />

in a large number of fields including outdoor <strong>robotics</strong>,<br />

search and rescue simulations, swarm robots etc.<br />

In these typess of environments, usually<br />

the robot is<br />

located within a small manifold space, which must<br />

process. Upon initialization off an experiment, the serverr<br />

loads a virtual world file whichh contains the definitions of<br />

all objects that will be processed by simulation instances.<br />

These are createdd as physical entities and entered in<strong>to</strong> the<br />

world without processing any of their properties (Fig. 7).<br />

Figure 7. (right) The environment-sharing view of thee server showing<br />

how different robots are being processed using different subsets of an<br />

environment. (left) Rendered with redd is robot 1, green robot 2, while<br />

transparently are rendered the surroundings that are not n processed by<br />

any robot.<br />

As soon as a new simulation instance is i loaded in<strong>to</strong><br />

the new world, it communicates its location <strong>to</strong> the server.<br />

The<br />

server responds <strong>to</strong> the request of thee instance by<br />

transmitting the environment and object properties thatt<br />

are in the vicinityy of the roboticc client (Fig. 8).<br />

Figure 6. The environment-sharing view of thee server showingg how<br />

different robots are being processed using <strong>ORCA</strong>’s virtual robots. The<br />

simulation instances transmit all required infromation <strong>to</strong> a server, which<br />

for the given example, reduces the robot’s existence <strong>to</strong> a spatial x, y, z<br />

vec<strong>to</strong>r.<br />

To facilitate this feature, the latest <strong>ORCA</strong> release<br />

includes an extensive network pro<strong>to</strong>col that contains<br />

messages pertaining <strong>to</strong> information sharing amongst<br />

robots. Thesee messages are integrated within appropriate<br />

environment parsers, thatt reside on the server andd are<br />

responsible for filtering and transmitting <strong>to</strong> simulation<br />

instances only the appropriate environment information.<br />

In addition, the latest release uses virtual robots, simple<br />

graphic structures with no physical properties, that can be<br />

used <strong>to</strong> visualize information coming from other<br />

Figure 8. Local copy of o the <strong>simula<strong>to</strong>r</strong> that receives onlyy a partial view of<br />

the environment.


As a result, <strong>ORCA</strong> is <strong>able</strong> <strong>to</strong> render r very large<br />

environments, by segmenting<br />

their t processing<br />

requirements<br />

in<strong>to</strong> smaller<br />

subspaces. The shared<br />

properties of an environment can be configured easily<br />

through the server’s environment initialization file, which<br />

allows objects <strong>to</strong> be loaded having different sharing<br />

properties.<br />

C. Object sharing<br />

Further <strong>to</strong> the above, an importantt feature thatt was<br />

implemented<br />

<strong>to</strong> augment the environment sharing feature<br />

is object sharing. <strong>ORCA</strong><br />

utilizes the flexibility off the<br />

NDE engine <strong>to</strong> limit the processing done <strong>to</strong> single objects.<br />

More specifically, by configuring its environment file,<br />

<strong>ORCA</strong> allows a developer<br />

<strong>to</strong> transfer the processing of an<br />

object in<strong>to</strong> a remote simulation instance.<br />

When a simulation instance receives a certain set of<br />

published properties, it has the ability <strong>to</strong> render them<br />

statically, i.e. without considering the object geometries,<br />

physical properties and mesh information, or loadd the<br />

object in its own right, and only embed the published<br />

properties provided by the server (Fig. 9).<br />

Figure 9. Sharing object properties through simulation instances. The<br />

simulation instance on the left manipulates thee cube while thee right<br />

instance only receives some published properties.<br />

This feature becomes<br />

particularly<br />

important when<br />

sharing environments that are cluttered with many objects.<br />

In this case the server provides the ability <strong>to</strong> publish<br />

specific object properties, which can then be shared across<br />

simulation instances.<br />

Through this feature, the processing requirements of<br />

very large environments can be <strong>distribute</strong>d across different<br />

simulation instances. Different aspects/objects within an<br />

environment can be setup<br />

<strong>to</strong> be processed by different<br />

simulation instances, and<br />

then communicated wherever<br />

required by the server.<br />

V.<br />

CONCLUSIONN AND FUTURE<br />

WORK<br />

Simulation is becoming a popularr approach inn the<br />

<strong>robotics</strong> community, due <strong>to</strong> its ability <strong>to</strong> provide a costfree<br />

alternative <strong>to</strong> actual hardware robotic modeling. Most<br />

<strong>simula<strong>to</strong>r</strong>s have addressedd this need by providing a single<br />

workspace package, <strong>able</strong> <strong>to</strong> render competently a robotic<br />

structure. However, one important feature that wass left<br />

unaddressed <strong>to</strong> date, was the provision of features related<br />

<strong>to</strong> sharing environments.<br />

Even though popular<br />

middleware solutions, such as ROS, offer the ability <strong>to</strong><br />

publish certain features of a robot, these are not integrated<br />

directly in<strong>to</strong> the simulation environment, and a have thus<br />

limited capabilities. <strong>ORCA</strong> overcomes thiss problem by<br />

integrating its middleware m component directly in<strong>to</strong> the<br />

<strong>simula<strong>to</strong>r</strong>. As a result, it offers extensive features, such as<br />

environment and object sharingg and <strong>distribute</strong>s processing<br />

<strong>to</strong> different workstations.<br />

In the future, we plan <strong>to</strong> extend the functionality of<br />

cross-platform sharing, by introducing additional <strong>to</strong>ols for<br />

this purpose. These will pertain <strong>to</strong> the development of<br />

simulated<br />

sharing<br />

components,<br />

port sharing and<br />

publishing. In addition we plann <strong>to</strong> introduce modules thatt<br />

will en<strong>able</strong> developers <strong>to</strong> optimize the performance of a<br />

simulated robot byy plugging in the actual robotic hardware<br />

that must be simulated. <strong>ORCA</strong> will provide several<br />

optimization algorithms, whichh will be used <strong>to</strong> reduce the<br />

gap between actual and simulated platforms.<br />

ACKNOWLEDGEMENTS<br />

This<br />

work is partially p supported by the European<br />

Commision under contract number FP7-248258 (First-<br />

MMM project).<br />

REFERENCES<br />

[1]<br />

[2]<br />

[3]<br />

[4]<br />

[5]<br />

[6]<br />

[7]<br />

RoSta - http:// /www.robot-standards.org/index.php?id=8<br />

BRICS - http: ://www.best-of-<strong>robotics</strong>.org/<br />

System – ROS: http://www.ros.org/<br />

Player-Stage project p - http://playerstage.sourceforge.net/<br />

OpenRDK - http://openrdk.sh<br />

sourceforge.net/ /<br />

Robot Operating<br />

Miro - http://miro-middleware.berlios.de/<br />

CUDA<br />

http://www.nvidia.com/object/cuda_home_<br />

_new.html<br />

-<br />

[8] OpenMP - http://openmp.org/wp/<br />

[9] N. Koenig and a A. Howard (2004). Design and use<br />

paradigms for f Gazebo, an open-source multi-robott<br />

<strong>simula<strong>to</strong>r</strong>. In In IEEE/RSJ Int. Conf. on Intelligent Robots<br />

and Systems, pp. 2149–21544<br />

[10] Echeverria et al. (2011), Modular open robots simulation<br />

engine: MORSE<br />

[11] O. Michel (2004).(<br />

Webots: Professionall mobile robot<br />

simulation. Journal of Advanced Roboticss Systems 1(1):<br />

39–42.<br />

[12] Laue et al. (2004), SimRobot – A general physical robot<br />

<strong>simula<strong>to</strong>r</strong> andd its application in RoboCup<br />

[13]<br />

[14]<br />

[15]<br />

[16]<br />

Open Dynamics Engine http: ://www.ode.org/<br />

Blender http:/ //www.blender.org/<br />

Bullet http://bullet<strong>physics</strong>.org/wordpress/<br />

New<strong>to</strong>n Gamee Dynamics http://new<strong>to</strong>ndynamics.com/<br />

[17] Canny Johnn Mirtich Brian. (1995)<br />

simulation of rigid bodies<br />

Impuled-<strong>based</strong>d<br />

[18] Hecker Chriss Lander Jeff. Product Review of Physicss<br />

Engines, Part One:The Stress Test. Technical report,<br />

2000.<br />

[19] Hecker Chriss Lander Jeff. (2000) Product Review of<br />

Physics Engines, Part Two. Technical report<br />

[20] Axel Seugling and Martin Rolin, (2006), Evaluation of<br />

Physics Engines and Implementation of a Physics Module<br />

in a 3d-Authoring Tool, Master Thesis<br />

[21] Boeing, Andrian and Brunl, Thomas (2010), Evaluation of<br />

real-time <strong>physics</strong> simulationn systems, ACM<br />

Int. conf. on<br />

Comp. Graphics and Interactive techniques, pp. 281-288<br />

[22] S. Balakirsky et al. (2011). From simulationn <strong>to</strong> real robots<br />

with predict<strong>able</strong> results: methods and examples, In:<br />

Madhavan et al. (eds), Performance evaluation e and<br />

benchmarkingg of intelligent systems

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!