Pascal André
email: [pascal.andre@univ-nantes.fr

Jean-Marie Mottu
email: jean-marie.mottu@univ-nantes.fr

Gerson Sunyé
email: gerson.sunye]@univ-nantes.fr

Demo: COSTOTest: A Tool for Building and Running Test Harness for Service-based Component Models

Early testing reduces the cost of detecting faults and improves the system reliability. In particular, testing component or service based systems during modeling frees the tests from implementation details, especially those related to the middleware. COSTOTest is a tool that helps the tester during the process of designing tests at the model level. It suggests the possibilities and the lacks when (s)he builds test cases. Building executable tests is achieved thanks to model transformations.

Introduction

Early testing reduces the cost of Verification and Validation (V&V) [START_REF] Shanks | Using ontology to validate conceptual models[END_REF]. In Model-Driven Development (MDD), models describe the system and can be tested to validate its correctness [START_REF] Gogolla | Validating uml and ocl models in use by automatic snapshot generation[END_REF]. Testing models reduces V&V complexity [START_REF] Born | Model-driven development and testing-a case study[END_REF]: it helps to focus on platform-independent faults, which are costly corrected later (they can be spread in the code).

In [START_REF] André | Building test harness from service-based component models[END_REF], we considered early testing of Service-based Component (SBC) Models to detect platform-independent errors i.e. at the model level. Testing such applications' code is tricky due to the middleware information that implements communications. Nevertheless, testing such applications' model introduces some problematics, that we considered in [START_REF] André | Building test harness from service-based component models[END_REF]. In particular, as mentioned by Vincenzi et al. [START_REF] Vincenzi | Component-based software: An overview of testing[END_REF], encapsulation decreases testability (i.e. observability and controllability). Moreover, a tester should manage the dependencies between components, fulfilled by their services. Our contribution is an integrated and assisted approach to build and to execute test cases on these models. Our approach provides assistance to explore the model elements still preserving encapsulation and dependencies.

Usually, a tester uses a test harness to provide the test data to the component under test, and to run the test cases. COSTOTest helps the tester in building such test harnesses. Our postulate is to consider a test harness like a plain SBC model: we therefore reuse the full SBC development tool kit (edition, validation, code generation). We promote testing models by models. This is different than following a model-based testing approach where models (e.g. UM models) are used to compute test suites that are implemented with deployment code (e.g. Java). This last approach has been considered by Rocha et al. [START_REF] Rocha | A method for model based test harness generation for component testing[END_REF]. Here the model testing approach considers the test on the models themselves.

This paper presents the COSTOTest tool, a practical answer to the problem of building and running test harnesses for Service-based Component Models. The demonstration overviews the approach and shows its feasibility. The tool provides facilities to bypass encapsulation in order to build executable test cases. The tool is available online at http://costo.univ-nantes.fr/.

Testing Models by Models

COSTOTest aims to assist testers during SBC testing [START_REF] Vincenzi | Component-based software: An overview of testing[END_REF][START_REF] Edwards | A framework for practical, automated black-box testing of component-based software[END_REF], assuming service's contracts to improve the quality [START_REF] Messabihi | Multilevel contracts for trusted components[END_REF][START_REF] André | Using assertions to enhance the correctness of kmelia components and their assemblies[END_REF]. We depict a motivating example at the top of Figure 1 : a platoon of vehicles (illustrated with an extended SCA notation [START_REF] Osoa | Service component architecture (sca): Sca assembly model v1[END_REF]). A component system (a platoon) is an assembly of components (vehicles) which services are bound by assembly links. A component encapsulates its state with internal variables (own speed and position of a vehicle).

The interface of a component defines its provided and required services (each vehicle provides its speed and position to its follower which requires them). The interface of a service defines a contract to be satisfied when calling it. The service may communicate, and the assembly links denote communication channels. The set of all the services needed by a service is called its service dependency. The required services can then be bound to provided services.

Any provided service can require data:

• internally to internal variables,

• internally to its own provided services (e.g. the service run requires the computeSpeed service to update the speed of its component),

• externally to required services in the component's interface which are satisfied by other components (the service under test in the rest of the paper computeSpeed calculates the new speed of a component based on its speed, position, predecessor's speed and position).

Build test harness as a model

A tester may test the service computeSpeed, which is associated to the component named mid with the following safety property: the distance between two neighbour vehicles is greater than a value safeDistance. The service behaviour is dependent on (i) the recommended safe distance from the predecessor, (ii) the position and speed of the vehicle itself and of its predecessor.

Testing the computeSpeed service of the component mid requires to affect encapsulated variables: give a value to its safeDistance parameter, initialise the values of the currentPos and currentSpeed variables, which are used by the compute Speed service, and find providers for pilotspeed and pilotpos which are required by computeSpeed.

The model of the test harness (bottom of Figure 1) is build from the System Under Test (SUT) e.g. the PlatoonSystem composite (top of Figure 1) and a test intention (middle of Figure 1). The test intention provides the list of which variables will be part of each test data (such as the above mentioned variables: position, speed, previous position, previous speed, and safe distance), and what would be the oracle data (such as the new own speed which is expected to have an expected value). It is provided by a TestIntention component.

COSTOTest helps the tester to (i) build the test harness (establish a consistent and complete context for testing) as illustrated by the bottom of Figure 1, and (ii) run the test cases with the test data values provided by the tester.

The advantages of testing models by models are those of early testing but also the possibility of reusing the rich modelling tools panel, and of providing an adequate framework for co-evolution between the System Under Test Model and the Test Harness model.

COSTOTest: a Testing Assistant

COSTOTest assists the tester in managing the way the test data can be provided: some of them by the configuration service, other ones by mock components, and the oracle by a test driver, as illustrated at the bottom of Figure 1. To achieve this, the tool helps the tester:

• to select the services and components from the SUT model according to a test intention;

• to check the test harness assembly correctness and completeness, satisfying assembly constraints;

• to bind required services to mocks provided in COSTOTest libraries;

• to check the test harness consistency and completeness regarding its test intention (that may be improved/completed during the test harness building);

• to generate a test component including the testcase services e.g. vtd in Figure 1;

• to launch the test harness with several test data values sets and to collect the verdicts.

Model transformation approach

The testing process is a sequence on model transformations which successively merge models, integrating features into them, as illustrated Figure 2. The input the System Under Test is a PIM (Platform Independent Model) of the SBC and a Test Intention is also a model described with a Domain Specific Language (DSL) cf. Figure 3. The process is made of two successive model transformations which return an executable code of the test harness.

The first model transformation is a model-to-model transformation. It builds the test harness as an assembly of selected part of the SUT with test components (mocks, test driver), and returns a Test Specific Model (TSM). It is semiautomatic: the test intention is provided by the tester and COSTOTest asks her/him to make choices, that are selected based on static analysis of the PIM. During this first step, the aim for the tester is to build a harness such as the one illustrated in the bottom of Figure 1 : PlatoonSystem TH1.

Figure 3: Test Intention

The second transformation is a model-to-code transformation, COSTOTest generates the code to simulate the behaviour of the harness. It merges the harness with a Platform Description Model (PDM) to get code (Java code in this case). It can be executed, because the model of the components describes the behaviour of the services, in the form of Communicating Finite State Machines. The test data and test oracle providers are designed in the PDM, thanks to the input "Data". A "data source" is generated, it is an XML file, with a structure corresponding to the test intention, and that the tester should fulfil with concrete values.

Implementation

In the current version of COSTOTool, the models (PIM and TSM) are described with the Kmelia modelling language [START_REF] André | Using assertions to enhance the correctness of kmelia components and their assemblies[END_REF], and the PDM framework is written in Java with an ad hoc communication layer for services and components. We can develop other PDM dedicated to different implementation languages, and to support different modelling languages.

The PIM may include primitive types and functions (numbers, strings, I/O...) that must also be mapped to the code level. These mappings are predefined in standard libraries or defined by the user. High-level TSM primitives are auto- COSTOTest exploits API features [START_REF] Shanks | Using ontology to validate conceptual models[END_REF] to detect missing mappings between the TSM and the PDM, (2) to generate standard primitive fragments (e.g. idle functions, random functions). The mappings are stored in libraries in order to be reused later and the entries can be duplicated to several PDM.

Build such a test harness at the model level induces an additional effort (the models are not considered only to develop the service-based component's implementation), but the errors detected are less expensive to solve than those of components and services once deployed on specific platforms. Moreover, if the component model is implemented several times targeting several different PDM, the tests would be reused and part of the behaviour would have been checked before runtime.

Finally, the test execution consists in setting the test data and then "run" the test harness component. COSTOTest proposes interactive screen to enter all the data values into the XML file generated by the second model transformation. She/He can also provide the test data values in a CSV file which is transformed into the XML file.

We perform experiments to study the effectiveness of our tool in testing services into components assembly. We consider the test of computeSpeed service, covering its control flow graph to generate test data. We create 45 test cases and run them getting the verdicts. The data source XML file will also store the verdicts (cf. Figure 5).

Related Work

There are several research efforts interested in generating tests for testing components. In [START_REF] Edwards | A framework for practical, automated black-box testing of component-based software[END_REF], Edwards outlines a strategy for automated black-box testing of software components. Components are considered in terms of object-oriented classes, whereas we consider components as entities providing and requiring services.

In [START_REF] Zhang | Test-driven modeling for model-driven development[END_REF], Zhang introduces test-driven modelling to apply the XP test-driven paradigm to an MDD process. Their approach designs test before modelling when we design test after modelling. In [START_REF] Lei | State based robustness testing for components[END_REF], the authors target robustness testing of components using rCOS. Their CUT approach involves functional contracts and a dynamic contract. However, these approaches apply the tests on the target platform when we design them at the model level even if their are executed at the code level.

Conclusion

Testing SBC applications following MDD brings the advantages of early testing. We propose a demonstration of the COSTOTest tool which is a proof of concept of our previously published method for testing component models, from building the test harness to its execution. The test designer works on the test data and oracle, and the component interface, while the tool helps, checks, and builds the executable tests. This method applies when the modelling language includes detailed behaviour expression and is supported by a full IDE with code generation e.g. Sofa, rCOS, UML/AS... The current tool, developed as an Eclipse plug-in, shows the feasibility of the approach and improvements are in prog-ress. First, we are developing mutation analysis facilities in COSTOTest. Second, we are experimenting the improvement of the approach compared with classical testing when models evolve.

Figure 1 :

 1 Figure 1: A test harness built from the Platoon system according to a test intention

Figure 2 :

 2 Figure 2: Testing process overview

  matically connected to low level (PDM, code) functions, as illustrated in Figure 4. If the mapping is complete and consistent, then the model is executable.

Figure 4 :

 4 Figure 4: Test harness Concrete data and Function Mapping

Figure 5 :

 5 Figure 5: Test harness assignments: verdict stored in the XML file


Manh-Cuong Cuong Nguyen
email: manhcuong.nguyen@it-sudparis.eu

Hang Nguyen
email: hang.nguyen@it-sudparis.eu

Eric Georgeaux
email: eric.georgeaux@cassidian.com

Philippe Mège

Laurent Martinod
email: laurent.martinod@cassidian.com

Philippe Mege
email: philippe.mege@cassidian.com

Adaptive physical resource block design for enhancing voice capacity over LTE network in PMR context

Keywords: Adaptive PRB, control symbol, voice capacity, control overhead, data overhead, LTE, PMR

I. INTRODUCTION

The current Professional Mobile Radio (PMR) systems which are used for public safety, such as TETRA, APCO25 suffer from slow data transfer [START_REF] Simic | Feasibility of long term evolution (lte) as technology for public safety[END_REF], [START_REF] Pons Masbernat | Green solutions for future lte pmr networks[END_REF]. Long Term Evolution (LTE) technology takes its place as the choice for the broadband PMR to satisfy the user demands of public safety in the future. In the public safety systems, the performance in terms of voice capacity is one of the strict requirements. However, LTE is not yet optimal for low bit rate voice communication in PMR context because of the data overhead and control overhead issues [START_REF] Aa Florea | Multi-layer Realistic Voice Capacity Evaluation in LTE Rel. 9 and Performance Comparison with PMR and GSM[END_REF]. Therefore, the voice capacity is not increased as expected of the PMR service providers. In order to deploy LTE as the solution for the next generation of PMR network, some adaptations have to be considered to reduce both data and control overhead.

Factors thought to be influencing voice capacity of VoLTE have been explored in several studies. The current solutions on data overhead of voice over LTE pays particular attention to reduce the size of header protocols (e.g. [START_REF] Bormann | RObust Header Compression (ROHC): Framework and four profiles: RTP, UDP, ESP, and uncompressed[END_REF], [START_REF] Er Vale | Reducing the VoIP packet overhead in UMTS air interface[END_REF]). However, in the PMR context the difference between the LTE packet size and the PMR voice payload is the main factor that causes the data overhead. Our research shows that the average size of the LTE packet is about three times greater than the PMR voice payload. In addition, state-of-the-art methods expose many difficulties to obtain the improvement of the Voice over LTE (VoLTE) capacity in PMR context. The solutions for reducing data overhead do not take into account the signal overhead whenever evaluating the system performance and on the other hand, the existing researches on control overhead such as Semi-persistent scheduling (SPS) [START_REF] Jiang | Principle and performance of semi-persistent scheduling for VoIP in LTE system[END_REF], TTI-bundling [START_REF] Han | Principle and performance of TTI bundling for VoIP in LTE FDD mode[END_REF], packet bundling [START_REF] Puttonen | Voice-over-IP performance in UTRA Long Term Evolution downlink[END_REF] do not take into account the data overhead. Resource Blocks (subPRBs). The number of control symbols can be selected flexibility. The proposed method allows reducing both data overhead and control overhead issues for VoLTE downlink in PMR context. The details of this method is presented in section II. The performance of our method is evaluated in section III. Section IV will give the conclusion and some perspectives.

II. PROPOSED ADAPTIVE PHYSICAL RESOURCE DESIGN A. Proposed Sub Physical Resource structure

In LTE [START_REF] Astély | LTE: the evolution of mobile broadband[END_REF], [START_REF]LTE in a Nutshell: The Physical Layer[END_REF], [START_REF]Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE) radio transmission and reception[END_REF], [START_REF]Evolved Universal Terrestrial Radio Access (E-UTRA)[END_REF] one pair of Physical Resource Blocks (PRBs) is the smallest User Assignment Unit. However, the smallest LTE packet size is still too large in case that low bit rate voice communication is transmitted in high Modulation and Coding Scheme (MCS). This is the main factor that affects the data overhead of VoLTE in PMR context. Therefore, the main idea of the proposed method is to reorganize the structure of the PRB of LTE to optimize the voice capacity of VoLTE in case of PMR context but not affect the operations of the system.

In order to ensure the integrity of processing for control signals such as Reference Signal (RS), Primary Synchronization Channel (PSS), Secondary Synchronization Channel (SSS)...These control signals are organized in the same way with LTE standards. It means that one radio frame still includes 10 subframes of 1ms. Each subframe consists of two slots. Each slot in turn consists seven (normal cyclic prefix) or six symbols (extended cyclic prefix). The number and location of control channels such as PSS, SSS, RS.. are unchanged. The difference is that in the new design, the available REs for data in each subframe is reorganized into a number Sub Physical Resource Blocks (SubPRBs). Each SubPRB consists of four Resource Element Group (REG). Each Resource Element Group (REG) contains four consecutive Resource Elements (RE) or four REs separated by a cell-specific Reference Signal (RS). The structure of SubPRB is similar to the structure of Control Channel Element (CCE) for the control channel with adaptations. SubPRB structure is illustrated in Figure 1.

In addition, in the new design, instead of limiting the number of symbols for control channels from 1 to 3 symbols, the new design allows a flexible choice of the number of symbols so that the system can obtain the maximum voice capacity. Figure 3 illustrates the model of our proposed system. There is a slight change in the last step. The symbols after passing the Layer mapping/precoding are mapped into subPRBs instead of PRBs. Therefore, the major issues to be considered is how to determine the size of SubPRB and the number of symbols used for control channel to maximize the voice capacity. In LTE, the base scheduler is Fully Dynamic (FD) scheduler. In the FD scheduler, each data packet needs to associate with a Layer 1 (L1) control signaling (a Physical Downlink Control Channel). LTE uses Physical Downlink Control Channel (PDCCH) to carry all allocation information for both downlink and uplink shared channels. These symbols for control channels are organized in Resource Element Group and Control Channel Element (CCE). One REG consists of four consecutive REs or four REs separated by one Reference Signal. One CCE comprises nine REGs. To build the PDCCH, LTE uses a number of consecutive CCEs called CCE aggregation level. The CCE aggregation level can be one, two, four or eight. The aggregation level depends on the DCI size and the effective coding rate. There are four PDCCH formats (PDCCH format 0, PDCCH format 1, PDCCH format 2, PDCCH format 3) that correspond to four aggregation levels. PDCCH carries Downlink Control Information (DCI). We know that the number of control channels depends on the size of the DCI and the code rate. The size of DCI in turn depends on the number of available PRBs (in case of LTE) or available SubPRB (in our case). Therefore, the choice of size SubPRB influences the number of available control channels. If the size of SubPRB is too small, the number of bits need to be used for resource allocation in the corresponding DCI is increased. However, if the size of SubPRB is too big, the gap between LTE packet size and the PMR voice payload will be increased. In case of PMR with voice target codec 2450 bps, the optimal value of subPRB size is about four REGs. Therefore, in the proposed SubPRB design, we propose that the one SubPRB can consist of four REGs (see Figure 2). The number of symbols for control channel are chosen to optimize the voice capacity of VoLTE in PMR context.

B. System Model

We consider the number of available control channel (N C ) is a function of the number of allowed resource blocks of a defined bandwidth N BW , the number of symbols used for PDCCH channels n c , number of active UEs in the cell with the aggregation level A ij that is need to be used to transmit PDCCH for U E i at j th TTI, voice payload of UE S p ,

N C = f (N BW , n c , S p , [A ij ]) (1)
We consider the number of available data channels (N D ) is a function of N BW , n c , S p number of active UEs in the cell with Modulation and Coding Scheme assigned M CS ij

N D = f (N BW , n c , S p , CP, [M CS ij ]) (2)
The voice capacity N V at the j th TTI is defined as:

N V = min(N C , N D ) (3)
At the j th TTI, choose n c so that:

argmax f (n c ) nc,n k = {n c |∀x : f (x) ≤ f (n c )} (4)
The voice capacity in a period {t 1 , t 2 } is defined as: The number of OFDM symbols in a sub-frame is indicated by the Physical Control Format Indicator Channel (PCFICH) like in case of LTE standard. In order to determine the size of subPRB, the UEs have to read the field SRBS (Size of SubPRB) in new Adaptive DCI structure. The structure of Adaptive DCI structure is presented in table I. In this case, the field SRBA (Sub Physical Resource Block assignment) is used in stead of RBA ( Physical Resource Block assignment) in LTE standard. III shows, there is a significant voice capacity gain (54 for standard LTE and 91 for the proposed method) between the two methods. Comparing the two results, it can be seen that the proposed method allows a more flexible and optimal LTE packet size than the existent standard LTE. The standard LTE is not optimal the packet size in case of PMR context. This leads to a decrease number of available data packets and control packets. Meanwhile, the proposed method allows a choice packet size and the number of symbols for control channel more flexible so that the proposed method can chose an optimal value for improving voice capacity.

V oicecapacity = t2 t1 N V (5)
Table IV and Table V present the voice capacity gain for the case of 3 MHz, 5 MHz bandwidths. For the 3 MHz bandwidth, the voice capacity gain is about 134.7% and for the 5 MHz bandwidth the voice capacity gain is about 133.3%.

In our simulation, we also apply several SubPRB sizes (from one to eight REGs) get the optimal value of SubPRB size for the PMR voice codec of 2450 bps. Figures 4, 5 and6 show the relation between the number of symbols for control channel with the number of average supported data packets average supported control packets and the voice capacity for the three corresponding 1.4 MHz, 3 MHz, 5 MHz bandwidths for different SubPRB sizes. The results show that the optimal value number of symbols for control channel is about 5 to 7 symbols and the SubPRB contains about four REGs.

1

 1

Fig. 1 Fig. 2 .

 12 Fig. 1. REG structure

Fig. 3 .

 3 Fig. 3. SubPRB mapping

Fig. 4 . 1 . 4

 414 Fig. 4. Control capacity of the proposed method (1.4 MHz bandwidth and 20ms)

  Therefore, we propose a new Adaptive Physical Resource Block Design for Enhancing Voice Capacity over Long-Term Evolution (LTE) Donwlink in Private Mobile Radio (PMR) Context. In this method, we reorganize the structure of the Physical Resource Block (PRB) to optimize the voice capacity of LTE downlink in the PMR Context. The available PRBs in each subframe is reorganized into a number Sub Physical

  Table III compares the average voice capacity obtained from Physical Resource Block design (standard LTE) and from Adaptive Physical Resource Block design (our method) for

		TABLE I
		ADAPTIVE DCI STRUCTURE
	Field Name	Length (bits) Comment
		8 (1.4 MHz)
	SRBA	10 (3 MHz)	SubPRB assignment
		12 (5 MHz)
	MCS	5	Modulation and Coding Scheme
	III. PERFORMANCE EVALUATION
	A. Simulation Parameters
	In this section we will present simulation results of our
	proposed method. In our simulation, we use the target codec
	of PMR context AMBE with code rate 2450 bps for three
	lower bandwidths 1.4 MHz, 3MHz, 5 MHz. UEs take random
	values MCS and Aggregation level for PDCCH channel. The
	other parameters for simulation are presented in table II.
	B. Simulation Results

framework of the collaborative project SOAPS.2, labeled by the Systematic PARIS-REGION Cluster

In addition, the number of symbols for control channel are chosen flexibility to maximize the voice capacity. On average, the voice capacity gain were shown to have about 117.2% in comparison with the standard LTE. Finally, a number of important limitations need to be considered. First, the complexity assessment and the energy consumption issue of the new design has not been studied. Second, an assessment of the of Bit Error Rate (BER) should also be considered when the number of supported voice calls is increased.


Gwendal Daniel

Gerson Sunyé

Amine Benelallam

Massimo Tisi

Yoann Vernageau

Abel Gómez
email: abel.gomez@unizar.es

Jordi Cabot
email: jordi.cabot@icrea.cat

NeoEMF: a Multi-database Model Persistence Framework for Very Large Models

Keywords: Model Persistence, Scalability, Large Models

The growing use of Model Driven Engineering (MDE) techniques in industry has emphasized scalability of existing model persistence solutions as a major issue. Specifically, there is a need to store, query, and transform very large models in an efficient way. Several persistence solutions based on relational and NoSQL databases have been proposed to achieve scalability. However, existing solutions often rely on a single data store, which suits a specific modeling activity, but may not be optimized for other use cases. In this article we present NEOEMF, a multi-database model persistence framework able to store very large models in key-value stores, graph databases, and wide column databases. We introduce NEOEMF core features, and present the different data stores and their applications. NEOEMF is open source and available online.

Introduction

With the progressive adoption of MDE techniques in industry [START_REF] Mohagheghi | MDE Adoption in Industry: Challenges and Success Criteria[END_REF], existing model persistence solutions have to address scalability issues to store, query, and transform large and complex models [START_REF] Warmer | Building a Flexible Software Factory using Partial Domain Specific Models[END_REF]. Indeed, existing modeling frameworks were first designed to handle simple modeling activities, and often rely on XMI-based serialization to store models. While this format is a good fit for small models, it has shown clear limitations when scaling to large ones [START_REF] Espinazo | Querying Large Models Efficiently[END_REF].

To overcome these limitations, several persistence frameworks based on relational and NoSQL databases have been proposed [START_REF]The CDO Model Repository (CDO)[END_REF][START_REF] Gómez | Map-based Transparent Persistence for Very Large Models[END_REF][START_REF] Espinazo | Querying Large Models Efficiently[END_REF]. They rely on a lazy-loading mechanism, which reduce memory consumption by loading only accessed objects. These solutions have proven their efficiency compared to state-of-the-art tools, but they are often tailored to a specific data-store implementation.

In these approaches, the choice of the datastore is totally decoupled from the expected model usage (for example complex querying, interactive editing, or complex model-to-model transformation): the persistence layer offers generic scalability improvements, but is not optimized for a specific scenario. For example, a graph-based representation of a model can improve scalability by offering a lazy-loading mechanism, but will have poor execution time performance in scenarios involving repeated atomic value accesses.

Our previous work on model persistence have shown that providing a well-suited data store for a specific modeling scenario can dramatically improve performance. Based on this observation, we present in this article NEOEMF, a scalable model persistence framework based on a modular architecture enabling model storage into multiple data stores. Currently, NEOEMF provides three implementations-map, graph, and column-each one optimized for a specific usage scenario. NEOEMF provides two APIs, one strictly compatible to the Eclipse Modeling Framework (EMF) API, easing its integration into existing modeling tools, and an advanced API that provides specific features that bypass the standard EMF API to further improve scalability of particular modeling scenarios.

The rest of the paper is organized as follows: Section 2 presents an overview of the NEOEMF architecture, Section 3 and 4 present the core features of the framework and the different datastores. Section 5 provides insights on the framework's implementation, and finally Section 6 summarizes the key points of the paper and presents our future work. Note that examples of NEOEMF usages are provided on NEOEMF's wiki 5 and in a demonstration video available online at https://youtu.be/_OyWpcOMOfA. It highlights NEOEMF's core features such as model import, API usage, and the lazy model editor which allows to navigate interactively large models with a low memory footprint. The demonstration also present a concrete use case by showing the different steps needed to integrate NEOEMF into an existing EMF-based application, and use it to store and query models containing several million of elements. Finally, the demonstration presents an overview of two tools developed on top of NEOEMF: the Mogwaï query framework and ATL-MR, a distributed version of the ATL transformation engine.

Architecture Overview

Figure 1 describes the integration of NEOEMF in the EMF ecosystem. Modelers typically access a model using Model-based Tools, which provide high-level modeling features such as a graphical interface, interactive console, or query editor. These features internally rely on EMF's Model Access API to navigate models, perform CRUD operations, check constraints, etc. In its core, EMF delegates the operations to a persistence manager using its Persistence API, which is in charge of the serialization/deserialization of the model. The NEOEMF core component is defined at this level, and can be registered as a persistence manager for EMF, same as, for example, the default XMI persistence manager. This design makes NEOEMF both transparent to the clientapplication and EMF itself, that simply delegates calls without taking care of the actual storage. Once the core component has received the modeling operation to perform, it forwards the operation to the appropriate database driver (Map, Graph , or Column), which is in charge of handling the low-level representation of the model. These connectors translate modeling operations into Backend API calls, store the results, and reify database records into EMF EObjects when needed. NEOEMF also embeds a set of default caching strategies that are used to improve performance of client applications, and can be configured transparently at the EMF API level.

In addition to this transparent integration into existing EMF applications, NEOEMF provides a specific API, which targets advanced users / high-performance applications. This API provides utility methods which overcome EMF limitations, allow fine-grained tuning of the databases, and access to internal caches. By using this API, NEOEMF can be tuned to improve execution time and/or scalability of a specific modeling scenario.

To provide this smooth integration into the EMF infrastructure, the NEOEMF core component redefines the behavior of several EMF classes. For instance, each NEOEMF driver defines a specific implementation of PersistenceBackendFactory that is responsible of the concrete data store creation. This factory creates an instance of the data store that corresponds to the Resource options. Once the data store has been created, the driver instantiates a specific implementation of the EStore interface-also depending on the Resource options-that translates the delegated method calls into datastore specific API calls. This architecture allows to change the underlying data store by simply updating the Resource options. The EStore also returns Persistent-EObject from the database when needed, using a specific reification mechanism.

Software Features

As introduced in the previous Section, NEOEMF provides two API levels: one for a standard use of existing EMF applications / APIs, and one advanced that allows to bypass EMF's limitations, tune internal data stores, and configure caches. In this Section we present first the standard features, available simply by plugging NEOEMF into an existing application, then we introduce its advanced features.

Standard Features

An important characteristic of NEOEMF is its compliance with the EMF API. All classes/interfaces extending existing EMF ones strictly define all their methods, and we put a special attention to ensure that calling a NEOEMF method produces the same behavior (including possible side effects) as standard EMF API calls. As a result, existing applications can integrate NEOEMF with a very small amount of efforts and benefit immediately from NEOEMF scalability improvements. Existing code manipulating regular EMF EObjects does not have to be modified, and will behave as expected.

Specifically, NEOEMF supports the following EMF features:

-Code generation: NEOEMF provides a dedicated code generator that transparently extends the EMF one, and allows client applications to manipulate models using generated java classes. -Reflexive/Dynamic API: reflexive and dynamic EMF methods (eSet, eGet, eUnset, eDynamicGet, eDynamicSet ...) can be used on NEOEMF objects, and behave as their standard implementations. -Resource API: NEOEMF also implements the resource specific API, such as get-Contents, getAllContents, save, and load. In addition, NEOEMF takes advantage of the flexible save and load options to enable backend-specific customizations.

As other model persistence solutions [START_REF]The CDO Model Repository (CDO)[END_REF][START_REF] Espinazo | Querying Large Models Efficiently[END_REF], NEOEMF achieves scalability using a lazy-loading mechanism, which loads into memory objects only when they are accessed, overcoming XMI's limitations. Lazy-loading is defined at the core component: NEOEMF implementation of EObject consists of a simple wrapper delegating all its method calls to an EStore, that directly manipulates elements at the database level. Using this technique, NEOEMF benefits from datastore optimizations (such as caches), and only maintains a small amount of elements in memory (the ones that have not been saved), reducing drastically the memory consumption of modeling applications.

Advanced Features

In addition to its compliance with the EMF API, NEOEMF provides specific utility features to tackle EMF's limitations, such as the List <EObject> allInstances(EClass eClass ) method, which is accessible through the PersistentResource interface. This feature tackles the problem of allInstances computation in EMF [START_REF] Wei | An Efficient Computation Strategy for allInstances[END_REF] by delegating it to the data store, allowing to retrieve requested element fastly, using data store indexes, or specific data representation.

NEOEMF also includes an io module, providing a scalable Model Importer, that consists of an event-based XMI parser that bypasses the EMF API to efficiently store the model in a dedicated database with a low memory footprint. The importer is designed to be generic and can be implemented in each backend component. We also plan to add an efficient Model Exporter module that would allow to produce optimized model serializations from their database representation.

Finally, NeoEMF contains a set of caching strategies that can be plugged on top of the data store according to specific needs. Note that these caches are available for all connectors, unless otherwise stated.

-EStructuralFeaturesCaching: a LRU cache storing loaded objects by their accessed feature.

-IsSetCaching: a cache keeping the result of isSet calls to avoid multiple accesses to the database. -SizeCaching: a cache keeping the result of size calls on multi-valued features to avoid multiple accesses to the database. -RecordCaches: a set of database-specific caches maintaining a list of records to improve execution time.

These caches can be configured using the save and load Resource methods, which allows to add specific options which are then forwarded to the appropriate Persis-tenceBackendFactory.

Datastores

The previous features are available for a variety of data stores supported by NEOEMF.

In this section we introduce the different datastores available. We introduce briefly model representation in these stores and describe their differences and the specific modeling scenario they better address. Both, standard and advanced, features presented in the previous section are implemented in the supported datastores.

NEOEMF/MAP

NEOEMF/MAP [START_REF] Gómez | Map-based Transparent Persistence for Very Large Models[END_REF] has been designed to provide fast access to atomic operations, such as accessing a single element/attribute, and navigating a single reference. This implementation is optimized for EMF API-based accesses, which typically generate atomic and fragmented calls on the model. NEOEMF/MAP embeds a key-value store, which maintains a set of in-memory/on disk maps to speed up model element accesses. The benchmarks performed in previous work [START_REF] Gómez | Map-based Transparent Persistence for Very Large Models[END_REF] show that NEOEMF/MAP is the most suitable solution to improve performance and scalability of EMF API-based tools that need to access very large models on a single machine. NEOEMF/MAP data model is composed of three different maps that store model information: (i) a property map, which keeps all objects data in a centralized place; (ii) a type map, which tracks how objects relate to the meta-level (such as the instance of relationships); and (iii) a containment map, which defines the model structure in terms of containment references.

NEOEMF/GRAPH

NEOEMF/GRAPH [START_REF] Benelallam | Neo4EMF, a Scalable Persistence Layer for EMF Models[END_REF] persists models in an embedded graph database that represents model elements as vertices, attributes as vertex properties, and references as edges. Metamodel elements are also persisted as vertices in the graph, and are linked to their instances through the INSTANCE_OF relationship.

Using graphs to store models allows NEOEMF to benefit from the rich traversal features that graph databases usually provide, such as fast shortest-path computation, or efficient complex navigation paths among several vertices/edges. These advanced query capabilities have been used to develop the Mogwaï [START_REF] Daniel | Mogwaï: a Framework to Handle Complex Queries on Large Models[END_REF] tool, that maps OCL expressions to graph navigation traversals. On the other hand, graph databases are not well-suited to compute atomic accesses of single elements or attributes, which are typical queries computed in interactive model edition.

NEOEMF/COLUMN

NEOEMF/COLUMN [START_REF] Gómez | Decentralized Model Persistence for Distributed Computing[END_REF] has been designed to enable the development of distributed MDE-based applications by relying on a distributed column-based datastore. NEOEM-F/COLUMN uses a single table with three column families to store model information: (i) a property column family that keeps all objects data stored together; (ii) a type column family that tracks how objects relate to the meta-level (such as the instance of relationships); and (iii) a containment column family that defines the model structure in terms of containment hierarchy.

In contrast with Map and Graph implementations, NEOEMF/COLUMN offers concurrent read/write capabilities and guarantees ACID properties at model element level. It exploits the wide availability of distributed clusters in order to distribute intensive read/write workloads across datanodes. The distributed nature of this persistence solution is used in the ATL-MR [START_REF] Benelallam | Distributed Model-to-Model Transformation with ATL on MapReduce[END_REF] tool, a distributed engine for model transformations in the ATL language on top of MapReduce. NEOEMF/COLUMN, enables the cluster's nodes to share read/write rights over the same set of input/output models.

Implementation

NEOEMF has been implemented as a set of open source Eclipse plugins distributed under the EPL license. The NEOEMF website 6 presents an overview of the key features and current ongoing work, and the source code repository is fully available on GitHub (https://github.com/atlanmod/NeoEMF). NEOEMF has been released as part of the MONDO platform [START_REF] Kolovos | MONDO: Scalable Modelling and Model Management on the Cloud[END_REF].

The NEOEMF/GRAPH implementation relies on Blueprints [START_REF]Blueprints API[END_REF], an interface designed to unify graph databases under a common API. Blueprints has been implemented by a large number of databases, such as Neo4j, OrientDB, and Titan. The use of this abstraction layer on top of graph databases enable client applications to use the graph implementation of their choice, as long as it implements the Blueprints API. For now, NEOEMF/GRAPH embeds Blueprints 2.5.0 and provides a convenience wrapper for Neo4j 1.9.6. An implementation relying on the new Blueprints API (called Tinkerpop3) is under study for now, as well as the creation of additional database wrappers.

NEOEMF/MAP embeds the key-value store MapDB 1.0.9. MapDB provides Maps, Sets, Lists, Queues and other collections backed by off-heap or on-disk storage, and describes itself as a hybrid between Java Collections and an embedded database engine [START_REF] Mapdb | [END_REF]. It provides advanced features such as ACID transactions, snapshots, and incremental backups. NEOEMF/MAP relies on the set of Maps provided by MapDB and uses them as a key-value store.

NEOEMF/COLUMN is built on top of Apache HBase [START_REF]Apache HBase[END_REF] 0.98.13-hadoop2, a nonrelational wide column database providing distributed data storage on top of HDFS. It is able to host very large tables-billions of rows containing millions of columns-atop clusters of commodity hardware. Model distribution is hidden from client applications, which accesses the elements transparently using the standard EMF API.

Conclusion

In this article we have presented NeoEMF, a multi-datastore model persistence framework. It relies on a lazy-loading capability allowing very large model navigation in a reduced amount of memory, by loading elements when they are accessed. NeoEMF provides three implementations that can be plugged transparently to provide an optimized solution to different modeling use cases: atomic accesses through interactive editing, complex query computation, and cloud-based model transformation.

Fig. 1 :

 1 Fig. 1: NEOEMF Integration in EMF Ecosystem

https://github.com/atlanmod/NeoEMF/wiki

www.neoemf.com


Guillaume Cortes
email: g.cortes@realyz.com

Eric Marchand
email: eric.marchand@irisa.fr

Jérôme Ardouin
email: jerome.ardouin@gmail.com

Anatole Lécuyer
email: anatole.lecuyer@inria.fr

Increasing Optical Tracking Workspace of VR Applications using Controlled Cameras

Keywords: Optical tracking, workspace, controlled camera, virtual reality I.4.8 [Image Processing and Computer Vision]: Scene Analysis-Tracking; H.5.1 [Information Interfaces and Presentation]: Multimedia Information Systems-Artificial, augmented, and virtual realities

We propose an approach to greatly increase the tracking workspace of VR applications without adding new sensors. Our approach relies on controlled cameras able to follow the tracked markers all around the VR workspace providing 6DoF tracking data. We designed the proof-of-concept of such approach based on two consumer-grade cameras and a pan-tilt head. The resulting tracking workspace could be greatly increased depending on the actuators' range of motion. The accuracy error and jitter were found to be rather limited during camera motion (resp. 0.3cm and 0.02cm). Therefore, whenever the final VR application does not require a perfect tracking accuracy over the entire workspace, we recommend using our approach in order to enlarge the tracking workspace.

INTRODUCTION

Most virtual reality setups require a tracking system providing the application with the user's position and orientation. VR tracking systems should gather many requirements. As Welch and Foxlin [START_REF] Welch | Motion tracking survey[END_REF] put it, the perfect tracking system is a tracking system that should be "tiny, self-contained, complete (6 DoF), accurate, fast, tenacious, robust, immune to occlusion, wireless and cheap". Designing such a tracking system is nowadays near to impossible.

Among the designed devices, the optical ones are probably the most commonly used in VR applications. They perform with infrared (IR) light visible by the sensors. For virtual reality applications, optical tracking systems classically implement outside-in techniques where the cameras are placed at stationary positions and the markers are fixed to the user's head and hand. For instance Ribo et al. [START_REF] Ribo | A new optical tracking system for virtual and augmented reality applications[END_REF] proposed an outside-in optical tracking system based on retroflective markers illuminated with IR light that are visible by two cameras allowing 3D-3D registration. Several industrial actors' optical tracking systems, such as Vicon, NaturalPoint or ARTracking, use a similar technique performing with high accuracy (metrology instrument). A recent study from Pintaric and Kaufmann [START_REF] Pintaric | Affordable infrared-optical pose-tracking for virtual and augmented reality[END_REF] proposed real-time optical tracking based on 2 sensors. These methods require a stereo configuration to provide tracking data. Moreover the cameras are at a stationary position. Thus such systems present an inherent limitation regarding the workspace they cover.

To overcome workspace limitations, several studies have been done on outside-in tracking. For instance in video surveillance applications, systems made of pan-tilt-zoom cameras [START_REF] Cucchiara | Advanced video surveillance with pan tilt zoom cameras[END_REF] have been proposed to increase the watched area. The field of view of the camera can vary around the pan and tilt axes enabling to follow human faces through visual servoing techniques. To the best of authors' knowledge very few works implementing controlled cameras exist in VR applications. Kurihara et al. [START_REF] Kurihara | Optical motion capture system with pan-tilt camera tracking and realtime data processing[END_REF] introduced pan-tilt cameras in a motion capture system that performs feature-based pose estimation. However this study does not describe any camera control. Moreover, the number of cameras and the space required to perform tracking prevent the use of such approach within small VR settings such as Workbench or Holobench.

In this paper we present an approach which intends to maximize the workspace of VR optical tracking systems without using additional cameras. Indeed adding sensors is not always possible due to the lack of space. Our approach is based on controlled cameras mounted on automated robots to follow the tracked markers through a larger workspace. Previous works in robotics exist on designing and improving camera control. In this work, we adopt a different perspective and consider their introduction in the field of Virtual Reality and 3D interaction. We propose to reconsider these tracking techniques as an alternate mean to extend the 3D workspace, enabling to relax the current constraints on camera positioning.

In the remainder of this paper we first introduce our approach for maximizing VR optical tracking workspace. Second, we detail the tracking, calibration and camera control algorithms through visual servoing. Third, we present the performance and results obtained with an illustrative prototype of a VR setting based on our approach. The paper ends with a discussion and a general conclusion.

MAXIMIZING THE OPTICAL TRACKING WORKSPACE OF VR APPLICATIONS WITH CONTROLLED CAMERAS

We propose an approach that intends to maximize the workspace of optical VR tracking systems using a small number of cameras. Our approach controls the cameras to keep the tracked marker visible as long as possible by as many cameras as possible. Such method should considerably increase the stereo workspace of a two-camera based tracking systems. We anticipate to have a slight accuracy loss on 3D reconstruction when using the controlled cameras due to calibration and odometry errors. Nevertheless these errors can be mitigated using a thorough calibration step. Figure 1 illustrates the global architecture of our approach. The cameras are controlled through visual servoing algorithms. The visual servoing loop is independent of the tracking and camera movements do not impact the tracking latency. Calibration steps are required for the tracking to be robust and accurate. They will be presented in the following together with the stereo registration algorithms.

Off-line system calibration

First, each camera is calibrated to determine its intrinsic parameters. Intrinsic calibration of the cameras is achieved by using a calibration chessboard and estimating the camera parameters with an algorithm based on Zhang et al. [START_REF] Zhang | A flexible new technique for camera calibration[END_REF]. The second step of the calibration process determines the essential matrices, c E c , relating each pair of cameras (c, c ). The essential matrices can be decomposed to recover the pose (position and orientation) c M c of camera c in camera c' frame as follows:

c E c = [ c t c ] × c R c with c M c = c R c c t c 0 1×3 1 (1)
where [ c t c ] × is the skew-symmetric matrix of translation vector c t c and c R c is a rotation matrix. Then by determining a reference frame R w , the pose w M c of each camera in the reference frame is computed.

The essential matrix estimation is based on the normalized 8-points algorithm with RANSAC [START_REF] Hartley | Multiple view geometry in computer vision[END_REF].

On-line real-time tracking

The Feature correlation. The points from one image are associated with their corresponding points in the other images. This is possible by using the epipolar constraint that states that two corresponding image points x c and x c related by c E c should fulfill [START_REF] Hartley | Multiple view geometry in computer vision[END_REF]:

x c c E c x c = 0. ( 2
)
Triangulation. The triangulation process allows to recover a 3D point from its projections into several image planes. The computation of the 3D point coordinates is derived from its projections and from the essential matrices of the system that may vary when using controlled cameras. In practice, triangulation algorithms such as the mid-point or DLT [START_REF] Hartley | Triangulation. Computer vision and image understanding[END_REF] are adapted to determine the optimal 3D position.

3D-3D Registration. The final step of real-time stereo tracking recovers the pose (position and orientation) of the target in the reference frame (e.g. [START_REF] Marchand | Pose estimation for augmented reality: a hands-on survey[END_REF]). First the transformation c M o that defines the pose of the target in the camera frame is estimated. This is achieved by minimizing the error between the 3D reconstructed points c X i (in the camera frame) and their corresponding 3D points o X i (in the target frame) transferred in the camera frame through c M o . By denoting q = ( c t o , θ u) a minimal representation of c M o , the problem is reformulated:

q = arg min q N ∑ i=1 ( c X i -c M o o X i ) 2 . ( 3
)
The problem is solved by initializing c M o with a linear solution and refining it with a non-linear Gauss-Newton estimation [START_REF] Marchand | Pose estimation for augmented reality: a hands-on survey[END_REF]. The registration algorithm presented above assumes that the matching between the c X i and the o X i is known. In our implementation, the matching is carried out with a polyhedra search algorithm [START_REF] Kurihara | Optical motion capture system with pan-tilt camera tracking and realtime data processing[END_REF].

Once c M o is estimated, the pose w M o of the target in the reference frame can be recovered with w M c which defines the pose of the camera in the reference frame and will vary with the controlled cameras. An additional calibration process is then required and it is explained in the following together with camera control algorithms.

Increasing optical tracking workspace with controlled cameras

To increase the workspace we propose an approach that consists of controlling the cameras. In that way, the cameras will be able to track the target (constellation) and keep it in their field of view.

A visual servoing process controls the camera so that the target projection is close to the image center. The automation is made through robots on which the cameras are attached. Using a camera mounted on a robot requires an off-line calibration process to determine the position of the camera frame, R c , in the robot's end-effector frame, R e , which is required to recover the position of the camera in the reference frame, R w , and perform pose estimation.

Off-line controlled camera calibration. The controlled camera calibration process recovers the pose e M c of the camera in the end-effector frame of the robot [START_REF] Tsai | A new technique for fully autonomous and efficient 3d robotics hand/eye calibration[END_REF]. e M c is a constant matrix as soon as the camera is rigidly attached to the end-effector and it is needed to compute the pose w M c(t) of the camera in the reference frame at instant t. For a pair of cameras c and c', the essential matrix, c E c(t) , can be deduced from the transformation c M c(t) (equation ( 1)) which is computed as:

c M c(t) = c M w w M c(0) c(0) M e(0) e(0) M e(t) e(t) M c(t) . (4)
Matrix c M w is known by the previously made extrinsic calibration. Same goes for w M c(0) since the extrinsic calibration is made at t = 0. Matrix e(0) M e(t) which represents the transformation of the end-effector frame at instant t in the end-effector frame at instant 0 varies but is known by odometry measurements. Thus the only unknown in equation ( 4) is e M c = c(0) M e(0) = e(t) M c(t) . Figure 2 illustrates the different frames that take part in equation (4). To obtain e M c we used a stationary 4 points target (or a calibration chessboard) and estimated its pose for different positions of the endeffector frame. Figure 3 illustrate the calibration setup for 2 positions of the end-effector frame e1 and e2 that lead to 2 positions of the camera c1 and c2. Since the target frame, R o , and the robot reference frame, R f , are fixed f M o is constant and given by:

f M o = f M e1 e M c c1 M o = f M e2 e M c c2 M o (5)
where for each position i the transformation f M ei is given by the robot configuration and the transformation ci M o can be estimated through single-view registration (PnP algorithm [START_REF] Marchand | Pose estimation for augmented reality: a hands-on survey[END_REF]). From equation ( 5) one can separate the rotation and translation parts of the transformations to obtain two solvable equations [START_REF] Tsai | A new technique for fully autonomous and efficient 3d robotics hand/eye calibration[END_REF]. For the rotation part one has to solve:

A e R c = e R c B (6)
where A and B are rotation matrices computed from the measurements. For the translation the equation is the following:

A e t c = e R c b (7)
where A and b are a matrix and a column vector computed from the measurements. Equation ( 7) can be solved for e t c with a least square linear method once the solution e R c of equation ( 6) is found. For a rotation R of angle θ and unit axis u, the vector p R = 2sin(θ /2)u is defined and equation ( 6) can be rewritten as [START_REF] Tsai | A new technique for fully autonomous and efficient 3d robotics hand/eye calibration[END_REF]:

Skew(p A + p B )x = p B -p A . (8)
Since Skew(p A + p B ) has rank 2 at least 3 positions are required to solve the system. Finally the angle θ and the unit axis u can be extracted from x to recover e R c and solve equation [START_REF] Pintaric | Affordable infrared-optical pose-tracking for virtual and augmented reality[END_REF]. Controlling camera displacements: visual servoing. To achieve the control of the camera, we consider a visual servoing scheme [START_REF] Chaumette | Visual servo control, part i: Basic approaches[END_REF]. The goal of visual servoing is to control the dynamic of a system by using visual information. The control is achieved by minimizing an error defined in the image space. This error is based on visual features. Here we consider the projection of the center of gravity of the constellation x = (x, y) that we want to see in the center of the image x * = (0, 0) (coordinates are expressed in normalized coordinates taking account of the camera calibration parameters).

Considering the actual pose of the camera r the problem can therefore be written as an optimization process:

r = arg min r ((x(r) -x * ) (x(r) -x * )) ( 9
)
where r is the pose reached after the optimization process (servoing process). This visual servoing task is achieved by iteratively applying a velocity to the camera. This requires the knowledge of the interaction matrix L x of x(r) that links the velocity ẋ of point x to the camera velocity and which is defined as:

ẋ(r) = L x v ( 10
)
where v is the camera velocity (expressed in the camera frame). In the specific case of a pan-tilt camera that is considered in the paper, L x is given by1 :

L x = xy -(1 + x 2 ) 1 + y 2 -xy . ( 11
)
This equation leads to the expression of the velocity that needs to be applied to the robot. The control law is classically given by:

v = -λ L + s (x(r) -x * ) (12)
where λ is a positive scalar and L + x is the pseudo-inverse of the interaction matrix. To compute, as usual, the velocity in the joint space of the robot, the control law is given by [START_REF] Chaumette | Visual servo control, part i: Basic approaches[END_REF]:

q = -λ J + x (x(r) -x * ) with J x = L x c V e e J(q) ( 13
)
where q is the robot joint velocity and e J(q) is the classical robot Jacobian expressed in the end effector frame (this Jacobian depends of the considered system). c V e is the spatial motion transform matrix [START_REF] Chaumette | Visual servo control, part i: Basic approaches[END_REF] from the camera frame to the end-effector frame (computed using c M e , see Section 2.3). c V e is constant as soon as the camera is rigidly attached to the end-effector. Note that only one constellation was tracked. If several constellations are being tracked, one is free to define x as the barycenter of all the constellations or as the barycenter of a priority constellation.

Registration. When using controlled cameras, the registration is carried out after updating the pose w M c(t) of the camera in the reference frame at instant t through equation ( 4). At instant t = 0 the system was calibrated so every parameter of the system is known at position c(0) of the camera. Once w M c(t) is obtained the essential matrix is computed with equation ( 4) and ( 1) and the pose registration is performed as in Section 2.2.

PROOF OF CONCEPT AND RESULTS

We have designed a prototype based on a wall-sized display. In such configuration the number of cameras and their positions are often constrained. This prototype takes advantage from our approach to increase the tracking workspace. The tracking system (Figure 4) is composed of two Sony PSEye cameras providing 320x240 images at a 150Hz refresh rate . The cameras were modified with short focal length lenses (2.1mm) providing a final field-of-view of 87 • by 70 • . One camera is mounted on a TracLabs Biclops pan-tilt motor which is controlled via a RS-232 connector with 115200 bauds. The motor has two mechanical stops per axis allowing a range of rotation from -170 • to +170 • for the pan axis and from -60 • to +60 • for the tilt axis with a resolution of 0.03 • . The Traclabs Biclops pan-tilt motor is very robust but relatively expensive. Cheaper pan-tilt motors could alternatively be found in the market. An infrared band-pass filter was added to each lens. The constellations were custom-designed with at least 4 non-coplanar active infrared LEDs [START_REF] Pintaric | Affordable infrared-optical pose-tracking for virtual and augmented reality[END_REF] and built on a 3D printed CAD rigid structure (Figure 4).

We could successfully implement and test our approach on the prototype presented above. The tests were run with no filtering process so that we could extract jitter of the localization and its variation when using camera motion. Results of our tests are presented below.

Workspace gain. The optical tracking workspace of our approach was compared to a state-of-the-art stereo tracking. Tracking data was first computed through the entire workspace with stateof-the-art stereo tracking (Figure 5a). Then the controlled camera mounted on the pan-tilt head (blue cone) was activated. The workspace is found to be considerably increased in Figure 5b, depending on the pan-tilt's range of motion. Accuracy. Using controlled cameras may spread an error (due to calibration and odometry measurements) to the final tracking accuracy. To estimate this error a constellation was placed at a stationary position. This position was chosen so that the projection of the constellation in the controlled camera was on the right border of the camera frame. Thus, by activating the pan-tilt head the camera rotated toward the constellation. We computed the stereo pose for the initial and final positions of the camera. Figure 6c illustrates the resulting error which is of around 0.3-0.4cm.

Jitter. Jitter was measured using a protocol similar to [START_REF] Pintaric | Affordable infrared-optical pose-tracking for virtual and augmented reality[END_REF] by leaving the constellation at a stationary position and recording its pose during 600 measurements without filtering process. The constellation was placed at around 30cm of the cameras. Figure 6a illustrates the spatial distribution of the reconstructed position. The mean squared distance of the points from their mean-normalized center equals 0.08mm. The 95% confidence radius of the distribution lies at 0.15mm. Figure 6b illustrates the jitter in degree of each rotation parameter of the computed poses.

Latency. Positions and orientations can be provided by the system every 17ms. With the 150Hz refresh rate of the cameras, the internal latency of the current software implementation is around 10ms. The end-to-end latency was measured around 50ms including rendering and display latency. Summary. Our approach allowed to considerably increase the VR tracking workspace of the system. The implemented systems perform with ∼10ms internal latency, 50ms end-to-end latency (on a specific VR use case), ±0.5cm accuracy and a jitter of 0.02cm that could be tempered through filtering process.

Regarding current limitations of our approach, a slight accuracy error can be introduced. This error could have an impact if metrology applications are considered, but it could probably be acceptable in many VR applications. This error is present if the cameras are not stationary relatively to each other. Thus, mounting several cameras on the same pan-tilt head could be of interest since the performance of stereo tracking may remain the same whatever the cameras movements. Regarding our prototype, improvements could be obtained on the hardware components. Wide-angle lenses induce a loss in resolution that can degrade the feature extraction and increase jitter. Thus, it could be interesting to test our approach with standard lenses. Higher quality sensors (e.g. high-resolution cameras) and/or hardware synchronization could also be used to increase tracking stability and accuracy.

CONCLUSION

We proposed an approach that considerably increased the workspace of optical tracking systems. Our approach is based on controlled cameras able to follow the constellations bringing more liberty when positioning the cameras in the VR setting. We designed a proof-ofconcept based on our approach. With our approach, the VR optical tracking workspace could be considerably increased while retaining acceptable performances for VR applications. Future work could first focus on testing our approach with several controlled cameras and/or multiple constellation. Then we would like to perform an evaluation of user experience and comfort with and without our approach.

Figure 1 :

 1 Figure 1: Global architecture of our approach for maximizing the tracking workspace with controlled cameras.

  on-line real-time tracking performs the localization of a target in the reference frame. It first requires a feature extraction. If the features are visible from at least two cameras the localization is performed with feature correlation, triangulation and 3D-3D registration as presented in the following. Feature extraction. The feature extraction determines the position of the bright markers on the different camera images. A recursive algorithm is used to find the different of connected bright pixels before computing the barycenter of each set that defines the blob's position. Once the blobs' positions are retrieved, they are corrected by taking into account the radial and tangential lens distortion.

Figure 2 :

 2 Figure 2: Frames configuration (2 cameras and 1 pan-tilt head).

Figure 3 :

 3 Figure 3: Frame configuration for controlled camera calibration with 2 camera positions.

Figure 4 :

 4 Figure 4: Illustrative prototype. One cameras is embedded on a pan-tilt head. A VR application is projected on the wall using stereo projection.

  (a) State-of-the-art (b) Our approach

Figure 5 :

 5 Figure 5: Workspace gain of our approach (b) compared to stateof-the-art stereo optical tracking (a). Each point corresponds to a position or the target (at 60Hz). The pyramids illustrate the fields of view of the two cameras used by the system (red: a stationary camera, blue: a controlled camera).

Figure 6 :

 6 Figure 6: Jitter of the localization for position (a) and rotation (b). Accuracy error introduced using controlled camera tracking (c) (green point represent the ground truth and red ones the measurements with controlled camera).

Note that the interaction matrix presented in equation (11) is defined for a pan-tilt system but the proposed method can scale to up to 6 degrees of freedom camera motions.

ACKNOWLEDGEMENTS

The authors would like to thank G. Brincin and M. Douzon, from Realyz, for their support on the prototyping of the solution.


Aliyasin Elayouch

Mahmoud Addouche

Philippe Lasaygues

Younes Achaoui

Morvan Ouisse

Abdelkrim Khelif

Quasi-omnidirectional ultrasonic screening based on coupled Fabry-Perot resonators in a phononic plate

Keywords: Fabry-Perot acoustic resonator, acoustic screening, acoustic metamaterials 1

We report an experimental demonstration of a quasi-omnidirectional acoustic shielding in the ultrasonic frequency range. The proposed structure is a periodically slitted plate with subwavelength apertures. A single slit acts as a Fabry-Perot resonator, where the coupling between them exhibits an attenuation frequency band that remains stable with respect to the angle of the incident wave. The experimental measurements proved to be in good agreement with finite element method simulations. Thus, centred around the frequency of 170kHz, the attenuation can reach at least 20dB, when the incident angle goes from 0 to 45 degrees. Beyond this incident angle of 45 degrees, scattered radiations occur at 175kHz, thereby lowering the attenuation ability of the phononic structure. This scattering is related to a diffraction phenomenon, as supported by analytical calculations.

I. INTRODUCTION

The understanding of wave phenomena has experienced a turning-point with the arrival of new artificial structures such as phononic crystals and acoustic metamaterials. Their counterintuitive behavior never ceases to surprise and permits to overcome many challenges in the acoustic domain. For instance, resonance-based mechanisms can be very efficiently used to control the propagation of acoustic waves. In 2000, P. Sheng opened the way with the locally resonant sonic materials that permitted to exhibit phononic bandgaps at frequencies that are much lower than the relevant wavelength. From there, other structures having a periodic distribution of local resonators in the form of inclusions have emerged. This is the case for structures with inclusions in the form of masses attached to a membrane [1][2][3][4] , pillars on a surface [5][6][7] , or subwavelength apertures [8][9][10][11][12][13][14] . In particular, the transmission of acoustic waves through a periodically perforated plate has been the subject of a great deal of study. Thus, originally found and developed for light transmission, the extraordinary acoustic transparency (EAT) has been concretely described as a significant enhancement of the acoustic transmission at the particular resonant frequencies of the Fabry-Perot cavities.

It is worth noting that such a EAT was reached for the case of rigid solid conditions, so that the resonant cavities cannot use the material as a means of coupling 12,13 . By taking into account the elasticity of the acoustic grating, a new coupling between Fabry-Perot resonators has been highlighted [15][16][17][18][19][20] , underlying a huge acoustic screening effect 21 . In these conditions of finite impedance ratio between the fluid and the solid, the transmission of an acoustic wave through a periodically perforated plate have showed the presence of a series of resonances and antiresonances that permit to create, at normal incidence, an acoustic blocking effect, breaking the conventional mass-density law. Although the idea of using periodically perforated plates with subwavelenth apertures can be applied to prohibit the propagation over a broadband frequency range, using the resonant cavities for waves coming from different incident directions may limit the angular frequency band for this structure.

In this paper, we experimentally investigate the omnidirectional ability of a phononic structure to maintain ultrasonic opacity. For this purpose, the structure is subjected to acoustic waves coming from different incident angles, and experimental measurements are realized and compared to FEM simulations realized on Comsol Multiphysics. Furthermore, the experimental results highlight the diffractive ability of the phononic structure. Indeed, as well as being resonators, apertures also act as diffractive elements.

II. ULTRASONIC SETUP

The phononic structure used for experiments is constituted of a 180×165mm 2 aluminium plate, featured with a periodic slits array. The thickness is t = 5mm, and the apertures are distanced by a pitch of a = t = 5mm, and are d = 0.17a = 0.85mm wide. The structure is 33 times periodic, with 150mm-tall slits. The experiments are conducted in a water tank at hundred of kilohertz frequencies. For the experimental setup, chirped ultrasounds were generated by a 25mm diameter immersion transducer. We use an Imasonic transducer as a transmitter and a Precision Acoustics hydrophone as a receiver. Both of them are initially oriented towards the orthogonal axe centered on the plate. Each position of transmissionreception is in a plane orthogonal to the plate, and perpendicular to the slits, as presented in the scheme of Figure 1a. In what follows, we will compare the transmission of chirped ultrasounds through the phononic structure for two incidence positions, at normal incidence θ i = 0 • , at θ i = 30 • , and at θ i = 45 • . For instance, Figure 1b shows the signal input at θ i = 0 • , representing a typical emitted chirp, and Figure 1c the ultrasonic signal recorded at normal transmission θ tr = 0 • after crossing the phononic structure. Thus, for each incident position of the transducer, the hydrophone measures the temporal signal, from θ tr = -60 • to +60 • with a step of 4 • . For each incident position, the discrete Fourier transform of the 31 time signals measurements are computed. An example of transmission spectrum for θ i = 0 • and θ tr = 0 • is represented in Figure 1d. Adding the spectra for all θ tr will permit us to visualize all transmission spectra depending on the reception angle θ tr . In Figure 1d, the radial axis corresponds to frequencies, and the transmission amplitude is represented through a colorbar. In the following results, the directional transmission spectra for a homogeneous plate will be compared to those obtained with our phononic structure, at different incident angles θ i = 0 • , θ i = 30 • and

θ i = 45 • .
In addition, the field on the output side of the phononic structure is detected with a hydrophone, in the near field of the transmitted wave. The hydrophone is attached to a 3D motorized translation stage controlled by a computer. By moving the hydrophone in a rectangular grid, we are able to scan the spatiotemporal distribution of the output field.

By digitally filtering output chirped signals recorded at each grid point at a particular frequency, we are able to produce a snapshot of the outgoing amplitude field, and so investigate frequency and incident angle dependencies of the outgoing acoustic beam.

III. EXPERIMENTAL RESULTS AND DISCUSSION

The following section presents the experimental results corresponding to the setup presented above. Figure 2a and 2b are the comparison between transmission spectra for the case of a homogeneous aluminium plate and that of the phononic structure described above, at normal incidence θ i = 0 • . We observe that the energy is present in a direction normal to the plate for both structures, which means that the propagation direction is not modified in both cases. The difference between the two systems is due to the attenuation that follows the classical "mass law" for the homogenous plate, as can be seen in Figure 2a, whereas the phononic structure generates an attenuation zone from around 150kHz to 200kHz. of 150kHz, 175kHz and 250kHz, at normal incidence θ i = 0 • . We can directly observe the transmitted acoustic beam at frequencies occurring within and beside the attenuation band.

In order to confirm these conclusions, we compare, in Figure 3, two transmission spectra extracted from these measurements taken in the direction of waves propagation, in the case of a homogeneous aluminium plate and the case of the phononic structure, as well as the transmission obtained by performing finite elements simulations in Comsol. In the numerical study, we used the same geometrical parameters as those chosen for the experiment. Due to the 1D periodicity of the phononic structure, we carried out the simulation on a unit-cell by applying periodic conditions. The structure, made of aluminium, is surrounded by water.

Physical properties are listed in Table I. The measured shape of transmission fits well with the simulation results, with notably the occurrence of resonances at the frequencies 120kHz and 230kHz, as shown in Figure 3. We now consider ultrasonic waves that impinge on the phononic structure with an incident angle of 30 • . We observe, in the directional transmission spectra of Figure 4a, that an attenuation frequency band is maintained. Indeed, the amplitude around the frequency 175kHz is greatly reduced. To highlight this attenuation even more convincingly, we compare the amplitude pressure field for a homogeneous plate and the phononic structure, at three frequencies. Figure 5 displays snapshots of the output fields at representative frequencies of 150kHz, 175kHz and 250kHz, respectively at an incidence of θ i = 30 • . We observe that around the central frequency of 175kHz, the transmission of waves is greatly attenuated, which was already the case at normal incidence. The snapshots in Figure 5 also permit to observe the presence of two transmitted beams in the case of the phononic structure, at 250kHz, whereas only one beam was transmitted in the case of the homogeneous aluminium plate at the same frequency. The second beam we observe is another order of diffraction of the structure. This order of diffraction is clearly apparent on the directional transmission spectra of Figure 4a and4b, from around 200kHz to 350kHz. Besides, we can see that the transmitted angle for this order depends on the frequency.

The experiment results we see can be verified analytically, especially regarding the diffraction. Indeed, this phononic structure constituted of slits array can be considered as a diffraction grating that obeys the following law [START_REF] Royer | Ondes élastiques dans les solides[END_REF] : Where i stands for incidence, a is the slits array period, m is the considered order of diffraction, λ is the wavelength, and n the refractive index. Thus, for an incidence angle of 30 • , and by considering only the -1, 0 and 1 orders of diffraction, we obtain analytically the curves of Figure 4, which provides the frequency localization of these orders of diffraction.

a • (sin(θ m ) -sin(θ i )) = m • λ/n
In Figure 4a, in the angular range -60 • to +60 • , we can observe the 0 order whose the transmission is at θ m = 30 • , from 50kHz to 350kHz. The -1 order is in the negative part of the directional diagram. This is confirmed experimentally, as we can see in the snapshots of Finally, we notice in the directional transmission spectra of the Figure 4a that the attenuation is maintained around 175kHz. This is not the case of θ i = 45 • , because of the diffraction limit which closes the attenuation frequency band , as can be seen in Figure 4b.

Based on the same analytical formula describing the diffraction grating law, we represent in Figure 6 the frequency localization of the order of diffraction m=-1, for different incident angles. At θ i = 45 • , the diffraction is observable at 175kHz, which corresponds to the center of the attenuation frequency band.

We also observe in Figure 4a that from 230kHz to slightly more than 250kHz, another attenuation band appears for the 0 order of diffraction. In this frequency range, energy seems to be rather redirected to the -1 diffractive order.

IV. CONCLUSION

In summary, we have experimentally demonstrated a quasi-omnidirectional screening around the frequency of 175kHz. We have obtained transmission losses up to 20dB, with a relative bandwidth of 15%, up to an oblique incidence of 45 degrees. Experimental results, confirmed by analytical predictions, highlight the diffractive ability of the structure by showing the simultaneous transmission of beams in different directions, at given frequencies.

They provide information on the limits of the screening ability by pointing out the first diffractive modes, at frequencies where the attenuation occurs. Such an ultrasonic screening has many potential for applications, particularly in the underwater acoustics and ultrasound.

Figure 1 .

 1 Figure 1. (a) is a scheme of the experimental set-up used for the directional characterization of the phononic structure. The dotted arrows represent the incident directions, with θ i defined as the incidence angle at which we work. In reception, 31 measurements are performed for each incident direction. (b) and (c) are respectively the input and output ultrasonic chirped signals for the θ i = 0 • and θ tr = 0 • configuration, for the phononic structure. (d) is the directional spectra we build from the measurements obtained in (b) and (c).

  Figure 2c displays snapshots of the output fields for the two cases, at representative frequencies

Figure 2 .

 2 Figure 2. (a) and (b) are the directional spectra, at normal incidence, of a homogeneous aluminium plate (a), and the phononic structure (b). (c) are a comparison of snapshots of the output fields at representative frequencies of 150kHz, 175kHz and 250kHz, for the case of a homogeneous plate and a perforated one, at normal incidence.

Figure 3 .

 3 Figure 3. Amplitude transmission spectra related to the aluminium plate perforated with periodically distributed slit arrays. The measured transmission is depicted by the black line. The transmission obtained by simulation is represented by the red line. Similar data are obtained experimentally for a homogeneous aluminium plate, depicted by the blue solid curve.

Figure 4 .

 4 Figure 4. The directional spectrum of the phononic structure, at incidence (a) θ i =30 • and (b) θ i =45 • . The white lines show the frequency localization of the first orders of diffraction obtained analytically.

Figure 5 .

 5 Figure 5. The comparison between snapshots of the output fields at representative frequencies of 150kHz, 175kHz and 250kHz, for the case of a homogeneous plate and that of the phononic structure, at incidence angle of θ i = 30 • .

Figure 5 ,

 5 Figure 5, by the presence of an acoustic beam negatively transmitted against the positive value θ i = 30 • of the incident wave. Besides, the angle θ m at which this order is transmitted depends on the frequency. In Figure 4a, the angle θ m of the -1 order goes from -60 • to -20 • , in the [200, 350]-frequency range. The order of diffraction 1 is not visible in the directional diagram of the Figure 4a, because the analytical value of the angle θ m , at these frequencies, is 90 • .

Figure 6 .

 6 Figure 6. Frequency localization of the -1 order of diffraction obtained analytically in the case of θ i =15 • in black, θ i =30 • in blue, and θ i =45 • in red.

Table I .

 I Characteristics of materials

	Material	Density c l (m/s) c t (m/s)
	Aluminium	2.700	6420	3040
	Water	1.0	1480	-

V. ACKNOWLEDGMENT

We acknowledged the financial support from the Region of Franche-Comte under the reference 2012C-08901, as well as the support of the French National Research Agency (project ANR-12-JS09-008-COVIA). This work was partly supported by the french RENATECH network and its FEMTO-ST technological facility.