Luigi Penco

Jean-Baptiste Mouret

Serena Ivaldi

Prescient Teleoperation of Humanoid Robots

Teleoperated humanoid robots are ideally suited to act as human avatars in remote environments. Unfortunately, their deployment is hindered by the communication delays between the human input and the video feedback from the robot. Here, we introduce a direct teleoperation system in which the operator receives a synchronized video feed of real images, even when the communication channel imposes a 1 to 2-second delay. Our key idea is to leverage machine learning to allow the robot to execute commands before the operator performs them, so that the operator receives a delayed video stream that is almost indistinguishable from real-time feedback.

In our experiments, the iCub humanoid robot (32 degrees of freedom) was successfully controlled to perform several wholebody manipulation tasks, including reaching different targets, picking up an object, and moving a box. This new technique may enable real-life avatars on long-range radio networks, from remote maintenance to space missions.

I. INTRODUCTION

Teleoperated robots have the potential to replace humans in numerous hazardous scenarios, ranging from contaminated environments to outer space. For such robots to be effective, they must possess both intuitive controls and high versatility, enabling operators to adapt to various situations. Humanoid robots are among the most promising solutions to meet these challenges, as they offer the capability for bimanual manipulation, walking, crawling, or climbing, while also being inherently intuitive for human teleoperation due to their similar physical structure.

Substantial progress in whole-body control and motion capture now makes it possible to map a whole-body motion of a human to a robot, despite the difference in physical constraints and dynamics [START_REF] Penco | Robust real-time whole-body motion retargeting from human to humanoid[END_REF]- [START_REF] Darvish | Teleoperation of humanoid robots: A survey[END_REF]. This whole-body direct teleoperation approach allows the operator to control the robot creatively, quickly, and intuitively, and has been demonstrated in several lab experiments [START_REF] Penco | Robust real-time whole-body motion retargeting from human to humanoid[END_REF] and even competitions (e.g., ANA Avatar Xprize) [START_REF] Dafarra | icub3 avatar system[END_REF].

Whole-body direct teleoperation becomes impractical in the presence of delays because operators rely on visual feedback from the robot to adapt and adjust their commands. Unfortunately, delays are inherent to many of the most promising applications of teleoperated humanoids. For {jean-baptiste.mouret,serena.ivaldi}@inria.fr Concept of prescient teleoperation. The robot executes the commands before it receives them thanks to a data-driven predictor. In this example, the robot drops a box onto a table before the human commands it to open its arms. When the predictions are accurate, by anticipating both the forward delay τ f and the backward delay τ b , the visual feedback appears to be synchronized with the operator. The robot sends two video streams, which are both displayed in the virtual reality headset: an internal view, from the head of the robot, and an external view. Video: https://youtu.be/ HnQw3ZZ3T8. example, the roundtrip delay is approximately 0.81s when teleoperating a robot on Earth from the International Space Station [START_REF] Panzirsch | Exploring planet geology through force-feedback telemanipulation from orbit[END_REF], and it can be as long as 2.6 seconds with a laser communication link between the Earth and the Moon [START_REF] Boroson | Overview and results of the lunar laser communication demonstration[END_REF]. The DARPA Robotics Challenge [START_REF] Atkeson | What Happened at the DARPA Robotics Challenge Finals[END_REF] set the average delay to 1 second (with a maximum of 30 seconds), and the NASA Space Challenge [START_REF]National aeronautics and space administration (nasa)-centennial challenges program-space robotics challenge phase 2[END_REF] set it to 10 seconds (with a maximum of 20 seconds). These delays significantly impact the performance of the operator and limit the use of direct teleoperation in many real-life scenarios.

Here, we introduce a novel concept of direct teleoperation, where the operator receives a synchronized video feed of real images from the remote system (robot and environment/system cameras), even when the communication channel introduces a delay of 1 to 2 seconds. Our key idea is that if the robot executes the desired movement before the operator performs it, then the operator will observe a delayed video feed that will be almost indistinguishable from a realtime feed (Fig. 1). At each time-step, the robot analyses the data received from the operator, measures the communication time, estimates the communication time required to send the video feedback, and predicts the operator's most likely motions in the upcoming seconds. This prediction makes it possible to execute the command with enough anticipation so that the user receives a video feed that corresponds to the past motion of the robot but that aligns with the present time for the operator. We refer to this prediction-based feedback scheme as prescient teleoperation. Fig. 2. Flowchart of the prescient teleoperation system. During the training phase, (1) the human operator teleoperates the robot without any significant delay (local network), and performs a variety of tasks. The retargeted human motions represent the robot trajectories demonstrations (2) that are later used to train the Probabilistic Movement Primitives (ProMPs). A ProMP is learned for every task [START_REF] Zucker | A general-purpose system for teleoperation of the drc-hubo humanoid robot[END_REF]. When teleoperating the robot in a non-ideal network, the ProMPs are used to predict the robot movement: (4) the system recognizes the current task, i.e. it identifies the most likely ProMP; [START_REF] Darvish | Teleoperation of humanoid robots: A survey[END_REF] it estimates the speed of the teleoperated motion and (6) updates the selected ProMPs according to the delayed observed via-points; [START_REF] Boroson | Overview and results of the lunar laser communication demonstration[END_REF] it compensates for the delay by selecting the trajectory of the posterior ProMPs at the right timestep. This ensures synchronization between the user's movements and what they observe from the remote cameras on the robot's side. The resulting trajectories are then tracked by the whole-body controller [START_REF] Atkeson | What Happened at the DARPA Robotics Challenge Finals[END_REF], which calculates the joint commands for the robot.

This paper describes the system and presents several experiments to show the contribution of the different components, in terms of prediction, delay compensation, and tracking error. More details and additional figures, not included in the manuscript for space limits, are reported in the supplementary material available online 1 . A video showing prescient teleoperation with the humanoid robot iCub is available online 2 .

II. PREVIOUS WORK

The initial studies with teleoperated robot manipulators and delays [START_REF] Ferrell | Remote manipulation with transmission delay[END_REF] suggested that users often adopt a "moveand-wait" strategy to avoid overcompensating for delayed perceived errors. However, subsequent experiments demonstrated that this strategy is ineffective even with time delays of approximately 0.3 seconds [START_REF] Ferrell | Supervisory control of remote manipulation[END_REF].

Due to the challenges posed by delays, many teleoperation systems focused on supervised autonomy. In this approach, the operator provides high-level goals, such as selecting an object on a screen and pressing a button to grasp it, and the robot autonomously carries out the motions to fulfill the goals [START_REF] Zucker | A general-purpose system for teleoperation of the drc-hubo humanoid robot[END_REF], [START_REF] Darvish | Teleoperation of humanoid robots: A survey[END_REF], [START_REF] Stilman | Humanoid teleoperation for whole body manipulation[END_REF]- [START_REF] Naceri | The Vicarios virtual reality interface for remote robotic teleoperation[END_REF]. This method requires careful planning, making it difficult to spontaneously generate new behaviors for new goals or adapt to changes. Moreover, the division of goals into discrete operations often results in reduced teleoperation speed and fluidity: the operator must select an operation, wait for its completion, and then activate the next one, resulting in a sequential process.

In direct teleoperation, most research on delays focused on designing a stable control loop for systems that provide haptic feedback, specifically in multilateral teleoperation [START_REF] Panzirsch | Exploring planet geology through force-feedback telemanipulation from orbit[END_REF], [START_REF] Ryu | Stable teleoperation with time-domain passivity control[END_REF]- [START_REF] Sheridan | Space teleoperation through time delay: Review and prognosis[END_REF]. This line of work does not compensate for the delays; instead, it mitigates the instability issues arising from delayed force feedback. The operator still experiences delayed feedback and must move cautiously. To account for potential operator errors, impedance controllers are typically used by the robot [START_REF] Panzirsch | Exploring planet geology through force-feedback telemanipulation from orbit[END_REF], [START_REF] Evrard | Intercontinental, multimodal, wide-range telecooperation using a humanoid robot[END_REF].

The challenge of delays in visual feedback during direct teleoperation is currently addressed through the use of predictive displays [START_REF] Peñin | Teleoperation with Time Delay: A Survey and Its Use in Space Robotics[END_REF]- [START_REF] Mitra | Mediating time delayed teleoperation with user suggested models: Implications and comparative study[END_REF]. These displays present a non-delayed simulation of the robot and its environment. However, due to the inherent limitations of 3D modeling, disparities between the actual environment and the simulated one are unavoidable. This is particularly critical in unstructured scenarios, such as remote planets or damaged buildings, where mission-specific models are typically unavailable. Another related approach is the use of predictor displays, where the predicted trajectory of the system is overlaid on the visual feedback, simulated or not. This enables the operator to anticipate and better cope with delays [START_REF] Sheridan | Space teleoperation through time delay: Review and prognosis[END_REF], but human operators are charged with high cognitive load and can only tolerate moderate delays.

III. PRESCIENT TELEOPERATION

Fig. 2 describes the overall system. In prescient teleoperation, the primary concern revolves around determining how Cartesian and joint commands should be executed by the robot in order to effectively compensate for the delays.

A. Delay Estimation

To determine the amount of anticipation required for the commands, the robot needs to calculate the round-trip delay, which consists of a forward delay τ f (t) in the communication from the operator to the robot and a backward delay τ b (t) between the robot and the operator: τ (t) = τ f (t) + τ b (t). Each one-way delay consists of two components: a deterministic component primarily caused by transmission and propagation time, and a stochastic component [START_REF] Gurewitz | One-way delay estimation using network-wide measurements[END_REF], often referred to as "jitter". We denote by τ f,D the deterministic part of τ f and by τ f,S the stochastic part:

τ f (t) = τ f,D + τ f,S (1) τ b (t) = τ b,D + τ b,S (2)
The robot computes the forward delay, including both the deterministic and stochastic components, by utilizing timestamps attached to the packets sent by the operator and clocks synchronized through NTP [START_REF] Mills | Network time protocol version 4: Protocol and algorithms specification[END_REF]. While the robot cannot predict the exact time required for a packet to reach the operator before transmission, it can obtain the average backward delay by querying the operator's station. However, it remains unaware of the stochastic portion of the backward delay until the packet is sent. To overcome this challenge, we adopt an upper-bound approach: video streaming systems incorporate a "jitter buffer" [START_REF] Oklander | Jitter buffer analysis[END_REF], [START_REF] Schulzrinne | RTP: A transport protocol for real-time applications[END_REF] that accumulates, reorders, and, if necessary, discards video packets within a specific time window. When the buffer is set to a constant size, it effectively converts the stochastic delay into a deterministic upper bound delay. As a result, the robot only needs to be aware of the jitter buffer size and the deterministic backward delay to determine when the current frame will be displayed on the operator's computer.

B. Delay Compensation with Predictor Anticipation

To operate with delays, the system predicts the most likely future trajectories at each time step based on the commands received from the operator so far (for instance, the 3D trajectories of the hands). More formally, given a predictor of future trajectories P (•), the commands sent up to time step t over a history of length n, and a retargeting function3 R(•) that transforms the operator inputs x to robot inputs y (e.g., apply scaling factors), the predictor P (•) predicts the next k time steps:

y t+1 , • • • , y t+k = P (R(x t-n ), • • • , R(x t )) (3)
At time-step t, the robot executes the command q t that corresponds to the future input at time-step ⌊t + τ f + τb ⌉ using is whole-body controller W B(•):

q t = W B(y ⌊t+τ f +τ b ⌉ ) (4)
where ⌊τ ⌉ denotes the nearest integer. Numerous generic machine learning techniques have been proposed to predict the future of time-series, especially with neural networks [START_REF] Parmezan | Evaluation of statistical and machine learning models for time series prediction: Identifying the state-of-the-art and the best conditions for the use of each model[END_REF], [START_REF] Lim | Time series forecasting with deep learning: A survey[END_REF]. Nevertheless, the robotics community has long focused on regression techniques based on the concept of motion primitives, which are particularly suited for robot trajectories. Our system is based on Probabilistic Movement Primitives (ProMPs) [START_REF] Paraschos | Using probabilistic movement primitives in robotics[END_REF]. They represent trajectories as probability distributions, making them well-suited for capturing the variability observed in human demonstrations as motion primitives. Another advantage of working with distributions is that the properties of motion primitives can be translated into operations from probability theory [START_REF] Paraschos | Using probabilistic movement primitives in robotics[END_REF]. In particular, our system utilizes the conditioning operator of ProMPs to adapt predictions based on incoming observations. This allows us to update the prediction, referred to as the posterior, for the ongoing movement at each time step, using the learned model of the associated primitive as the prior. In other words, ProMPs predict the mean trajectory of prior demonstrations when no conditioning data is available, but when data, e.g., as observations of the current movement, is present, they update the prediction to resemble the most likely trajectories from the training set.

At time-step t, a point ξ t of a single trajectory is computed using a weight vector w ∈ R m and a vector of Gaussian basis functions Φ, assuming a trajectory noise variance ϵ ξ :

ξ t = Φ t w + ϵ ξ ( 5
)
where the vector Φ t ∈ R m corresponds to the m normalized radial basis functions evaluated at time t (see [START_REF] Paraschos | Using probabilistic movement primitives in robotics[END_REF] or Appendix IV-A). Let us denote by Σ ξ is the observation noise variance. The probability of observing a trajectory y given the weight vector w is:

p(y|w) = t N (ξ t |Φ t w, Σ ξ ), (6)
To learn a ProMP for a given task (a set of demonstrations), we fit each demonstration (i.e., find w) to this representation using ridge regression [START_REF] Paraschos | Using probabilistic movement primitives in robotics[END_REF]. Then, we fit the distribution of weight vectors p(w), assuming they follow a normal distribution N (µ w , Σ w ).

The trajectory distribution p(y) is obtained by marginalizing out the weight vector w, i.e. p(y) = p(y|w)p(w)dw.

Since a whole-body trajectory is represented by N trajectories (x, y, z position of the center of mass, of the hands, etc.), we learn a ProMP for each of the N trajectories. These ProMPs all together encode a task, which means that each task is associated with a set of ProMPs. More details on our implementation are reported in the Supplementary Materials.

To enable online prediction, ProMPs are learned from demonstrations for each task (e.g., one to take a box, one to release it, one to push a bottle, etc.). During the offline training phase, an operator teleoperates the robot in a local network, which we consider to be an approximation of an ideal network without any delay. For each motion, we record the trajectories of the center of mass ground projection, the waist height, the hand Cartesian positions, the arms posture (shoulder rotation, elbow flexion, forearm rotation), the neck posture (flexion and rotation) and the torso posture (flexion, rotation and abduction). A ProMP is learned for each of these trajectories. Hence, the robot knows a set of ProMPs for each task.

For inference (prediction), we identify the task k by computing the distance to the mean of each ProMP [START_REF] Dermy | Prediction of intention during interaction with iCub with probabilistic movement primitives[END_REF]: Given the past delayed observations, the robot produces at each time a prediction (μw k ) of the current command. To compensate for the delays, the right sample (orange dot) from the prediction has to be selected as a reference for the robot controller at each time. (A) The sample corresponding to the last received observation is an estimate of the delayed command. (B) By knowing the forward delay τ f (t), a sample from the prediction can be selected to achieve a synchronization between the operator's movement and the robot movements. (C) By knowing the forward τ f (t) and backward delay τ b (t), the robot can select the right sample from its prediction so as to achieve a synchronization between the operator's movement and the feedback from the robot side. (D) A policy blending arbitrates the delayed observations with the samples selected from the prediction, which guarantees a smooth transition from delayed to compensated teleoperation.

k = arg min k∈[1:K] N n=1 t∈T obs |y n (t-τ f (t))-Φ n,t-τ f (t) µ n,w k | , (8)
where K is the number of tasks in the dataset and T obs = {t 1 , ..., t n obs } is the set of timesteps associated to the n obs early observations. To account for different motion speeds, we additionally search for the best time-modulation by generating variants of each ProMP with different time-modulation values (see [START_REF] Dermy | Prediction of intention during interaction with iCub with probabilistic movement primitives[END_REF] or Appendix IV-D). This enables us to also predict the most likely duration of the current motion for the predicted task.

To predict the remaining of the trajectory, we condition the ProMP on the past trajectory using Bayes' theorem [START_REF] Paraschos | Using probabilistic movement primitives in robotics[END_REF], [START_REF] Dermy | Prediction of intention during interaction with iCub with probabilistic movement primitives[END_REF], which "fine-tunes" the prediction to the actual data (instead of simply following the mean of the ProMP):

p(w k|x * t ) ∝ N (y * t |Φ αt w k, Σ * y )p(w k). (9)
Details on the operations can be found in the literature [START_REF] Paraschos | Using probabilistic movement primitives in robotics[END_REF], [START_REF] Dermy | Prediction of intention during interaction with iCub with probabilistic movement primitives[END_REF].

When the robot has not received enough data to recognize the ProMP, it executes the delayed command. Once the ProMP is recognized, the robot transitions from delayed commands to compensated commands using a blending technique typical of shared autonomy approaches 4 [START_REF] Dragan | A policy-blending formalism for shared control[END_REF] (Fig. 3).

C. Whole-body controller

The whole-body motion of the robot is defined by the following trajectories: center of mass ground projection, 4 More details can be found in the supplementary materials. waist height, hands Cartesian positions, and the joint postures of the arms postures, neck, and torso. These trajectories, denoted by ŷ, are either the delayed retargeted human motions or the delay-compensation trajectories generated by the prediction algorithm. ŷ are input to the whole-body controller, formulated as a constrained quadratic programming problem [START_REF] Escande | Hierarchical quadratic programming: Fast online humanoid-robot motion generation[END_REF]:

arg min q i w i f i + j w j g j + C q f i = ||J i q -ẋi || 2 g j = || qj -qr j || 2 subject to J q = ẋ A q ≤ b (10)
where q are the joints positions (and robot commands); w i are the weights of the position tasks f i ; ẋi = ẏi are the reference velocities for body link i; J i is the Jacobian matrix for body link i; w j the weights for the postural tasks g j ; qr j = ẏj are the reference joint velocities for joints j; C q is a regularization term to avoid singularities. The equality constraints include the center of mass x position and the feet poses. The inequality constraints contain the traditional robot joint velocity bounds and zero moment point bounds, that is the ZMP is constrained to stay inside the support polygon. More details on the controller are reported in [START_REF] Penco | Learning robust task priorities and gains for control of redundant robots[END_REF].

IV. EXPERIMENTS

We implemented this system with the humanoid robot iCub [START_REF] Natale | iCub: The not-yet-finished story of building a robot child[END_REF], which has 32 degrees of freedom (excluding the hands and eyes) and is position-controlled. The wholebody motion of the operator is measured with a motion Fig. 5. Comparison of the prediction error on different datasets. The RMS of the error is computed based on the 10 testing trajectories of the task of reaching the bottle on the table in the dataset Multiple Tasks, the testing trajectories from the dataset Obstacles, and the dataset Goals (see Table I). The bold line represents the mean RMS error. The transparent region around it represents the maximum and minimum of the error. The prediction error is computed as the Euclidean distance between the predicted trajectory and the reference trajectory. The plot reports the error given by the mean trajectories of the ProMPs learned from the demonstrations, from the prediction updated after observing the first portion of motion used to infer the task, after observing a fourth of the motion, after observing half of the motion, and after observing the whole motion.

capture suit (Xsens MVN), which provides both joint angles and Cartesian positions of the operator's body parts. The robot's whole-body controller is implemented in the Open-SOT framework and uses the QP solver qpOASES [START_REF] Rocchi | Opensot: a whole-body control library for the compliant humanoid robot coman[END_REF]. It runs at 100 Hz, which is also the frequency of the motor commands. The values of the weights w i , w j were optimized using the procedure in [START_REF] Penco | Learning robust task priorities and gains for control of redundant robots[END_REF]. We considered several teleoperation scenarios, which resulted in three different experiments and datasets (Table I), each divided into training and testing sets. All the datasets are variants of two tasks: reaching a bottle (scenario 1, Fig. 4) and manipulating a box with both hands (scenario 2). The test trajectories of the first dataset consist of various repetitions of these tasks, capturing the inherent movement variability of the operator. The second dataset, called Obstacles, features the same scenarios as in the first dataset, but the test trajectories involve different ways of reaching a bottle while avoiding obstacles. These obstacles were not considered during training, allowing the robot to adapt its task execution to different environments. The third dataset, called Goals, focuses on reaching a bottle placed at different positions. The test trajectories correspond to positions that were not used for training. All datasets and associated plots are available in the supplementary materials.

To facilitate result reproducibility and minimize timeconsuming experiments, we used the real robot only for the Multiple Tasks dataset (Fig. 4). For the other two datasets, we utilized an accurate dynamic simulation. It is important to note that the real and simulated robots employ the same whole-body controller and follow the same joint trajectories. These trajectories are "played" in an open-loop manner, whether in simulation or on the robot.

Experiment 1: Evaluation of the predicted trajectories

Using testing data from the Multiple Tasks dataset, we initially evaluated the predictive capabilities of conditioned ProMPs in forecasting the future motion of the operator, independently of any consideration for teleoperation (Fig. 5). The results demonstrate that the prediction error decreases over time as more observations become available to update the prediction. For Cartesian trajectories (e.g., hands), the error reduces to approximately 0.5 cm after observing half of the motion (more detail in Supplementary Material, Table S1). Similarly, notable improvement is observed in the postural trajectories. These results highlight that continuously updating the prediction allows the operator to influence the predicted motion so that it matches better their intentions. Put differently, the system is not simply recognizing the motions and then executing the mean of the learned demonstrations: it is accurately predicting the future trajectories given the data received so far and is adapting to a specific trajectory. We obtained similar errors with the other datasets (Fig. 5).

Experiment 2: Prescient teleoperation

We conducted evaluations of the system on the iCub robot, considering a mean time-varying round-trip delay of 1.5 seconds. This delay consisted of a stochastic forward delay, following a normal distribution with a mean of 750ms, a standard deviation of 100ms, and a constant backward delay of 750ms (Fig. 6).

To assess the quality of compensation, we compared the compensated trajectory to the non-delayed trajectory for 20 testing motions in the bottle-reaching scenario of the Multiple Tasks dataset, as well as for 21 testing motions in the box handling scenario of the same dataset (see Supplementary Material, Table S2). In the box handling scenario, the results demonstrate that the error for all considered references (especially the hands) is approximately 1cm or less with compensation, whereas, without compensation, the error is roughly three times higher (around 3cm for the hands). Similarly, in the bottle reaching task, the compensated trajectory exhibits an error of approximately 1 to 1.4cm for the hands, compared to an error of about 4cm for the hands and 1cm for the center of mass when no compensation is applied. The angular errors exhibit a similar trend. While an error of around 1cm is often acceptable to accomplish a task, such as grasping an object, an error of 3 to 4cm significantly increases the likelihood of missing the object, in addition to causing the operator frustration and disorientation.

We also evaluated the performance of the compensation as the communication delay increases (Fig. 7). To do this, we compared the compensated trajectory to the non-delayed trajectory, for the right hand, in the task of reaching the bottle on the table of the dataset Multiple Tasks (Supplementary Material, Fig. S1). During the synchronization, the error is roughly proportional to the delay (Fig. 3), which adds up to the prediction errors. In this case, we observed a mean error of approximately 2.5cm for a 1-second delay, but over 10cm for a 3-second delay, primarily because the transition time constitutes a significant portion of a short trajectory (30% The forward delay follows a normal distribution with 750ms as mean and 100ms as standard deviation, while the backward delay is 750ms (top). After the synchronization time (first 2 seconds), the compensated trajectory anticipates the delayed trajectory by τ b + τ f to take into account both the delay from the operator to the robot and from the robot to the operator, this is why the robot anticipates more than the non-delayed trajectory. Once we shift all the trajectories to compare them ("overlay"), the commands (delayed trajectories) and the compensated trajectories align very well, which shows that the robot executes the right trajectory but shifted in time to anticipate the motion.

for a 3-second delay and a 10-second trajectory). Excluding the synchronization time, the results reveal that the compensated tracking error is below 2cm for delays around 0.5s, approximately 2.5cm for delays around 1.5s, and increases to about 5cm for delays of 3s and 4s. Qualitatively, the system becomes challenging to use for the operator with a delay exceeding 2 seconds, resulting in an average error of approximately 3cm after the transition and approximately 7cm when considering the transition. We recorded similar tracking errors with the other datasets (Fig. 7b).

Experiments 3: Conforming the teleoperation to the intended motion

Humans can often perform a task in many ways because they are highly redundant. For example, when picking up a box, an operator can choose to bend their back without utilizing their legs, bend their legs while minimizing back movements, or adopt any combination in between. Ideally, the robot should execute tasks in the preferred manner of the operator. To explicitly explore this motion adaptation, we teleoperated the robot in simulation to reach a bottle placed on a table using three different approaches during the training phase, dataset "Obstacles"). During testing, we assessed the effectiveness of our compensation approach for the same task but with different obstacles present. As with the previous dataset, the prediction steadily improves as more observations become available, increasingly aligning with the observed operator commands. The results show that the position error is comparable (if higher, only by about half a centimeter) to the error from the bottle-reaching scenario, where the same obstacles were used for both training and testing. trajectories with respect to the same non-delayed ones. The tracking error of the compensated trajectories is considered both including the transition from the delayed phase to the synchronization phase (Fig. 3), which adds a non-compensable error, and without transition. The RMS of the error is computed from the 10 testing motions of the task of reaching the bottle on the table from dataset Multiple Tasks and its mean value is reported as a bold line. The transparent region around it, represents the maximum and minimum of the error. The tracking error is computed as the Euclidean distance between the evaluated trajectory and the reference trajectory. The compensated trajectories are temporally realigned with the non-delayed trajectories for computing the error, which is evaluated with different round-trip delays τ (t): 0s, around 0.5s, 1s, 1.5s, 2s, 3s and 4s. The time-varying forward delay follows a normal distribution with mean τ f = τ /2 and standard deviation equal to 2 15 τ f . The backward delay is set equal to τ f . b. Tracking error of the compensated trajectories for the right-hand position compared with the non-delayed ones (after the transition phase) for all the datasets.

Experiment 4: Conforming the teleoperation to new goals

In many scenarios, the operator may need to perform motions that the system was not specifically trained for. To investigate this challenge, we assessed how the robot adapts to new object locations. For this purpose, we utilized the third dataset (dataset "Goals") and teleoperated the robot in simulation to reach a bottle positioned on a table at various locations. We then tested the approach by reaching the same bottle but at different positions. As one would expect, the prediction is less accurate compared to the previous datasets where the goal position remains constant. However, the error decreases to approximately 1cm after observing half of the motion (Fig. 5). When teleoperating the robot with a mean delay of 1.5s, the average tracking error on the hand position is 4cm (Fig. 7b), which is approximately a centimeter higher than the error with a 2-second delay in datasets where the bottle remains in the same position for both training and testing. The operator found it challenging to teleoperate the robot with such compensation errors. However, the approach can still be used effectively with novel goals for lower delays, typically between 0.5s and 1s, where similar accuracy to the other datasets is often achieved (Fig. 7b).

V. CONCLUSION AND DISCUSSION

Whole-body teleoperation offers an intuitive and flexible approach to operate humanoid robots exploiting their entire body, as long as the operator can rely on synchronized feedback. Through our use of machine learning to anticipate operator commands, we have demonstrated the ability to compensate for delays ranging from 1 to 2 seconds, which are typically observed in round-trip communication times between Earth and space [START_REF] Panzirsch | Exploring planet geology through force-feedback telemanipulation from orbit[END_REF] and across continents on the Internet [START_REF] Høiland-Jørgensen | Measuring latency variation in the internet[END_REF].

While we utilized ProMPs as our chosen method for predicting future motions, other data-driven techniques for trajectory or time-series prediction, such as LSTM [START_REF] Zhao | Collaborative human-robot motion generation using LSTM-RNN[END_REF], [START_REF] Bütepage | Anticipating many futures: Online human motion prediction and generation for human-robot interaction[END_REF], could also be employed. However, these alternatives may require more training data and could potentially result in less smooth movements. In essence, the concept of prescient teleoperation can be implemented using any predictor, including neural networks, and the system's performance will improve with more accurate and advanced predictors.

All the experiments described in this study were conducted by an experienced user who is familiar with the teleoperation system and iCub. While novice users may not possess the same level of proficiency with the proposed system, it is unlikely that they would be entrusted with operating an expensive humanoid robot in a high-stakes mission, such as intervention in a damaged chemical plant or a remote lunar base. Just as drone pilots undergo rigorous training before their first mission, we expect that future humanoid operators will undergo extensive training as well. For this reason, in this work, we did not compare novice and expert user performance and we did not conduct a user study on usability in general. In future work, we will conduct user studies to examine the impact of prediction and delay compensation on human cognition, behavior, and performance, to explore the requirements and limits of how experienced users can effectively utilize a prescient teleoperation system in realworld scenarios.

SUPPLEMENTARY MATERIAL

Supplementary Material are available online at https: //hal.science/hal-04166800/document. They include more experiments and details about the methods.

Accepted at IEEE HUMANOIDS 2023

Luigi Penco 1 , Jean-Baptiste Mouret 2 and Serena Ivaldi 2 1 Luigi Penco is with the Florida Institute for Human and Machine Cognition. lpenco@ihmc.org 2 Jean-Baptiste Mouret and Serena Ivaldi are with Inria Nancy -Grand Est, CNRS and Université of Lorraine.

{jean-baptiste.mouret,serena.ivaldi}@inria.fr Overall, our prescient whole-body teleoperation system relies on the following components (Fig. 2):

• a whole-body controller based on quadratic optimization; • a dataset of whole-body trajectories retargeted from human motions; • a set of ProMPs that can predict future trajectories given observations; • a computation of the round-trip delay to select the appropriate commands from the prediction, so that the robot anticipates both the operator-to-robot and the robot-to-operator delays; • a blending to keep the trajectory smooth, at the start of a trajectory or in case of changes of delays; • a video streaming system that uses a jitter buffer to cope with the stochastic part of the backward delay.

APPENDIX I HUMANOID ROBOT AND WHOLE-BODY CONTROLLER

A. The iCub humanoid robot iCub [START_REF] Natale | iCub: The not-yet-finished story of building a robot child[END_REF] is a research-grade open-source humanoid robot designed by the Italian Institute of Technology (IIT) to experiment with embodied artificial intelligence. It measures 104 cm in height and weighs 22 kg, which roughly corresponds to the body dimensions of a five-year-old child. iCub has 53 actuated degrees of freedom: 7 in each arm, 9 in each hand (3 for the thumb, 2 for the index, 2 for the middle finger, 1 for the coupled ring and little finger, 1 for the adduction/abduction), 6 in the head (3 for the neck and 3 for the cameras), 3 in the torso/waist, 6 in each leg. In this work, we do not use the fingers of the hands and we do not move the eyes, therefore we control 32 degrees of freedom. The head has stereo cameras in a swivel mounting in the corresponding location of the human eye sockets. iCub is also equipped with six 6-axial force/torque (F/T) sensors in the upper arms, legs and feet, an IMU in the head, and a distributed tactile skin.

B. Whole-body controller

The whole-body motion of the robot is defined by the following trajectories: center of mass ground projection, waist height, hands positions, arms postures, neck posture, torso posture, which are either given by the delayed retargeted human motion, or generated by the delay compensation algorithm during the execution of the main task. Each sample of each of these trajectories represents a control reference ŷ. Given ŷ, the robot commands q are generated by solving the redundant inverse kinematics, which can be formulated as a constrained quadratic programming problem with equality and inequality constraints [START_REF] Penco | Learning robust task priorities and gains for control of redundant robots[END_REF], [START_REF] Escande | Hierarchical quadratic programming: Fast online humanoid-robot motion generation[END_REF]:

arg min q i w i f i + j w j g j + C q f i = ||J i q -ẋi || 2 g j = || qj -qr j || 2 subject to J q = ẋ A q ≤ b (S1)
The cost function consists of terms f i with relative weight w i concerning the pose of a specific body link i, where J i is the Jacobian matrix for body link i and ẋi = ẏi are the reference velocities for body link i. Additionally terms g j with relative weight w j concern the posture of certain joints j, where qr j = ẏj are the reference joint velocities for joints j. C q is a regularization term used to get a unique solution and avoid singularities, where C is a linear cost vector.

In our implementation, we considered in the terms f i the hand positions with w i = 1 and the waist height with w i = 0.65. Instead, the terms g j include the head posture with w j = 1 and the torso posture with w j = 0.72, the elbow and wrist postures with w j = 0.11. We computed optimal priorities with a multi-objective stochastic optimization that was run in simulation [START_REF] Penco | Learning robust task priorities and gains for control of redundant robots[END_REF]. More details about the whole-body controller can be found in [START_REF] Penco | Learning robust task priorities and gains for control of redundant robots[END_REF].

The equality constraints correspond to the highest priority task, which should be solved exactly. In our implementation, these include the center of mass x position and the feet poses. The inequality constraints contain the robot joint velocity bounds and zero moment point bounds, which is constrained to stay inside the support polygon.

Our controller is based on the OpenSOT framework [START_REF] Rocchi | Opensot: a whole-body control library for the compliant humanoid robot coman[END_REF] and the qpOASES quadratic programming solver [START_REF] Ferreau | qpOASES: A parametric active-set algorithm for quadratic programming[END_REF].

This controller is run at 100 Hz, which is also the frequency of the motor commands.

C. Motion retargeting

The captured human information cannot be directly used as a reference for the humanoid, due to differences in kinematics (e.g. joint limits, body dimensions) and dynamics (e.g. mass distribution) between the human and the robot. Hence, motion retargeting is employed to map the human information into feasible reference trajectories for the robot.

For transferring the translational movements of the endeffectors we used a fixed scaling factor (0.4). For transferring postures, the joint angles of the human joints are manually identified and mapped to the corresponding joints of the robot [START_REF] Penco | Robust real-time whole-body motion retargeting from human to humanoid[END_REF]. The instantaneous reference value of the robot is then computed as:

∆q i R = q 0 R + (q i H -q 0 H ) (S2)
where q is the vector of current joint positions, ∆q is the vector of joint variations with respect to the initial posture, the indices 0 and i refer to measurements at an initial time and at time i, and the subindices H and R indicate measurements on human and robot, respectively. The same applies to the Cartesian positions of the end-effectors.

For the center of mass, the normalized offset-based reconstruction is used [START_REF] Penco | Robust real-time whole-body motion retargeting from human to humanoid[END_REF]. We consider the ground projection of the human center of mass p g com . Its position with respect to the left foot is projected onto the line connecting the two feet. The result is then normalized to obtain an offset o ∈ [0, 1] o = (p g com -p g lF oot ) • (p g rF oot -p g lF oot ) || p g rF oot -p g lF oot || 2 where p g lF oot and p g rF oot are the ground projections of the left and right foot respectively. When the human is in a symmetric pose, the offset o has a value around 0.5 and when the human stands on a single foot, it is either 0 (left foot) or 1 (right foot). The robot center of mass ground projection is then reconstructed on the line connecting its feet by means of this offset value. To also retarget changes of the center of mass that are not on the line connecting the feet, we can apply the same concept while considering the maximum backward and forward center of mass displacement in the orthogonal direction of the line connecting the feet as done in [START_REF] Penco | Robust real-time whole-body motion retargeting from human to humanoid[END_REF].

APPENDIX II DATASETS

To train our method, we teleoperated the robot in an ideal network without any delay and recorded the corresponding robot motion. Every demonstration contains several Cartesian and postural trajectories that determine the whole-body motion (Fig. S2): the center of mass ground projection, the waist height, the hand positions, the arms posture (shoulder rotation, elbow flexion, forearm rotation), the neck posture (flexion and rotation) and the torso posture (flexion, rotation and abduction). We record the retargeted trajectories, that is the reference trajectories for the whole-body controller of the robot.

We used three different datasets (Table I), each one divided into a training set and a test set. The first dataset (Dataset Multiple Tasks) is designed to test how well the robot recognizes tasks and deals with the intrinsic variability of the operator's movements. This is the dataset used to perform the experiments on the real robot. The second one (Dataset Obstacles) is designed to evaluate the approach with unexpected obstacles. The third dataset (Dataset Goals) is designed to evaluate the approach with novel goal positions.

The datasets are available online at https://doi. org/10.5281/zenodo.5913573.

A. Dataset Multiple Tasks

This dataset covers two scenarios: reaching a bottle with the right hand (Fig. S1 and handling a box (Fig. S2).

The bottle task consists of demonstrations of 2 distinct whole-body reaching primitives: one primitive is for reaching the bottle on the table, the other one is for reaching the bottle on the top of the box. For each primitive, we recorded 6 repetitions of the task for training, for a total of 12 training whole-body demonstrations with an average duration of 6.1s. Every demonstration provided by the human operator is different, since it is not possible to exactly reproduce the same whole-body movement twice; to further increase the variance of the demonstrated movements, in 3 repetitions out of the 6, an obstacle was placed in between the robot and the bottle. To assess the quality of the predictions, 10 different testing repetitions were recorded for each of the two primitives; 5 with the obstacle in between the robot and the bottle, and 5 without any obstacle, for a total of 20 motions. In this dataset, the obstacles are at the same positions in both the training set and the testing set (see the dataset "Obstacles" below).

The second scenario consists of demonstrations of 7 distinct whole-body box handling primitives: 3 for picking up the box -from a low position, from a mid-height and from the table; 4 for placing the box at a specific location -on the floor, on the table, inside a container, or in a person's hands. For each primitive, we recorded 6 different repetitions for training, for a total of 42 training whole-body demonstrations, with an average duration of 7.2 s for the pick-up motions and of 5.8 s for the box-placing motions. For the test set, 3 new different repetitions of the 7 motions were recorded, for a total of 21 testing motions.

B. Dataset Obstacles

The training set is composed of 6 demonstrations of bottle reaching motions with 3 different locations of an obstacle (Fig. S3): 2 repetitions without obstacles, 2 with an obstacle in between the robot and the bottle, and 2 with a different obstacle. The average duration of the demonstrations is 6.9s. The test set consists of motions for the same task but with obstacles at different locations (Fig. S3b): 3 repetitions for each of the 3 distinct scenarios with different obstacles.

C. Dataset Goals

The training set is composed of 7 demonstrations of bottle reaching motions (Fig. S4), with the goal located in 7 different positions. The average duration of the demonstrations is 6.1s. The test set consists of motions reaching the same bottle but at 10 different locations (Fig. S4b).

APPENDIX III DELAYED TELEOPERATION A. Hardware and communication setup

The human motion is captured by the Xsens MVN system [START_REF] Roetenberg | Xsens mvn: Full 6dof human motion tracking using miniature inertial sensors[END_REF], which considers a human model comprising 66 degrees of freedom (corresponding to 22 spherical joints). The user teleoperating the robot is equipped with the wearable motion capture suit MVN Link, consisting of a Lycra suit with 17 inertial measurement units (IMUs) and a wireless data link transmitting at a frequency of 240Hz. Our compensation method receives the delayed data from the motion capture system at 100Hz and transmits to the robot controller at 50Hz.

The user teleoperating the robot is also equipped with a VR Oculus headset. Through the headset, the operator can visualize the delayed images from both an external camera at the robot side, as a third-person view of the teleoperated robot, and the robot cameras, for a first-person immersive experience. The communication protocol employed by the network is UDP with a bandwidth of 3Mbps. The forward delay is artificially generated, using the standard way to delay packets in Linux with the "netem" scheduling policy, which is based on the "iproute2" set of tools [START_REF] Foundation | Iproute2[END_REF].

The images from the cameras at the robot side are delayed by using the open-source application Kinovea [START_REF] Kinovea | A microscope for your videos[END_REF], which allows the user to set a constant delay for the streaming of the video. The resulting delayed streaming is projected onto the VR headset through the application Virtual Desktop [START_REF]Virtual Desktop. Your PC in VR[END_REF].

B. Delay generation

The round-trip delay τ (t) at time-step t is divided into a forward τ f (t) (operator to robot) and a backward delay τ b (t) (robot to operator):

τ (t) = τ f (t) + τ b (t)
Each one-way delay is composed of two parts, one deterministic and one stochastic [START_REF] Gurewitz | One-way delay estimation using network-wide measurements[END_REF]. The deterministic component corresponds to the transmission and propagation delays. It does not change when all the transmitted packets have the same format and size and use the same physical link [START_REF] Gurewitz | One-way delay estimation using network-wide measurements[END_REF]. The stochastic part, often called the "jitter", is mainly associated with the queueing delay [START_REF] Garetto | Modeling, simulation and measurements of queuing delay under long-tail internet traffic[END_REF] and varies from packet to packet, even when the packets have the same size and format.

If we denote by τ f,D the deterministic part of τ f and by τ f,S the stochastic part:

τ f (t) = τ f,D + τ f,S (S3) τ b (t) = τ b,D + τ b,S (S4)
In our experiments, we generate a forward delay that follows a normal distribution:

τ f (t) = τ f,D + N 0, σ τ f
For both simulations and real experiments, we set the deterministic part of the forward delay τ f,D between 100ms to 1s (depending on the experiment, see the captions of each figure) and the jitter σ τ f to 2 15 τ f,D , which is in line with what the jitter usually represents [START_REF] Alharbi | A comparison of voip performance evaluation on different environments over vpn multipoint network[END_REF]. τ f,D ∈ [100, 1000] (depending on the experiment) (S5)

σ τ f = 2 15 τ f,D (S6)
For the stochastic part of the backward delay, we assume that the robot uses a video streaming software that implements a jitter buffer (sections "Delay estimation by the robot" and "Jitter buffer"), which is the case of all the modern video streaming systems. If we set the jitter buffer length to d, then this buffer adds an additional deterministic delay of d: all the packets that arrive before d seconds are re-ordered and packets that are not arrived are dropped (dropping a few frames has little consequence for a state-ofthe-art video codec). As a consequence, from the operator's perspective, the backward delay is constant. This is why, for both simulations and real experiments, we generate a constant backward delay:

τ b (t) = τ b,D (t) (S7)
For simplicity, we set τ b (t) = τ f,D in all our experiments, but nothing in our system requires these two delays to be equal; in particular, it would be equivalent to set τ b (t) = τ b,D (t) + K with K any constant delay caused by the jitter buffer.

C. Delay estimation by the robot

We assume that the clocks of the robot and of the computer of the operator are synchronized. In our real experiments, we synchronize the clock using the NTP system [START_REF] Mills | Network time protocol version 4: Protocol and algorithms specification[END_REF], which is the standard Unix protocol for time synchronization. The two clocks typically differ from less than 1ms on a local network [START_REF] Veitch | Robust synchronization of software clocks across the internet[END_REF]. Alternatively, GPS receivers can provide a highly accurate and absolute clock reference with an error of a few nano-seconds [START_REF] Veitch | Robust synchronization of software clocks across the internet[END_REF].

We add a time-stamp to each of the packets sent by the operator, which makes it possible for the robot to compute the forward delay τ f (t) (this includes both the deterministic and stochastic part) when a packet is received at time t :

τ f (t) = clock robot (t) -timestamp operator (t) (S8)
Please note that this does not assume that the delay follows a normal distribution. If necessary, the robot can re-order the packets according to the time-stamps to condition the trajectory predictions.

While the robot needs an estimate of the backward delay, it cannot know in advance the stochastic part before sending it. Our approach is to rely on the jitter buffer (section "Jitter buffer") implemented in the video streaming system to make the backward delay deterministic: if we set the jitter buffer length to d s on the operator receiving side, then we know that the delay caused by the jitter will be exactly equal to d.

In our experiment, we therefore assume that the backward delay is known and constant (100 ms, 250ms, etc. depending on the experiments). To keep the implementation simple and easy to reproduce, we assumed that the deterministic backward delay was always equal to the deterministic forward delay (a reasonable assumption given that the same link is used for both directions) and that the stochastic part is negligible (because we chose to not add any jitter on the backward delay in the robot experiment, see the Jitter buffer section below):

τ b (t) = τ f (t) = τ f,D (t) (S9) τ b,S (t) = 0 (S10)
In a deployed setup, the robot would benefit from a better estimate of the average backward delay (the deterministic part) and the length of the jitter buffer. To do so, most video streaming systems use the RTCP protocol [START_REF] Schulzrinne | RTP: A transport protocol for real-time applications[END_REF] to get out-ofband statistics and control information for a video streaming session that follows the RTP protocol [START_REF] Ott | Extended RTP profile for real-time transport control protocol (RTCP)-based feedback (RTP/AVPF)[END_REF]. This data would need to be sent periodically from the operator's computer to the robot so that the robot knows both d and τ b,D (which are not expected to change at high speed). Alternatively, a custom system can be designed by using time-stamps on the image packets to gather statistics about the delay.

D. Jitter buffer

The jitter buffer is the component of a video streaming system [START_REF] Oklander | Jitter buffer analysis[END_REF], [START_REF] Claypool | The effects of jitter on the peceptual quality of video[END_REF] that re-orders packets if they are delayed by less than the length of the buffer and drops packets that are too late. Much work has been dedicated to adapt its length automatically [START_REF] Oklander | Jitter buffer analysis[END_REF]: if it is too small, then the video is jittery, but if it is too large, delays are added, which is detrimental to the user (in particular during video calls). In our system, we assume that the length is fixed and known to the robot, for simplicity.

We did not implement a jitter buffer because we wanted to avoid modifying the video streaming system: reordering or dropping packets would require a considerable expertise in the internals of both the encodings (e.g., MP4) and the video streaming software. Instead, we consider that video streaming with delay and jitter is a problem that is well solved by all the current video streaming systems, as experienced by the million of users who watch videos online on smartphones with non-ideal connections.

To summarize, from the point of view of our system, the jitter buffer results in an additional but deterministic delay. However, we assume that the robot knows the value of this additional delay as well as the deterministic part of the delay.

APPENDIX IV PROBABILISTC MOTION PRIMITIVES (PROMPS) FOR PRESCIENT TELEOPERATION

A. Definition of Probabilist Motion Primitives

A ProMP [START_REF] Paraschos | Using probabilistic movement primitives in robotics[END_REF] is a probabilistic model for representing a trajectory distribution. The movement primitive representation models the time-varying mean and variance of the trajectories and is based on basis functions. A single trajectory is represented by a weight vector w ∈ R m . The probability of observing a trajectory y given the underlying weight vector is given as a linear basis function model

ξ t = Φ t w + ϵ ξ , (S11)
p(y|w) = t N (ξ t |Φ t w, Σ ξ ), (S12)
where Σ ξ is the observation noise variance, ϵ ξ ∼ N (0, Σ ξ ) is the trajectory noise. The matrix Φ t ∈ R m corresponds to the m normalized radial basis functions evaluated at time t, with

ϕ c (t) = exp -1 2 t -c-1 m-1 2 m c=1 exp -1 2 t -c-1 m-1 2 , (S13)
where the variable c ∈ {1, 2, ..., m} specifies the center of each basis function. The distribution p(w; θ) over the weight vector w is Gaussian, with parameters θ = {µ w , Σ w } specifying the mean and the variance of w. The trajectory distribution p(y; θ) is obtained by marginalizing out the weight vector w, i.e.

p(y, θ) = p(y|w)p(w; θ)dw.

(S14)

B. Learning ProMPs from demonstrations

The demonstrations are trajectories retargeted from the human. These are recorded in an "offline phase", while the user teleoperates the robot within a local network (approximately without delays) to perform a variety of tasks. Since the duration of each recorded trajectory may be different, a phase variable υ ∈ [0, 1] is introduced to decouple the movement from the time signal, obtaining a common representation in terms of primitives that is duration independent [START_REF] Dermy | Prediction of intention during interaction with iCub with probabilistic movement primitives[END_REF]. For each task, the modulated trajectories ξ i (υ) are then used to learn a ProMP. The parameters θ = {µ w , Σ w } of the ProMP are estimated by using a simple maximum likelihood estimation algorithm. For each demonstration i, we compute the weights with linear ridge regression, i.e.

w i = Φ ⊤ υ Φ υ + λ -1 Φ ⊤ υ ξ i (υ), (S15)
where the ridge factor λ is generally set to a very small value, typically λ = 10 -12 as in our case, as larger values degrade the estimation of the trajectory distribution. Assuming Normal distributions p(w) ∼ N (µ w , Σ w ), the mean µ w and covariance Σ w can be computed from the samples w i :

µ w = 1 D D i=1 w i , Σ w = 1 D D i=1 (w i -µ w )(w i -µ w ) ⊤ , ( S16
) where D is the number of demonstrations. Since a wholebody trajectory is represented by N trajectories (x, y, z position of the center of mass, of the hands, etc.), we learn a ProMP for each of the N trajectories. These ProMPs all together encode the same task k.

C. Recognizing the category of motion

Each learned k-th set of N ProMPs encodes different whole-body trajectories to accomplish a given task like picking up a box or squatting. To recognize to which set k the current teleoperated motion belongs to, we can minimize the distance between the first n obs delayed observations and the mean of the N ProMPs of a group k, as done in [START_REF] Dermy | Prediction of intention during interaction with iCub with probabilistic movement primitives[END_REF]:

k = arg min k∈[1:K] N n=1 t∈T obs |y n (t-τ f (t))-Φ n,t-τ f (t) µ n,w k | , (S17)
where K is the number of tasks in the dataset and T obs = {t 1 , ..., t n obs } is the set of timesteps associated to the n obs early observations. While computing k, the ProMPs are modulated to have a duration equal to the mean duration of the demonstrations. The recognition (S17) starts whenever a motion is detected, i.e. the derivative of the observed endeffector trajectories exceeds a given threshold. The distance in (S17) is continuously computed after having identified the current motion. In this way, we can verify that the observations do not diverge from the demonstrations (exceed by a given threshold the demonstrated variance), in which case a gradual switch to delayed teleoperation is performed.

D. Time-modulation of the ProMPs

During motion recognition, we assumed that the duration of the observed trajectories is equal to the mean duration of the demonstrated trajectories, which might not be true. To match as closely as possible the exact speed at which the movement is being executed by the human operator, we have to estimate the actual trajectory duration. More specifically, we want to find the time modulation α, that maps the actual duration of a given (observed) trajectory to the mean duration of the associated demonstrated trajectories.

During the learning step, for each k-th set of ProMPs we record the set of α parameters associated to the demonstrations: S αk = {α 1 , ..., α n }. Then, from this set, we can estimate which α better fits the current movement speed. We considered the best α to be the one that minimizes the difference between the observed trajectory and the predicted trajectory for the first n obs datapoints:

α = arg min α∈S α k t∈T obs |y(t -τ f (t)) -Φ α(t-τ f (t)) µ w k | . (S18)

E. Updating the posterior distribution of the ProMPs

Once the k-th most likely set of ProMPs and their duration has been identified, we continuously update their posterior distribution to take into account the observations that arrive at the robot side. Each ProMP has to be conditioned to reach a certain observed state y * t . The conditioning for a given observation x * t = {y * t , Σ * y } (with Σ * y being the accuracy of the desired observation) is performed by applying Bayes theorem

p(w k|x * t ) ∝ N (y * t |Φ αt w k, Σ * y )p(w k). (S19)
The conditional distribution of p(w k|x * t ) is Gaussian with mean and variance

μw k = µ wk + L y * t -Φ ⊤ αt µ wk , (S20) Σw k = Σ wk -LΦ ⊤ αt Σ wk , (S21)
where

L = Σ w k Φ αt Σ * y + Φ ⊤ αt Σ w k Φ αt -1 . (S22)
Given the delay in the transmitted data τ f (t), we can compute the timestep t * at which the ProMP has to be conditioned to a certain observation x * t :

t * = t -τ f (t) -t 0 . (S23)
where t 0 is the starting time of the current motion.

F. Motion anticipation

The references for the robot controller are generated at each time based on the updated ProMPs' mean trajectories μw k . For a given ProMP, the sample μw k (t * ) corresponding to the last conditioned observation, is a reconstruction of the past retargeted human input

μw k (t * ) = ŷ(t -τ f (t)). (S24)
The sample μw (t * + τ f (t)) is an estimate of the current retargeted human input

μw k (t * + τ f (t)) = ŷ(t), (S25)
and can be used to synchronize the human movement with that of the robot, compensating only the forward delay (see Fig. 2). In our case, we want to synchronize the motion of the human operator with what is seen from the robot side, thus compensating for both the forward and backward delays.

To do so, we select the sample μw (t * + τ f (t) + τb (t)) as a control reference, which corresponds to a future prediction of the retargeted human movements:

μw k (t * + τ f (t) + τb (t)) = ŷ(t + τb (t)). (S26)
The remaining samples [ μw k (t * +τ f (t)+τ b (t)+1), μw k (t * + τ f (t) + τb (t) + 2), ...] are also given to the controller. They are used as control references if a new reference cannot be computed in the next control step due to packet losses or jitter.

After generating a first prediction, the transition from delayed to predicted references can be discontinuous (Fig. ??). To smoothen the transition, a policy blending arbitrates the delayed received references y(t -τ f (t)) and the predicted ones ŷ(t+τ b (t)|t-τ f (t)), determining the adjusted reference (Fig. ??):

ŷ′ (t + τb (t)|t -τ f ) = (1 -β)y d + βy p , (S27)
where

y d = y(t -τ f (t)), y p = ŷ(t + τb (t)|t -τ f (t)), β = {β 0 , ..., β n , ..., β N } ⊤ with β n ∈ ]0, 1[ β n = 1 1 + e -12( i ∆yn -1 2 ) , (S28)
i = {0, 1, ..., ∆y n } and ∆y n is the initial difference between a delayed reference and the corresponding prediction expressed in mm (for Cartesian trajectories) or deg × 10 -1 (for postural trajectories).

G. Teleoperation under unexpected circumstances

If something unexpected happens, or if the operator suddenly changes their mind about what to do and the ongoing motion cannot be completed or is significantly altered, the prescient teleoperation is transitioned back to the delayed teleoperation. The transition from predicted to delayed references is triggered whenever the distance between the current observation and learned mean exceeds a given threshold ∆ σ , which in the experiments was fixed equal to the learned variance plus 5cm and considered for each of the x, y, z trajectories of the hands. Since the transition can be discontinuous, a policy blending arbitrates the last predicted sample ŷ(t last + τb (t last )|t last -τ f (t last )) and the delayed received references y(t -τ f (t)):

ŷ′ (t + τb (t)|t -τ f ) = (1 -β)Y p + βy d , (S29)
where y d = y(t -τ f (t)), Y p = ŷ(t last + τb (t last )|t lastτ f (t last )), β = {β 0 , ..., β n , ..., β N } ⊤ with β n defined as in (S28).

H. Comparison between ProMPs and LSTM

We implemented a LSTM (Long Short Term Memory network) [START_REF] Hochreiter | Long short-term memory[END_REF] using the Pytorch library [START_REF] Paszke | Pytorch: An imperative style, high-performance deep learning library[END_REF]. This LSTM predicts the next k time-steps given the previous k time-steps. To keep the network small, the trajectories are sub-sampled from 100Hz to 10Hz, so that 10 time-steps correspond to 1 second of motion. For instance, to predict the next 2 seconds of motions, the LSTM has 20 inputs and 20 outputs. The network has 10 hidden nodes (preliminary experiments showed that increasing this number did not have any qualitative effect on the predictions). It is trained with the Adam optimizer using mini-batches of size 16, for 100 epochs (our experiments show that this is enough to reach the minimum loss), and the Mean Squared loss function. To account for the stochasticity of the initialization and the stochastic gradient descent, 10 LSTMs are trained with different seeds.

Like with ProMPs, one LSTM is trained for each dimension of the prediction (e.g., a LSTM for the x-coordinate of the left hand, another one for the y-coordinate, etc.); however, contrary to ProMPs, the whole "Multi tasks" training set is used to train each LSTM. A different set of LSTMs is trained for 1-second prediction (Fig. S6) and 2-second prediction (Fig. S7). The LSTMs that were trained for 2 seconds could have been used to predict 1-second ahead, but at the risk of being lower-performing than a network specialized in 1second predictions.

For this comparison, the ProMPs are conditioned at each time-step with all the points since the beginning of the trajectory, and the ProMP is queried to predict the value at t + 2 seconds(or t + 1s). As an additional baseline, the "delayed" trajectory is the operator's trajectory shifted in time by either one or two seconds, which corresponds to what the robot would do if there were no compensation.

For a particular trajectory T and a particular dimension D (e.g., x-position of the hand), the prediction error is the sum of the differences between the prediction and the recorded trajectory:

e T,D = 1 N i=N i=1 x (pred) i -x (gt) i (S30)
where N is the number of points in the trajectory, x For each of the 6 demonstrations, the motion of the operator is first "retargeted" to the robot using the whole-body controller (ignoring delays). The trajectories of each body/joint of the robot is then recorded. From this set of demonstrations (thin lines), a ProMP is fitted for each trajectory; this ProMP is represented here as a thick line (the mean) and a light zone (the standard deviation). The computed mean is a smooth trajectory that averages all the demonstrations and the standard deviation captures the variability of the demonstrations. b. Test trajectories. The test trajectories are different and additional repetitions of the training motions. For the tasks of picking up a box 3 different repetitions were recorded. On the top row, there is an unexpected obstacle (a small box) to avoid and the operator approaches the object by the right; on the second row, the obstacle in front of the robot is different; on the bottom row, there is the same obstacle from the top row with in addition a large obstacle on the right of the robot, which forces the operator to move the hand in between the two obstacles. These situations were not in the training set. After the initial recognition period, our approach makes the robot follow the specific way the human is performing the task despite the delay, and even if the robot is asked to perform the task in a way that has not been demonstrated before (but included in the distribution of the demonstrations). This is not the same as following the mean of previously demonstrated motions (here, the dashed line) or letting the robot replicate previously demonstrated motions. The non-delayed trajectories are some of the test trajectories from panel b, where the robot has to reach the bottle on the table in the presence of different obstacles that were not considered during the training.

  Fig. 1.Concept of prescient teleoperation. The robot executes the commands before it receives them thanks to a data-driven predictor. In this example, the robot drops a box onto a table before the human commands it to open its arms. When the predictions are accurate, by anticipating both the forward delay τ f and the backward delay τ b , the visual feedback appears to be synchronized with the operator. The robot sends two video streams, which are both displayed in the virtual reality headset: an internal view, from the head of the robot, and an external view. Video: https://youtu.be/ HnQw3ZZ3T8.

Fig. 3 .

 3 Fig.3. Round-trip delay compensation. Given the past delayed observations, the robot produces at each time a prediction (μw k ) of the current command. To compensate for the delays, the right sample (orange dot) from the prediction has to be selected as a reference for the robot controller at each time. (A) The sample corresponding to the last received observation is an estimate of the delayed command. (B) By knowing the forward delay τ f (t), a sample from the prediction can be selected to achieve a synchronization between the operator's movement and the robot movements. (C) By knowing the forward τ f (t) and backward delay τ b (t), the robot can select the right sample from its prediction so as to achieve a synchronization between the operator's movement and the feedback from the robot side. (D) A policy blending arbitrates the delayed observations with the samples selected from the prediction, which guarantees a smooth transition from delayed to compensated teleoperation.

Fig. 4 .

 4 Fig. 4. Tasks performed by the robot during the experiments (dataset "Multiple tasks"). In the first scenario (4 left images), the robot is teleoperated to reach a bottle at different locations and in different ways; in the second scenario (2 right images), the robot has to pick up a box from different locations and then placing it in another location.

  RMS error right hand position [cm]prediction error on trajectories (Dataset Goals) prediction error on trajectories (Dataset Obstacles) prediction error on trajectories (Dataset Multiple Tasks*) the task "Bottle on table"

Fig. 6 .

 6 Fig.6. Teleoperation with compensation of a mean round-trip delay of 1.5s. The robot is picking up a box in front of it at mid-height. The forward delay follows a normal distribution with 750ms as mean and 100ms as standard deviation, while the backward delay is 750ms (top). After the synchronization time (first 2 seconds), the compensated trajectory anticipates the delayed trajectory by τ b + τ f to take into account both the delay from the operator to the robot and from the robot to the operator, this is why the robot anticipates more than the non-delayed trajectory. Once we shift all the trajectories to compare them ("overlay"), the commands (delayed trajectories) and the compensated trajectories align very well, which shows that the robot executes the right trajectory but shifted in time to anticipate the motion.

8 *Fig. 7 .

 87 Fig.7. Scalability of the delay compensation with respect to increasing time delays. a. Tracking error of the compensated trajectories for the right-hand position with respect to the non-delayed ones compared to the tracking error of the corresponding non-compensated (delayed) trajectories with respect to the same non-delayed ones. The tracking error of the compensated trajectories is considered both including the transition from the delayed phase to the synchronization phase (Fig.3), which adds a non-compensable error, and without transition. The RMS of the error is computed from the 10 testing motions of the task of reaching the bottle on the table from dataset Multiple Tasks and its mean value is reported as a bold line. The transparent region around it, represents the maximum and minimum of the error. The tracking error is computed as the Euclidean distance between the evaluated trajectory and the reference trajectory. The compensated trajectories are temporally realigned with the non-delayed trajectories for computing the error, which is evaluated with different round-trip delays τ (t): 0s, around 0.5s, 1s, 1.5s, 2s, 3s and 4s. The time-varying forward delay follows a normal distribution with mean τ f = τ /2 and standard deviation equal to2 15 τ f . The backward delay is set equal to τ f . b. Tracking error of the compensated trajectories for the right-hand position compared with the non-delayed ones (after the transition phase) for all the datasets.

  (pred) i the prediction and x (gt) i the point of the trajectory performed by the operator at time-step i (unknown to the robot at this time-step).

  position [m] head joint angles [rad]

  Fig. S1. Dataset "Multiple Tasks", scenario reaching a bottle on the table. a. Training trajectories and learned ProMPs. The whole-body motion of the teleoperated robot is obtained by following the reference trajectories retargeted from the human. We learned a ProMP for each of these trajectories, given 6 demonstrations in a local network without any delay (3 with an obstacle in between the robot and the bottle, and 3 without). b. Test trajectories. The test trajectories are different and additional repetitions of the training motions. For the task of reaching a bottle 10 different repetitions were recorded (5 with an obstacle in between the robot and the bottle, and 5 without).

  Fig. S2. Dataset "Multiple Tasks", scenario picking up a box at a low position. a. Training trajectories and learned ProMPs.For each of the 6 demonstrations, the motion of the operator is first "retargeted" to the robot using the whole-body controller (ignoring delays). The trajectories of each body/joint of the robot is then recorded. From this set of demonstrations (thin lines), a ProMP is fitted for each trajectory; this ProMP is represented here as a thick line (the mean) and a light zone (the standard deviation). The computed mean is a smooth trajectory that averages all the demonstrations and the standard deviation captures the variability of the demonstrations. b. Test trajectories. The test trajectories are different and additional repetitions of the training motions. For the tasks of picking up a box 3 different repetitions were recorded.

2 *

 2 Fig. S3. Dataset "Obstacles": Conforming the teleoperation to the intended motion. a. Training trajectories and learned ProMPs. The most relevant learned ProMPs and the associated demonstrations are reported. The 6 demonstrations (2 without obstacles, 2 with an obstacle in between the robot and the bottle and other 2 with a different obstacle) have been recorded while teleoperating the robot in simulation, in a local network without any delay. b. Test trajectories. The 9 test trajectories are different from those used for training and consist of 3 repetitions of the bottle reaching motion for each of the 3 distinct simulated scenarios with different obstacles, illustrated on the left. c. Results: comparison between the compensated trajectoryand the ideal (non-delayed) trajectory with a mean round-trip delay of 1.5s. On the top row, there is an unexpected obstacle (a small box) to avoid and the operator approaches the object by the right; on the second row, the obstacle in front of the robot is different; on the bottom row, there is the same obstacle from the top row with in addition a large obstacle on the right of the robot, which forces the operator to move the hand in between the two obstacles. These situations were not in the training set. After the initial recognition period, our approach makes the robot follow the specific way the human is performing the task despite the delay, and even if the robot is asked to perform the task in a way that has not been demonstrated before (but included in the distribution of the demonstrations). This is not the same as following the mean of previously demonstrated motions (here, the dashed line) or letting the robot replicate previously demonstrated motions. The non-delayed trajectories are some of the test trajectories from panel b, where the robot has to reach the bottle on the table in the presence of different obstacles that were not considered during the training.

  Fig. S4. Dataset "Goals": Conforming the teleoperation to new goals. a. Training trajectories and learned ProMPs. The most relevant learned ProMPs and the associated demonstrations are reported. The 7 demonstrations have been recorded while teleoperating the robot in simulation, in a local network without any delay. The different bottle locations are illustrated on the left. b. Test trajectories. The 10 test trajectories are different from those used for training. The different bottle locations are illustrated on the left. c. Results: comparison between the compensated trajectory and the ideal (non-delayed) trajectory with a mean round-trip delay of 1.5s. The bottles are located on the table in different positions that were not in the training set (but included in the distribution of the demonstrations). The non-delayed trajectories are some of the test trajectories from panel b, where the robot has to reach the bottle on the table in the presence of different obstacles that were not considered during the training.

Fig. S6 .

 S6 Fig.S6. Prediction for LSTM and ProMP, 1 second ahead. a. Prediction error, 1-s horizon. The plot shows the average difference between the point predicted 1 second ahead (100 time-steps) and the ground truth (Methods), for each degree coordinate of each hand, for each trajectory of the dataset "Multiple tasks" (Methods). The box extends from the lower to upper quartile values of the data, with a line at the median. For the LSTM, the 10 replicates of the learning process (with different seeds) are considered as independent data (i.e., the variance of the prediction error comes both from the different trajectories and the different seeds). The "Delayed" trajectory corresponds to the original trajectory delayed by 1 second, that is, to what the robot would have done without any prediction system. All comparisons are statistically significant (p < 10 -6 , Mann-Whitney U-test). b-d. Examples of predicted trajectories.

Fig. S7 .

 S7 Fig. S7. Prediction for LSTM and ProMP, 2 seconds ahead. a. Prediction error, 2-s horizon.The plot shows the average difference between the point predicted 2 seconds ahead (200 time-steps) and the ground truth (Methods), for each degree coordinate of each hand, for each trajectory of the dataset "Multiple tasks" (Methods). The box extends from the lower to upper quartile values of the data, with a line at the median. For the LSTM, the 10 replicates of the learning process (with different seeds) are considered as independent data (i.e., the variance of the prediction error comes both from the different trajectories and the different seeds). The "Delayed" trajectory corresponds to the original trajectory delayed by 2 seconds, that is, to what the robot would have done without any prediction system. All comparisons are statistically significant (p < 10 -6 , Mann-Whitney U-test). All comparisons are statistically significant (p < 10 -6 , Mann-Whitney U-test). b-d. Examples of predicted trajectories.

TABLE I

 I DATASETS USED TO TRAIN AND TEST PRESCIENT TELEOPERATION.

	Dataset Multiple Tasks
		Bottle reaching
		TOTAL	Bottle on table	Bottle on box
	#training	12	6	6
	#testing	20	10	10
		Box pick & place
		TOTAL	Picking	Placing
	#training	42	18	24
	#testing	21	9	12
	Dataset Obstacles -Bottle on table with different obstacles
	#training	6
	#testing	9
	Dataset Goals -Bottle on table at different positions
	#training	7
	#testing	10
	See Supplementary Material, Fig. S1, S2, S3 and S4 for illustrations of the datasets.

TABLE S1 PREDICTION

 S1 ERROR AFTER OBSERVING DIFFERENT PORTIONS OF THE COMMANDED TRAJECTORIES (DATASET MULTIPLE TASKS). WE EVALUATED THE DIFFERENCE BETWEEN THE ACTUAL TRAJECTORY (COMMANDS RETARGETED FROM THE OPERATOR) AND THE PREDICTED TRAJECTORY FOR THE 20 TESTING MOTIONS FROM THE BOTTLE REACHING SCENARIO (FIG. S1) AND THE 21 TESTING MOTIONS FROM THE BOX HANDLING SCENARIO (FIG. S2). TO UNDERSTAND THE INFLUENCE OF THE CONDITIONING OF THE PROMPS, WE COMPUTED THE MEAN ERROR BY FOLLOWING THE MEAN OF THE PROMP SELECTED BY HAND ('NO OBS'), AFTER THE INITIAL RECOGNITION ('RECOGNITION') THAT TAKES ABOUT 1S, AFTER A FOURTH OF THE MOTION (1/4 MOTION) AND AFTER HALF OF THE MOTION (1/2 MOTION). THANKS TO THE CONDITIONING, WHEN MORE DATA IS USED, THE PREDICTION IS MORE ACCURATE, WHICH MEANS THAT THE PREDICTION IS ADJUSTED TO SUIT THE PARTICULAR MOTIONS OF THE OPERATOR (THAT IS, THE ROBOT DOES NOT SIMPLY FOLLOW THE MEAN TRAJECTORY ONCE IT HAS RECOGNIZED IT). EXAMPLES OF PREDICTED TRAJECTORIES ARE DISPLAYED IN FIG. S1 AND FIG. S2.

			Box handling			Bottle reaching
	Trajectory		RMS error [rad]			RMS error [rad]
		no obs	recognition	1/4 motion	1/2 motion	no obs	recognition	1/4 motion	1/2 motion
	head yaw	0.112±0.049	0.080±0.028	0.045±0.012	0.012±0.009	0.083±0.038	0.040±0.015	0.023±0.011	0.010±0.008
	torso pitch	0.155±0.064	0.120±0.046	0.054±0.030	0.018±0.008	0.103±0.056	0.061±0.022	0.044±0.015	0.019±0.008
	torso roll	0.119±0.049	0.103±0.038	0.055±0.028	0.017±0.008	0.082±0.042	0.054±0.016	0.032±0.010	0.016±0.008
	torso yaw	0.168±0.053	0.136±0.049	0.079±0.032	0.049±0.019	0.088±0.046	0.065±0.039	0.049±0.023	0.033±0.018
	r. should. yaw	0.164±0.059	0.109±0.050	0.053±0.019	0.040±0.011	0.172±0.059	0.114±0.056	0.055±0.024	0.027±0.011
	r. elbow	0.169±0.072	0.146±0.038	0.097±0.032	0.033±0.010	0.220±0.083	0.097±0.032	0.065±0.017	0.034±0.011
	r. wrist pros.	0.113±0.049	0.092±0.022	0.043±0.012	0.026±0.008	0.124±0.052	0.071±0.022	0.048±0.016	0.021±0.008
			RMS error [cm]			RMS error [cm]
		no obs	recognition	1/4 motion	1/2 motion	no obs	recognition	1/4 motion	1/2 motion
	r. hand x	3.76±0.91	2.10±0.48	1.57±0.49	0.78±0.12	3.54.±0.88	1.62±0.65	0.61±0.33	0.48±0.14
	r. hand y	3.55±0.93	1.91±0.40	0.97±0.32	0.52±0.10	3.71±0.89	2.02±0.48	0.89±0.19	0.35±0.11
	r. hand z	2.98±0.91	2.34±0.83	1.22±0.27	0.66±0.19	2.71±0.80	1.99±0.79	0.77±0.29	0.50±0.13
	com x	2.40±0.76	0.98±0.26	0.57±0.21	0.23±0.14	0.78±0.53	0.39±0.22	0.29±0.12	0.12±0.10
	com y	1.12±0.55	0.58±0.26	0.29±0.18	0.20±0.13	0.80±0.44	0.52±0.29	0.29±0.12	0.11±0.10
	waist z	3.53±1.04	2.74±0.93	1.68±0.57	0.65±0.22	0.95±0.36	0.65±0.22	0.39±0.19	0.28±0.14

TABLE S2

 S2 DIFFERENCE (ROOT MEAN SQUARE ERROR) WITH THE NON-DELAYED TRAJECTORIES, FOR BOTH THE COMPENSATED AND THE NON-COMPENSATED (DELAYED) TRAJECTORIES (AVERAGE DELAY: 1.5 S) THE ERROR IS COMPUTED FOR THE 20 TESTING MOTIONS FROM THE BOTTLE REACHING SCENARIO OF THE DATASET MULTIPLE TASKS (FIG. S1), AND FOR THE 21 TESTING MOTIONS FROM THE BOX HANDLING SCENARIO OF THE DATASET MULTIPLE TASKS (FIG. S2). THE TIME-VARYING FORWARD FOLLOWS A NORMAL DISTRIBUTION WITH 750MS AS MEAN AND 100MS AS STANDARD DEVIATION. THE BACKWARD DELAY IS SET EQUAL TO 750MS.

		Box handling	Bottle reaching
		RMS error [rad]	RMS error [rad]
		compensation no compensation compensation no compensation
	head yaw	0.024±0.011	0.035±0.012	0.013±0.007	0.021±0.011
	torso pitch	0.045±0.020	0.136±0.064	0.027±0.012	0.041±0.019
	torso roll	0.022±0.011	0.089±0.038	0.015±0.008	0.020±0.010
	torso yaw	0.069±0.028	0.129±0.055	0.019±0.009	0.032±0.011
	r. shoulder yaw	0.071±0.025	0.145±0.051	0.065±0.018	0.221±0.092
	r. elbow	0.062±0.020	0.171±0.067	0.096±0.030	0.194±0.071
	r. wrist prosup.	0.025±0.007	0.077±0.033	0.054±0.012	0.091±0.041
		RMS error [cm]	RMS error [cm]
		compensation no compensation compensation no compensation
	r. hand x	1.02±0.31	2.95±1.12	1.29±0.33	4.97±1.46
	r. hand y	0.90±0.26	3.36±1.21	1.21±0.31	4.33±1.17
	r. hand z	0.96±0.30	2.96±0.75	1.11±0.25	4.15±1.13
	com x	0.90±0.13	1.24±0.36	0.33±0.07	1.01±0.20
	com y	0.79±0.11	1.06±0.39	0.24±0.06	1.01±0.32
	waist z	0.88±0.14	2.02±1.22	0.22±0.07	0.61±0.09

https://hal.science/hal-04166800/document

https://youtu.be/_HnQw3ZZ3T8

In this work, we predict the retargeted values, but we could have equivalently predicted the input value and retargeted the prediction.

*This work was supported by the European Union H2020 and HE Research and Innovation Programs under GA No. 731540, No. 101070596 (projects AnDy, euROBIN), the DGA grants "humanoïde résilient" and ATOR, and the Inria "ADT" wbCub/wbTorque. Experiments were performed in the Creativ'Lab facilities, supported by the CPER Sciarat and CyberEntreprise.

1 Luigi Penco is with the Florida Institute for Human and Machine