Paper · 2024-12-04 · cs.RO
A Teleoperation System with Impedance Control and Disturbance Observer for Robot-Assisted Rehabilitation
Bilateral teleoperation for two 2-DOF planar rehabilitation robots. Impedance control with a nonlinear disturbance observer (NDOB) runs on both sides, and the master renders a virtual-spring force from the position error alone. Supports pre-defined trajectories, free pHRI and record-replay. Evidence is qualitative: trajectory plots, no tracking-error numbers, one author.
Impedance controlDisturbance observerTeleoperationteleoperationrehabilitationimpedance-controldisturbance-observer
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
Physical therapy often means a therapist moves a patient's arm again and again. This paper describes a pair of robot arms that do part of that job. The therapist's arm moves a "master" robot, and a "second" robot on the patient's side follows it. The patient's arm can be moved by the second robot along a pre-set path, or it can be moved by the therapist in real time, and the therapist can feel a pull-back force when the patient's side meets resistance. A therapist can also record a hand-guided path once and have the robot repeat it.
The control is built so that the robot behaves softly around people, without force sensors, and so that a disturbance estimator cancels the errors left by an approximate model of the arm. The authors show that the same design works for both robots, even though only one of them was identified in detail. The tests are small experiments on two physical robots, so they show that the system works as described, not how well it works compared with other methods.
TL;DR
- The master and second robots each run an impedance controller plus a nonlinear disturbance observer, with the observer switched off on the master in free-motion human interaction §II-A §II-C §V.
- Force feedback is a virtual spring on the master, driven by the position difference between the two end-effectors; no force sensor is used §II-B eq. 8.
- The system follows five pre-defined curves, accepts free human guidance, and replays recorded paths §IV-B §IV-C §IV-E.
- Reported results are trajectory plots, torque ranges and force ranges; no tracking-error metric is given §IV.
- Two Quanser 2-DOF rehabilitation robots, MATLAB/Simulink with Quarc, 1 kHz control §III.
Problem
Repetitive, patient-specific movement therapy is labour-intensive for the therapist §I. Robot-assisted rehabilitation can help, but building such a system is hard because tasks differ, dynamic models are uncertain and safety must be assured §I, abstract. The authors state that impedance control gives compliant behaviour without force sensing, and that a disturbance observer can compensate for a rough dynamic model §I.
The paper addresses a teleoperated setup in which one robot is moved by the therapist and another robot moves the patient's limb. It claims that its architecture switches between a pre-defined trajectory mode and a free physical human-robot interaction mode without changing structure §I §V. The scope is passive movement only: the patient's limb is not modelled, and active patient effort is named as future work §V.
Method
Dynamics and impedance control §II-A. Each robot is modelled as a rigid n-DOF arm with unknown or estimated inertia, Coriolis, gravity and friction terms eq. 1. The desired closed-loop behaviour is a Cartesian mass-damper-spring law eq. 2. The inertia is chosen as the robot's own Cartesian inertia, so that no external-force measurement is needed §II-A. Inverting that law and using estimated model matrices gives the joint torque command eq. 3, which is the controller used for both robots eq. 7 fig. 1.
Three special cases follow from eq. 3:
- Set-point regulation, with zero desired velocity and acceleration, reduces to a task-space PD law with gravity compensation eq. 4.
- If the desired point follows the current end-effector position, the torque becomes damping plus gravity compensation, which lets a human move the arm freely eq. 5. The authors call this pHRI mode §II-A.
- A force-feedback term can be added in pHRI mode eq. 6.
The paper notes that a backdrivable haptic device does not need the damping term in pHRI mode §II-A.
Force feedback §II-B. The master receives a virtual-spring torque, computed as the Jacobian transpose times a stiffness multiplied by the end-effector position difference between the second robot and the master eq. 8. The second robot's position is sent back over UDP §II-B. The stiffness gain is a design parameter; its value is not stated §II-B.
Disturbance observer §II-C. The paper lumps model error, joint friction and external forces into one disturbance term eq. 9. It uses a nonlinear disturbance observer adapted from [mohammadi2013nonlinearNDOBtavakoli], with an auxiliary state z, a gain matrix L_obs, a constant matrix Y_obs and a positive-definite matrix M_obs eq. 10. The full design and proof are left to the cited reference §II-C.
Robot model §III-A §III-B. Both robots are 2-DOF planar arms. Kinematics are given in Denavit–Hartenberg form tab. 1, forward kinematics eq. 13, Jacobian eq. 12, and inverse kinematics eq. 16. Joint limits are eq. 14 for the master and eq. 15 for the second robot. The dynamic model identified for the master is a 2×2 inertia matrix eq. 17, a Coriolis matrix eq. 18, a zero gravity vector and a joint friction term eq. 19. The second robot uses the same identified model §III-B.
Control architecture §II fig. 1 §V.
- Master, trajectory mode: the impedance controller tracks a pre-defined trajectory, and the NDOB is on §V.
- Master, pHRI mode: the desired point follows the current position eq. 5, the NDOB is off, and the force-feedback term is active §V §IV-C.
- Second robot: the desired point is the master's position and velocity fig. 1 §IV-B; the impedance controller and NDOB are always on §V.
Pseudocode for the impedance torque with estimated model terms eq. 3 eq. 7:
# Impedance torque with estimated model [eq. 3] [eq. 7] [§II-A]
# M, S, g are the estimates M_hat, S_hat, g_hat; tau_ff is 0 on the second robot
def impedance_torque(x, dx, x_d, dx_d, ddx_d, J, J_dot, M, S, g,
K_imp, D_imp, tau_ff):
# Inverse of the task-space Jacobian [eq. 3]
J_inv = inverse(J) # (2, 2)
# Feedforward from the desired motion [eq. 3]
feedforward = (
M @ J_inv @ (ddx_d - J_dot @ J_inv @ dx_d)
+ S @ J_inv @ dx_d
+ g
)
# Spring-damper on the Cartesian error [eq. 3]
feedback = J.T @ (D_imp @ (dx_d - dx) + K_imp @ (x_d - x))
# Force feedback, master in pHRI only [eq. 7] [§II-B]
return feedforward + feedback + tau_ffPseudocode for the NDOB update eq. 10 §II-C. The paper does not state an integration scheme; forward Euler is shown here for illustration only:
# Nonlinear disturbance observer step [eq. 10] [§II-C]
# Integrator not stated in the paper; forward Euler is an illustration
def ndob_step(dq, tau, z, S_hat, g_hat, M_obs, Y_obs, dt):
# Observer gain L_obs = Y_obs M_obs^-1 [eq. 10]
L_obs = Y_obs @ inverse(M_obs) # (2, 2)
# Auxiliary vector p = Y_obs dq [eq. 10]
p = Y_obs @ dq # (2,)
# Observer state derivative [eq. 10]
z_dot = -L_obs @ z + L_obs @ (S_hat @ dq + g_hat - tau - p)
z = z + dt * z_dot
# Estimated lumped disturbance [eq. 10]
tau_ndob = z + p # (2,)
return z, tau_ndobHyperparameters
All values are as printed in the paper unless marked "derived".
| Name | Master robot | Second robot | Where | Notes |
|---|---|---|---|---|
| Link lengths L1, L2 (m) | 0.254, 0.2667 | 0.340, 0.375 | §III-A eq. 14 eq. 15 | Second robot is an upgraded model |
| Joint limits | eq. 14 | eq. 15 | §III-A | Mechanical limits, from [dyck2013measuringMScThesis] |
| Impedance stiffness K_imp | 30 I | 20 I | tab. 2 | I is 2×2 identity |
| Impedance damping D_imp | 2√30 I | 2√20 I | tab. 2 | Written in tab. 2 as 2 times the square root |
| Observer inertia M_obs | M̂ (estimate) | 0.001 I | tab. 2 eq. 10 | Master M_obs is configuration-dependent |
| Observer gain Y_obs | 1.92 I | 0.048 I | tab. 2 eq. 10 | Gains tuned by trial and error, binary search §III-C |
| Observer gain L_obs | derived: Y_obs M_obs^-1 | derived: 48 I | eq. 10 | Derived from the two rows above |
| Identified inertia α1, α2, α3 | 0.06929, 0.04217, 0.04416 | same model | eq. 17 §III-B | Experimentally identified §III-B |
| Identified friction α4, α5 | 0.06510, 0.07389 | same model | eq. 19 §III-B | Viscous terms only in the printed model |
| Gravity vector ĝ | 0 | 0 | §III-B | Planar arms moving horizontally |
| Force-feedback stiffness K_ff | not stated | n/a | eq. 8 §II-B | Symbol only; value not given |
| Control rate | 1000 Hz | 1000 Hz | §III | Quarc real-time software |
| Data acquisition rate | 500 Hz | 500 Hz | §III | Replay section says 1000 Hz recording §IV-E |
| Bilateral UDP rate | 1000 Hz | 1000 Hz | §III | |
| Circle trajectory R, t1 | 0.08 m, 5 s | — | eq. 20 | Used in Exp.1 and Exp.2 |
| Figure-eight R, t1 | 0.1 m, 5 s | — | eq. 21 | |
| Tetragon R | 0.1 m | — | eq. 22 | Beetle curve |
| Pentagram R, r, d, n | 0.08, 0.048, 0.064, 3 | — | eq. 23 | |
| Rose R, k | 0.1, 4 | — | eq. 24 | k sets the number of petals |
| Exp.4 test object | 1130 g | — | §IV-D | Stands in for the patient's limb |
| Hardware | Intel Core 2 i5 3.33 GHz, Windows 7 | same | §III | MATLAB/Simulink R2017a, Quarc |
Results
Author-reported. Setup: two 2-DOF Quanser Rehab robots on physical hardware §III §IV. The number of trials and operators is not stated. The paper reports no tracking-error numbers, no baseline controller and no statistics; comparisons are visual or qualitative.
| Setting | Metric | Baseline | This paper | Source |
|---|---|---|---|---|
| Exp.1, circle, two robots | trajectory shape | impedance only, no NDOB | accurate tracking with NDOB on both robots (qualitative) | §IV-A fig. 4 |
| Exp.2, five curves, unilateral | trajectory shape | none | accurate tracking; rose curve least accurate (qualitative) | §IV-B fig. 5 |
| Exp.2, torque | maximum torque | master about 0.2 Nm | second robot about 0.5 Nm | §IV-B fig. 5 |
| Exp.3, free pHRI, bilateral | customised path followed | none | second robot follows master end-effector (qualitative) | §IV-C fig. 6 |
| Exp.4, wall contact | rendered force range | none | about −7 N to 7 N | §IV-D fig. 7 |
| Exp.4, 1130 g object | rendered force range | none | about −3 N to 3 N | §IV-D fig. 7 |
| Exp.5, record and replay | replay fidelity | original demonstration | accurate replay; torque noisier (numerical differentiation) | §IV-E fig. 8 |
| Tracking error | any numeric metric | — | not stated | §IV |
Paper vs code
No official code. Searched the paper text, the abstract and the source for repository links (only a video link is present, §III-C). Ran GitHub repository searches for "teleoperation rehabilitation impedance", "nonlinear disturbance observer impedance teleoperation", "teleoperation disturbance observer" and "quanser rehab", all returning zero results. Ran GitHub user searches for "teng li alberta" (no results) and "teng4" (generic accounts, none verified as the author). No general web search was run, so a project page may still exist.
Pitfalls
- Sign of the error terms. The impedance law in eq. 2 writes the velocity and position errors as (ẋ − ẋd) and (x − xd). The control law eq. 3 writes them as (ẋd − ẋ) and (xd − x). The text does not reconcile the two. Implement the controller as eq. 3 and eq. 7, which the paper uses, and do not copy the sign of eq. 2.
- Coriolis matrix. By our own check, the printed Ŝ eq. 18 with the M̂ of eq. 17 does not make Ṁ − 2Ŝ skew-symmetric, a property the usual robot-dynamics identity requires. The paper does not comment. Check the matrices against the thesis before relying on the passivity argument.
- Force feedback is always in the master equation. eq. 7 adds τ_ff to the master torque with no condition, but the text says it is active only in pHRI mode §II-A §IV-D. Gate it with a mode switch fig. 1.
- How the observer enters the command. No equation shows the NDOB torque being combined with the impedance torque. The block diagram fig. 1 shows the NDOB output entering the sum with a minus sign on the master side, which we read from the figure; confirm before implementing.
- Mode switching. The text says the master NDOB is turned off in pHRI §V, but gives no transition procedure, filter or ramp for the switch.
- Derived observer gain on the second robot. From eq. 10 and tab. 2, L_obs = Y_obs M_obs^-1 = 0.048 / 0.001 = 48 I (derived). This is large relative to the master value. Discretisation and stability of the observer are not analysed.
- Master observer inertia depends on configuration. M_obs = M̂(q) is inverted at every step, so the observer gain is time-varying on the master. The paper does not describe the inverse or how near-singular configurations are handled.
- Second robot uses the master's identified model. The second robot uses the master's identified inertia, Coriolis and friction values §III-B. The paper says the observer compensates for the error, but gives no measurement of the error size.
- Two sampling rates. §III gives data acquisition at 500 Hz, but the replay section says recording was at 1000 Hz §IV-E. Use 1000 Hz for the recorded path and state which rate you use.
- Friction is viscous only. eq. 19 has only velocity-proportional terms per joint. Stiction or Coulomb friction is not modelled, yet the disturbance definition eq. 9 mentions joint friction generally.
- Force-feedback gain not given. K_ff eq. 8 is never valued, so the rendered force ranges §IV-D cannot be reproduced from the paper alone.
- Feedback is position-only. Force is rendered from end-effector position difference over UDP §II-B §V. Network delay and packet loss are not analysed.
- Inverse kinematics not verified. eq. 16 is cited to the thesis §III-A without derivation here. Check the branch choice and the atan2 argument order before using it.
- Tuning and scope. Gains were tuned by trial and error with a binary-search strategy §III-C. The patient's limb is represented by a 1130 g object, and only passive movement is considered §IV-D §V.
- Replay noise. Recorded velocity and acceleration are numerically differentiated, which makes the torque noisier on replay §IV-E.
- Qualitative claims. "Accurate" tracking is judged from plots; no error values are given. The rose curve is described as less accurate §IV-B.
Lineage
- Builds on: the authors' earlier work on impedance control with a nonlinear disturbance observer, cited as [teng4IROS2022NDOB] (Li, Badre, Taghirad and Tavakoli, IROS 2022, for arthroscope control) §I §II-A §IV-C.
- NDOB design: [mohammadi2013nonlinearNDOBtavakoli], which the paper adapts §II-C.
- Identified robot model: the Master's thesis by Dyck, University of Alberta, 2013 §III §III-B.
- Compared in discussion, not in experiments: two-channel position-error-based, two-channel direct force reflection, and four-channel and three-channel bilateral architectures [tavakoli2007highFidelitybilateralTeleop] §V.
- Superseded by: not stated in this card.
Source and license
Adapted from “A Teleoperation System with Impedance Control and Disturbance Observer for Robot-Assisted Rehabilitation” by Teng Li (arXiv:2412.03619), 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.