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.

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.

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

Saved successfully!

Ooh no, something went wrong!