Andrea Cherubini

Robin Passama

André Crosnier

Antoine Lasnier
email: antoine.lasnier@mpsa.com

Philippe Fraisse

Collaborative manufacturing with physical human-robot interaction

Keywords: Cobots, Industrial robotics, Human-Robot Interaction, Reactive and Sensor-based Control

de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Introduction

The concept of cobots, i.e., robots collaborating with human workers in manufacturing assembly lines, dates back to the pioneer work [START_REF] Akella | Cobots for the automobile assembly line[END_REF]. In fact, cobots -designed for the assembly line worker -can reduce ergonomic concerns that arise due to on-the-job physical and cognitive loading, while improving safety, quality and productivity. This is a key issue, since according to statistics of the Occupational Safety and Health Department of the US Department of Labour 1 , more than 30% of European manufacturing workers are affected by lower back pain, leading to enormous social and economic costs. A thorough state-of-theart on human-machine cooperation in manufacturing lines is provided in [START_REF] Kruger | Cooperation of human and machines in assembly lines[END_REF]. At the time of that survey (2009), the only hybrid assembly systems in manufacturing processes were weight compensators/balancers. However, the authors clearly point out the need for more advanced collaboration: although humans remain indispensable in many assembly operations, ergonomic tools assisting their duties are fundamental.

In this paper, we focus on a target application, proposed by PSA (Peugeot Citroën) in the frame of the French National Project ANR ICARO. The application is the assembly of an Rzeppa homokinetic joint, an operation that is currently done manually in the PSA line, causing muscular pain to the workers. In this work, we propose a novel, collaborative human-robot design, of this cell.

The main contributions of this work are outlined below.

• In contrast with most existing human-machine manufacturing applications, where collision avoidance is guaranteed by a minimum security distance [START_REF] Kruger | Cooperation of human and machines in assembly lines[END_REF], our framework successfully manages direct physical contact between robot and human, and between robot and environment.

• In our design, the robot alternates active and passive behaviours during assembly, to lighten the burden on the operator in the first case, and to comply to his/her needs in the latter.

• In contrast with most similar works, our approach can be applied to standard position (and not torque) controlled robots, common in the industry.

From the end user (PSA) viewpoint, two aspects are particularly noteworthy. First, since the operator load is reduced by approximately 60%, the proposed assembly cell can be reclassified in the PSA ergonomics scale. Second, a complete risk analysis by PSA indicates that the proposed setup is compatible with the safety standards, and could be certified.

The article is organized as follows. Section 2 summarizes the state-of-the-art in collaborative manufacturing, and highlights our contributions in the context of current, related research. In Sect. 3, we present the targeted application: collaborative assembly of a homokinetic joint. The proposed framework is outlined in Sect. [START_REF] Michalos | ROBO-PARTNER: Seamless Human-Robot cooperation for intelligent, flexible and safe operations in the assembly factories of the future[END_REF]. The framework components (nominal trajectory generation, admittance control, and safety monitoring) are then detailed in the following sections (respectively, Sections 5, 6, and 7). Experimental results are reported in Section 8, and finally summarized in the Conclusion.

Related work

This section summarizes the current state-of-the-art in collaborative manufacturing. We first review the more application-oriented research on humanmachine cooperation (Sect. 2.1), and then the academic research on physical human-robot interaction (Sect. 2.2).

Research on human-machine cooperation in the industry

The authors of [START_REF] Michalos | Automotive assembly technologies review: challenges and outlook for a flexible and adaptive approach[END_REF] provide a very rich overview of the emerging technologies in automotive assembly, including the supporting systems (mainly the information technologies). They show that mass customization requires high technological flexibility, and propose various designs to cope with this, by integrating both automated and human-based assembly. A similar perspective is that of the recent EU project ROBO-PARTNER [START_REF] Michalos | ROBO-PARTNER: Seamless Human-Robot cooperation for intelligent, flexible and safe operations in the assembly factories of the future[END_REF], that aims at integrating assembly systems, and human capabilities. The main enablers, according to the authors, are: intuitive interfaces, safe strategies and equipment, proper methods for planning and execution, and the use of mobile robots, and of distributed computing. More recently, the U.S. Consortium for Automotive Research conducted a study on feasibility of fenceless robotic cells for automotive applications [START_REF] Shi | Levels of human and robot collaboration for automotive manufacturing[END_REF]. The study defines the levels of human-robot collaboration according to the cell complexity, to drive the probabilities of successful implementation. But as in the previously cited survey [START_REF] Kruger | Cooperation of human and machines in assembly lines[END_REF], the paper exposes the absence of high level human-robot collaboration, apart from "Intelligent Lift Assistants".

Although some automotive manufacturers are gradually introducing robots in their human production line [START_REF] Knight | How Human-Robot teamwork will upend manufacturing[END_REF][START_REF]New human-robot cooperation in Audi's production processes[END_REF], a crucial question persists: how should a collaborative robotic cell be designed? Various researchers have looked into this. Papakostas et al. [START_REF] Papakostas | Industrial applications with cooperating robots for the flexible assembly[END_REF] discuss the key features of cooperating robotic cells in automotive assembly, and provide simulated comparisons of two scenarios: a conventional welding robotic cell, and one with cooperating robots. The authors of [START_REF] Tan | Humanrobot collaboration in cellular manufacturing: Design and development[END_REF] assess five alternative safety designs, covering both hardware and control design, of a human-robot collaboration prototype cell for cable harness assembly. In [START_REF] Morioka | A new cell production assembly system with human -robot cooperation[END_REF], a new cell production assembly system, with human-robot cooperation is developed. The system consists of three key technologies; parts feeding by double manipulators on a mobile base, production process information support for the operator, and safety management for cooperation between operator and robot. The main target of [START_REF] Pedrocchi | Safe humanrobot cooperation in an industrial environment[END_REF] is safety of the shared work cell, in the absence of physical fences between human and robot. Since safety options provided by basic infrared sensors are limited, the authors design a network architecture of these sensors, for tracking user positions, while avoiding collisions. The authors of [START_REF] Ding | Optimized task distribution for industrial assembly in mixed human-robot environments -Case study on IO module assembly[END_REF] propose a method for optimizing task distribution among workers and robots. The method is validated, using an ABB Dual Arm Concept Robot, in a PLC Input/Output module assembly scenario.

Research on physical human-robot collaboration

Recent robotics research focuses on the study and characterization of physical human-robot interaction (pHRI [START_REF] Bicchi | Safety for physical human-robot interaction[END_REF][START_REF] De Luca | Integrated control for phri: collision avoidance, detection, reaction and collaboration[END_REF]). The goal is to enable close collaboration between human and robot, in all service and industrial tasks, that require the adaptability of humans to be merged with the high performance of robots in terms of precision, speed and payload [START_REF] Heyer | Human-robot interaction and future industrial robotics applications[END_REF]. In this context, it becomes indispensable to define safety and dependability metrics [START_REF] Santis | An atlas of physical human-robot interaction[END_REF][START_REF] Haddadin | Requirements for safe robots: Measurements, analysis and new insights[END_REF][START_REF] Flacco | Safe physical human-robot collaboration[END_REF][START_REF] Fryman | Safety of industrial robots: From conventional to collaborative applications[END_REF]. These can contribute to the definition of standards, such as the recent ISO 10218-1:2011 "Safety requirements for industrial robots"2 .

In this line of research, many solutions for realizing safe collaborative tasks have been explored in recent years. Although these solutions have not yet been transferred to the industry, we hereby list some of the most relevant theoretical works. In [START_REF] Roveda | Deformation-tracking impedance control in interaction with uncertain environments[END_REF], a deformation-tracking impedance control strategy is designed to enable robot interaction with environments of unknown geometrical and mechanical properties. For successful interaction with unknown environments and operators, the robot should behave in a human-like manner. This is the target of the research in [START_REF] Ganesh | Biomimetic motor behavior for simultaneous adaptation of force, impedance and trajectory in interaction tasks[END_REF] and [START_REF] Yang | Human-like adaptation of force and impedance in stable and unstable interactions[END_REF]: a human-like learning controller is designed, to minimize motion error and effort, during interaction tasks. Simulations show that this controller is a good model of human-motor adaptation, even in the absence of direct force sensing. A robust controller for a collaborative robot in the automotive industry, is extended in [START_REF] Surdilovic | Development of collaborative robots (cobots) for flexible human-integrated assembly automation[END_REF], to manage not only the interaction between an industrial robot and a stiff environment, but also human-robotenvironment and human-robot-human-environment interactions.

Other researchers have focused more on industrial applications. For example, an industrial robot controller, incorporating compliance of the joints with the environment, is presented in [START_REF] Lange | Force and trajectory control of industrial robots in stiff contact[END_REF]. The desired pose of the tool center point is computed from the force error. Parallel control considers a reference trajectory while allowing feedforward in force controlled directions. Although the method is designed for industrial assembly tasks, it does not take into account the presence of a human in the loop. In contrast, Erden and colleagues [START_REF] Suphi Edren | Human intent detection and physically interactive control of a robot without force sensors[END_REF][START_REF] Suphi Edren | Assisting manual welding with robot[END_REF][START_REF] Suphi Edren | End-point impedance measurements at human hand during interactive manual welding with robot[END_REF] have thoroughly studied an industrial task that directly involves a human operator, i.e., manual welding. In [START_REF] Suphi Edren | Human intent detection and physically interactive control of a robot without force sensors[END_REF], a physically interactive controller is developed for a manipulator robot arm: the human applies forces on the robot, to make it behave as he/she likes. Then, a manual welding assistant robot is presented in [START_REF] Suphi Edren | Assisting manual welding with robot[END_REF]: as the human controls the welding direction and speed, the robot suppresses involuntary vibrations (e.g., caused by novice welders). The results show a considerable improvement in the welders performance when they are assisted. Finally, [START_REF] Suphi Edren | End-point impedance measurements at human hand during interactive manual welding with robot[END_REF] presents a study of end-point impedance measurement at human hand, with professional and novice welders. The results support the hypothesis that impedance measurements could be used as a skill level indicator, to differentiate the welding performance levels. Although the welding assistance application targeted by these works also falls in the shared workplace paradigm evoked in [START_REF] Kruger | Cooperation of human and machines in assembly lines[END_REF], it differs from the one treated here, since the robot motion is driven by the human worker. Instead, in our work, the robot is active and autonomous during various phases of the assembly cycle. For the same reason, robot programming by demonstration/teaching is also out of scope here.

Other works similar to ours, but targeting manually guided robot operation, are presented in [START_REF] Ferretti | Assigning virtual tool dynamics to an industrial robot through an admittance controller[END_REF] and [START_REF] Ficuciello | Cartesian impedance control of redundant manipulators for human-robot comanipulation[END_REF]. In [START_REF] Ferretti | Assigning virtual tool dynamics to an industrial robot through an admittance controller[END_REF], an operator teaches tasks to a robotic manipulator, by manually guiding its end effector. For this, the authors design a virtual tool, whose dynamics the operator should feel when interacting with the robot. An admittance controller driven by the measurements of a force/torque sensor is designed to ensure the desired virtual dynamic behaviour. The second paper addresses the problem of controlling a robot arm, executing a cooperative task with a human, who guides the robot through direct physical interaction. This problem is tackled by allowing the end effector to comply according to an impedance control law [START_REF] Hogan | Impedance control: an approach to manipulation: parts I-III[END_REF] defined in the Cartesian space. Redundancy ensures the stability of the coupled human-robot system, through inertial decoupling at the end effector. However, in contrast with our work, the robot is torque (not position) controlled, and an impedance (instead of admittance) controller is used.

As outlined in most of the cited works, an efficient cobot must interact easily with the worker, even if s/he is non-trained. To this end, many pHRI works rely on the physical contact (touch) between robot and operator [START_REF] Grunwald | Touch: the direct type of human interaction with a redundant service robot[END_REF]. More recently, to guarantee interaction even in the absence of direct contact, researchers have proposed the use of pointing gestures [START_REF] Quintero | Sepo: Selecting by pointing as an intuitive human-robot command interface[END_REF], as well as the integration of vision with force [START_REF] Lippiello | Interaction control of robot manipulators using force and vision[END_REF][START_REF] Santis | Human-robot interaction control using force and vision[END_REF][START_REF] Cherubini | Multimodal control for human-robot cooperation[END_REF]. Also, in our work, interaction includes both vision and force. In fact, vision stops/triggers robot operation, in case of danger, while the operator contact forces are used to start and end assembly, and to deform the robot trajectory, for collision avoidance.

Application: collaborative assembly of a homokinetic joint

The application that is targeted in this work is the collaborative humanrobot assembly of a car homokinetic joint. Homokinetic joints allow a drive shaft to transmit power to a second shaft through a variable angle, at constant rotational speed, while limiting friction and play. They are used both in front wheel drive cars, and in rear wheel drive cars with independent rear suspension.

Specifically, the homokinetic joint that we use in this work is the Rzeppa joint, which was invented in 1926 by Alfred Hans Rzeppa (1885 -1965). The joint works in a manner similar to a bevel gear, with steel balls in place of teeth. The working principle and exploded diagram of this joint are shown in Fig. 1.

The joint consists of a spherical star-shaped inner race with six grooves in it, and a similar enveloping outer shell (housing). Each groove guides one steel spherical ball. The half shaft fits in the centre of the inner race, which itself nests inside a circular cage. The cage is spherical but with open ends, and with six openings around the perimeter, one for each ball. Finally, the housing is attached to the second shaft.

In this work, we propose a collaborative strategy for the assembly of the Rzeppa joint. In fact, after thorough discussions with the PSA ergonomists, and analysis of the most difficult cells in the PSA process, it appears that this use-case generates more Musculoskeletal Disorders (MSDs) than other assembly cells. This is what motivated the choice of this cell, as case study. In particular, we focus on the insertion of the six balls in the joint. This task is currently done manually, using an insertion tool similar to the one that is shown, along with all the joint components, in the left of Fig. 2. The ball insertion operation that is currently done in the PSA production process, is outlined on the right of the same figure. The ball order is predefined, since, to limit the mechanical constraints, the first three balls must be inserted, so that there is an empty groove between any two of them.

Let us hereby describe the steps of the manual assembly operation. Prior to ball insertion (i.e., in the previous work cell), the inner race, cage, and housing have been assembled, and a first ball has been inserted. This ball links the cage and inner race, leaving some backlash, which will diminish as the other balls are placed. Hence, for simplicity, in the rest of this paragraph, the term cage will be used to refer to the linked grouping of cage and inner race. At first, the operator receives the partially assembled Rzeppa joint, and places it in an ad-hoc support. Then, by tapping on the cage with the insertion tool (see Fig. 2.1), he slightly inclines it, until the second ball can be inserted (Fig. 2.2). Since the backlash diminishes, for inserting the third and following balls, tapping is not sufficient anymore, and the operator must use the insertion tool to increase the lever arm needed to incline the cage (Fig. 2.3). The insertion tool is designed so that its lower part fits precisely in the cage. The cage inclination (or cage opening), followed by ball insertion is repeated for the remaining balls (Figures 2.4 to 2.8). Once all six balls have been placed, the cage is closed (i.e., reset to the flat position, Fig. 2.9), so that the Rzeppa joint can be sent to the following cell in the production chain.

An experienced operator executes this entire operation very quickly, to guarantee the required production rate of 70 joints per hour. However, the cage opening and closing steps can provoke MSDs. These injuries are due to the forces required for cage positioning, opening, and closing, and to the repetition of such actions. Ergonomists estimate that over an eight hour shift, the operator lifts a total weight of approximately 5 tons, and realizes 18000 upper limb movements [START_REF] Lasnier | ANR ICARO D2.1 -Description détaillée des besoins[END_REF]. Therefore, this part of the operation should be automated to alleviate the operator. On the other hand, the action of ball insertion by itself requires very high precision and adaptability skills, which are not attainable by present-day industrial robots. Thus, the characteristics of the Rzeppa joint ball insertion work cell make it an ideal scenario for cobotics research.

In practice, one should automate the cell according to the following specifications:

1. the human operator must position the five balls in the corresponding cage openings, with little effort and motion, so that the fatigue and chances of injury are minimized; 2. the physical interaction between human and environment (specifically, between the human hand and the steel parts) must be controlled, to guarantee safety; 3. the physical interaction between insertion tool and environment (specifically, the Rzeppa joint) must be controlled, to avoid blockage; 4. the cobot velocity must guarantee safety, i.e., it must comply with the ISO safety standard cited in Sect. 2.2(tool center point velocity limited to 0.25 ms -1 ).

To fulfil the above requirements, we have redesigned the manufacturing cell, as shown in Fig. 3 (top). The lower part of the pre-assembled Rzeppa joint (composed of the housing, cage, inner race, and first ball), is held by a gripper placed on the end effector of a manipulator robot. The insertion tool, instead, is fixed to a support that is rigidly constrained to the robot base. In contrast with the manual insertion operation shown in Fig. 2, most of the required movements will be carried out by the robot, with the human intervening only to position the balls. The scenario is perfectly reversed, to make it human-centered : now the Rzeppa joint is displaced around the operator, instead of the opposite. To this end, we control the robot so that it opens/closes the cage -for ball insertion -by properly inclining it within the housing, and then pivots it around the vertical axis so that the operator is always facing the next desired opening. At the start (end) of the operation, the robot end effector raises (descends) to connect (disconnect) insertion tool and inner race. To realize all these motions (tool connection/disconnection, cage opening/closing and pivoting), the robot follows nominal, pre-taught trajectories. These nominal trajectories are deformed to comply with the external force/torques from the environment and operator, using an admittance controller [START_REF] Hogan | Impedance control: an approach to manipulation: parts I-III[END_REF]. To further enhance safety of operation, the robot is stopped in the presence of strong force/torques, and a fixed camera, mounted on the insertion tool support, monitors the ball insertion. The camera is used both to detect ball insertion, and to stop the robot if it may endanger the operator hands. Since there is no risk of clamping fingers in the back of the joint (solid steel of the housing, without openings), the camera only monitors the front of the cage. Images from the camera are shown at the bottom of Fig. 3 (raw image on the left, and processed image on the right).

In the following, we provide more details on the control framework developed for collaborative assembly of the Rzeppa joint.

Definitions and characteristics of the control framework

Definitions and assumptions

The reference frames used to describe the assembly task are shown in Fig. 3. In this, and in all other figures of the paper, the RGB convention is used: axes X, Y and Z are respectively red, green and blue. The frames used in this work are: the robot base (F B ), insertion tool support (F S ), and end effector (F E ) frames, with origins respectively B, S and E. Reference frames F B and F S are fixed in the world, whereas F E moves with the robot. The pose of F S is determined via an estimation procedure explained in Sect. 5. The pose of a generic frame A in frame F B is defined as: B p A = B t A , B θu A ∈ SE (3), with B t A the translation vector from B to A, and B θu A the angle/axis vector [START_REF] Waldron | Kinematics[END_REF].

In this work, we consider a manipulator with j ≥ 6 degrees of freedom (dof), and note q ∈ R j the robot joint values.

We also assume that it is possible to estimate (either through direct, or through joint torque measurement) the wrench (force E f E and torque E m E ) applied to the end effector, and expressed in the end effector frame:

E h E = E f E , E m E
. This information will be fed to an admittance controller [START_REF] Hogan | Impedance control: an approach to manipulation: parts I-III[END_REF], to adapt the robot motion, and avoid blockage between the Rzeppa inner race and the insertion tool.

Inverse kinematics controller

In our framework, an inverse kinematics controller is used to map end effector poses to the joint space. This is necessary for initially generating the nominal trajectory, and then for deforming it, according to the admittance controller. We hereby recall the classic inverse kinematics formulation according to [START_REF] Siciliano | Robotics: Modelling, Planning and Control[END_REF].

The evolution of the end effector pose can be expressed as:

B ṗE = J q, (1)
with

J = ∂ B p E ∂q
the task Jacobian, of size 6 × j, that is derived from the robot measured configuration q, and q the robot joint velocities.

The end effector pose can be regulated to a desired value B p * E and, if j > 6, redundancy [START_REF] Liegeois | Automatic supervisory control of configurations and behavior of multibody mechanisms[END_REF] exists. Then, a secondary task can be realized, by exploiting the j -6 extra degrees of freedom (since only 6 are required by the primary task, B p * E ). The joint velocity q for driving B p E to B p * E , is generated via:

q = J † Λ B p * E -B p E + I -J † J g. (2)
In the above equation:

• J † is the j × 6 right pseudoinverse of J, such that JJ † J = J. We assume that J is full row rank during operation, so that this pseudoinverse can be calculated. This was the case throughout the experiments and is a common assumptions in inverse kinematics control [START_REF] Mansard | A unified approach to integrate unilateral constraints in the stack of tasks[END_REF].

• Λ is a positive definite 6-dimensional square diagonal matrix that determines the convergence rate of B p E to B p * E .

• The term g = ∂g ∂q is introduced to minimize the scalar cost function g (q) to perform the secondary task.

It is well known that system (1), controlled by [START_REF] Kruger | Cooperation of human and machines in assembly lines[END_REF], is globally asymptotically stable with respect to the pose regulation task. Indeed, plugging (2) into (1) yields:

B ṗE = Λ B p * E -B p E , (3)
and, since Λ is a positive definite diagonal matrix, B p E = B p * E is a stable equilibrium for the closed-loop system. Also, note that minimization of g has no effect on the task dynamics.

Control framework

Our framework for collaborative assembly is shown in Fig. 4. The framework is made up of two steps (shown respectively at the top and bottom of the figure): the offline nominal trajectory generation step, and the online controller for collaborative assembly. We hereby outline the framework, and will then detail its components in Sections 5, 6 and 7.

A nominal trajectory T , corresponding to the entire assembly operation, is input to the controller. This is defined by a series of N way points in the joint space, that are to be followed by the robot:

T = {q 1 , . . . , q N } q i = [q i,1 . . . q i,j ] ∈ R j . (4)
In (4), q i,1 , . . . , q i,j are the nominal joint angular values to be realized at iteration i. These are mapped from the operational space by the inverse kinematics controller, presented just above. Nominal trajectory (4), is identified offline through a procedure outlined at the top of Fig. 4, and detailed in Sect. 5. Then, at run time, T is adapted online to account for the physical interaction with the environment and operator. To this end, an admittance controller (see Sect. 6) shifts the end effector desired pose by B ∆p E = B p * E -B p E , according to the external wrench (force and torque) on the end effector, expressed in the support frame, that we denote with S h E . This pose variation is mapped, again by the inverse kinematics controller, to a joint correction ∆q, then applied to the current waypoint of T , to obtain the actual joint reference q * for the robot motors. Index i is increased as soon as the reference trajectory way point q i has been reached, i.e., when ||q i -q|| 2 < δ, with q the joint measure, and δ an arbitrary scalar threshold (see 'way point sequencing' block in the bottom of Fig. 4).

Prior to this, safety monitoring is applied. This relies on two verifications. The first consists in checking the magnitude of the external wrench, whereas the second uses processed image data to monitor the operator hand. The safety module is detailed in Sect. 7.

Nominal trajectory generation

This section presents the generation of the nominal trajectory T used by the control framework.

Characterization of the trajectory

Without loss of generality, we consider that the robot final joint value q j is defined along the axis aligned with the end effector frame z-axis (positive q j corresponds to a counter clockwise rotation around the z-axis). This assumption, which is consistent with the kinematics of most current day collaborative robots [START_REF] Robotiq | Collaborative robot e-book[END_REF], facilitates the pivoting of the Rzeppa cage after each ball insertion. This pivoting will orient the joint, so that the groove where the next ball is to be inserted, will face the operator. The assembly operation can then be broken into five similar trajectories (one per ball), differing only by the orientation of the Rzeppa joint, i.e., of the end effector frame, with respect to the second-tolast joint frame. These five orientations (shown at the top of Fig. 5) have been The collaborative Rzeppa joint assembly operation that is presented in this paper is then composed of the following steps (shown in the bottom of Fig. 5).

1. The end effector E connects the inner race to the insertion tool. For this, E tracks a straight line segment in the operational space. 2. The robot moves the Rzeppa joint to enable insertion of each ball -the following steps are cycled 5 times (once for each ball).

(a) The joint is inclined so that the cage opens in front of the operator, and then the robot stays still until ball insertion (detected by the camera). For this, E tracks an arc of circle in the operational space (since the position of S and the distance between E and S are both constant). (b) The joint is inclined so that the cage is closed. Again, E tracks an arc of circle in the operational space. (c) The joint is brought back to the starting position of step 2, by having E track again an arc of circle in operational space. (d) The last joint q j is actuated to pivot the Rzeppa joint, so that the next cage opening will face the operator. Specifically (see Fig. 5, top), after the insertion of each ball II . . . VI, joint q j must rotate, relatively to the previous value by:

∆q II j = -2π/3 ∆q III j = -π/3 ∆q IV j = 2π/3 ∆q V j = 2π/3 ∆q VI j = -π/3. (5)
The last rotation shift is necessary to realign the robot end effector with the initial configuration, to prepare the next assembly operation. 3. The end effector disconnects the inner race from the insertion tool. For this, E tracks a straight line segment in the operational space.

Each of these steps is obtained by executing a trajectory, and all are concatenated to obtain the complete nominal trajectory T in (4). Defining these trajectories in the joint, rather than in the operational space, guarantees their feasibility (typically w.r.t. singularities and joint limits), and avoids errors due to inaccuracies in the encoder measurement and in the inverse kinematics computation. However, although technically defined in the joint space, the trajectories correspond to desired behaviours of the end effector in the operational space. The only exception is the trajectory in 2(d), which is best defined in the joint space, since it consists in controlling only the last joint value q j to pivot the end effector (q 1,k = q 2,k = . . . = q N,k , k = 1, . . . , j -1). For the other steps, instead, the task is best defined in the operational space.

Manual execution and identification in the operational space

The most delicate issue is the identification of the circular trajectory to be followed during steps 2(a), 2(b) and 2(c). This is crucial, since the Rzeppa joint is physically constrained to the insertion tool, during robot motion, and an inaccurate trajectory may lead to blockage. The trajectories for the other steps (1, 2(d), and 3) are derived from these circular trajectories. In fact: the trajectories for steps 1 and 3 are simple rectilinear connections to and from the arc of circle, without physical contact between the joint and the insertion tool, and the trajectory for 2(d) is constrained to the circle, with only orientation changes of the end effector. However, the equation of the circle in the robot base frame is related to the dimensions, configurations and poses of the insertion tool and of its support, which are very difficult to measure accurately. Thus, we have devised an identification procedure based on manually executing the nominal trajectory to the robot.

This procedure relies on the assumption that the robot is backdrivable (either via software or hardware). This is the case in most current day collaborative robots [START_REF] Robotiq | Collaborative robot e-book[END_REF]. At first, the robot end effector is manually driven to the starting pose of step 2, noted P teach . This corresponds to the insertion tool being connected to the inner race, with the Z axis of the end effector frame aligned with the insertion tool. Then, the operator moves the robot end effector back and forth a few times along the circular trajectory that is to be followed for ball insertion. The Cartesian positions of the end effector in the robot base frame are recorded throughout this operation:

B t E1 , . . . , B t E M B t Ei = B X Ei B Y Ei B Z Ei ∈ R 3 . (6)
This set of positions in the operational space, which is clearly noisy due to the shaky motion of the operator, is fed to an identification algorithm, coded in Matlab R . The results of the identification are shown on the left of Fig. 6. First, the sphere (radius R and center position B t S in the base frame) that is closest to the taught trajectory, is found, by solving with lsqnonlin the nonlinear leastsquares problem: The center of this sphere is set as the origin of the support frame, S. Second, the plane passing through S, and closest to the taught points is found, by solving, with lsqlin, the constrained linear least-squares problem:

min R, B t S i B X Ei -B X S 2 + B Y Ei -B Y S 2 + B Z Ei -B Z S 2 -R 2 2 . (7)
min a,b,c i a B X Ei + b B Y Ei + c B Z Ei -1 2 subject to a B X S + b B Y S + c B Z S = 1.
(8) Here, a, b and c are the parameters of the plane equation a B X +b B Y +c B Z = 1. Third, we define the start point of step 2, noted P for pivoting cage point. Point P is obtained by projecting P teach first on the sphere [START_REF]New human-robot cooperation in Audi's production processes[END_REF], and then on the plane [START_REF] Papakostas | Industrial applications with cooperating robots for the flexible assembly[END_REF]. This way, it is possible to define the F S frame axes: Z is parallel to line (SP ) and pointing towards S, X is parallel to plane normal [a b c] and pointing to the right of the operator, and Y completes the frame. Then, naming Q the intersection between the sphere and the Y axis of F S , the equation of the arc of circle in F B is:

   B X (ψ) = B X S + S X P cos ψ + S X Q sin ψ B Y (ψ) = B Y S + S Y P cos ψ + S Y Q sin ψ B Z (ψ) = B Z S + S Z P cos ψ + S Z Q sin ψ, (9) with ψ ∈ [ψ m , ψ M ] ⊂ ]-π, π].
The two trajectory extrema ψ m and ψ M are manually tuned according to the setup. These correspond to points O (for open cage), and C (for closed cage). Finally, translating P away from the arc of circle, in the direction of decreasing S Z, by the arbitrary length of the connecting trajectory, we derive the end effector initial pose, noted I. Having set a desired sampling interval on ψ, the four points I, P , O, and C, with equation ( 9), define the way poses of the end effector in the base frame for steps 1-3 for inserting only the first ball: B p I , . . . , B p P , . . . , B p O , . . . , B p P , . . . , B p C , . . . , B p P , . . . , B p I .

(

) 10
For each pose, the end effector orientation B θu E is calculated so that the end effector frame Z axis passes through S, and the Y axis is tangent to the circle, so that the ball 2 cage opening is in front of the operator (as in the second snapshot of Fig. 5). The result of the described identification procedure is shown in the left of Fig. 6, where we show: in red the recorded taught positions B t Ei , in gray the insertion tool, in green the identified plane (with the top vertex corresponding to S), and in black the sampled trajectory (10).

From the operational to the joint space trajectory

The following step consists in converting operational space trajectory (10) to the corresponding joint space trajectory, expressed as (4). For a general redundant robot, the inverse geometric model cannot be derived in closed form. Thus, we use the inverse kinematic pose controller (2) to track trajectory [START_REF] Morioka | A new cell production assembly system with human -robot cooperation[END_REF], as explained just below. First, we position the robot in the initial pose B p I . Then, renaming B p Ei the ordered sample poses in [START_REF] Morioka | A new cell production assembly system with human -robot cooperation[END_REF], trajectory tracking consists in driving the end effector pose B p E to the next desired pose in the trajectory ( B p * E = B p Ei ), and incrementing i as soon as B p * E is reached (i.e., as soon as

|| B t E -B t * E || 2 < t and || E u * E sin E θ * E || 2 < r
, with t and r two arbitrary scalar thresholds). The trajectory terminates when pose B p * E = B p C is reached, as in [START_REF] Morioka | A new cell production assembly system with human -robot cooperation[END_REF].

The joint values recorded while tracking [START_REF] Morioka | A new cell production assembly system with human -robot cooperation[END_REF], i.e., {q I , . . . , q P , . . . , q O , . . . , q P , . . . , q C , . . . , q P , . . . , q I } , [START_REF] Pedrocchi | Safe humanrobot cooperation in an industrial environment[END_REF] are then split in the following five primitive joint trajectories:

T 1 = {q I , . . . , q P } , T I 2a = {q P , . . . , q O } , T I 2b = {q O , . . . , q P , . . . , q C } , T I 2c = {q C , . . . , q P } , T 3 = {q P , . . . , q I } .

(12)

The index of each trajectory coincides with the corresponding step, as listed at the beginning of this Section. For the five ball insertions, the last joint value q j of the trajectories ( 12) must be shifted by the ∆ q values in ( 5). This corresponds to applying the following iterative rule:

         T BALL+1 STEP = T BALL STEP + {q BALL , . . . , q BALL } T BALL+1 2d = {0, . . . , q BALL+1 } q BALL = 0 . . . 0 ∆q BALL j STEP = {2a, 2b, 2c} BALL = {I, II, III, IV, V} , (13)
with, in addition, ∆q I j set to 0. In practice, the three trajectories of step 2 are identical for all five balls, except for the value of the last joint angle, which is shifted by a constant value at each new ball insertion. To guarantee smooth transitions between the trajectories, the Rzeppa joint is pivoted during step 2(d) with the linear interpolation indicated by the second equation in [START_REF] Bicchi | Safety for physical human-robot interaction[END_REF].

To summarize, the complete nominal trajectory for assembling an Rzeppa joint, is given by the following concatenation of trajectories:

T = T 1 ∪ T II 2a ∪ T II 2b ∪ T II 2c ∪ T II 2d ∪ T III 2a ∪ T III 2b ∪ T III 2c ∪ T III 2d ∪ ∪T IV 2a ∪ T IV 2b ∪ T IV 2c ∪ T IV 2d ∪ T V 2a ∪ T V 2b ∪ T V 2c ∪ T V 2d ∪ ∪T VI 2a ∪ T VI 2b ∪ T VI 2c ∪ T VI 2d ∪ T 3 . (14)
In the next Section, we explain how this nominal trajectory T is used to control the robot, during the Rzeppa joint assembly operation, when the interaction forces with the environment and operator are also to be taken into account.

Admittance control

Admittance and impedance are reciprocal concepts [START_REF] Hogan | Impedance control: an approach to manipulation: parts I-III[END_REF]: while impedance control produces forces/torques in response to velocities, admittance control produces velocities in response to forces and torques, at a given interaction port. Here, we apply an admittance controller, to map the contact wrench to a desired deviation of the end effector motion in the base frame, B ∆p E , through an equivalent spring-damper system. This guarantees motion safety, since the end effector trajectory is 'naturally' deformed to avoid blockage. It also makes the robot compliant during step 1, so that the operator can manually guide the inner race in the insertion tool.

The contact between robot and environment is located at S, and the frame F S is immobile during operation. For these reasons, the admittance controller will rely on the wrench applied on the end effector and expressed in the support frame, S h E . It is straightforward to obtain this from E h E , through:

S h E = S W E E h E , (15)
with:

S W E = S R E 0 S t E × S R E S R E , (16)
and S R E the rotation matrix corresponding to angle/axis vector S θu E . The relative pose of the effector in the support frame required in [START_REF] Santis | An atlas of physical human-robot interaction[END_REF], can be derived at each iteration from the robot end effector pose B p E (q), and from the pose of the support in the base frame, B p S (computed as explained in 5).

To ensure that the admittance controller is activated only for sufficiently high values, and filter out measurement noise, each component of S h E is passed through the following deadband filter: to generate the components of wrench vector h adm , that is the one actually input to the admittance controller. The sizes of the six deadband regions, h m,i , are manually tuned, as will be explained just below. We consider a spring-damper system, with null mass, and adjustable parameters (stiffness matrix K, and damping matrix B, both positive definite and diagonal):

h adm,i =    S h E,i + h m,i if S h E,i < -h m,i 0 if S h E,i < h m,i S h E,i -h m,i if S h E,i > h m,i i = 1 . . . 6, (17)
X S W E S h E E h E h adm X Deadband S Δp E X Spring--damper B Δp E X B R S B t S ⎡ ⎣ ⎤ ⎦ X B R S 0 B R S ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥
h adm = K S ∆p E + B S ∆p E . ( 18
)
Numerically differentiating on a sampling period ∆t, and rearranging terms, yields the expression of S ∆p E at time t:

S ∆p E (t) = ∆t (∆tK + B) -1 h adm (t) + (∆tK + B) -1 B S ∆p E (t -∆t) . (19)
This controller relies on its output at the previous iteration S ∆p E (t -∆t). Finally, a spatial motion transform matrix is used to convert S ∆p E to B ∆p E , as required by the inverse kinematics controller (2). The whole admittance control pipeline is outlined in Fig. 7. The procedure for tuning all the parameters (h m,i , and the diagonal components of K and B, noted respectively k 1...6 and b 1...6 ) is the following.

1. The robot is manipulated away from the insertion tool support, with the end effector not in contact with the environment. 2. The damping is set to zero in [START_REF] Fryman | Safety of industrial robots: From conventional to collaborative applications[END_REF], so the B ∆p E , to be realized by the robot is a linear function of h adm (pure spring model). 3. The operator applies external torques/forces to the end effector along each of the six dof, and tunes the corresponding values of the deadband range h m,1...6 and of the stiffness k 1...6 , to obtain the desired deadband tolerance and static gain; 4. B is introduced to remove the oscillations: the operator applies an external wrench, but this time the robot is controlled with [START_REF] Fryman | Safety of industrial robots: From conventional to collaborative applications[END_REF], and the b 1...6 are tuned to obtain the desired response time for each component.

The values used in the experiments are given in Sect. 8.

Safety

This section presents the safety module. This relies on two tests. The first consists in checking whether any component of S h E is greater than the corresponding one in a threshold vector. Then, according to the current phase of the experiment, the robot either stops ('safety stop') or changes waypoint, using a strategy that will be detailed in Sect. 7.1. Second, the external camera is used to monitor safety of the insertion. If the operator hand is detected in the scene during robot motion, a safety stop is triggered. Details on the algorithm used for this are given in Sect. 7.2.

Dealing with strong external wrench

The external wrench on the end effector is used not only as input to the admittance controller presented just above, but also to monitor state changes or blocking situations during the assembly operation. Here also, we use its expression in the support frame, S h E , derived with [START_REF] Heyer | Human-robot interaction and future industrial robotics applications[END_REF]. The components of S h E are monitored either to check if a step has been completed, or to stop the motion in case of blockage. These two cases are indicated respectively by the left and right arrows exiting block Test on external wrench in Fig. 4.

In practice, steps 1 and 2(b) are considered completed if any component of S h E is greater than the corresponding one in threshold vectors τ 1 and τ 2b . If this is the case, even if the end effector has not yet reached the end point (respectively, P and C), the nominal reference is shifted to the start of the next trajectory (respectively, T 2a and T 2c ). During the connecting trajectory T 1 , we only monitor component S f E,Z :

τ 1 = [+∞ + ∞ τ 1,z + ∞ + ∞ + ∞] . (20)
Since this force is due to the first contact between the Rzeppa joint and the insertion tool, if it passes the threshold, we consider point P to be reached, and start the first inclination step, T I 2a . During the cage closing phase, T 2b , a strong component of S h E will indicate that the closure is complete, and that the ball has been properly inserted in the inner race. Then, we consider that point C has been reached, and reverse the motion to return towards P , by following T 2c .

Throughout operation, a safety stop is triggered if any component of S h E is greater than the corresponding one in threshold vector τ s . The robot is blocked to avoid damaging the parts (or the robot itself), and the operator must manually unblock it, to resume operation. The image processing module (explained just below) ensures that motion is not resumed while the operator hand is in contact with the end effector.

Image Processing

To safely interact with the human and with the environment, the designed controller relies on various sensed data. Along with the force/torque measures that are monitored as explained in the previous section, we utilise a camera to observe the scene around the insertion tool. Specifically, the camera should detect the operator hand, to trigger a safety stop, if the hand is near the robot, and restart motion, once a ball has been inserted.

The camera is placed with its optical axis parallel to the insertion tool, to maximize scene saliency. The type of image seen from the camera is shown in the bottom left of Fig. 3. Only the image greyscale is considered, and we assume that the operator hand is the lighter gray area in the scene. To facilitate detection, the operator wears white gloves, and the ground floor, below the end effector, is black. These are reasonable constraints, since the industrial cell can be partly structured, and since image processing is not the main contribution of this work. More sophisticated approaches, such as [START_REF] Oikonomidis | Full dof tracking of a hand interacting with an object by modeling occlusions and physical constraints[END_REF][START_REF] Rautaray | A real time hand tracking system for interactive applications[END_REF], could be applied to relax these constraints.

A simple image processing algorithm is used to derive the distance d h between the hand and the insertion tool axis (see bottom right of Fig. 3). For this, two geometric parameters are predefined according to the relative pose of the camera and tool. These are: the locus of the tool axis (point A), and an annulus surrounding the tool, which is considered relevant for safety. Only the pixels in this annulus are taken into account (the grey pixels in the figure are excluded, and in the following paragraph, we refer to this annulus as the image).

The algorithm then consists in the following steps:

1. A two-dimensional Gaussian filter is applied to the image to improve the signal-to-noise ratio. 2. The image is binarized: pixels are turned black or white, by comparing their luminosity with a fixed threshold. 3. One erosion and two dilations are applied to the image, to connect regions of similar pixels (blobs). 4. The size of each white blob in the image is evaluated by counting the neighbour pixels. 5. The greatest white blob is selected; if it is sufficiently large, it is assumed to be the hand, and d h is calculated. Otherwise, d h is undefined.

If d h is defined, and if it is below a minimum tolerated distance for safety, denoted d m , a safety stop is triggered (see Fig. 4). The stop is only active while d h < d m . For example, if the operator has to manually unblock the robot as explained in Sect. 7.1, the robot will resume motion only when: it has been unblocked (all components of S h E are smaller than those of τ s ) and the operator hand is in safety (not in the camera field of view, or with d h > d m ). This method is also used to close the Rzeppa cage: as soon as the hand exits the dangerous area, the ball is considered inserted, and the robot starts the closing phase (step 2(b)).

Experiments

Setup and nominal trajectory generation

To validate our framework, we have run a series of experiments with a 7 dof lightweight KUKA LWR IV3 robot in the scenario illustrated in Fig. 3 (top). This robot is well known for its flexibility, which has fostered its use in pHRI applications [START_REF] Bischoff | The KUKA-DLR Lightweight Robot Arm -A new reference platform for robotics research and manufacturing[END_REF]. The controller sampling time is set to ∆t = 20 ms (a specification imposed by the ICARO project software architecture). The q * computed by the controller (see Fig. 4) are smoothed by the Reflexxes online trajectory generation library4 before being sent to the robot joints. To get the interaction wrench E h E , instead of mounting a force sensor on the end effector, we average, over a window of 4 samples, the wrench that is estimated by the robot controller through the FRI Interface5 every 5 ms. This signal, which is derived from the applied and measured joint torques, proved to be accurate enough for our application. The camera used to monitor the human hand is a B & W Stingray F201B from Allied Vision Technologies, with resolution 1024 × 768 pixels. As secondary task in (2), we impose joint limit avoidance, via the following scalar cost function:

g (q) = 1 2 7 k=1 q k -q k,mid q k,M -q k,m 2 , (21)
with [q k,m , q k,M ] the available range for joint k and q k,mid = (q k,M + q k,m ) /2 its midpoint. Two compliant controllers (in the operational and joint space) are already embedded in the KUKA LWR. However, we decided to use our own admittance controller (described in Sect. 6) for three reasons. First, we must control the robot in the joint space (to verify its configuration w.r.t. the environment and w.r.t. self-collisions), whilst defining the admittance characteristics (wrench references, damping and stiffness) in the operational space, and this is not feasible with the KUKA controller. Second, the admittance parameters must be varied online at the various assembly steps, and the KUKA controller can only operate with prefixed values. Finally, our method can be applied to any position-based industrial robot with wrench measurement, making the framework generic, and not limited to the LWR.

The manually taught trajectory is identified (see Fig. 6, left), as an arc of circle of radius R = 0.241 m, center position B t S = [-0.432 -0.421 0.448] m, and amplitude ψ M -ψ m = 1.70 radians. Then, to generate the corresponding articular joint trajectories, we apply (2) to track operational space trajectory [START_REF] Morioka | A new cell production assembly system with human -robot cooperation[END_REF], on a KUKA LWR IV, simulated in Webots6 (see Fig. 6, right). The simulations are used to record the joint values [START_REF] Pedrocchi | Safe humanrobot cooperation in an industrial environment[END_REF], without endangering the real robot. We set Λ = I 6 , t = 0.02 and r = 0.005, to obtain the five primitive joint trajectories [START_REF] Ding | Optimized task distribution for industrial assembly in mixed human-robot environments -Case study on IO module assembly[END_REF] for each of the seven joints, plotted in Fig. 8.

Control parameters

These trajectories are deformed online in case of external contacts, using the admittance controller described in Sect. 6. For the deadband filter, we apply 0 --2.5 -q 1 q 2 q 3 q 4 q 5 q 6 q 7 ----450 900

The threshold vectors that are used to check if a step has been completed, or to stop the motion (see Sect. 7.1), are as follows (forces expressed in N, moments in Nm).

• To verify that P has been reached (i.e., that the tool has been inserted), we only monitor S f E,Z , according to (20): τ 1,z = 40 N.

• To verify that the closure is complete, we compare the wrench to the threshold:

τ 2b = [
The reason for setting the threshold on S f E,Y smaller than S f E,X and S f E,Z is that, in our setup, when the closure is completed, the most relevant forces appear along the support frame Y axis (see Fig. 3).

• To block the robot:

In this case, all directions are considered equally relevant.

Although we used the ViSP library [START_REF] Marchand | Visp for visual servoing: a generic software platform with a wide class of robot control skills[END_REF] for visualization, the image processing algorithms for detecting and tracking the operator hand were developed from scratch, as explained in Sect. 7.2. The threshold for considering the hand dangerous is set to d m = 300 pixels, while the relevant annulus minimum and maximum radii are respectively 180 and 750 pixels. The whole image processing pipeline takes only 5 ms, well below both the controller (20 ms) and camera framegrabber (33 ms) sampling times.

Results and discussion

The experiments consisted in having various users insert the five balls in the Rzeppa joint. We hereby discuss the results of these experiments, which are shown in Fig. 9, and in the video available at https://youtu.be/3KWduKKSyy8.

On the top of figure 9, the relevant steps of a complete successful experiment are shown. These include: tool connection/disconnection (1, 8), ball insertion (2, 3, 7), joint pivoting (4, 5), vision triggered emergency stop [START_REF] Knight | How Human-Robot teamwork will upend manufacturing[END_REF], and joint manual unmounting [START_REF] Tan | Humanrobot collaboration in cellular manufacturing: Design and development[END_REF][START_REF] Morioka | A new cell production assembly system with human -robot cooperation[END_REF].

The joint trajectories obtained during this experiment are plotted in Fig. 10. In this figure, the emergency stops activated by vision are highlighted in yellow, and the insertion phases for each ball are indicated with the black rectangles. Correspondingly, the robot motion is stopped. As the curves show, the values of q 1...6 are the same for each of the five balls, whereas q 7 changes, to pivot the cage before the start of the next ball insertion (just before the vertical dashed lines). In the current version of the software, the end of the insertion phase is notified by keyboard pressing, to resume robot motion. The reason is that it is very difficult, and unnecessary, to determine this state automatically. In future work, this notification could be given via a pedal, to free the operator hands. The abscissa timescale is identical to that of Fig. 10.

The admittance controller is indispensable to avoid blockage between robot and tool, which systematically occurs when it is deactivated. Its effect can be seen in Fig. 11, where we have plotted the components of the external wrench S h E , along with the corresponding variation of the articular trajectories. Apart from the peaks on S f E,Y (red curves in the top figure), which occur at each of the five insertion phases, it can be seen that throughout the assembly, the admittance controller induces variations of the order of magnitude of 0.02 rad (1 degree) to the articular joint values.

Although the whole assembly takes approximately 120 s, i.e., almost 4 times more than the manual one, the following aspects must be considered.

• Part of the delays are due to current cell configuration. In particular, when the Rzeppa joint opens, the cage is horizontal. This complicates the ball insertion task, and makes, in this experiment, the operator drop the second ball to the ground, causing a 25 s insertion phase (first black rectangle in Fig. 10). To solve this problem, in future work, we plan to incline the insertion tool w.r.t. the ground, so that the housing is horizontal during ball insertion.

• We have deliberately decided to operate at 40% of the maximum speed allowed in physical Human-Robot Interaction (0.25 ms -1 ). In fact, throughout the experiments, the tool center point velocity is always below 0.1 ms -1 . However, given the low image processing sampling time (5 ms), we are confident that increasing the robot speed towards the 0.25 ms -1 limit would not pose problems.

• Note that, even if the collaborative assembly was executed at the maximum speed allowed in physical Human-Robot Interaction (0.25 ms -1 ), it would still be slower than the manual one. However, since the operator activity over one cycle time is smaller, it could be possible to have more robots working with a single operator, in order to leverage his/her production time.

• Another gain can be obtained by pivoting the Rzeppa joint during step 2(c). This would suppress step 2(d), which currently takes approximately 10% of the entire cycle time (2.5 s per ball).

• The collaborative robot assembly substantially reduces the risk of strain injuries with respect to the manual assembly, since most of the physical effort is realized by the robot. In fact, the operator load is reduced by approximately 60%, and, following this work, the Rzeppa assembly cell was reclassified in the PSA ergonomics scale (from 'red' to 'medium' level).

The experiments have been repeated by two users, to show the simplicity and robustness of the system. The video shows four experiments, where the entire assembly is completed, twice by each user. The last experiment (shown in the bottom of Fig. 9) is of particular interest, since it shows a case where the robot motion is blocked due to excessive external wrench (above threshold [START_REF] Lange | Force and trajectory control of industrial robots in stiff contact[END_REF]). In this case, the user has to manually unblock the cage, using a hammer, until motion resumes (when the wrench returns within the safety range). It is noteworthy to point out that this also often occurs during manual assembly by experienced users. Typically, a slight misplacement of the third ball can jam the inner race and housing, requiring intervention with a hammer. The advantage of our framework is that these situations are automatically managed at a high level, avoiding permanent blockage of the robot.

Conclusions

This paper presents preliminary results on the development of a collaborative human-robot manufacturing cell for Rzeppa joint assembling. In contrast with most human-machine manufacturing applications, one requires direct physical contact between robot and human, as well as between robot and environment.

The proposed framework integrates many state-of-the-art robotics components, seldom applied in real industrial scenarios. These include: trajectory optimization, admittance control, and image processing. The approach is validated in a series of experiments, with different users. With the proposed visual gesture monitoring and intrinsic collision detection, the robot setup is compatible with the safety standards, and could be certified. In addition, PSA has conducted a complete risk analysis of the application, to ensure that there is no obstacle in the deployment of such technology. Although the cycle time is lower than that of manual assembly, the collaborative cell lightens the operator burden, and substantially reduces the risk of strain injuries. Furthermore, the causes of the assembly delays have been identified, and we are confident that slight adjustments in this sense would radically reduce the cycle time, and spur the transfer of the proposed technology.

If successfully deployed in automotive factories, the proposed robotic assistant would have a very quick return on investment. Indeed, in spite of the high price of the hardware, the expected reduction of MSDs and associated costs, is tremendous. It has been estimated, by PSA, that the savings in terms of activity limitations and disability could cover the hardware cost of the setup in approximately a year.

Following this work, the two groups (LIRMM and PSA) are pursuing research in this field, in the context of other French National Projects. Future work will consist in deploying the proposed methodologies on mobile manipulator robots, which represent key technologies in flexible manufacturing.

Figure 1 :

 1 Figure 1: Working principle (left) [https://en.wikipedia.org/wiki/Constant-velocity joint] and exploded diagram (right) [www.aa1car.com] of the Rzeppa homokinetic joint.

Figure 2 :

 2 Figure 2: Manual insertion. Left: concerned components (clockwise from top left: inner race, balls, cage, housing and insertion tool). Right: nine steps of the PSA manual insertion operation; ball 1 does not appear, since, along with the inner race, cage, and housing, it has been assembled before this operation.

Figure 3 :

 3 Figure 3: Top: experimental setup for collaborative Rzeppa joint assembly with: insertion tool support (S), end effector (E), and robot base (B) reference frames. Bottom left: raw image from the camera. Bottom right: processed image with: locus of the tool axis in the image (A), distance between hand and tool (d h ), and minimum distance tolerated for safety (dm).

Figure 4 :

 4 Figure 4: Control framework for collaborative assembly. Top: nominal trajectory generation. Bottom: collaborative assembly controller.

Figure 5 :

 5 Figure 5: Top: ball insertion order (left), and end effector frame configurations for inserting balls II . . . VI (right). Bottom: snapshots of the consecutive steps of the assembly operation (steps 2(a) to 2(d) are cycled 5 times, once for each ball).

Figure 6 :

 6 Figure 6: Left: results of the trajectory identification with relevant way points I (initial), P (pivoting), O (open cage), and C (closed cage), and insertion tool (grey). Right: Simulations for replaying the identified path (black) using an inverse kinematics controller. In both figures, the base and end effector frames are also drawn.

Figure 7 :

 7 Figure 7: Complete pipeline of the admittance controller, from measured external wrench E h E to desired pose variation B ∆p E .

Figure 8 :

 8 Figure 8: The five primitive trajectories in joint space, obtained by inverse kinematics in Webots (abscissa: iterations, ordinate: joint angles in rad).

  70 40 70 15 15 15] .

τ

  s = [70 70 70 25 25 25] .

Figure 9 :

 9 Figure 9: Top: first experiment. 1. Tool connection. 2, 3. Second ball insertion. 4, 5. Joint pivoting. 6. Vision triggered emergency stop. 7. Sixth ball insertion. 8. Tool disconnection. 9, 10. Unmounting the assembled Rzeppa joint. Bottom: second experiment. 11, 12. The operator unblocks the joint using a hammer. 13, 14. Motion resumes and a new ball can be inserted.

Figure 10 :

 10 Figure 10: The joint trajectories, during the first experiment (abscissa: time in s, ordinate: joint angles in rad). The emergency stops activated by vision are highlighted in yellow, and the insertion phases for each ball are indicated with the black rectangles.

Figure 11 :

 11 Figure 11: Six components of the external wrench S h E (top, in N and Nm), and corresponding variation of the joint trajectories, ∆q, produced by the admittance controller (bottom, in rad).The abscissa timescale is identical to that of Fig.10.

www.osha.eu.int

www.iso.org/iso/catalogue detail.htm?csnumber=51330

www.kuka-labs.com/en

www.reflexxes.com

http://cs.stanford.edu/people/tkr/fri/html/

www.cyberbotics.com

S f E,x S f E,y S f E,z S m E,x S m E,y S m E,z

Acknowledgements

This work has been supported by the ANR (French National Agency) ICARO project, grant number ANR-10-CORD-0025.


Luis M Camarinha-Matos

João Goes

Luis Gomes

João Martins

Towards Collective Awareness Systems

Keywords: Collective Awareness, Internet of Things, Cyber Physical Systems

des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Introduction

Fast progress on devices with increased computational capabilities and connected to computer networks, namely to Internet, give users access to unprecedentedly high amounts of real time information coming from a large diversity of distributed sources. This situation greatly extends our capability of being aware of the surrounding environment and expands the reach-ability of our perception horizon.

The multi-dimensional nature of the accessible information sources and their growing pervasiveness opens the opportunity for new levels of awareness, and thus the development of new applications, virtually in all domains of human activity.

In this context, a large variety of research challenges emerge, ranging from devices development, communication mechanisms and protocols, to high-level information interpretation, and novel services development. The very nature of the involved areas, combining the physical and the cyber worlds, requires a multidisciplinary approach, in which the competencies typically covered by the disciplines of Electrical and Computer Engineering play a relevant role.

Considering that a substantial amount of technological innovation results from the research works of engineering PhD students, it is important to call the attention of students in this area, which typically tend to focus on a specific research topic, for the potential of the "interconnected information sources" and the role they can play in the innovation process. The DoCEIS'14 (5 th Doctoral Conference on Computing, Electrical and Industrial Systems) was thus organized with this mission and some of the results are summarized in this paper.

Related Concepts and Trends

The term collective awareness represents a concept that has been evolving since the 19 th century [START_REF] Daassi | Groupware and team aware[END_REF], originally related to the works of the French sociologist Émile Durkheim, and referring to the common norms, values, and beliefs shared by the members of a community. With the developments of the information and communication technologies, the concept has been revisited and rephrased under the perspectives of human-computer interaction, computer-supported collaborative work, virtual communities, and information management systems. One example reflecting this evolution is the definition provided by Daassi and Favier [START_REF] Daassi | Groupware and team aware[END_REF]: "Collective awareness refers to a common and shared vision of the whole team's context which allows members to coordinate implicitly their activities and behaviors through communication".

Depending on the adopted perspective, different definitions have been proposed, which might be seen as different types of awareness. In this way, some authors have attempted to also classify the different types of awareness. For instance, Daassi et al. [START_REF] Daassi | Integrating visualization techniques in groupware interfaces[END_REF] consider: Activity awareness, Process awareness, Availability awareness, Informal awareness, Workspace awareness, Social awareness, and Group-structural awareness.

Progress on web-based technologies, social networks, wireless sensor networks, and the proliferation of smart devices connected to Internet, are inspiring other views and extending the concept of awareness to other directions. For instance, the FutureICT project [START_REF] Giannotti | A planetary nervous system for social mining and collective awareness[END_REF] elaborated a research roadmap for what they call Planetary Nervous System, which addresses awareness issues at the world-scale. The roadmap addresses the needed scientific and technological developments based on three pillars: social sensing, social mining, and the idea of trust networks and privacy-aware social mining. In the framework of the European Research Programs FP7 and Horizon 2020, a particular focus on using collective awareness to solve big societal problems has emerged under the term "Collective Awareness Platforms for Sustainability and Social Innovation". Such platforms are defined as "ICT systems leveraging the network effect … for gathering and making use of open data, by combining social media, distributed knowledge creation, and Internet of Things. They are expected to support environmentally aware, grassroots processes and practices to share knowledge; to achieve changes in lifestyle, production and consumption patterns; and set up more participatory democratic processes" [START_REF] Sestini | Collective awareness platforms: Engines for sustainability and ethics[END_REF].

Also as a result of recent technological developments, a number of other related terms have emerged to represent partially overlapping perspectives or focused application contexts. Some examples:

Context Awareness: A term frequently associated to mobile smart devices and regarded as the capability to both sense and react based on their environment and circumstances of events. Examples of characteristics of a context include location (where), time (when), identity (who), and activity (what). Other features / information can nevertheless be considered. The notion has been generalized in context-aware computing to the capability of understanding the context of use [START_REF] Schmidt | Context-Aware Computing: Context-Awareness, Context-Aware User Interfaces, and Implicit Interaction[END_REF].

A survey of context-aware systems can be found in [6]. Ambient Intelligence: A concept that represents electronic-enhanced environments, which are sensitive and responsive to the presence of people [START_REF] Cooky | Ambient Intelligence: Technologies, Applications, and Opportunities[END_REF].

Therefore it builds upon the notions of pervasive computing, embedded systems, context awareness, and human-centric computer interaction. One of the relevant application areas is the so-called ambient assisted living (AAL), which uses technology to assist elderly. In these environments technology becomes invisibly embedded in our natural surroundings, present whenever we need it.

Collective Intelligence: A notion representing the shared intelligence of groups, which emerges as a result of interactions (e.g. collaboration and competition) among group members. It is a form of distributed intelligence and implies some form of collective awareness (members' awareness of each other, awareness of the environment or task at hands and its progress, etc.). Internet developments, allowing for shared information and rapid information flows, organization and operation of communities, contributes to the emergence of many examples of collective intelligence (web-enabled collective intelligence) [START_REF] Malone | The collective intelligence genome[END_REF]. Big data: A term that refers to massive data sets and stream computing that due to their large size and complexity are beyond the capabilities of traditional databases and software techniques. The expansion of sensing capabilities, sensor networks, smart devices, and other sources, generating huge amounts of data, motivates the importance of the topic. Interest in big data has emerged in science (e.g. medicine, astronomy and spatial exploration), business (e.g. understanding market trends, social media analytics, energy management in smart grid), security (e.g. analyzing surveillance data, identifying hidden networks), and many other [START_REF] Mclelland | Big data: An overview[END_REF]. Context awareness or collective awareness may require the adoption of techniques being developed for big data. Internet of Things (IoT): Understood as "a dynamic global network infrastructure with self-configuring capabilities based on standard and interoperable communication protocols where physical and virtual "things" have identities, physical attributes, and virtual personalities and use intelligent interfaces, and are seamlessly integrated into the information network" [START_REF]Vision and Challenges for Realising the Internet of Things[END_REF]. In this context, a "thing" can be understood as a real/physical or digital/virtual entity that exists and moves in space and time and is capable of being identified [START_REF] Camarinha-Matos | Contributing to the Internet of Things[END_REF]. A large class of objects connectable to Internet constitutes (smart) sensors or (smart) devices able to provide status information, thus an important enabler for collective awareness.

Internet of Events.

Less popular than IoT, it corresponds to a perspective of the IoT that puts the emphasis on time dependency and discrete events handling [START_REF] Ortner | Temporal and Modal Logic Based Event Languages for the Development of Reactive Application Systems[END_REF]. As such, events modeling and management, time critical reactivity, and process modeling and supervision are the relevant issues here. Sensing Enterprise: A notion introduced by the FInES (Future Internet Enterprise Systems) cluster of projects [START_REF] Fines | Embarking on New Orientations Towards Horizon[END_REF] to refer to an enterprise anticipating future decisions by using multi-dimensional information captured through physical and virtual objects and providing added value information to enhance its global context awareness. In other words, this notion particularly focuses on enriching enterprises' context awareness through intelligent, interconnected and interoperable smart components and devices to power enterprise systems, making them responsive to events in real time and aiming at reaching seamless transformation of (raw) data to (tailored) information and (experienced) knowledge.

Each one of these concepts share a number of facets with the notion of collective awareness, namely sensing / acquisition of multi-source distributed data, interpretation / mining of these data, structured communities or ecosystems, and some forms of collaboration.

When the term "system" is added to the picture, it typically refers to a kind of cyber-physical system which not only considers the interlinking of the physical and cyber worlds, but also supports a community of interacting entities, helps integrating and analysing rich multimodal information sets towards reaching a common and shared vision of the surrounding environment and situations, and facilitates collaboration among these entities. Such system is thus an instrument for achieving collective awareness.

Example Contributions

Collective Awareness Systems (CAS) involve a set of topics that are particularly relevant for Electrical and Computer Engineering (ECE) researchers and professionals. In the last decades, the scope of ECE has expanded so widely that it risks some "fragmentation". Most professionals (and students) focus on a specialization sub-field, rarely mastering a comprehensive view of the whole field. However, most contemporary challenges in our society require the capability to address problems from a multi-disciplinary perspective. Since Collective Awareness Systems require a "strong dialogue" among the various sub-fields of electrical and computer engineering (and other areas), it represents a particularly interesting subject to bring them together.

Under this assumption, a challenge was presented to DoCEIS'14 conference participants [START_REF]Technological Innovation for Collaborative Awareness Systems[END_REF], which are doctoral students from various countries and different sub-fields, as summarized in the following alternative questions:

-

In which aspects your research can contribute to the development of the Collective Awareness Systems? or -In which aspects your area of work could be affected / influenced in the future by the development in Collective Awareness Systems?

As a result, all contributors made an effort to analyze the relationship between their specific research work and the Collective Awareness Systems. Among the accepted papers there is an almost balanced distribution between those that can benefit from CAS adoption and those that contribute to the development of support technologies and models for CAS [START_REF]Technological Innovation for Collaborative Awareness Systems[END_REF], as summarized respectively in Fig. 1 and Fig. 2. The figures also include the percentage of contributions in each specific sub-field. In terms of areas that can benefit from a collective awareness systems approach, energy management is the most represented in terms of submissions to the conference. This is certainly a result of the current challenges faced by society regarding the development of sustainable energy solutions. The materialization of smart grids strongly relies on ICT and sensing / measuring capabilities in order to shift the emphasis from the traditional "predict and supply" model to a more flexible and responsive "demand-based" model [START_REF] Pitt | Transforming Big Data into Collective Awareness[END_REF]. The full realization of this idea requires highly distributed cyber-physical functionalities, but also the involvement of the customers in close (collaborative) interaction with providers, a process that should go far beyond the traditional client-supplier relationship. The concept of collective awareness can help reaching a shared vision of long-term sustainability and facilitate more effective use of resources.

Another area indicated as major potential beneficiary is manufacturing. Achieving truly agile manufacturing systems, able to dynamically adjust to market dynamics, requires novel approaches that take the shop-floor as a collaborative ecosystem of (progressively more) intelligent and autonomous machines / resources. The implementation of self-organizing / adaptive capabilities, and collaborative supervision systems, requires reaching a high-level of collective awareness and even collective intelligence among the members of this ecosystem. On the other hand, there is a need for stronger synergies among the various engineering areas involved in product design, manufacturing system design, manufacturing system deployment, manufacturing system operation, etc., which can also benefit from the conceptual insights of collective awareness systems.

Although less represented in this conference, several other areas can benefit from CAS, e.g. collaborative enterprise networks, logistics, road safety, etc.

(interfacing and computing methods and models), including specific approaches for embedded systems design.

Perhaps the weakest part is the development of intelligent functionalities to reach high levels of awareness and collaboration, as well as proper consideration of safety and privacy issues.

On the other hand, many of these developments are designed in the context of vertical / specialized applications. An urgent need is thus to develop more generic platforms and components (de-verticalization) that can be applied across various domains. On the methodological side, there is also a need to invest more on engineering methods for design, deployment and operation of such systems.

Given the scope of DoCEIS, the mentioned contributions are naturally biased by an engineering perspective. The development of advanced collective awareness systems would, however, require the involvement of other disciplines.

Concluding Remarks

The conceptual framework and developments of collective awareness systems are likely to have a strong impact in many sectors of society. Some of these impacts are already visible, but their importance is likely to grow in the coming years.

The needed technological components and approaches to connect the physical and the cyber worlds, as well as required modelling and intelligent functionalities, open important expansion opportunities for the area of Electrical and Computer Engineering. This is clearly reflected in the contributions to the DoCEIS'14 doctoral conference.

Fig. 1 -

 1 Fig. 1 -DoCEIS'14: Benefiting from Collective Awareness Systems

Acknowledgments. This work was supported in part by the GloNet project (FP7 programme) funded by the European Commission.

Contributing to the development of Collective Awareness Systems

Computing methods

Sensors