You are on page 1of 7

Matei Dan April 21 2022

BME 590, Spring 2022

Term Project: Report

1. Introduction
Exoskeletons are a class of wearable robots designed to assist certain motion tasks by
providing torques capable of overcoming gravity and driving joints. The goals of exoskeletons
can include assistance with activities of daily living, enhanced strength for completion of
strenuous tasks, range of motion improvement, and sensorimotor retraining. An upper limb
exoskeleton is presently modeled and its dynamics computed for a simple arm motion simulating
a volleyball spike. The arm model is a planar 3RRR robot with links representing the upper arm,
forearm, and hand segments; the exoskeleton is modeled as three motors with point masses
located at the centers of rotation of each joint. The model can thus be driven by a torque input to
the exoskeleton motors, or by rotation inputs to each joint. The inverse dynamics associated with
the spike motion are first calculated on an iterative basis using the recursive Newton-Euler
algorithm implemented in MATLAB [1]. The resulting joint torques are then input to the
simulated arm and exoskeleton model in Working Model [2].
A negative feedback loop is proposed to improve the exoskeleton trajectory tracking. The
control scheme applies empirically obtained gains KP and KV to the joint angle and angular
velocity terms. By applying closed-loop control to the arm and exoskeleton model, the joint
angle error can be reduced. In practical applications, a range of methods are used to control
exoskeletons for human motion. Joint trajectory tracking using kinematic data feedback is widely
used for both upper and lower limb exoskeleton control due to its reliability and ease of
application. Other control methods estimate user intent rather than deviation from a preplanned
path, and use a high-level controller to determine exoskeleton state and drive the actuators from
the low-level controller. An example of one such hierarchical controller for a soft upper limb
exosuit driven by pneumatic actuators [3]. The high-level controller could choose between two
methods, namely a joint trajectory tracking using kinematic data, and a gravity compensating
control using either kinematic or muscle activation data from surface electromyography (sEMG)
Sensors such as inertial measurement units (IMUs) can provide accurate information of segment
angles and angular velocities, can operate at different speeds in a wide range of orientations, and
are robust to noise. Surface EMG data can provide muscle activation data with little lag but is
susceptible to noise and sudden changes in position or velocity, and must be first filtered then
normalized to each user’s maximum voluntary contraction. Furthermore the sEMG-based
controller requires users to have a minimum functional level of motor control to start motion
tasks to be amplified by the exosuit; patients lacking motor control and requiring assistance in
completing very simple tasks would benefit more from a joint trajectory controller using IMU
information. Another study performed on an upper-limb exoskeleton designed a controller that
combined muscle activation information from sEMG with kinetic information from force sensing
resistors (FSR) to actuate a shape memory alloy-driven elbow joint [4]. The controller changed
the machine state when sEMG activity from the biceps crossed a user-calibrated threshold, and
was able to reliably track a relatively simple movement (in a single degree of freedom). More
accurate sEMG-based controllers have been designed which locate sensors on antagonist muscle
pairs to obtain better onset and offset thresholds in two directions [5].
Matei Dan April 21 2022
BME 590, Spring 2022

2. Methods
The upper extremity segments (upper limb, lower limb, and hand) are first modeled as
conical frustums each with measured length h and circumferences at the ends C1 and C2. For
each segment, the center of mass is computed by integrating the mass over the volume of the
frustum in cylindrical coordinates, assuming the density to be a constant 1.1 g/cm3 over the
volume. The center of mass of each limb with its corresponding exoskeleton segment was found
as the weighted average of the limb exoskeleton segment, as shown below. Since each segment
of the exoskeleton has its mass located at the proximal end of the limb, its center of mass 𝑧̅ = 0.
𝑧̅$%&' 𝑚$%&' + 𝑧̅()" 𝑚()" 𝑧̅$%&' 𝑚$%&'
𝑧̅!"!#$ = =
𝑚$%&' + 𝑚()" 𝑚$%&' + 𝑚()"
The limbs were then simplified to cylindrical segments with a radius corresponding to the
average of the frustum’s start and end radii, and the inertial tensor for each cylinder was
calculated according to these parameters. Since the exoskeletons are modeled as point masses
located at each joint, they do not contribute to the moment of inertia about the axis of rotation IC;
which is calculated for each joint as Ixx (since the rotation is not about the long or z-axis) about
the end of the cylinder by changing the limits of integration in z from [-h/2, h/2] to [0, h]. This
result was verified by also computing the same moment of inertia using the parallel axis theorem,
and then input into the Working Model simulation. The calculated center of mass was subtracted
from the centroid coordinate of each segment to obtain the COM offset parameter in Working
Model.
A MATLAB script was written to iteratively calculate the joint torques from the given joint
angles, angular velocities, and angular accelerations at each time step according to the recursive
Newton-Euler algorithm. The transformation matrices for each joint are recalculated at each
time-step according to the current joint angles. The resulting joint torques are output by the
MATLAB script to a text file, which can then be read into the Working Model motor inputs. A
second model is created identical to the first, but using rotation inputs at each joint as opposed to
torque inputs for the exoskeleton motors. Both models include a raised platform (blue rectangle)
which serves to hold the volleyball (yellow circle); the raised platform has contact disabled for
all bodies but the ball, and is anchored so as not to fall due to the simulated gravity. Figure 1
below shows a screenshot from the Working Model simulation at the moment the wrist contacts
the ball. The model using the calculated torques as motor inputs is colored in red; the model in
green uses the desired joint angles as motor inputs. The graphs on the right show the rotation and
rotational velocity for each limb in the red model; the angles are reported relative to the
simulation World frame, and thus do not represent the joint angles and joint velocities. The
correct joint angles are calculated from the simulation result by subtracting π/2, as well as the
sum of the proximal joint angles, from each output angle. Thus, for the shoulder joint, only π/2 is
subtracted, since there are no joints more proximal; for the wrist joint, (π/2 + q1 + q2) are
subtracted, where q1 and q2 are the shoulder and elbow joint angles, respectively. The π/2 offset
in the joint angles is due to the simulated model assuming a “0”-pose that is horizontal as
opposed to vertical. The plots of the output joint angles and angular velocities are presented in
Section 3.
Matei Dan April 21 2022
BME 590, Spring 2022

Figure 1. Screenshot from Working Model simulation at time of impact [2].

3. Results
The calculated joint torques (inverse dynamics) are plotted over time in Figure 2 below. The
shoulder torque consistently has the greatest magnitude of the three joints, which is to be
expected since it supports the inertia caused by all three limbs. It is also the only joint to start out
with negative torque for the initial pose (~ -10 Nm for the first .3s), which is due to the arm being
held initially overhead and requiring a clockwise (negative) torque to resist the clockwise
moment created by gravity.
Matei Dan April 21 2022
BME 590, Spring 2022

Figure 2. Plot of calculated joint torques for the shoulder, elbow and wrist joints [1].
The plots in Figure 3 show the joint angles and angular velocities calculated from the
simulation output, compared to the desired joint angles and angular velocities. There is an
evident instability in the model seen by the divergence between the desired and calculated angles
which can be somewhat expected for an open loop system. This divergence is improved by
closing the system with a negative feedback controller. The error term in joint angle and angular
velocity is computed at each time step as the difference between the desired and current angle;
the error terms are then fed back multiplied by their respective gains into the current torque input
to the Working Model simulation.
Matei Dan April 21 2022
BME 590, Spring 2022

Figure 3. Plots of simulation output and desired kinematic data of open loop system.

4. Discussion
The error was calculated for each joint angle and angular velocity as the difference between
the desired reference and calculated result. This error is presented in Figure 4 for the open-loop
system; the greatest error is at the elbow joint (1.75 at the final time of 1s). Figure 5 shows the
error in joint angles with a joint trajectory tracking controller implemented. The controller gains
were set arbitrarily to Kp = 100, Kv = 0.1; this resulted in a maximum error of .15 rad at the
shoulder joint. Setting a large proportional gain greatly improves the response of the system; it is
notable that the plots in Figure 5 show no overshoot, suggesting that Kp may be increased further
diminish the tracking error. A significant steady-state error is still visible after the system settles
around 0.8s; this may not be overcome without introducing an integral gain.
Matei Dan April 21 2022
BME 590, Spring 2022

Figure 4. Error plots for joint angle and angular velocities.


Matei Dan April 21 2022
BME 590, Spring 2022

Figure 5. Plots of joint angle and error for system incorporating negative feedback.

References
[1]
MATLAB. (2021). version 9.10.0 (R2021a). Natick, MA: The MathWorks Inc.
[2]
Working Model 2D. version 9. Canton, MI: Design Simulation Technologies, Inc.
[3]
T. Proietti et al., "Sensing and Control of a Multi-Joint Soft Wearable Robot for Upper-Limb
Assistance and Rehabilitation.” IEEE Robotics and Automation Letters 6:2 (2021): 2381-2388
[4]
Copaci, Dorin et al. “A High-Level Control Algorithm Based on sEMG Signalling for an Elbow Joint
SMA Exoskeleton.” Sensors 18,8 (2018).
[5]
L. Silva et al. “Hybrid Impedance-Admittance Control for Upper Limb Exoskeleton Using
Electromyography.” Applied Sciences 10 (2020). 10.3390/app10207146.

You might also like