
an admittance-based control law is used to compute
the Cartesian velocity in response to external forces
applied by the human operator.
The desired Cartesian velocity is obtained
by integrating the acceleration generated by a
mass–spring–damper model, as defined in Equation 2.
This velocity determines how the robot should move
within the task space in order to respond compliantly
to the operator’s efforts. It is initially computed in the
operator frame h and then transformed into the robot
end-effector frame, as shown in Equation 11.
˙
x
ee
r
=
v
ee
r
ω
ee
r
=
ee
A
h
−
ee
A
h
[
h
P
ee
]
×
0
3×3
ee
A
h
| {z }
Ad
ee
T
h
∈R
6×6
˙
x
h
r
(11)
Here,
˙
x
h
r
=
h
v
h
r
T
ω
h
r
T
i
T
denotes the com-
pliant motion resulting from the control law, ex-
pressed in the interaction (operator) frame h. The ro-
tation matrix
ee
A
h
represents the orientation of frame
h with respect to the robot end-effector frame. The
vector
h
P
ee
represents the position of the end-effector
origin expressed in frame h, and [
h
P
ee
]
×
denotes its
skew-symmetric matrix. The full matrix multiplying
˙
x
h
r
corresponds to the adjoint transformation Ad
ee
T
h
,
which maps spatial velocity (twists) from the interac-
tion frame to the robot end-effector frame.
The resulting Cartesian velocity, now expressed
in the end-effector frame, is mapped to joint veloci-
ties
˙
q
c
using the inverse of the robot Jacobian
0
J
−1
ee
.
These joint velocity commands are subsequently sent
to the low-level joint velocity controller of the robot
for execution.
3.4.1 Example of a Compliant Motion
As an initial implementation, a simple compliant con-
trol scheme was developed based on the general form
of the admittance equation, given in Equation 12:
¨
x
h
r
= M
−1
dx
F
F
F
h
int
− D
dx
˙
x
h
r
(12)
In this formulation, M
dx
and D
dx
denote the de-
sired Cartesian inertia and damping matrices, respec-
tively. The variables
¨
x
h
r
and
˙
x
h
r
represent the resulting
Cartesian acceleration and velocity in the interaction
frame h.
In this case, the stiffness matrix K
dx
is set to the
zero matrix 0
6×6
, which means that the stiffness effect
typically present in admittance control is removed.
Consequently, the robot motion corresponds to dis-
placement induced purely by the operator’s interac-
tion force, without any restoring force pulling the
robot back towards a desired or initial position x
d
.
The control parameters used in this implementa-
tion are as follows:
M
dx
=
15.0 0 0 0 0 0
0 15.0 0 0 0 0
0 0 15.0 0 0 0
0 0 0 0.4 0 0
0 0 0 0 0.4 0
0 0 0 0 0 0.4
D
dx
=
30.0 0 0 0 0 0
0 30.0 0 0 0 0
0 0 30.0 0 0 0
0 0 0 0.8 0 0
0 0 0 0 0.8 0
0 0 0 0 0 0.8
4 ROS2 ENVIRONMENT
The control environment was implemented in ROS2
and configured with a single force/torque sensor
(Medusa). The UR ROS2 driver package and all re-
lated nodes operated at 500 Hz, matching the robot’s
internal control loop. The dedicated node for the
Medusa sensor ran at 800 Hz, with measurements in-
terpolated in the compliant control node to align with
the robot control frequency.
The system architecture, shown in Figure 17, in-
cluded three main ROS2 nodes. The F/T Sensor
Medusa node published sensor data, filtered inter-
nally by the sensor with a built-in cutoff frequency,
to the compliant control node, while also interfacing
with the EtherCAT reader Python script through an
internal TCP socket. The Compliant Control node
subscribed to the sensor data and published the end-
effector target velocity. Finally, the Cartesian Velocity
Controller node computed joint velocity commands,
which were transmitted to the UR ROS2 driver for
execution by the UR30 robot.
System-level optimisation included CPU isola-
tion and real-time scheduling in FIFO mode. Dy-
namic memory allocation was reduced and computa-
tional cost minimised, providing more deterministic
behaviour compared with standard implementations.
Sensor initialisation and setup were carried out
through dedicated safety routines, triggered manu-
ally from the terminal. In this configuration, only the
built-in safety functions of the UR30 robot were en-
abled. Future extensions will integrate external safety
layers, including 3D vision. The Cartesian velocity
controller also accounted for the robot’s maximum
joint velocity and torque limits, saturating commands
when necessary to prevent unsafe execution.
Jitter, which quantifies the variability of the con-
trol loop period, can be expressed as the difference
Preliminary Design and Control of an Operator-Assistance System Integrated into a Cobot, for Anatomical Meat-Cutting Process
547