A Plantec
email: plantec@univ-brest.fr

V Ribaud
email: ribaud@univ-brest.fr

Experiences using an Application Generator Builder

Application generators translate specifications into products (programs, documentations. An application generator builder offers a way to define specification languages and associated parsers, to describe and traverse the meta-models structure and to specify the derivation on this structure. STEP is an ISO 10303 standard developed to facilitate product information sharing by specifying sufficient semantic content for data and their usage. STEP technology offers very useful software tools and can be applied for the design and the implementation of application generators. EUGENE is a STEPbased framework, that is intended for the building of application generators. After a concise presentation of EUGENE, this paper presents different application generators built with this framework within an industrial project. Then, different properties of generators are examined to establish the kind of generators which can be successfully built with EUGENE. Finally, we conclude with the main benefits of our approach.

Introduction

Application generators translate source specifications into target products as programs or documentations. They use data structures called dictionaries or meta-models to store the source specifications and intermediate representations. As in compilers, there are two main functions in a generator: parsing of the source specifications and the target code generation.

An application generator builder offers a means to define specification languages and associated parsers, to describe and traverse the meta-model structure and to specify the derivation on this structure. In most builders, derivation is specified with templates (or skeletons) of code. Templates contain a mixture of commands operating on the meta-models and "real" code directly inserted into the products.

STEP is an ISO 10303 standard developed to facilitate product information sharing by specifying sufficient semantic content for data and their usage. Within STEP, data are modelized and manipulated with a dedicated technology, mainly an object oriented modelling language EXPRESS and a data access interface.

Application generator building can benefit from the STEP technology at specification and implementation levels. We used these capabilities in a tool, called EUGENE, that is intended for the building of application generators [START_REF] Plantec | EUGENE: a STEP-based framework to build Application Generators[END_REF].

The meta-models are defined with EXPRESS schemata; code templates are programmed in EXPRESS and are interpreted by a STEP data access interface. EUGENE is briefly presented in chapter 2 with a small example to illustrate the concepts. Chapter 3 discuss different generators built with EUGENE. Chapter 4 tries to characterize the « suitable » candidates to build with EUGENE.

Building application generators with EUGENE

An application generator built with EUGENE uses metadata in order to generate a target textual representation. Meta-data come from a source specification analysis and are stored in different kind of meta-model. Derivations are programmed with imperative functions, called translation functions. They are made of fixed parts that are mainly either meta-model traversal routines or string constants directly put into the target and made of variable parts that are values fetched from the meta-models. Figure 1 shows that an application generator built with EUGENE is only a process that consumes meta-data and produces some realization. The meta-data are themselves produced by other processes or tools that can use the automatically built SDAI in order to write standard STEP files.

STEP description and implementation methods

The EXPRESS language [1] is an object-oriented modelling language. The application data are described in schemata. A schema has the type definitions and the object descriptions of the application called Entities. An entity is made up of attributes and constraint descriptions.

The STEP physical file format defines an exchange structure using a clear text encoding of product data [2], for which a conceptual model is specified in the EXPRESS.

The Standard Data Access Interface (SDAI) [3] defines an access protocol for EXPRESS-modelled databases and is defined independently from any particular system and language. The five main goals of the SDAI are: (1) to access and manipulate data which are described using the EXPRESS language, (2) to allow access to multiple data repositories by a single application at the same time, (3) to allow commit and rollback on a set of SDAI operations, (4) to allow access to the EXPRESS definition of all data elements that can be manipulated by an application process, and (5) to allow the validation of the constraints defined in EXPRESS.

Figure 1 The building and the using of an application generator

Most application generators builders produce the generators while exploiting the definition of the syntax and the semantic of the source specification language. EUGENE differs from this way, because the generator is not produced from a grammar-like specification, but from the structure and the organization of the meta-data (globally referred to as the meta-models). Thus the tool which feeds the meta-models with meta-data can be a classical parser (generally automatically built in other environments than EUGENE) but another tool not relying on a precise and formal concrete syntax. Let us take the example of the classical work done by an interface generator between a programming language and a Relational Data Base Management System (RDBMS). The generator uses the SQL table definitions and produces data access functions embedding SQL.

META-LEVEL

Meta-data

Application generator

Eugene

The meta-models

The specification of the generator being built consists in several meta-models. A precise explanation of the nature of these meta-models can be found in [START_REF] Plantec | EUGENE: a STEP-based framework to build Application Generators[END_REF]. To simplify the example, we will use one source meta-model.

The source language meta-model consists in a set of EXPRESS schemata that describes the source language data constructs. The main components of a source language meta-model are types and entities, describing concepts that can be used with the source language. Entities provide buckets to store meta-data while global and local EXPRESS constraints are used to ensure metadata soundness.

Considering the classical example of building data access functions from SQL table definitions, the source language is SQL and figure 2

The translation functions

The translation functions are written in EXPRESS and are specified in the translation schema. The specification of translation functions is a programming activity in which EXPRESS is used as an imperative language. A typical translation function returns a string and is parameterized with types that are entities defined in the source language meta-model. The resulting string represents part of the target textual representation. Because of the nature of parameter types, this activity is often called metaprogramming [1,[START_REF] Ladd | A*: A Language for Implementing Language Processors[END_REF].

Figure 3 shows two skeletons of translation functions related to the paper example. column_to_field and table_to_function can be used in order to produce code for a column and a

To use or not to use EUGENE

Non-relevant application domains

Most application generator builders first focus on the formal definition of the concrete and abstract syntax of the source specification. From these definitions, an internal representation structure and specialized tools, such as structured editors and parsers, are automatically derived.

Stage [3], Centaur [2] or the meta-environment described in [START_REF] Klint | A Meta-Environment for Generating Programming Environments[END_REF] are examples of such application generator builders. In these tools, the automatic derivation from a syntax definition to an internal representation structure is enabled because the langage used to specify the syntax is itself defined in an orthogonal way, i.e. there is only one possibility to describe a given situation.

EXPRESS is not defined in an orthogonal way. It can not be used in order to describe concret or abstract syntaxes. When the source specification can be described with a grammar, the lack of formal syntax definition denies EUGENE the capacity to generate parsers automatically. Hence, EUGENE is not suited to build syntax-directed translators such as compilers or structured editors.

Using EUGENE essentially requires data design and imperative programming. EUGENE is not adapted to build generators which use non-imperative features such as inference or deductive capabilities.

Relevant situations

The benefits of using EUGENE will be apparent in many different circumstances :

• the same language, EXPRESS, is used overall during the building process; this facilitates learning and the use of the environment,

• a generator is designed in (relative) independence of the system and of the target language in which the generator should be implemented; this facilitates the diffusion and the portability of the generator, • meta-schemata can be re-used as they are, either from one generator to another, or from another project which needed some meta-modeling (especially from standardized STEP constructs).

• the source specification does not have to be a textual language described by a grammar; this allows the building of a generator dealing with irregular cases and exceptions, provided that it can be expressed explicitly in the meta-schemata or by the meta-data.

• as instances of EXPRESS schemata, meta-data can be exchanged by means of the STEP neutral exchange structure; it provides inter-operability between application generators as well as between an application generator and another CASE tool.

From its very nature, EXPRESS can be used as a substitute source specification language. EXPRESS is a very powerful modeling language. Because the EXPRESS parser belongs to the EUGENE environment, it can be reused to produce meta-data. Specifications using models of other methods (like E-R or UML) can be manually translated into EXPRESS, and it is possible to avoid the development of a source specification parser. In this case, the source language used manually acts as a specification language and EXPRESS is used as a design language while the transformation from specification to design is done manually.

Conclusion

This paper has presented the EUGENE environment, a STEP-based application generator builder. A generator is automatically built from the specification of the intermediate representation manipulated by the generator (the meta-schema) and from the specification of translation functions. EUGENE is not suitable to build syntax-directed translators, such as compilers, interpreters or structured editors. Because the lack of a formal meta-language to define the grammar of the source language, EUGENE is unable to produce software components automatically, namely parsers dealing with the specification source. Different generators are briefly described. It demonstrates the power of the approach for relatively straightforward applications. This result meets the justification of the approach because simple solutions can be implemented in a simple and profitable way with EUGENE and therefore applicable to a software company.

  shows a simplified SQL meta-model. The table definition is related to a list of columns.

	END_ENTITY;
	ENTITY column;
	name : STRING;
	domain : simple_type;
	END_ENTITY;
	END_SCHEMA ;
	Figure 2 An example of source meta-model: a simple
	SQL dictionary

SCHEMA sql_dictionary; ENTITY simple_type ABSTRACT SUPERTYPE OF (ONEOF(real_type, integer_type, string_type)); END_ENTITY; ENTITY table; name : STRING; columns : LIST [1:?] OF column; ...

  table.The table below shows the ratio of input specification to generated code and the main advantage of each generator.

		ratio	main advantages
	gari_iobdd	1/25	leverage effect, reliability
	gari_prc	1/3	code homogeneity	SCHEMA sql_traduction;
	gari_sql	1/3	reliability	USE FROM sql_dictionary ;
	gari_taico	1/30	leverage effect, code complexity
	Using these generators, we delivered the first subsystem
	including 17000 generated lines. Comparing with another
	hand-made subsystem (for the same project) these 17,000	END_LOCAL ;
	lines represent about 60 man-day work. The four	(* build statements for the management of a
	generators have been built in 30 days. This demonstrates	column in a programming langage*)
	that building specific generators can be profitable even for
	a single project.
				Figure 3 An example of translation functions
				3 Experiments
				EUGENE has been experimented at Brest University with
				a lot of research projects described in [7].
				At Syseca Brest, EUGENE is currently used for an
				industrial project : the management of the textile
				department of a supermarket chain. This application uses
				ORACLE and is implemented with Visual Basic (VB).
				Expected benefits for the use of EUGENE were the
				software quality of generated code and the productivity
				gain (initially estimated at 10%).
				Four generators have been built : • gari_iobdd generates interface VB data access
				functions from SQL table descriptions, • with gari_prc functions calling stored procedures are
				generated from the procedures descriptions, • gari_sql embeds SQL clauses in VB functions, • gari_taico handles the mapping between VB two-
				dimensional matrices and flat SQL tables.

FUNCTION column_to_field ( c : column) : STRING ; LOCAL result : STRING := ''; RETURN (result) ; END_FUNCTION ; FUNCTION table_to _function( t : table ) : STRING ; LOCAL result : STRING := ''; END_LOCAL ; (* build statements to read/write a table *) REPEAT no := 1 TO HIINDEX(t.columns) ; …. END_REPEAT ; RETURN (result) ; END_FUNCTION ; END_SCHEMA ;


P Saliou

V Ribaud

Adding Use Cases to the building of Information Systems with Oracle Designer

The purpose of the work described in this article is to introduce UML use cases in a traditional development process of medium and small sized Information Systems. This work relies on the CASE tool Designer from the Oracle company and its associated development method CADM.

This introduction has an impact on the development process used as well as on the tools notably in terms of coupling, transformation and traceability of the various models used.

The three axis of this work are the following ones :

• Adding a phase of requirements capture with the help of use cases prior to the CADM development method currently used with Designer.

•

Defining rules to draft the use cases as well as rules for the transformation and traceability towards Designer analysis and design models (function hierarchy, design modules).

•

Extending the CASE tool and quite especially its repository so that it integrates the management of use cases: general properties, traceability links between the various elements contained in the repository, versioning, etc.

Introduction

Methods and tools are essential for the achievement of a project. The CASE tools are often confined to the analysis and conception phases while the 4GL environments are used for the implementation. Oracle Designer is amongst the rare CASE tools which can be used at each phase of an information system development cycle.

We have employed Designer for several industrial projects according to the CADM waterfall process. Within the framework of a client-supplier contracting relationship, it has always been necessary to complement the Designer models with requirements specifications. The use cases are appropriate to express most of the functional requirements. It seems natural to complement the CADM method with a requirements capture phase relying on use cases.

During the analysis, processings are represented in Designer as a function hierarchy. The use cases model can be organized with the help of packages and relations. This organization makes easier the transformation into an initial function hierarchy.

One of the Designer main components is its repository which stores all information concerning the system under construction. Its extension capacity allows the integration of the use cases model in the repository, linked with the other Designer models. This makes easier project management, collaborative work, requirements traceability, etc.

The article is as follows. Section 2 concerns requirements management in the CADM method. Section 3 presents use cases coupling with the CADM method. Section 4 describes use cases integration in Designer. Section 5 summarizes the prospects and is followed by a conclusion.

How are requirements managed in Designer ?

Designer and the associated CADM method

Oracle Designer is an extremely powerful integrated CASE tool. It allows the whole building of an Information System all along the phases of the software life cycle. To this end, it relies on a unique common repository stored in an Oracle database.

Our development approach relies on CADM (CASE Application Development Method), a waterfall process (Analysis->Design->Build->Implement->Production)) by Paul Dorsey and Peter Koletzke [START_REF] Dorsey | Designer/2000 Handbook[END_REF]. This approach is a derivative of the Case*Method by Richard Barker [START_REF] Barker | Case Method: Tasks and Deliverables[END_REF].

CADM belongs to the family of systemic methods. The data and processings have first to be separately modelized, and then coupled to constitute a unique and integrated system. The building of the system gets through different abstraction levels: analysis, design and implementation.

Requirements capture and function hierarchy

There is no requirements capture model in Designer.

During the preliminary analysis phase, the requirements capture materializes mostly in a textual form casually laid out or structured by a requirements plan.

During the general analysis phase, the requirements capture becomes elaborate, detailed and reshaped through a function hierarchy and an Entity/Relationship data model.

The function hierarchy is the model proposed by Designer to analyze processings. Processings in the information system are hierarchically divided into a set of activities known as functions. Therefore a function is a more or less important activity which can be automatized or manual. Some functions can be shared, in that case they appear several times in the hierarchy with a distinctive sign.

From this phase, a particular attention allows to identify the functions which will map the application modules. The requirements capture is quite rarely structured, so it is not possible to map the functions and entities obtained throughout this phase. This makes all the more sense as the requirements capture is exterior to Designer.

Very often the function hierarchy and the E/R model are used as elements of work and discussion with the users to validate and approve requirements.

During the detailed analysis phase, the function hierarchy is refined and completed: entities usages are defined for every function as well as attributes usages while cross-reference controls are performed between data and functions.

Coupling of use cases and CADM method

Why introducing a new form of requirements capture?

The requirements capture is still one of the most difficult task in the software development, the one that has without doubt the strongest impact on the success or failure of a project.

In our development approach, during the analysis phase, the requirements capture materializes as a function hierarchy. Through this approach, the point of view is the one of the system: what are the functions that the system must offer to fulfil the final user needs?

In the use cases, the point of view is the one of the system users: what do the various users expect from the system, what are their aims ? The use cases solve the drawbacks of hierarchical functional decomposition in terms of capture and understanding of requirements. Nevertheless, we have to cope with the transformation of these use cases into models of analysis and conception.

UML and the Unified Process [START_REF] Jacobson | The Unified Software Development Process[END_REF] have made popular the idea of complementing the analysis models with the use cases. This led us to bridge the two points of view:

• An external point of view through the use cases for the requirements capture.

• An internal point of view through a function hierarchy relying on an Entity/Relationship model.

For the building of medium and small sized systems, the fact of taking into account the use cases has an effect only on the tasks and deliverables linked with the requirements capture.

• As the requirements capture relies on a better structuration, the UML model of the use cases may be integrated directly into the Designer repository. • It is possible to transform automatically an external point of view (use cases) into an internal point of view (function hierarchy), by relying on the organization of use cases in terms of relations as well as functional regroupment in packages. • The various use cases map the hierarchy functions. This traceability permits to reduce the textual description of functions and helps to measure the impact of changes in requirements.

Organization of use cases

UML allows an organization of the use cases with the help of relations and packages.

The relation of inclusion allows a use case to explicitly insert another use case, in a specified place of its scenarios. This relation is used to avoid the repeated description of the same serie, by "factorizing" the common behaviour in a use case set apart. This notion of inclusion also allows to materialize the notion of "sub-case" described by Cokburn [START_REF] Cockburn | Writing Effective Use Cases[END_REF].

The relation of extension allows a use case to implicitly insert another use case, in an optional way, in a place indirectly specified in the one which operates the extension. This relation is used to separate an optional or rare behaviour from the mandatory behaviour.

The relation of generalization allows a use case to inherit the description of a parent use case. This relation is used to formalize important variations on a same use case.

The package allows the gathering of UML elements into coherent sets.

Several strategies are available to operate a regroupment of use cases: by actor, by functional domain, etc. Our aim is to reach a functional decomposition (function hierarchy), so we use a strategy of regroupment by functional domain.

The included use cases of "factorization" type may be regrouped in a particular package, viewed as a common support service, to distinguish it effectively from the functional cases which include it. An included use case of "sub-case" type is likely to find itself in the same package as the calling use case, both of them belonging likely to the same functional domain.

Transformation rules of use cases into functions

A function hierarchy by default proceeds from the organization of the use cases in terms of relations and packages. The transformation rules are as follows:

• The root function corresponds to the system.

• Each package or sub-package gives birth to an intermediary function attached to the root function (if it is a package) or to the function stemming from the parent package (if it is a sub-package). • To the function stemming from the package that contains the extended use case if a relation of extension is involved. • To the function stemming from the package that contains the use case, in all other cases. A use case of "factorization" type gives birth to a function shared by several branches of the hierarchy. A use case which is an extension of other use cases may also give birth to an function shared by several branches of the hierarchy. This will occur if the extended use cases belong to different packages.

At the end of the analysis, Designer allows the transformation of the analysis model (functions and their entities usages) into a rough draft of design model (modules and their tables usages). This explains why the function hierarchy obtained by default is refined, not only in terms of functions provided with the system, but also in the perspective of its future transformation in design modules.

At the end of this refining process, some use cases will find themselves dispatched as several functions while others will be regrouped partially or totally in a unique function. In such an approach, it is important to maintain the bidirectional links between the functions and the use cases.

Use cases management

The main extensions added to the Designer repository materialize as a framework consistent with the UML use cases meta-model. This framework is complemented to allow: • The storage in the repository (thus included in a database) of the use cases scenarios as documents issued from various word processors. • The mapping of each UML element with one or several hypertext links towards documents stored in the repository, allowing their consultation and upgrading from Designer. • The availability of extra features exceeding those provided by UML and particularly additional project management information. • The easy manipulation and consultation of the links between the various UML repository elements: actors, use cases and packages.

Mapping between use cases and other models

The extensions added to the Designer repository allow to map the requirements represented by the use cases with the functions and all other elements of analysis and conception existing in the repository. This mapping allows to perform cross-reference checks in order to ensure, for example, that the conception covers the whole requirements.

The screen captures below shows both directions of this traceability: from the use cases towards the other models and from the other models towards the use cases.

Related work and prospects

This work allows the integration of use cases management in a model-driven development tool. The same problematic is addressed and resolved by the integration of Rational RequisitePro and Rational Rose. However, the Rational Suite Development is UML-based, when Designer is dedicated to the Information System through its own models (entity-relationship, function hierarchy, etc).

This work is influenced by the Unified Process approach. In this perspective, the use cases are not a mere specification tool for the system requirements. They also guide the design, the implementation and the tests [START_REF] Jacobson | The Unified Software Development Process[END_REF].

We also forecast to monitor the testing process through the use cases, keeping the automation and traceability targets previously described in this article.

Designer is an extremely powerful tool which, as a counterpart, enjoins quite a strict development frame. Designer usage is based on modelization and models transformation belonging to various abstraction levels: analysis, conception, implementation. While one works at a given level, it is necessary to be well acquainted with the inferior level possibilities as well as the transformation rules of the models in this level. Practising the tool and understanding the way it works leads to use one level possibilities in the expectation of what will be generated at the following levels. This allows to work at a high abstraction level and to take advantage of a considerable leverage on the generated code.

Adding and integrating use cases into the CADM method and Designer provides an additional abstraction level describing requirements. With more pratice, we shall improve the writing and structuring rules of use cases. We will then take full advantage of this extra level to build even better systems in a quicker way.

Conclusion

This paper has presented how to add use cases to the building of Information Systems with Designer, according to three main directions: adding a phase of requirements capture, defining rules for drafting and transforming, managing use cases in the repository.

The first benefit for a firm is that the power and ability (in terms of technique and method) of a CASE Tool such as Designer are preserved while taking advantage of some aspects of UML and Unified Process. Such an approach could allow a progressive and justified transition from traditional development to UML for firm developers [START_REF] Lindsey | Bridging traditional and object technologogies: Creating transitional applicartion[END_REF]. This transition will be made easier because UML will be introduced through the Unified Process and not by the modelling language

An example of transforming use cases into function hierarchy

Functions issued from use cases are grey and shared functions are bordered by double lines.

Use cases integration in Designer

Use cases integration is operated in Designer by the way of extensions added to the repository. These extensions allow the storage in the repository of all documents and elements related to the use cases as well as the setting up of bidirectional traceability mechanisms between the actors, the use cases and the function hierarchy.

Henceforth the use cases management is totally monitored by Designer, either rights management and resources sharing, versioning, archiving, measuring impact of change or even document searching.


Kishor Kumar

D L Couëdel

D C Arnas

Nanoparticles in direct-current discharges: growth and electrostatic coupling

The formation of nanoparticles from the sputtering of graphite and tungsten cathodes in direct-current discharges is investigated. The successive phases of growth present specificities according to the cathode material. The evolution of the discharge and plasma parameters during the growth phases accounts for the nanoparticle-plasma electrostatic coupling. This evolution also presents strong differences as a function of the cathode material. Features characterising each case are discussed.

Introduction

Low temperature plasmas can generate nanoparticles (NPs). Many studies were devoted to their formation, especially in SiH 4 -based discharges relevant for plasma processing [START_REF] Boufendi | Measurements of particle size kinetics from nanometer to micrometer scale in a low-pressure argon-silane radio-frequency discharge[END_REF][START_REF] Watanabe | Formation and behaviour of nano/micro-particles in low pressure plasmas[END_REF]. The formation of carbon NPs has also been investigated from sputtered carbon atoms [START_REF] Ganguly | Growth and morphology of carbon grains[END_REF][START_REF] Praburam | Cosmic dust synthesis by accretion and coagulation[END_REF]Samsonov & Goree 1999a) and in hydrocarbon plasmas [START_REF] Deschenaux | Investigations of ch 4 , c 2 h 2 and c 2 h 4 dusty rf plasmas by means of ftir absorption spectroscopy and mass spectrometry[END_REF][START_REF] Géraud-Grenier | Characterization of particulates and coatings created in a 13.56 {MHz} radiofrequency methane plasma[END_REF][START_REF] Kovačević | A candidate analog for carbonaceous interstellar dust: Formation by reactive plasma polymerization[END_REF]. All these studies were mainly performed in high-frequency discharges. In addition, few studies have been devoted to the generation of metallic nanoparticles [START_REF] Jellum | Particulates in aluminum sputtering discharges[END_REF]Samsonov & Goree 1999b) and to comparisons between various growth mechanisms. Therefore, we report on the NP formation from the sputtering of graphite and tungsten cathodes in parallel electrode direct-current (DC) discharges [START_REF] Arnas | Effects of the growth and the charge of carbon nanoparticles on dc discharges[END_REF]Kishor Kumar et al. 2013). Specific growth sequences as well as strong differences of the evolutions of plasma and discharge parameters are presented as a function of cathode materials.

Experimental set-up

DC discharges are produced between two parallel electrodes [START_REF] Arnas | Thermal balance of carbon nanoparticles in sputtering discharges[END_REF]. The cathode of 10 cm diameter placed at the top of the device, is in graphite or tungsten. The grounded anode of 15 cm diameter is in stainless steel. Both electrodes are separated by 10 cm. Discharges are produced in argon at the pressure of 60 Pa. The current densities are fixed at 10 A • m -2 and 5 A • m -2 for respectively graphite and tungsten cathodes, in order to have calculated sputtered carbon and tungsten fluxes of the same order, Γ ∼ 10 18 m -2 s -1 . In such conditions, NPs are generated in the plasma, which consists mainly of a negative glow. During the growth, evolutions of the discharge voltage, plasma density and emission line intensities are recorded. NPs are then collected on substrates, pushed one after the other under a hole, drilled in the anode center. Samples are analysed by electron microscopy for size measurements and internal structure studies [START_REF] Dominique | Cathode sputtering and the resulting formation of carbon nanometer-size dust[END_REF]. The NP detection in the plasma is performed by laser scattering [START_REF] Zeinert | Optical properties of carbonaceous nanoparticles produced in sputtering discharges[END_REF].

Nanoparticle formation

It is admitted that NP precursors are negative ion clusters. They grow through complex chemical reactions in the plasma where they are trapped up to the nucleation i.e. the appearance of the first solid particles of 1-3 nm. The latter coagulate to form spheroid particles also called primary particles. Modellings show that because of charge fluctuations the probability for small particles to be neutral or positively charged is not strictly equal to zero and can thus favoured coagulation [START_REF] Matsoukas | The coagulation rate of charged aerosols in ionized gases[END_REF]. In a self-consistent model of the particle charging process in a plasma, it was also shown that the probability to have positively charged small particles is enhanced when the electron density decreases while the big particles stays highly negatively charged. This result indicates that the coagulation mechanism is also favoured by size dispersions because attraction between small and big particles is favoured [START_REF] Annaratone | Agglomeration of mesoscopic particles in plasma[END_REF]. When the nucleation diminishes, this mechanism saturates and the NP growth continues by ionic and/or neutral species deposition.

Figure 1-a) shows a carbon NP of ∼ 15 nm, grown by coagulation of nuclei of 2-3 nm. Carbon deposits, appearing in the shape of graphitic domains, weld these nuclei. Figure 1-b) shows a tungsten NP of ∼ 30 nm, grown by coagulation of crystallites of 2-4 nm, identified by parallel diffraction fringes in figure 1-c). Size histograms were established for various plasma durations. Figure 2 shows the size increase between 10 s and 300 s, in blue (black) of carbon (tungsten) NPs. The dots are the average sizes and the vertical bars, the multiplicative standard deviations of size histograms, fitted by lognormal functions. In both cases, the fastest sequence corresponds to a growth by coagulation. Beyond t > 200 s, the coagulation of carbon NPs saturates. During this saturation phase and for t > 400 s, a new NP generation appears, identified by the presence of a second hump in the particle size distribution (bimodal distribution not shown here). The part where the growth saturates gives a rate of 2 nm/min, consistent with a growth of the first NP generation by carbon deposition.

In the case of tungsten Nps, a new generation appears when t > 200 s and the coagulation saturation is not observed as shown in figure 3. Up to 200 s, the dots are the average values, already given in figure 2, in black. We have added from 120 s to 400 s, The appearance time of the second generation presents a rather large dispersion. In contrast, for long plasma durations, both generations have similar growth rates. This result is correlated to the fact that small size particles are always present in the histograms, which indicates a continuous nucleation or formation of tungsten crystallites leading to a continuous coagulation.

Evolution of discharge and plasma parameters, and discussion

The presence of NPs, negativelly charged proportionally to their size, can be detected by strong modifications of the plasma and discharge parameters. Figures 4 a)-b) give the evolution of the discharge voltage V d (black) and the intensity of an Ar line (red) during the formation of carbon and tungsten NPs, in plasmas of 500 s. In figure 4 -b) the intensity evolution of a tungsten line (blue) and the electron density evolution (n e in green) measured by microwave interferometry are also presented. Signals show strong differences as a function of cathode materials.

When a graphite cathode is used, the increase of V d during ∼ 300 s is correlated to the NP size increase and consequently, to a progressive loss of free electrons in the plasma. The discharge current being fixed to a constant value, the compensation of the electron loss in the plasma is assured by a spontaneous increase of V d which enhances the secondary electron (SE) emission at the cathode surface. Therefore the gas ionisation is also increased.

From t∼ 300 s to t∼ 440 s, V d saturates and then decreases until t∼ 460 s while the plasma emission decreases. This discharge behaviour is correlated to the NP cloud transport from the beginning of the negative glow (NG) located under the cathode sheath, towards the end of the NG, located above the anode sheath. This transport was first observed by laser light scattering by G. M. Jellum and D. B. Graves, in similar conditions [START_REF] Jellum | Particulates in aluminum sputtering discharges[END_REF]. Therefore, dust particles that are transported towards a region where the plasma density is smaller than near the cathode collect fewer electrons. In this situation, the discharge is easier to sustain (V d saturation). This transport could also explain the coagulation saturation if one assumes that new nucleation can only take place in a dust free region (beginning of the NG) as it was observed in the void region of RF dusty plasmas ( (Samsonov & Goree 1999b;[START_REF] Mikikian | Dust particles in low-pressure plasmas: Formation and induced phenomena[END_REF][START_REF] Cavarroc | Successive generations of dust in complex plasmas: A cyclic phenomenon in the void region[END_REF]). Hence, in such DC discharges, sputtered atoms which are emitted continuously could more efficiently give birth to a second generation of NPs at the beginning of the NG, as the first generation of NPs is transported towards the end of the NG. In the last sequence (> 450 s), V d increases again (as does the plasma emission) in a similar way as during the beginning of the discharge. This rise allows the compensation of electron losses due to the charging of the new NP generation.

When a tungsten cathode is used, after the breakdown V d rises from ∼ 500 V to ∼620 V in 3-4 s. At t ∼ 4 s, V d drops by ∼ 15 V (not visible in Figure 4-b due to the time scale), then follows a plateau within ∼ 40 s and a consequent decrease of ∼ 200 V during 150 s. These successive behaviours of V d are correlated to the sudden appearance of a bright glow under the cathode center (appearance time ∼ 4 s) and its expansion over the cathode surface within 150 s. During this expansion, n e increases strongly. All this characteristics results from the sputtering of an oxide layer (bright glow appearance), starting in the cathode center. The cathode SE emission of pure tungsten being higher than that of tungsten oxide when the energy of ions and fast charge exchange neutral is lower than 100 eV, an increase of the ionisation occurs starting at t ∼ 4 s. Moreover, the tungsten ionisation potential being lower than that of argon (7.86 eV and 15.76 eV, respectively), an efficient W ionisation happens during the glow expansion over the cathode surface. Consequently, the electron density in the plasma increases. Because the discharge current is kept constant, V d decreases. This behaviour shows that there are conditions for which the charging mechanism of growing nanoparticles is not the leading process which drives the evolution of the plasma and discharge parameters.

In the last phase (> 150 s), the charge carried by nanoparticles (two generations) becomes important and therefore the electron density decreases. As a consequence, V d must increase to sustain the ionisation process.

Conclusion

In this article, the formation of NPs from the sputtering of graphite and tungsten cathodes, in DC argon discharges is reported. Experiments were performed at fixed discharge currents and for similar sputtered carbon and tungsten fluxes. We show that carbon nanoparticles grow by coagulation and concomitant deposition up to the coagulation saturation. This saturation is explained by the appearance of a second NP generation, more efficiently feed by nucleation and coagulation, under the cathode sheath while the first NP generation is transported towards the anode region. Evolutions of the plasma and discharge parameters are correlated to the successive phases of growth and charging of the two NP generations. All the results confirm the existence of an electrostatic coupling between the nanoparticles and the discharge as expected in dusty plasmas. When a tungsten cathode is used, we show that the sputtering of a tungsten oxide layer at the cathode surface, dominates the early plasma (discharge) evolution. A progressive increase of the cathode secondary electron emission occurs and the injected tungsten atoms are ionised. These effects overcome the loss of free electrons due to the NP charging. No coupling is observed during this sequence. The influence of the loss of free electrons begin to appear during the formation of a second NP generation. This work was supported by the French ANR contract, CRWTH No. ANR-09-BLAN-0070-01-CRWTH.

Figure 1 .

 1 Figure 1. at t = 60s, a) carbon nanoparticle grown by coagulation of nuclei (2-3 nm), welded by graphitic domains, b) tungsten nanoparticle grown by coagulation of crystallites (3-4 nm), c) magnification of tungsten crystallites on the nanoparticle edge.

Figure 2 .

 2 Figure 2. Size evolutions of the first generation of carbon (blue) and tungsten (black) nanoparticles as a function of plasma duration

Figure 3 .

 3 Figure 3. Size evolution of two generations of tungsten nanoparticles as a function of plasma duration. The various symbols represent sets of 3-4 measurements between two successive device opening.

Figure 4 .

 4 Figure 4. a) Evolution of the discharge voltage V d and the intensity of two argon lines b):Evolution of V d , the intensity of argon and tungsten lines an the electron density (ne)

† Email address for correspondence: cecile.arnas@univ-amu.fr


J Angeles
email: angeles@cim.mcgill.ca

D Chablat

ON ISOTROPIC SETS OF POINTS IN THE PLANE. APPLICATION TO THE DESIGN OF ROBOT ARCHITECTURES

Various performance indices are used for the design of serial manipulators. One method of optimization relies on the condition number of the Jacobian matrix. The minimization of the condition number leads, under certain conditions, to isotropic configurations, for which the roundoff-error amplification is lowest. In this paper, the isotropy conditions, introduced elsewhere, are the motivation behind the introduction of isotropic sets of points. By connecting together these points, we define families of isotropic manipulators. This paper is devoted to planar manipulators, the concepts being currently extended to their spatial counterparts. Furthermore, only manipulators with revolute joints are considered here.

Introduction

Various performance indices have been devised to assess the kinetostatic performance of serial manipulators. The literature on performance indices is extremely rich to fit in the limits of this paper, the interested reader being invited to look at it in the rather recent references cited here. A dimensionless quality index was recently introduced by [START_REF] Lee | A Pratical Quality Index Based on the Octahedral Manipulator[END_REF] based on the ratio of the Jacobian determinant to its maximum absolute value, as applicable to parallel manipulators. This index does not take into account the location of the operation point in the end-effector, for the Jacobian determinant is independent of this location. The proof of the foregoing fact is available in [START_REF] Angeles | Fundamentals of Robotic Mechanical Systems[END_REF], as pertaining to serial manipulators, its extension to their parallel counterparts being straightforward. The condition number of a given matrix, on the other hand is well known to provide a measure of invertibility of the matrix [START_REF] Golub | Matrix Computations[END_REF]. It is thus natural that this concept found its way in this context. Indeed, the condition number of the Jacobian matrix was proposed by [START_REF] Salisbury | Articulated Hands: Force Control and Kinematic Issues[END_REF] as a figure of merit to minimize when designing manipulators for maximum accuracy. In fact, the condition number gives, for a square matrix, a measure of the relative roundoff-error amplification of the computed results [START_REF] Golub | Matrix Computations[END_REF] with respect to the data roundoff error. As is well known, however, the dimensional inhomogeneity of the entries of the Jacobian matrix prevents the straightforward application of the condition number as a measure of Jacobian invertibility. The characteristic length was introduced in [START_REF] López-Cajún | Kinematic Isotropy and the Conditioning Index of Serial Manipulators[END_REF] to cope with the above-mentioned inhomogeneity. Apparently, nevertheless, this concept has found strong opposition within some circles, mainly because of the lack of a direct geometric interpretation of the concept. It is the aim of this paper to shed more light in this debate, by resorting to the concept of isotropic sets of points. Briefly stated, the application of isotropic sets of points to the design of manipulator architectures relies on the concept of distance in the space of m × n matrices, which is based, in turn, on the Frobenius norm of matrices. With the purpose of rendering the Jacobian matrix dimensionally homogeneous, moreover, we introduce the concept of posture-dependent conditioning length. Thus, given an arbitrary serial manipulator in an arbitrary posture, it is possible to define a unique length that renders this matrix dimensionally homogeneous and of minimum distance to isotropy. The characteristic length of the manipulator is then defined as the conditioning length corresponding to the posture that renders the above-mentioned distance a minimum over all possible manipulator postures.

It is noteworthy that isotropy comprising symmetry at its core, manipulators with only revolute joints are considered here. It should be apparent that mixing actuated revolutes with actuated prismatic joints would destroy symmetry, and hence, isotropy.

Algebraic Background

When comparing two dimensionless m × n matrices A and B, we can define the distance d(A, B) between them as the Frobenius norm of their difference, namely,

d(A, B) ≡ A -B i.e., d(A, B) ≡ 1 n tr[(A -B)(A -B) T ] (1)
An m × n isotropic matrix, with m < n, is one with a singular value σ > 0 of multiplicity m, and hence, if the m × n matrix C is isotropic, then

CC T = σ 2 1 (2)
where 1 is the m × m identity matrix. Note that the generalized inverse of C can be computed without roundoff-error, for it is proportional to C T , namely,

(CC T ) -1 C T = 1 σ 2 C T (3)
Furthermore, the condition number κ(A) of a square matrix A is defined as [START_REF] Golub | Matrix Computations[END_REF])

κ(A) = A A -1 (4)
where any norm can be used. For purposes of the paper, we shall use the Frobenius norm for matrices and the Euclidean norm for vectors. Henceforth we assume, moreover, a planar n-revolute manipulator, as depicted in Fig. 1, with Jacobian matrix J given by (Angeles, 1997)

J = 1 1 • • • 1 Er 1 Er 2 • • • Er n , E = 0 -1 1 0 (5)
where r i is the vector directed from the center of the ith revolute to the operation point P of the end-effector, and matrix E represents a counterclockwise rotation of 90 • . It will prove convenient to partition J into

O a 1 q 1 P a 2 a n q 2 a 3 q 3 r 1 r 2 r 3 Figure 1. Planar n-revolute manipulator a 1 × n block A and a 2 × n block B, defined as A = [1 1 • • • 1] and B = [Er 1 Er 2 • • • Er n ].
Therefore, while the entries of A are dimensionless, those of B have units of length. Thus, the sole singular value of A, i.e., the nonnegative square root of the scalar of AA T , is √ n, and hence, dimensionless, and pertains to the mapping from joint-rates into end-effector angular velocity. The singular values of B, which are the nonnegative square roots of the eigenvalues of BB T , have units of length, and account for the mapping from joint-rates into operation-point velocity. It is thus apparent that the singular values of J have different dimensions and hence, it is impossible to compute κ(J) as in eq.( 4), for the norm of J cannot be defined. The normalization of the Jacobian for purposes of rendering it dimensionless has been judged to be dependent on the normalizing length [START_REF] Paden | Optimal Kinematic Design of 6R Manipulator[END_REF]Li, 1990).

As a means to avoid the arbitrariness of the choice of that normalizing length, the characteristic length L was introduced in (Ranjbaran, [START_REF] Ranjbaran | The Mechanical Design of a Seven-Axes Manipulator with Kinematic Isotropy[END_REF]. We shall resort to this concept, while shedding more light on it, in discussing manipulator architectures.

Isotropic Sets of Points

Consider the set S ≡ { P k } n 1 of n points in the plane, of position vectors { p k } n 1 , and centroid C, of position vector c, i.e.,

c ≡ 1 n n 1 p k (6)
The summation appearing in the right-hand side of the above expression is known as the first moment of S with respect to the origin O from which the position vectors stem. The second moment of S with respect to C is defined as a tensor M, namely,

M ≡ n 1 (p k -c)(p k -c) T (7)
It is now apparent that the root-mean square value of the distances { d k } n 1 of S, d rms , to the centroid is directly related to the trace of M, namely,

d rms ≡ 1 n n 1 (p k -c) T (p k -c) ≡ 1 n tr(M) (8)
Further, the moment of inertia I of S with respect to the centroid is defined as that of a set of unit masses located at the points of S, i.e.,

I ≡ n 1 [ p k -c 2 1 -(p k -c)(p k -c) T ] (9a)
in which 1 is the 3 × 3 identity matrix. Hence, in light of definitions ( 7) and ( 8),

I = tr(M)1 -M (9b)
We shall refer to I as the geometric moment of inertia of S about its centroid. It is now apparent that I is composed of two parts, an isotropic matrix of norm tr(M) and the second moment of S with the sign reversed. Moreover, the moment of inertia I can be expressed in a form that is more explicitly dependent upon the set { p k -c } n 1 , if we recall the concept of cross-product matrix [START_REF] Angeles | Fundamentals of Robotic Mechanical Systems[END_REF]: For any three-dimensional vector v, we define the cross-product matrix P k of (p k -c), or of any other threedimensional vector for that matter, as

P k ≡ ∂[(p k -c) × v] ∂v (10a)
Further, we recall the identity (Angeles, 1997)

P 2 k ≡ -p k -c 2 1 + (p k -c)(p k -c) T (10b)
It is now apparent that the moment of inertia of S takes the simple form I = -

n 1 P 2 k ( 11
)
We thus have Definition 1 (Isotropic Set) The set S is said to be isotropic if its secondmoment tensor with respect to its centroid is isotropic.

As a consequence, we have Lemma 1 The geometric moment of inertia of an isotropic set of points is isotropic. Conversely, an isotropic geometric moment of inertia pertains necessarily to an isotropic set of points. We describe below some properties of isotropic sets of points that will help us better visualize the results that follow.

ISOTROPY-PRESERVING OPERATIONS ON SETS OF POINTS

Consider two isotropic sets of points in the plane,

S 1 = { P k } n 1 and S 2 = { P k } n+m n+1 . If the centroid C of the position vector c of S 1 coincides with that of S 2 , i.e. if, c ≡ 1 n n 1 p k ≡ 1 m n+m n+1 p k (12)
then, the set S = S 1 ∪ S 2 is isotropic. Hence, Property 1 The union of two isotropic sets of points sharing the same centroid is also isotropic. Furthermore, as the reader can visualize, we state below one more operation on sets of points, namely, a rigid-body rotation, that preserves isotropy: Property 2 The rotation of an isotropic set of points as a rigid body with respect to its centroid is also isotropic.

TRIVIAL ISOTROPIC SETS OF POINTS

An isotropic set of points can be defined by the union, rotation, or a combination of both, of isotropic sets. The simplest set of isotropic points is the set of vertices of a regular polygon. We thus have Definition 2 (Trivial isotropic set) A set of n points S is called trivial if it is the set of vertices of a regular polygon with n vertices.

Lemma 2 A trivial isotropic set S remains isotropic under every reflection about an axis passing through the centroid C.

An Outline of Kinematic Chains

The connection between sets of points and planar manipulators of the serial type is the concept of simple kinematic chain. For completeness, we recall here some basic definitions pertaining to this concept.

SIMPLE KINEMATIC CHAINS

The kinematics of manipulators is based on the concept of kinematic chain. A kinematic chain is a set of rigid bodies, also called links, coupled by kinematic pairs. In the case of planar chains, two lower kinematic pairs are possible, the revolute, allowing pure rotation of the two coupled links, and the prismatic pair, allowing a pure relative translation, along one direction, of the same links. For the purposes of this paper, we study only revolute pairs, but prismatic pairs are also common in manipulators.

Definition 3 (Simple kinematic chain) A kinematic chain is said to be simple if each and every one of its links is coupled to at most two other links.

A simple kinematic chain can be open or closed; in studying serial manipulators we are interested in the former. In such a chain, we distinguish exactly two links, the terminal ones, coupled to only one other link. These links are thus said to be simple, all other links being binary. In the context of manipulator kinematics, one terminal link is arbitrarily designated as fixed, the other terminal link being the end-effector (EE), which is the one executing the task at hand. The task is defined, in turn, as a sequence of poses-positions and orientations-of the EE, the position being given at a specific point P of the EE that we term the operation point.

ISOTROPIC KINEMATIC CHAINS

To every set S of n points it is possible to associate a number of kinematic chains. To do this, we number the points from 1 to n, thereby defining n -1 links, the ith link carrying joints i and i + 1. Links are thus correspondingly numbered from 1 to n, the nth link, or EE, carrying joint n on its proximal (to the base) end and the operation point P on its distal end. Furthermore, we define an additional link, the base, which is numbered as 0.

It is now apparent that, since we can number a given set S of n points in n! possible ways, we can associate n! kinematic chains to the above set S of n points. Clearly, these chains are, in general, different, for the lengths of their links are different as well. Nevertheless, some pairs of identical chains in the foregoing set are possible. Definition 4 (Isotropic kinematic chain) Let set S of n points be isotropic, and the operation point P be defined as the centroid of S. Any kinematic chain stemming from S is said to be isotropic.

The Posture-Dependent Conditioning Length of Planar n-Revolute Manipulators

Under the assumption that the manipulator finds itself at a posture P that is given by its set of joint angles, { θ k } n 1 , we start by dividing the last two rows of the Jacobian by a length l P , as yet to be determined. This length will be found so as to minimize the distance of the normalized Jacobian to a corresponding isotropic matrix K, subscript P reminding us that, as the manipulator changes its posture, so does the length l P . This length will be termed the conditioning length of the manipulator at P.

A DIMENSIONALLY-HOMOGENEOUS JACOBIAN MATRIX

In order to distinguish the original Jacobian matrix from its dimensionallyhomogeneous counterpart, we shall denote the latter by J, i.e.,

J = 1 1 • • • 1 (1/l P ) Er 1 (1/l P ) Er 2 • • • (1/l P ) Er n
Now the conditioning length will be defined via the minimization of the distance of the dimensionally-homogeneous Jacobian matrix J of an nrevolute manipulator to an isotropic 3×n model matrix K whose entries are dimensionless and has the same gestalt as any 3×n Jacobian matrix. To this end, we define an isotropic set K = { K i } n 1 of n points in a dimensionless plane, of position vectors { k i } n 1 , which thus yields the dimensionless matrix

K = 1 1 • • • 1 Ek 1 Ek 2 • • • Ek n (13)
Further, we compute the product KK T :

KK T = n n 1 k T i E T n 1 Ek i n 1 Ek i k T i E T
Upon expansion of the summations occurring in the above matrix, we have

n 1 k T i E T = ( n 1 Ek i ) T = E( n 1 k i ) T and n 1 Ek i k T i E T = E( n 1 k i k T i )E T
Now, by virtue of the assumed isotropy of K, the terms in parentheses in the foregoing expressions become

n 1 k i = 0 and n 1 k i k T i = k 2 1 2×2
where the factor k 2 is as yet to be determined and 1 2×2 denotes the 2 × 2 identity matrix. Hence, the product KK T takes the form

KK T = n 0 T 0 k 2 1 2×2 (14)
Now, in order to determine k 2 , we recall that matrix K is isotropic, and hence that the product KK T has a triple eigenvalue. It is now apparent that the triple eigenvalue of the said product must be n, which means that

k 2 = n and n 1 k i k T i = (n)1 2×2 (15)

COMPUTATION OF THE CONDITIONING LENGTH

We can now formulate a least-square problem aimed at finding the conditioning length l P that renders the distance from J to K a minimum. The task will be eased if we work rather with the reciprocal of l P , λ ≡ 1/l P , and hence,

z ≡ 1 2 1 n tr[(J -K)(J -K) T ] → min λ (16)
Upon simplification, and recalling that tr(KJ T ) = tr(JK T ),

z ≡ 1 2 1 n tr(JJ T -2KJ T + KK T ) (17)
It is noteworthy that the above minimization problem is (a) quadratic in λ, for J is linear in λ and (b) unconstrained, which means that the problem accepts a unique solution. This solution can be found, additionally, in closed form. Indeed, the optimum value of λ is readily obtained upon setting up the normality condition of the above problem, namely,

∂z ∂λ ≡ 1 2n tr ∂(J J T ) ∂λ - 1 n tr K ∂J T ∂λ = 0 (18)
where we have used the linearity property of the trace and the derivative operators. The normality condition then reduces to

λ n 1 r j 2 - n 1 k T j r j = 0
Now, if we notice that r j is the distance d j from the operation point P to the center of the jth revolute, the first summation of the above equation yields nd 2 rms , with d rms denoting the root-mean-square value of the set of distances { d j } n 1 , and hence,

λ = n 1 k T i r j nd 2 rms ⇒ l P = nd 2 rms n 1 k T j r j (19)
Definition 5 (Characteristic length) The conditioning length of a manipulator with Jacobian matrix capable of attaining isotropic values, as pertaining to the isotropic Jacobian, is defined as the characteristic length of the manipulator.

An example is included below from which the reader can realize that a reordering of the columns of K preserves the set of manipulators resulting thereof, and hence, K is not unique. Lack of space prevents us from including an example of a nonisotropic manipulator. The interested reader can find such an example in [START_REF] Chablat | On the Kinetostatic Optimization of Revolute-Coupled Planar Manipulators[END_REF]

EXAMPLE: A FOUR-DOF REDUNDANT PLANAR MANIPULATOR

An isotropic set K of four points, { K i } 4 1 , is defined in a nondimensional plane, with the position vectors k i given below:

k 1 = 1 1 , k 2 = -1 1 , k 3 = -1 1 , k 4 = 1 1 (20a)
which thus lead to

K =   1 1 1 1 -1 -1 1 1 1 -1 -1 1   ⇒ KK T =   4 0 0 0 4 0 0 0 4   = σ 2 1 (20b)
and is apparently isotropic, with a triple singular value of k = 2. We thus have 4! = 24 isotropic kinematic chains for a four-dof planar manipulator, but we represent only six in Fig. 2 because the choice of the first point is immaterial, since this choice amounts to a rotation of the overall manipulator as a rigid body. The conditioning length l P is equal to l/2 for the three manipulators, with l denoting any nonzero length. Moreover, the link lengths are defined, respectively, for three distinct manipulators of Fig. 2, form left to right: a 1 = l, a 2 = l, a 3 = l, a 4 = √ 2l/2; a 1 = l, a 2 = √ 2l, a 3 = l, a 4 = √ 2l/2; a 1 = √ 2l, a 2 = l, a 3 = √ 2l, a 4 = √ 2l/2. An extensive discussion of isotropic sets of points and the optimum design of manipulators is available in [START_REF] Chablat | On the Kinetostatic Optimization of Revolute-Coupled Planar Manipulators[END_REF])

K 1 K 3 K 2 K 4 K 1 K 4 K 2 K 3 K 1 K 2 K 3 K 4 K 1 K 3 K 4 K 2 K 1 K 4 K 3 K 2 K 1 K 3 K 2 K 4

Conclusions

Isotropic manipulators are defined in this paper by resorting to the concept of isotropic sets of points. This concept allows us to define families of isotropic redundant manipulators. The characteristic length can thus be defined as the conditioning length l P that pertains to the isotropic postures. The paper focuses on planar manipulators, but the underlying concepts are currently extended to their three-dimensional counterparts.

Figure 2 .

 2 Figure 2. Six isotropic postures for the same isotropic set


D Chablat
email: damien.chablat@ircyn.ec-nantes.fr

P Wenger

A NEW THREE-DOF PARALLEL MECHANISM: MILLING MACHINE APPLICATIONS

This paper describes a new parallel kinematic architecture for machining applications, namely, the orthoglide. This machine features three fixed parallel linear joints which are mounted orthogonally and a mobile platform which moves in the Cartesian x-y-z space with fixed orientation. The main interest of the orthoglide is that it takes benefit from the advantages of the popular PPP serial machines (regular Cartesian workspace shape and uniform performances) as well as from the parallel kinematic arrangement of the links (less inertia and better dynamic performances), which makes the orthoglide well suited to high-speed machining applications. Possible extension of the orthoglide to 5axis machining is also investigated.

Introduction

Parallel kinematic machines (PKM) are commonly claimed to offer several advantages over their serial counterpart, like high structural rigidity, high dynamic capacities and high accuracy. On the other hand, they generally suffer from a reduced operational workspace due to the presence of internal singularities or self-collisions. PKM were first introduced by Gough in 1956 and have been used for many years as flight simulators, because of their higher load carrying capacity [START_REF] Stewart | A Platform with 6 Degrees of Freedom[END_REF], [START_REF] Gosselin | On the Design of Gravity-Compensated Six-Degree-of-Freedom Parallel Mechanisms[END_REF]. Parallel robotic manipulators appeared later with the first industrial application proposed by [START_REF] Clavel | DELTA, a Fast Robot with Parallel Geometry[END_REF]. Parallel kinematic machine tools attract the interest of more and more researchers and companies. Since the first prototype presented in 1994 during the IMTS in Chicago by Gidding&Lewis (the Variax), many other prototypes have appeared as could be seen during the last World Exhibition EMO'99 which was held in Paris in May 1999. A recent comparative study, conducted on the basis of simple planar mechanisms, shows that certain parallel kinematic structures do have potential advantages over their serial counterparts [START_REF] Wenger | A Comparative Study of Serial and Parallel Mechanism Topologies for Machine Tools[END_REF]. Despite this, it is worth noting that many users of machine tools are still not convinced by the potential benefits of PKM. Most industrial 3-axis machine tools have a PPP kinematic architecture with orthogonal joint axes. Thus, the motion of the tool in the space is quite simply related to the motion of the three actuated axes. Also, the performances (e.g. maximum speeds, forces, accuracy and rigidity) are constant in the most part of the Cartesian workspace, which is a parallelepiped. In contrast, the common feature of most existing PKM is that the Cartesian workspace shape is of complex geometry and the motion of the tool and the motion of the actuated axes are not simply connected. More precisely, the Jacobian matrix which relates the joint rates and the output velocities is not constant and not isotropic. Consequently, the performances may vary considerably for different points in the Cartesian workspace and for different directions at one given point, which is a serious drawback for machining applications. The orthoglide studied in this paper is designed in order keep the regularity of the Cartesian workspace shape as well as the uniformity of performances of the PPP machine tools, while taking benefit from the parallel kinematic arrangement of the links. The organisation of this paper is as follows. Next section is devoted to the presentation of existing PKM and of the orthoglide. Section 3 investigates kinematic performances of the orthoglide, especially manipulability and Cartesian workspace. Possible extensions to 5-axis PKM of the orthoglide are discussed in section 4. Last section concludes this paper.

Presentation of the orthoglide

Existing PKM

There are many possible types of PKM architectures which find applications in motion simulators, robotic manipulators and more recently in machine tools [START_REF] Merlet | Les robots parallèles, 2 nd édition[END_REF]). In the context of machine tool applications, most existing prototypes or commercial PKM can be classified into two general families: (i) PKM with fixed foot points and variable strut lengths and (ii) PKM with fixed length struts and moveable foot points.

The first family comprises the so-called hexapod machines which, in fact, feature a Gough-Stewart platform architecture. Numerous examples of hexapods PKM exist: the VARIAX-Hexacenter (Gidding&Lewis), the CMW300 (Compagnie Mécanique des Vosges), the TORNADO 2000 (Hexel), the MIKROMAT 6X (Mikromat/IWU), the hexapod OKUMA (Okuma), the hexapod G500 (GEODETIC).

In this first family, we find also hybrid architectures with a 2-axis wrist mounted in series with a 3-DOF parallel structure (e.g the TRICEPT 805, Neos Robotics).

The second family (ii) of PKM has been more recently investigated. The most famous PKM of this category is the HEXAGLIDE (ETH Zürich) which features six parallel (also in the geometrical sense) and coplanar linear joints. The HexaM (Toyota) is another example with non coplanar linear joints. A 3axis translational version of the hexaglide is the TRIGLIDE (Mikron), which has three coplanar and parallel linear joints. Another 3-axis translational PKM is proposed by the ISW Uni Stuttgart with the LINAPOD. This PKM has with three vertical (non coplanar) linear joints. The URANE SX (Renault Automation) and the QUICKSTEP (Krause & Mauser) are 3-axis PKM with three non coplanar horizontal linear joints. A hybrid parallel/serial PKM with three parallel inclined linear joints and a twoaxis wrist is the GEORGE V (IFW Uni Hannover).

To be complete, one should add the ECLIPSE machining center which does not fall in the aforementioned two PKM families. This is a 6-DOF over actuated machine with three vertical struts which can move independently on an horizontal circular prismatic joint.

More detailed information about all these PKM can be found at http://www.ifw.unihannover.de/robotool, http://www.renault-automation.com, http://www.krause-mauser.com.

The orthoglide

The orthoglide presented in this paper belongs to the family of 3-axis translational PKM with variable foot points and fixed length struts (figure 1). This machine has three identical legs which are PRRRR chains (figure 2). The actuated joints are the three orthogonal linear joints. These joints can be actuated by means of linear motors or by conventional rotary motors with ball screws. The output body is connected to the prismatic joints through a set of three parallelograms, so that it can moves only in translation (note that two parallelograms would be enough). An important feature of this PKM is the symmetry of the design (the three chains are identical, in particular, the lengths B i C i are equal) and the simplicity of the kinematic chains (all joints are simple one-DOF joints), which should contribute to lower the manufacturing cost of such a design. Also, the orthoglide is free of singularities and selfcollisions.

The design process which led us to this kinematic structure is a similar to the one we applied for a 2-axis machine [START_REF] Chablat | Conception Isotropique d'une morphologie parallèle: Application à l'usinage[END_REF]. The main idea is to produce a parallel kinematic machine which be as close as possible to a serial PPP machine. Serial PPP machines are nice since their kinematics is quite simple and the displacements of the tool are intuitive. Furthermore, the Cartesian workspace is very simple since it is a parallelepiped defined by the limits of the actuated joints. Another interesting feature of PPP machines is the uniformity of the performances over the Cartesian workspace. However, the main drawback is due to the serial kinematic arrangement of the links: one link has to support and move the following link in the chain, which increases the total moving masses, and thus limit the dynamic performances of such machines. In the context of rapid machining, the parallel kinematic layout of the links is an interesting feature. The orthoglide has three orthogonal linear joints like conventional PPP machines but they have been put in parallel. The design is such that the Jacobian matrix which relates the joint rates and the Cartesian velocities is isotropic at the center point of the Cartesian workspace. At this point, the orthoglide is kinematically equivalent to a serial PPP machine. Furthermore, the design has been optimised such that, in the rest of the Cartesian workspace, the conditioning of the aforementioned Jacobian matrix remains under a reasonable limit. In particular, the singularities are sufficiently far away from the Cartesian workspace limits.

Kinematic equations and singularity analysis

Let . ρ ρ ρ ρ be defined as the vector of actuated joint rates and . p as the vector of velocity of point P:

. ρ ρ ρ ρ =         . ρ 1 . ρ 2 . ρ 3 and . p =       . x . y . z
The velocity . p of the point P can be written in three different ways. By traversing the closed-loop A i B i C i P in the three possible directions, we obtain:

. p = b 1 -a 1 ||b 1 -a 1 || . ρ 1 + ( . θ 1 i 1 + . β 1 j 1 ) × (c 1 -b 1 ) (1a) . p = b 2 -a 2 ||b 2 -a 2 || . ρ 2 + ( . θ 2 i 2 + . β 2 j 2 ) × (c 2 -b 2 ) (1b) . p = b 3 -a 3 ||b 3 -a 3 || . ρ 3 + ( . θ 3 i 3 + . β 3 j 3 ) × (c 3 -b 3 ) (1c)
where a i , b i and c i represent the position vector of the points A i , B i and C i , respectively, for i=1, 2, 3 (A i and B i cannot coincide). We want to eliminate the two idle joint rates . θ i and .

β i from equations (1a), ( 1b) and ( 1c), which we do upon dot-multiplying eq. ( 1i) by c i -b i , thus obtaining:

(c 1 -b 1 ) T . p = (c 1 -b 1 ) T b 1 -a 1 ||b 1 -a 1 || . ρ 1 (2a) (c 2 -b 2 ) T . p = (c 2 -b 2 ) T b 2 -a 2 ||b 2 -a 2 || . ρ 2 (2b) (c 3 -b 3 ) T . p = (c 3 -b 3 ) T b 3 -a 3 ||b 3 -a 3 || . ρ 3 (2c)
Equations ( 2a), ( 2b) and (2c) can now be cast in vector form, namely,

A . p = B . ρ ρ ρ ρ
where A and B are the parallel and serial Jacobian matrices, respectively:

A =         (c 1 -b 1 ) T (c 2 -b 2 ) T (c 3 -b 3 ) T and B=         (c 1 -b 1 ) T b 1 -a 1 ||b 1 -a 1 || 0 0 0 (c 2 -b 2 ) T b 2 -a 2 ||b 2 -a 2 || 0 0 0 (c 3 -b 3 ) T b 3 -a 3 ||b 3 -a 3 || (3)
When A and B are not singular, we can also study the Jacobian kinematic matrix J [START_REF] Merlet | Les robots parallèles, 2 nd édition[END_REF]) to optimise the manipulator,

. p = J . ρ ρ ρ ρ with J= A -1 B (4a)
or the inverse Jacobian kinematic matrix J -1 , such that

. ρ ρ ρ ρ = J -1 . p with J -1 = B -1 A (4b)
The parallel singularities [START_REF] Chablat | Working Modes and Aspects in Fully-Parallel Manipulator[END_REF] occur when the determinant of the matrix A vanishes, i.e. when det(A)=0. In such configurations, it is possible to move locally the mobile platform whereas the actuated joints are locked. These singularities are particularly undesirable, because the structure cannot resist any force and control is lost. From eq. ( 3), it is apparent that the parallel singularities occur whenever the points C i and B i are coplanar:

(c 1 -b 1 ) = α (c 2 -b 2 ) + λ (c 3 -b 3 ) (5
These configurations cannot be reached with the design of the manipulator studied. Serial singularities arise when the serial Jacobian matrix, B, is no longer invertible, i.e., when det(B)=0. At a serial singularity, a direction exists along which any cartesian velocity cannot be produced. From equation (3), it is apparent that det(B)=0 when, for one leg i, (b i -a i ) ⊥ (c i -b i ). It is possible to avoid such singularities by adjusting the joint limits of the linear actuated joints.

3 Performance analysis of the orthoglide

Notion of Condition number

The condition number of an m × n matrix M with m ≤ n, κ(M) can be defined in various ways; for our purposes, we define κ(M) as the ratio of the largest, σ L , to the smallest, σ S singular values of M (Golub 89),

κ(M) = σ L σ S (7)
The singular values {σ k } m 1 of matrix M are defined as the square roots of the nonnegative eigenvalues of the positive semi-definite m × m matrix M M T . For the purpose of design and performances analysis, we need to define the condition number of the Jacobian matrix. The condition number of the Jacobian matrix is an interesting performance index since it characterises the distortion of a unit ball under the transformation represented by the Jacobian matrix at hand (Angeles 1997). The Jacobian matrix is said to be isotropic when its condition number attains its minimum value of one (there is no distortion). We know that the Jacobian matrix of a manipulator is used to relate (i) the joint rates and the Cartesian velocities, and (ii) the static load on the output link and the joint torques or forces. Thus, the condition number of the Jacobian matrix can be used to measure the uniformity of the distribution of the tool velocities and forces in the Cartesian workspace.

Condition number of the inverse Kinematic Jacobian Matrix

For parallel manipulators, it is more convenient to study the conditioning of the Jacobian matrix that is related to the inverse transformation, which we have called inverse kinematic Jacobian matrix J -1 in equation (4b). In our case, matrices B and J -1 can be derived easily as follows:

B -1 =         1 η 1 0 0 0 1 η 2 0 0 0 1 η 3 with η i = (c i -b i ) T b i -a i ||b i -a i || and J -1 =         1 η 1 (c 1 -b 1 ) T 1 η 2 (c 2 -b 2 ) T 1 η 3 (c 3 -b 3 ) T
(5)

The matrix J -1 is isotropic when:

1 η 1 ||c 1 -b 1 || = 1 η 2 ||c 2 -b 2 || = 1 η 3 ||c 3 -b 3 || (6a) (c 1 -b 1 ) T (c 2 -b 2 ) = 0, (c 2 -b 2 ) T (c 3 -b 3 ) = 0, (c 3 -b 3 ) T (c 1 -b 1 ) = 0 (6b)
Equation ( 6a) states that the orientation between the axis of the prismatic joint and the link B i C i must be the same for each leg i. Equation ( 6b) means that the links B i C i must be orthogonal to one another. We note that there is no condition on the lengths of the link B i C i . We set them to be equal to one another, in order to have a symmetric design. On the other hand, the orthogonal orientation of the relative prismatic joints cannot be deduced from the isotropic condition. It can be defined by the manipulability analysis, as shown in the following section.

Manipulability analysis

In the case of serial PPP machine tool, a motion of an actuated joint yields the same motion of the tool. For a parallel machine, these motions are not equivalent. When the machine is close to a parallel singularity, a small joint rate can generate a large velocity of the tool. This means that the positioning accuracy of the tool is lower in certain directions near parallel singularities because the encoder resolution is amplified. In addition, a velocity amplification in one direction is equivalent to a loose of rigidity in this direction. The manipulability ellipsoids of the Jacobian matrix of robotic manipulators was defined several years ago by [START_REF] Salisbury | Articulated Hands: Force Control and Kinematic Issues[END_REF] and [START_REF] Yoshikawa | Manipulability of Robotic Mechanisms[END_REF]. This concept has then been applied as a performance index to parallel manipulators [START_REF] Kim | Performance Analysis of Parallel Manipulator Architectures for CNC Machining Applications[END_REF]. Note that, although the concept of manipulability is close to the concept of condition number, they do not provide the same information. The condition number quantifies the proximity to an isotropic configuration, i.e. where the ellipsoid is a sphere, or, in other words, where the velocity amplification is equal in any direction, but it does not provide information as to the magnitude of the velocity amplification. The manipulability ellipsoid of J -1 will be used here for (i) justifying the orthogonal orientation of the prismatic joints and (ii) defining the joint limits of the orthoglide such that the maximal velocity amplification remains under a reasonable limit. We want that the velocity amplification factor and the force amplification factor be equal to one at the isotropic configuration. This condition implies that the three terms of equation (6a) must be equal to one:

1 η 1 ||c 1 -b 1 || = 1 η 2 ||c 2 -b 2 || = 1 η 3 ||c 3 -b 3 || = 1 (7)
which implies that (b i -a i ) and (c i -b i ) must be collinear for each i. Since, at the isotropic configuration, links B i C i are orthogonal to one another, (7) implies that the links A i B i are orthogonal, i.e. the prismatic joints are orthogonal. By using equation (4b), we can write a relation between the velocity . p of point P and the joint rates . ρ ρ ρ ρ.

For joint rates belonging to a unit ball, namely, . ρ ρ ρ ρ ≤ 1, the Cartesian velocities belong to an ellipsoid such that:

. p T (J J T ) -1 . p ≤ 1 (8)

The eigenvectors of matrix (J J T ) -1 define the direction of its principal axes and the square roots ξ 1 , ξ 2 and ξ 3 of the eigenvalues of (J J T ) -1 are the lengths of the aforementioned principal axes. The factors of velocity amplification in the directions of the principal axes are defined by ψ 1 = 1 / ξ 1 , ψ 2 = 1 / ξ 2 and ψ 3 = 1 / ξ 3

To limit the variations of this factor in the Cartesian workspace, we impose 1/3 ≤ ψ i ≤ 3 all over the workspace. This condition leads to the definition of joint limits for the prismatic joints [START_REF] Chablat | Conception Isotropique d'une morphologie parallèle: Application à l'usinage[END_REF].

Cartesian Workspace analysis

The Cartesian workspace is one of the most important performance evaluation criteria of PKM. However, the Cartesian workspace definition commonly considered (set of the reachable configurations of the output link) is insufficient to asses the real performances of a PKM since this definition does not take into account the possibility to execute motions inside the Cartesian workspace. This is of primary importance for parallel mechanisms which generally feature internal singularities which should not be crossed. Self collisions may also arise. To cope with the moveability of a manipulator, the connected regions of the Cartesian workspace were defined for serial manipulators [START_REF] Wenger | Ability of a Robot to Travel through its Free Workspace[END_REF] and, more recently, for parallel manipulators [START_REF] Chablat | Working Modes and Aspects in Fully-Parallel Manipulator[END_REF]. The Cartesian workspace connectivity can be further analysed according to which type of motions should be studied: the n-connectivity is intended to point-to-point motions and the t-connectivity is suitable for continuous trajectory tracking, like in arc-welding or machining. In the context of machine tool, the t-connected regions must be considered. More precisely, the t-connected regions of a PKM are the regions of the Cartesian workspace which are free of singularity (and collisions) and where any continuous path is feasible. The size and shape of the maximal t-connected region is of primary importance for the global geometric performances evaluation of a machine tool. The orthoglide has been designed such that its Cartesian workspace is free of singularities and self-collisions. Thus, the maximal t-connected region of the orthoglide is its Cartesian workspace. Figure 3 shows the Cartesian workspace of the orthoglide, and figure 4 depicts a cross section. The Cartesian workspace has a fairly regular shape which is close to a cube. We have used here our general octree-based algorithm for the calculation of the workspace [START_REF] Chablat | Working Modes and Aspects in Fully-Parallel Manipulator[END_REF]. If there is no obstacle to take into account, the workspace of the orthoglide can be easily calculated analytically by its boundaries.

Extension to 5-axis machines

The orthoglide described above is dedicated to 3-axis machining applications. The machining of geometrically complex parts like moulds requires 5-axis machines. The orthoglide can be extended to a 5-axis machine by adding a 2-axis orienting branch to the initial positioning structure. This can be done in two ways. The first approach consists in mounting this branch serially at the moving body. We get a hybrid kinematic structure, like the Tricept 805 (see §Erreur ! Source du renvoi introuvable.). However, this solution increases the moving masses since the orienting device must be carried by the positioning structure. Another solution is to mount the orienting branch on the base of the orthoglide, as shown in figure 5.

Conclusions

Presented in this paper is new kinematic structure of PKM dedicated to machining applications: the Orthoglide. The main feature of this PKM is its compromised design between the popular serial PPP architecture and the parallel kinematic arrangement of the links. The workspace is simple and regular and features no singularity nor self-collisions. The orthoglide has been designed such that its Jacobian matrix is isotropic in the centre of its workspace. Most existing PKM suffer from high variations of speed and rigidity performances in their workspace [START_REF] Wenger | A Comparative Study of Serial and Parallel Mechanism Topologies for Machine Tools[END_REF]. The velocity amplification factor of the orthoglide is one at the isotropic point and bounded by reasonable values in the rest of the workspace. Further stiffness and sensitivity analyses will be conducted by the authors, taking into account the kinematics of the parallelograms.

Figure 1

 1 Figure 1: orthoglide manipulator

  ) or when the links B i C i are parallel: (c 1 -b 1 ) // (c 2 -b 2 ) and (c 2 -b 2 ) // (c 3 -b 3 ) and (c 3 -b 3 ) // (c 1 -b 1 ).

Figure 3 :

 3 Figure 3: Cartesian workspace of Orthoglide manipulator using an octree model