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