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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<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!