Paper · 2024-02-05 · cs.RO, cs.HC
Effects of Shared Control on Cognitive Load and Trust in Teleoperated Trajectory Tracking
A 24-person user study of shared control in teleoperated 3-D trajectory tracking on a robot arm, varying robot autonomy as a blend of robot and human input. More autonomy lowered self-reported workload (NASA-TLX) and raised self-reported trust (MDMT and a single trust item). Tapping and pupil measures showed no autonomy effect, and load and trust did not interact. Author-reported.
TeleoperationShared autonomyHuman-in-the-loopshared-controlteleoperationtrustcognitive-loaduser-studyhuman-robot-interaction
arXivPDFCodeMarkdown14 min read
AI-compiled by claude-haiku-5-5 on 2026-10-25, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
Picture steering a robot arm with a small haptic handle while watching a screen that shows a path the tip should follow in three dimensions. The study asked 24 people to do exactly that. Some of the time the robot quietly blends its own path into the person's handle movements, so the person is partly in charge and partly relying on the robot. The authors wanted to know how much help changes two things: how busy the person feels, and how much they trust the robot.
To measure busyness, the study used both questionnaires and a second task. While steering, people tapped a rhythm on a keyboard, and the authors also recorded eye pupil size. To measure trust, people filled in trust questionnaires after each round.
The main finding is that people felt less workload and trusted the robot more when it did more of the work. The objective measures did not show the same workload drop, and load and trust did not seem to depend on each other in a clear way. The authors read this as a reason to measure both load and trust when designing how much a robot should help.
TL;DR
- User study with N=24 on teleoperated trajectory tracking with a Franka arm, a Novint Falcon handle and a dual-task rhythm method §3 §3.5.2.
- Robot autonomy enters as a convex blend of robot and human commands, with autonomy set to two levels in the analysis §3.2 eq. 3 §4.
- Self-reported cognitive load (NASA-TLX) fell and trust (MDMT and a single trust item) rose with higher autonomy §4.2 §4.3 tab. 1.
- Tapping error and pupil index showed no clear autonomy effect, and no clear load-by-autonomy interaction on trust was found §4.2 §4.5.
- Author-reported. Several settings are ambiguous or differ from the released code, so read the Pitfalls and Paper vs code sections before reusing numbers.
Problem
Operators of teleoperated robots can be overloaded, and a robot that is not trusted may not be used well §1. Prior work had studied robot autonomy against cognitive load or against trust, but not both together, and the three-way relation between autonomy, load and trust had not been reported §2.
The study's design assumes that a blend of the human command and an accurate robot trajectory represents shared control §3.2 §5.4. It also assumes that a binary split into high and low autonomy captures the effect, which the authors list as a limitation §6.
Method
Setup. Participants operated a robot arm from another room. They saw a rendered view of the arm and a point cloud of the scene on a screen, with no direct view of the robot and no haptic feedback §3.1. The handle is a Novint Falcon and the robot is a Franka Emika Research 3 §3 §3.1.
Primary task. The tip must follow a three-dimensional path of duration T = 10 s. The path has a fixed offset (x0, y0, z0), a linear sweep in y, and a multi-sine curve in z eq. 1 eq. 2 §3.2. The sweep and the curve use a width and a height parameter, and the multi-sine uses three integer frequencies and a phase eq. 1 eq. 2. Five parameter sets are used to limit memorisation §3.2.
Shared control. The commanded position is a convex combination of the robot reference u_r and the human position u_h, with weight gamma on the robot eq. 3 §3.2. Gamma = 1 is full autonomy and gamma = 0 is no autonomy §3.2. The human position is the handle position times a constant scale of 3 §3.2. Both inputs and the joint controllers run at 500 Hz, and the commanded position goes to an inverse-kinematics solver §3.2.
# Reference trajectory [eq. 1] [eq. 2]
# Input: t in [0, T] with T = 10 s; params (a1, a2, a3, theta)
# Output: reference position (x, y, z) in metres
def reference_point(t, params, d_y, d_z, T):
# Multi-sine shape; the unit of t is not stated [eq. 2]
phase = t + params.theta
wave = (sin(params.a1 * phase) + sin(params.a2 * phase)
+ sin(params.a3 * phase))
# Constant x; y sweeps once across the trial; z follows the wave [eq. 1]
x = x0
y = y0 + d_y * (t / T)
z = z0 + d_z * wave
return x, y, z# Shared-control blend [eq. 3]
# Input: gamma in [0, 1]; robot_target (3,); human_target (3,)
# Output: commanded end-effector position (3,)
def blend(gamma, robot_target, human_target):
# Weight gamma on the robot, 1 - gamma on the human [eq. 3]
command = gamma * robot_target + (1 - gamma) * human_target
# The command goes to inverse kinematics at 500 Hz [§3.2]
return commandSecondary task. Participants tapped a pre-recorded rhythm from memory while doing the primary task, following the rhythm method. The rhythm alternates a short inter-tap interval tau with a long one of 3 tau. Tau is in the range 400 to 600 ms, and five rhythms with different tempos are used §3.3 fig. 2. The primary task is stated to take priority §3.3.
Measures. Performance and physiology were recorded during each trial, and self-reports after each round §3.4.
- Tracking error. The paper describes the RMSE between the reference and recorded robot positions, sampled at 20 Hz. The depth axis is left out §3.4.2. See Paper vs code for what the code computes.
- Tapping error. Each inter-tap interval is compared with the participant's baseline. The baseline average is subtracted from the recorded average and the result is divided by the interval length §3.4.2.
- Pupil index. Pupil diameter is recorded at 40 Hz. The index is a ratio of low- to high-frequency content from a wavelet decomposition, following a cited method §3.4.2.
- Perceived autonomy. One 10-point item, used as a manipulation check §3.4.3.
- Cognitive load. All six NASA-TLX subscales §3.4.3.
- Trust. Eight capacity-trust sub-scales of MDMT; moral-trust items excluded. A separate single 10-point trust item §3.4.3.
Design and participants. The design is counterbalanced and within-subject. The autonomy conditions are high (gamma of 0.6 and 0.8) and low (gamma of 0.0 and 0.2). Half the participants used increasing order and half decreasing §3.5.1. A power analysis for a repeated-measures ANOVA (power 0.8, alpha 0.05, medium effect f = 0.25) gave N = 24 §3.5.1. The 24 participants were aged 18 to 32, with 18 identifying as female and 6 as male. 22 were right-handed §3.5.2. A session took about 60 minutes §3.5.2.
Procedure. A training phase came first. Participants did a baseline round (trajectory only, no autonomy, no tapping), then two dual-task rounds at medium and no autonomy §3.6.1. The main phase followed, with two rounds, each with five trials §3.6.2. A trial began with a 5 s countdown, during which the rhythm was played, and then 10 s of tracking §3.6.2. After each round, participants filled in the questionnaires §3.6.
Analysis. Normality was checked with Shapiro-Wilk. Repeated-measures ANOVA with autonomy as the within-subject factor was used, with alpha 0.05 §4. Order had no effect and demographics were not used as covariates. Linear mixed models found no learning effect across the five trials. The first trial of each round was dropped, and only the second round of each autonomy condition was analysed §4.
Hyperparameters
Values stated in the paper are cited to the paper. Values found only in the released code are marked as code-only and are not claims of the paper.
| Name | Value | Where | Notes |
|---|---|---|---|
| Trajectory duration T | 10 s | §3.2 | Code: 5000 samples at 500 Hz real_controller.cpp |
| Sweep width d_y | 0.3 m | §3.2 | Code width 0.3 m real_controller.cpp, centred on the origin (see Paper vs code) |
| Height d_z | 0.15 m | §3.2 | Code uses height 0.1 m times ph = 0.25 (cases 0–2) or 0.2 (cases 3–5) real_controller.cpp real_controller.cpp |
| Depth | constant offset, left out of the error | §3.2 §3.4.2 | Code depth 0.1 m, used only when use_depth is set real_controller.cpp |
| Trajectory parameter sets | five (a1, a2, a3, theta) | §3.2 | Paper: (2,3,4,4pi/3), (1,3,4,pi), (2,2,5,pi), (2,3,5,8pi/5), (2,4,5,pi). Code also has a sixth set (1,1,4,pi, ph 0.25) traj_recorder.py |
| Origin (x0, y0, z0) | not stated | §3.2 | Code-only: (0.5059, 0.0, 0.4346) m real_controller.cpp |
| Human scale | 3 times the handle position | §3.2 | Code divides the Falcon reading by 100, then multiplies by the mapping ratio (default 3.0) real_controller.cpp |
| Control rate | 500 Hz | §3.2 | Code: 500 Hz real_controller.cpp |
| Autonomy, high | gamma = 0.6 and 0.8 | §3.5.1 | Analysed: only 0.8 §4 dataframe_grouping.py |
| Autonomy, low | gamma = 0.0 and 0.2 | §3.5.1 | Analysed: only 0.2 §4 dataframe_grouping.py |
| Autonomy, medium | not stated | §3.6.1 | Training only. Raw preprocessed data include gamma = 0.4 traj_preprocessed.csv |
| Autonomy-to-alpha map | not in paper | — | Code: alpha = 1 - gamma; alpha values 0.0 to 1.0 in steps of 0.2 real_controller.cpp |
| Control ramp-up before trajectory | not stated | — | Code-only: 5 s prep real_controller.cpp and 5 s smoothing real_controller.cpp |
| Control ramp-down after trajectory | not stated | — | Code-only: 3 s linear hand-over to the robot real_controller.cpp real_controller.cpp, then 2 s homing real_controller.cpp |
| Robot-side noise | not stated | — | Code adds a noise sequence to the robot z target real_controller.cpp from noise1.csv real_controller.cpp. The file is not in the repository |
| Tau (short interval) | 400 to 600 ms | §3.3 | Code tempos 115 to 135 BPM give a base interval of 444 to 522 ms rhythm_method.py utils.py |
| Rhythms | five; short tau then long 3 tau | §3.3 | Code has six interval patterns, and pattern 2 is the short-then-3x pattern utils.py |
| Tapping and pupil recording | pupil 40 Hz (Tobii Pro X2) | §3.4.2 | Code's eye-tracker rate not checked |
| Tracking recording rate | 20 Hz | §3.4.2 | Code publishes at 500/12, about 41.7 Hz real_controller.cpp |
| Participants | N = 24; 18 female, 6 male; age 18 to 32 (M 23.5, SD 3.88) | §3.5.2 | 22 right-handed |
| Power analysis | G*Power, repeated-measures ANOVA, power 0.8, alpha 0.05, f 0.25 | §3.5.1 | Gives N = 24 |
| Trials per round | 5 | §3.6 | First trial of each round dropped in analysis §4 |
| Trial timing | 5 s countdown, 10 s tracking | §3.6.2 | |
| Session length | about 60 minutes | §3.5.2 | |
| Robot | Franka Emika Research 3 | §3 | Code URDF is a Franka Panda panda.urdf |
Results
Author-reported. Setup: 24 participants, within-subject, repeated-measures ANOVA with 1 degree of freedom in the numerator and 22 in the denominator §4 tab. 1.
Table 1. ANOVA against autonomy tab. 1
| Measure | F(1, 22) | p | eta² | Source |
|---|---|---|---|---|
| Perceived autonomy (manipulation check) | 62.104 | < .001 | .262 | tab. 1 §4.1 |
| NASA-TLX | 46.615 | < .001 | .262 | tab. 1 §4.2 |
| Tapping error, short | 1.137 | .298 | .028 | tab. 1 §4.2 |
| Tapping error, long | 0.873 | .36 | .008 | tab. 1 §4.2 |
| Pupil diameter index | 0.088 | .769 | .0001 | tab. 1 §4.2 |
| MDMT (capacity trust) | 41.418 | < .001 | .234 | tab. 1 §4.3 |
| Trajectory tracking error | 129.005 | < .001 | .748 | tab. 1 §4.4 |
Table 2. Means and SDs of the objective errors tab. 2
| Measure | Low autonomy, mean (SD) | High autonomy, mean (SD) | Source |
|---|---|---|---|
| Trajectory tracking error (cm) | 2.163 (0.402) | 0.834 (0.069) | tab. 2 |
| Tapping error, short (%) | 7.458 (9.615) | 5.513 (6.768) | tab. 2 |
| Tapping error, long (%) | 8.129 (10.402) | 6.849 (10.402) | tab. 2 |
Other reported statistics §4.3 §4.4 §4.5
- Single-item trust: F(1, 22) = 33.169, p < .001, eta² = .234 §4.3.
- Single-item trust vs MDMT: Pearson r(46) = .873, p < .001 §4.3.
- MDMT vs tracking error: Pearson r(46) = −.563, p < .001 §4.4.
- Tracking error, baseline vs no-autonomy rounds: paired t(23) = −.429, p = .672, d = −.083 §4.4.
- Load, autonomy and trust together (regression): F(3, 44) = 5.734, p = .002, R² = .2811, adjusted R² = .232 §4.5.
- Load-by-autonomy interaction on trust: t = −.96, p = .342 §4.5.
- Cronbach alpha: NASA-TLX subscales .762; MDMT .968 §4.2 §4.3.
Hypotheses as the authors tested them. H1 (load falls with autonomy) is supported by the self-report only §5.1. H2 (trust rises with autonomy) is supported §5.2. H3 (an autonomy-dependent link between trust and load) is not supported §5.3. The three-way interaction plot fig. 4h suggests a trend under high autonomy that the test does not confirm §4.5 §5.3. The other panels of fig. 4 show distributions by autonomy, with means in red and significance marked fig. 4.
Paper vs code
Repository: mpan31415/AutonomyCLTrust, linked from the paper's footnote and owned by the first author. Commit c9ef329a20c55a13b5dad3d91d877e254e505adf. The repository has no LICENSE file, so its code is not quoted here and code_license is not stated. The repository holds the ROS 2 controller and logging code, the trial data, and R analysis scripts. The main experiment scripts are under ros2_ws/src/ros2_package/.
- Blend variable is inverted. The paper weights the robot by gamma eq. 3 §3.2. The controller weights the human by alpha, with robot weight 1 - alpha real_controller.cpp real_controller.cpp. The two are equivalent when alpha = 1 - gamma. Analysis data store gamma in the
autonomycolumn traj_err.csv. - Level mapping. The controller's alpha table has ids 1 to 5 for alpha 0.2 to 1.0 real_controller.cpp. Gamma 0.8 therefore maps to id 1 and gamma 0.2 to id 4. The mapping is not in the paper.
- Vertical amplitude differs. The paper's d_z is 0.15 m §3.2. The code multiplies the sine sum by height × ph, which is 0.025 m or 0.02 m depending on the set real_controller.cpp real_controller.cpp real_controller.cpp.
- Sweep is centred in code. The paper's sweep runs from y0 to y0 + d_y eq. 1. The code's sweep runs from −0.15 m to +0.15 m around the origin real_controller.cpp real_controller.cpp. Whether y0 is −0.15 m in the paper is not stated.
- Phase is normalised in code. The code maps the trial to a phase of 0 to 2π over T, so the wave repeats once per trial real_controller.cpp. The paper's unit for t in eq. 2 is not stated.
- Parameter sets. The code has six sets, including (1,1,4,pi) with ph 0.25, which the paper's set S does not list real_controller.cpp traj_recorder.py.
- Robot noise is not in the paper. The controller adds a noise sequence to the robot's z target, read from
noise1.csvand interpolated real_controller.cpp real_controller.cpp real_controller.cpp. The paper calls its autonomous controller highly accurate §5.4. The noise file is not in the repository, so its amplitude cannot be checked. - Hand-over and homing are not in the paper. The code moves control to the robot linearly over 3 s after the trajectory real_controller.cpp, then homes the arm over 2 s real_controller.cpp.
- Error metric is not RMSE. Per sample, the code takes absolute differences per axis, keeps y and z unless depth is used, and takes the Euclidean norm. It then averages over samples data_logger.py data_logger.py. That is a mean norm, not a root of the mean square. Depth is left out as the paper says §3.4.2.
- Recording rate differs. The paper says 20 Hz §3.4.2. The publisher fires every 12 control ticks, about 41.7 Hz real_controller.cpp. The recorder appends every message it receives traj_recorder.py.
- Pupil index is not reproduced. The paper's index is a wavelet low/high frequency ratio §3.4.2. No wavelet code exists in the repository. The README says the pupil output is a diameter in mm README.md. The analysis reads columns
new_left,new_rightandnew_ave, and their derivation is not in the repository pupil_diameter.Rmd grouped_pupil.csv. - Tapping error is recalculated. A later script recalculates tapping error to handle a key held briefly. The paper does not mention this recalculate_error.py.
- Robot model. The paper says Franka Research 3 §3. The repository's URDF is a Franka Panda panda.urdf, and the README says only "Franka Emika robot arm".
- Analysis subset. The analysed data contain 24 rows for each of gamma 0.0, 0.2, 0.6 and 0.8 traj_err.csv. The grouping step keeps only 0.2 and 0.8 dataframe_grouping.py, which matches the "second round" rule in §4.
Pitfalls
- Four conditions, two analysed. The design has four gamma values in the main phase §3.5.1. The statistics use only gamma 0.2 and 0.8 §4 dataframe_grouping.py. The paper does not explain why 0.0 and 0.6 are left out. A reuse of this design should decide whether it needs those two levels.
- Round structure is ambiguous. The main phase is described as two rounds §3.6.2. The condition description implies two gamma values per autonomy level §3.5.1. Which rounds carried gamma 0.6 and 0.0 is not stated.
- Medium autonomy has no value. Training uses a medium level §3.6.1, but the paper gives no number. The raw data show 0.4 traj_preprocessed.csv.
- Effect sizes disagree. The text gives eta² = .248 for MDMT §4.3, while Table 1 gives .234 tab. 1. NASA-TLX and perceived autonomy both report eta² = .262 tab. 1. Check the values against the analysis output before relying on them.
- Tapping long SDs are identical. Both autonomy conditions have an SD of 10.402 for the long tapping error tab. 2. This may be a copy error.
- Power covers the main effect only. The power analysis targets a medium main effect §3.5.1. No power is reported for the load-by-autonomy interaction, so the null three-way result is weak evidence §5.3.
- Trust scale is partial. Only the eight capacity sub-scales of MDMT were used, and moral trust was dropped §3.4.3. The single trust item was added as a second measure §3.4.3.
- Robot noise. The code adds a noise sequence to the robot path real_controller.cpp. A reimplementation that uses a perfect robot target will not match the setup.
- Ramp-up and ramp-down. The code uses a 5 s smoothing phase before the trajectory, a 3 s hand-over after it, and a 2 s homing real_controller.cpp real_controller.cpp real_controller.cpp. Timing effects on load and trust were not analysed.
- Learning and order. Order had no effect, and a linear mixed model found no learning effect §4. The analysis drops the first trial of each round §4.
- Scores are for one task. The authors note that results may not carry over to other tasks, controllers or feedback designs, and that a haptic channel was absent §5.4.
- Units. The error table reports cm tab. 2. The conversion from the code's units to cm is not in the error functions I read, so check the export before comparing with other work.
Lineage
- Builds on: the rhythm method for the secondary tapping task §3.3; blending control for shared autonomy §3.2; the MDMT trust questionnaire §3.4.3; NASA-TLX §3.4.3; a perceived-autonomy questionnaire from HRI work §3.4.3; and a wavelet method for pupil load §3.4.2. The paper gives no arXiv ids for these.
- Compared against: prior studies of autonomy against load §2, and of autonomy against trust §2. The paper gives no arXiv ids for these either.
- Superseded by: not known from content already in this wiki.
Source and license
Adapted from “Effects of Shared Control on Cognitive Load and Trust in Teleoperated Trajectory Tracking” by Jiahe Pan, Jonathan Eden, Denny Oetomo, Wafa Johal (arXiv:2402.02758), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. Code citations refer to https://github.com/mpan31415/AutonomyCLTrust at commit c9ef329a20c5 (not stated (no LICENSE file in repository)). Any quoted code is shown under that license.