2. system [6]. Tsang applied Generalized Predictive Control
(GPC) in DC motor drive while guaranteeing the amplitude
limits of the input currency [11]. Fujimoto et al. proposed an
optimal control method bearing input constraint by interactive
learning [12]. Yamaguchi used gradient iteration to modify the
muscle force until it satisfies the constraint [13].
Yet a third important problem, is designing the system so
that it attempts to decrease muscular fatigue. This is a higher
requirement than the muscle force constraint. The challenge is
that we need to find an optimization solution that separates all
the muscle forces evenly, within the feasible solution space of
muscle forces. For this distribution method, optimization is a
common method. Anderson et al. used dynamic optimization
of minimum metabolic energy expenditure to solve the motion
control of walking [14]. Manal et al. designed a nonlinear
optimal controller to develop a real-time EMG-driven virtual
arm [15]. Neptune evaluated different multivariate optimization
methods in pedaling [16].
Finally, the fourth important problem is adaptivity. For a
real-world control plant, absolute models are not achievable
mainly due to multiple many uncertainties, such as sen-
sor uncertainty, actuator uncertainty, environment uncertainty,
modeling uncertainty, etc. Thus, the control method must have
the ability to tolerate these uncertainties or to update the
parameters of the modeled plant. This issue of adaptivity has
been considered for years. In robotics, the research on adapta-
tion comes from online system identification. The objective is
to estimate the system structure and parameters in real-time,
while the system is in operation. Here, the system is considered
as a black box. By stimulating the system and creating relations
between the inputs and outputs, the parameters of the system
can be adjusted online [17]. Based on this system identification
idea, many control methods with adaptive parameter update
have come out, such as robust control [18], adaptive feedback
control [19], neurofuzzy adaptive control [20], etc. However,
notice that the adaptation ability problem has not been consid-
ered in arm control driven by over-actuated muscles.
In this paper, we propose a new method for controlling a
muscle-driven system, that addresses all of the four important
problems previously explained. As a preparatory step for our
method, the desired joint trajectory points was connected by
a continuous derivative polynomial function for each moment;
resulting with a Jacobian matrix from muscle space to joint
space. For the muscle activation computation, by considering
the acceleration in the joint space and muscle space respec-
tively, we obtained a set of linear equations. The pseudo-
inverse solution to this linear equation set gave us the initial
result for the muscle forces. To make the muscles forces
satisfy the output force constraint and furthermore work in
the feasible output force range, we gave a gradient direction
for the muscle forces to satisfy the mentioned constraint in
the null space of the previous pseudo-inverse solution. As the
body movement load distributes evenly in all the muscles, the
proposed algorithm has a character of “anti-fatigue”. To make
the proposed method adaptive for modeling error, we added an
estimated model to represent the real model. By updating the
parameters of the estimated model based on prediction error,
the estimated model approaches the real model gradually in
real time.
The overall proposed method is tested for a bending-
Fig. 1: Bionic robot arm model.
stretching movement. The results verify the validity of the
method, as well as dealing with the four previously mentioned
problems effectively. We will start by presenting our bionic
arm mathematical model, continue by deriving the steps of
our muscle activation calculation method, and then discuss our
simulation and animation results, before providing a concise
summary and conclusion.
II. BIONIC ROBOT ARM MODEL
A. Dynamic Modeling
We built a 2-dimensional model of an arm in the horizontal
plane (no gravity) based on the upper limb structure of a digital
human. The model includes six muscles (shown as 1 to 6) and
two degrees of freedom (shoulder flexion-extension and elbow
flexion-extension). The range of the shoulder angle is from -20
to 100 degree, and the range of the elbow is from 0 to 170
degree. Four of the muscles are mono-articular, and two are
bi-articular where 1 and 2 cross the shoulder joint; 3 and 4
cross the elbow joint; 5 and 6 cross both joints (Fig.1).
Considering the arm (including upper arm and lower arm)
as a planar, two-link, articulated rigid object, the position of the
hand can be derived by a 2-vector q of two angles. The input
is a 6-vector Fm of muscle forces. The dynamics of the rigid
object are strongly nonlinear. Using the Lagrangian equations
from classical dynamics, we get the dynamic equations of the
ideal upper limb model
H11 (t) H12 (t)
H21 (t) H22 (t)
¨q1
¨q2
(1)
+
C11 (t) C12 (t)
C21 (t) C22 (t)
˙q1
˙q2
=
τ1(t)
τ2(t)
or abbreviated as
H (t) ¨q + C (t) ˙q = τ (2)
with q = [ q1 q2 ]
T
= [ θ1 θ2 ]
T
being the two joint
angles. τ = [ τ1 τ2 ] = f (Fm) is the joint torque which
is considered as a function of muscle force Fm
16411641
3. Fm = [ Fm,1 Fm,2 Fm,3 Fm,4 Fm,5 Fm,6 ]
T
(3)
H (q, t) is the inertia matrix which contains information with
regards to the instantaneous mass distribution. C (q, ˙q, t) is
centripetal and coriolis torques representing the moments of
centrifugal forces.
H11 = J1 + J2 + m2d2
1 + 2m2d1c2 cos (q2)
H12 = H21 = J2 + m2d1c2 cos (q2)
H22 = J2
C11 = −2m2d1c2 sin (q2) ˙q2 (4)
C12 = −m2d1c2 sin (q2) ˙q2
C21 = m2d1c2 sin (q2) ˙q1
C22 = 0
where ci is the distance from the center of a joint i to the
center of gravity point of link i. di is the length of link i.
Ji = mid2
i + Ii where Ii is the moment of inertia about the
axis through the center of the mass of link i.
B. Estimated Model
In our research, we consider that the arm model in Eq.1
is influenced by modeling errors and disturbances from the
environment. Hence, we use an estimated arm model to
represent the real one, which is written as
ˆH11 (t) ˆH12 (t)
ˆH21 (t) ˆH22 (t)
¨q1
¨q2
(5)
+
ˆC11 (t) ˆC12 (t)
ˆC21 (t) ˆC22 (t)
˙q1
˙q2
=
ˆτ1(t)
ˆτ2(t)
or abbreviated as
ˆH (t) ¨q + ˆC (t) ˙q = ˆτ (6)
where ˆ· means estimated value of (·). The relation between
the ideal model (Eq.1) and the estimated model (Eq.5) is that
we choose τ = ˆτ. In this paper, we use the estimated model
to generate torque for controlling a real system. In addition,
the parameter adaptation updates the estimated parameters ˆH,
ˆCand ˆG in real-time.
For the convenience of the following derivation, we define
the actual and estimated arm parameter vector
P = PT
H PT
C
T
, ˆP = ˆPT
H
ˆPT
C
T
(7)
where
PH =
⎡
⎢
⎣
H11
H12
H21
H22
⎤
⎥
⎦ , PC =
⎡
⎢
⎣
C11
C12
C21
C22
⎤
⎥
⎦
ˆPH =
⎡
⎢
⎢
⎣
ˆH11
ˆH12
ˆH21
ˆH22
⎤
⎥
⎥
⎦ , ˆPC =
⎡
⎢
⎢
⎣
ˆC11
ˆC12
ˆC21
ˆC22
⎤
⎥
⎥
⎦
then the estimation error vector can be defined as
˜P = ˆP − P = ˜PT
H
˜PT
C
T
(8)
III. MUSCLE FORCE CALCULATION
A. Muscle Force Computation (Step 1): Distributing Muscle
Forces
The general dynamic equation with 6 muscles and 2
degrees of freedom (Eq.1) can be simply written as
H (q, t) ¨q + C (q, t) ˙q = τ (9)
Here, we transform it into the following form
H (q, t) ¨q = Γ + Λ (10)
where Γ = τ, Λ = −C (q, t) ˙q. From this viewpoint, we can
separate the total acceleration contribution by two parts as ¨qΓ
and ¨qΛ, i.e.
¨q = ¨qΓ + ¨qΛ
¨qΓ = H (q, t)
−1
Γ (11)
¨qΛ = H (q, t)
−1
Λ
We define Jm as the Jacobian matrix from joint space
to muscle space, based on which, the joint torque can be
calculated as [7]
τ = JT
mFm (12)
In order to find the maximum acceleration contribution of each
muscle, we define ¨qm,j,max (j = 1, 2, · · · , 6) as the maximum
acceleration contribution of j-th muscle. According to Eq.12,
we have
¨qm,1,max = H−1
JT
m [ Fm,1,max 0 0 0 0 0 ]
T
· · · (13)
¨qm,6,max = H−1
JT
m [ 0 0 0 0 0 Fm,6,max ]
T
As each muscle can be considered to have its own contri-
bution to the acceleration, we can get a set of linear equations
AX = B (14)
where
A = [ ¨qm,1,max ¨qm,2,max · · · ¨qm,6,max ]
X = [ σ1 σ2 · · · σ6 ]
T
B = ¨qΓ
and vector X gives us the muscle activation level. We can use
pseudo-inverse to compute muscle activation level as
X = A+
B (15)
16421642
4. where A+
= AT
AAT −1
. Therefore, the muscle force can
be calculated as the multiplication of muscle activation level
with maximum muscle force. By defining a vector
Fm,max = [ Fm,1,max Fm,2,max · · · Fm,6,max ]
T
(16)
as the maximum muscle force, we can give the initial muscle
force based on pseudo-inverse solution as
Fm,ini = Fm,max ⊗ X (17)
where operator ⊗ calculates the dot product of two vectors.
According to the properties of the pseudo-inverse, the initial
muscle force satisfies
min Fm,ini 2 =
⎛
⎝
6
j=1
F2
m,j
⎞
⎠ (18)
i.e., Fm,ini is the minimum muscle force under the sense of
least-squares.
B. Muscle Force Computation (Step 2): Satisfying Constraints
However, the above solution Fm,ini does not consider
physical constraints, for example that the maximum output
force of a muscle is limited, or that muscles can only contract,
etc. To satisfy these constraints, we define Fin as a vector with
the same dimension as Fm which expresses the internal forces
generated by the redundant muscles. We can define the internal
force in Fm space as
g (Fin) = I − JT
m
+
JT
m Fm (19)
where I is an identity matrix having the same dimension with
muscle space. According to Moore-Penrose pseudo-inverse
(Eq.15), the vector g (Fin) is orthogonal with Fm,ini. Thus,
we can choose any vector as Fin. Below, we give a gradient
direction to Fin to make Fm satisfy the boundary constraints.
Here, we assume each muscle force is limited in the interval
from Fm,j,min to Fm,j,max for 1 ≤ j ≤ 6. Our objective is
to choose a gradient direction to make each element of Fm,j
(1 ≤ j ≤ 6) equal or greater than Fm,j,min, and equal or less
than Fm,j,max. Considering the issue of “muscle fatigue”, one
reasonable way is to make the output force of the muscles to
remain in the middle of the range Fm,j,min and Fm,j,max. The
physical meaning of this idea is to distribute load to all muscles
into their proper load interval. Based on these considerations,
we choose a function h as
h (Fm) =
6
j=1
Fm,j − Fm,j,mid
Fm,j,mid − Fm,j,max
2
(20)
where
0 ≤ Fm,j,min ≤ Fm,j ≤ Fm,j,max
Fm,j,mid = (Fm,j,min + Fm,j,max) /2
j = 1, 2, · · · , 6
then we chose Fin as the gradient of the function h, i.e.
Fin = Kin
∂h (Fm)
∂Fm Fm,ini
= Kin ∇h|Fm,ini
(21)
=
⎡
⎢
⎢
⎢
⎢
⎣
2 ·
Fm,ini,1−Fm,1,mid
Fm,1,mid−Fm,1,max
2 ·
Fm,ini,2−Fm,2,mid
Fm,2,mid−Fm,2,max
...
2 ·
Fm,ini,6−Fm,6,mid
Fm,6,mid−Fm,6,max
⎤
⎥
⎥
⎥
⎥
⎦
where Kin is a scalar matrix. It is simple to prove that
the direction of Fin points to Fm,i,mid. According to the
computation in Eq.15 and Eq.21, the final muscle force is
calculated as
Fm = Fm,ini + g (Fin) (22)
C. Dynamic Parameter Update
To make the estimated robot arm model approach the real
model, we use a parameter adapter to adjust the dynamic
parameters in the estimated model. The parameter update is
based on the prediction error between the real and estimated
robot model. From the viewpoint of information flow, the
dynamic equation (Eq.1) can be written in the form
τ (t) = S (t, q, ˙q, ¨q) P (23)
where
S =
¨q1 ¨q2 0 0 ˙q1 ˙q2 0 0
0 0 ¨q1 ¨q2 0 0 ˙q1 ˙q2
, P =
PH
PC
From this equation, τ is the “output” of the system. S is
a signal matrix. P is a vector of real parameters. To avoid
the acceleration terms in S, we can use a filtering technique.
Specifically, by multiplying both sides of S with e−λ(t−r)
and
integrating it, we can get
ˆ t
0
e−λ(t−r)
τ (r) dr (24)
=
ˆ t
0
e−λ(t−r) ¨q1 ¨q2 0 0 ˙q1 ˙q2 0 0
0 0 ¨q1 ¨q2 0 0 ˙q1 ˙q2
·dr
PH
PC
where λ and r are positive numbers. By using partial integra-
tion, the acceleration terms on the right side can be written
as
ˆ t
0
e−λ(t−r) ¨q1 0
0 ¨q2
dr (25)
= e−λ(t−r) ¨q1 0
0 ¨q2
t
0
−
ˆ t
0
d
dr
e−λ(t−r) ˙q1 0
0 ˙q2
dr
16431643
5. Therefore, Eq.23 can be written in the form
τ (t) = S (t, q, ˙q) P (26)
We can predict the value of the output τ based on the parameter
estimation, i.e.
ˆτ = S ˆP (27)
where ˆP is the estimation of P. ˆτ is the prediction of τ. Thus,
the prediction error e can be defined as
e = ˆτ − τ = S ˆP − SP = S ˜P (28)
According to this, we formulate the parameter adaptation
method based on the prediction error e as follows
˙ˆP = −Ξ
∂ eT
e
∂ ˆP
(29)
= −Ξ
∂ S ˆP − SP
T
S ˆP − SP
∂ ˆP
= −2ΞST
S ˆP − SP = −2ΞST
e = −2ΞST
(ˆτ − τ)
where Ξ is a diagonal coefficient matrix.
Proof: Parameter Update Convergence
Here we choose a Lyapunov function candidate
V (t) =
1
4
˜PT ˜P (30)
which describes the energy of parameter change. If we consider
that the parameters change slower with respect to the parameter
identification, from Eq.8, we can get
˙˜P =
˙ˆP − ˙P = −2ΞST
S ˜P (31)
then the time-derivative of V (t) is
˙V (t) =
1
2
˜PT ˙˜P =
1
2
˜PT
−2ΞST
S ˜P (32)
= −Ξ S ˜P
T
S ˜P < 0 (33)
which means that the parameter estimation converges to real
values.
Therefore, according to Eq.29, the parameter adaptation
can be obtained by
˙ˆP = −2ΞST
(ˆτ − τ) (34)
Segment Upper arm Lower arm
Length (m) 0.282 0.269
Mass (kg) 1.980 1.180
MCS Pos (m) 0.163 0.123
I11 (kg·m2
) 0.013 0.007
I22 (kg·m2
) 0.004 0.001
I33 (kg·m2
) 0.011 0.006
TABLE I: Anthropological parameter value (MCS Pos is the
position of the mass center).
D. Procedures
The desired trajectory points are connected by a continuous
derivative function for each moment. Based on it, we compute
the muscle forces. These force signals are used in the real
arm model and estimated arm model as inputs. The output
error of the two models, i.e., prediction error, is used to
change the dynamic parameters of the estimated arm model for
approaching the real one. The performance of the algorithm is
shown by a 3D virtual bionic arm (Fig.2).
IV. SIMULATION AND ANIMATION
The performance of the proposed muscle force computation
method was tested through a bending-stretching simulation.
The desired movement is bending the upper arm and lower arm
from 0 rad to π/2 rad and then stretching them back to 0 rad.
The frequency of the movement is 1Hz and the total simulation
time is 10s. To test the performance of the parameter update
method, we set all the estimated dynamic parameters to be zero
(i.e., ˆPH, ˆPC are zero vectors) at the beginning. The estimated
parameters are updated to approach the real parameters with
time afterwards.
A. Parameter Setting
The parameters of the arm model are based on the real
data of a human upper limb. The setting of length, mass, mass
center position and inertia coefficients are shown in Table
1. This anthropological data comes from [21]. Without loss
of generality, the muscle configuration coefficients are set as
aij = 0.1m (1 ≤ i ≤ 6, 1 ≤ j ≤ 2).
In this algorithm, there are very few parameters that need
to be set. These include the parameters relating with estimated
model update (Eq.34), i.e.
2Ξ = 0.001 · Diag ([ 1 1 1 1 1 1 1 1 1 1 ])
(35)
and the parameters relating with muscle force computation
(Eq.16 and Eq.21), i.e.,
Kin = 100 · Diag ([ 1 3 1 1 1 2 ]) (36)
Fm,i,min = 0, Fm,i,max = 500 (1 ≤ i ≤ 6) (37)
where Diag (·) denotes a diagonal matrix with diagonal ele-
ments being as (·).
16441644
6. Fig. 2: Block diagram of the proposed method.
B. Muscle Force
According to the bending-stretching movement, the desired
trajectory points of the shoulder joint and elbow joint were
generated [7]. These trajectory points were used to create a
trajectory function for each joint. The muscle force was com-
puted by tracking the trajectory function. By applying these
muscle forces, we controlled the arm to move. The computed
muscle force is shown in Fig.3 where (a) gives the muscle
force curve (from Fm,1 to Fm,6) with respect to time. We
can find that, all the muscle forces satisfy the force constraint,
i.e., they are within the force range of [Fm,i,min, Fm,i,max] for
(1 ≤ i ≤ 6). While (b) concludes the statistical results where
x axis is the muscle index (from m1 to m6) and y axis is the
average force in the simulation time. As we set the maximum
muscle force to 500N, the force in the middle of the force
range is 250N. σi (1 ≤ i ≤ 6) which is above each histogram
is the derivation of the i-th muscle force. From (b), we can
see that the muscles approximately work around the middle of
their force ranges.
C. Parameter Updating Performance
Fig.4 shows the dynamic parameter change in the simula-
tion where (a) indicates the estimated parameter ˆPH, ˆPC and
(b) indicates the true parameter PH, PC. For both of the sub-
plots, the x axis is time index corresponding with simulation
time. It is clear that, the estimated dynamic parameters are not
the same as the real dynamic parameters. The reason for this
is that the desired tracking trajectory only stimulates part of
the whole dynamic features of the system. However, based on
this partly-stimulated parameters, the tracking task can still
be fulfilled (shown in the next Subsection). The estimated
dynamic parameters can be closer to the real ones when the
dynamics are further stimulated by the desired trajectory.
0 2 4 6 8 10
200
300
400
Fm1
(N)
0 2 4 6 8 10
−500
0
500
F
m2
(N)
0 2 4 6 8 10
100
200
300
Fm3
(N)
0 2 4 6 8 10
−500
0
500
F
m4
(N)
0 2 4 6 8 10
200
400
600
Fm5
(N)
0 2 4 6 8 10
0
200
400
Fm6
(N)
time (s)
(a) Muscle force curve.
m1 m2 m3 m4 m5 m6
0
50
100
150
200
250
300
350
400
muscle index
averageforce(N)
σ
1
=73.55N
σ2
=152.85N
σ
3
=35.39N σ
4
=113.36N
σ5
=72.27N
σ
6
=69.43N
F
mid
=250N
(b) Muscle force distribution.
Fig. 3: Computed muscle force.
16451645
7. P_hat_H
0.5 1 1.5 2 2.5 3
x 10
4
H_hat_22
H_hat_21
H_hat_12
H_hat_11
P_hat_C
time index
0.5 1 1.5 2 2.5 3
x 10
4
C_hat_22
C_hat_21
C_hat_12
C_hat_11
0
1
2
3
x 10
−3
(a) Estimated Parameter.
P_H
0.5 1 1.5 2 2.5 3
x 10
4
H_22
H_21
H_12
H_11
P_C
time index
0.5 1 1.5 2 2.5 3
x 10
4
C_22
C_21
C_12
C_11
−0.2
0
0.2
(b) Real parameter.
Fig. 4: Parameter update.
D. Joint Tracking Performance
The computed muscle forces were used to control the
arm model. Compared with the desired trajectory, the tracking
errors of shoulder joint and elbow joint gradually converge
(Fig.5). The big tracking error at the beginning is due to the
uncertainty of the initial dynamic parameters. By updating the
parameters in real-time, the tracking error decreases with time.
The static tracking error of both shoulder joint and elbow joint
is smaller than 0.01 rad and thus, the tracking performance is
considered acceptable.
E. Animation
A 3D virtual robot arm was created by Simulink (SimMe-
chanics Toolbox). The arm model consists of three parts: right
humerus (1 bones), torso (6 bones) and right ulna radius hand
(29 bones). The detailed information of the bones is listed in
Table II.
The polygon files (see Table II) are from OpenSim. The
original format of these files are .vtp. To aid SimMechanics on
importing these polygons, we changed the format of polygon
files from .vtp file to .stl file. We use this 3D virtual arm to
visualize the arm movement. Fig.6 shows the arm movement
in the bending-stretching movement cycle.
V. CONCLUSION
This paper presented a novel method for controlling a
muscle-driven system. Compared with previous methods, there
are numerous advantages. First, there are very few parameters
that need to be set – partially, because the pseudo-inverse
can be seen as an “optimization” method. Second, as the
0 1 2 3 4 5 6 7 8 9 10
−0.07
−0.06
−0.05
−0.04
−0.03
−0.02
−0.01
0
0.01
0.02
0.03
time (s)
trackingerrorofshoulderjoint(rad)
(a) Shoulder joint.
0 1 2 3 4 5 6 7 8 9 10
−0.015
−0.01
−0.005
0
0.005
0.01
time (s)
trackingerrorofelbowjoint(rad)
(b) Elbow joint.
Fig. 5: Tracking error.
Part name Bone name
arm_r_humerus arm_r_humerus
torso
ground_jaw
ground_r_scapula
ground_skull
ground_r_clavicle
ground_ribs
ground_spine
r_ulna_radius_hand
arm_r_1mc
arm_r_4mc
arm_r_pisiform
arm_r_2distph
arm_r_4midph
arm_r_radius
arm_r_2mc
arm_r_4proxph
arm_r_scaphoid
arm_r_2midph
arm_r_5distph
arm_r_thumbdist
arm_r_2proxph
arm_r_5mc
arm_r_thumbprox
arm_r_3distph
arm_r_5midph
arm_r_trapezium
arm_r_3mc
arm_r_5proxph
arm_r_trapezoid
arm_r_3midph
arm_r_capitate
arm_r_triquetrum
arm_r_3proxph
arm_r_hamate
arm_r_ulna
arm_r_4distph
arm_r_lunate
TABLE II: Bones setup in visualization.
16461646
8. Fig. 6: Arm movement animation in isometric view.
main computation happens through the pseudo-inverse, the
computational scale of the proposed method is mainly related
to the number of the joints, not to the number of muscles. This
means that for the bionic arm, even if we add more muscles,
the computational time would not increase significantly. Fur-
thermore, the proposed muscle activation computation method
can be used as a solution for a general redundancy problem. We
believe that this is an important contribution not only towards
modeling such systems, but most importantly towards creating
the robots of the future, which will exhibit the numerous
advantages of muscle-driven systems. Our future work would
be extending the bionic arm model to 3D and extending the ex-
periments to real human arm movements using measurements
from Kinect Joint Tracking/Motion Capture System.
REFERENCES
[1] H. Dong, Z. Luo, and A. Nagano, “Distributing joint torques to muscle
forces for robot manipulator control,” in Proceeding of 29th Annual
Conference of the Robotics Society of Japan, pp. 1Q3–3, 2011.
[2] S. Oh and Y. Hori, “Development of two-degree-of-freedom control for
robot manipulator with biarticular muscle torques,” in Proceeding of
American Control Conference, pp. 325–330, 2009.
[3] S. Klug, O. Stryk, and B. Mohl, “Design and control mechanisms
for a 3dof bionic manipulator,” in Proceeding of IEEE/RAS-EMBS
International Conference on Biomedical Robotics and Biomechatronics,
pp. 450–454, 2006.
[4] V. Potkonjak, M. Jovanovic, P. Milosavljevic, N. Bascarevic, and
O. Holland, “The puller-follower control concept in the multi-jointed
robot body with antagonistically coupled compliant drives,” in Proceed-
ing of IASTED International Conference on Robotics, pp. 375–381,
2011.
[5] S. Klug, B. Mohl, V. Ttryk, and O. Barth, “Design and application of a
3 dof bionic robot arm,” in Proceeding of 3rd International Symposium
on Adaptive Motion in Animals and Machines, pp. 1–6, 2005.
[6] K. Tahara, Z. Luo, S. Arimoto, and H. Kino, “Sensory-motor control
mechanism for reaching movements of a redundant musculo-skeletal
arm,” Journal of Robotic Systems, vol. 22, pp. 639–651, 2005.
[7] H. Dong and N. Mavridis, “Adaptive biarticular muscle force control for
humanoid robot arms,” in Proceeding of 12th IEEE-RAS International
Conference on Humanoid Robots, pp. 284–290, 2012.
[8] “Robotics research: The first international symposium,” in Analysis
and control of robot manipulators with redundancy, pp. 735–748, MIT
Press, 1984.
[9] A. Maciejewski and C. Klein, “Obstacle avoidance for kinematically
redundant manipulators in dynamically varying environment,” Interna-
tional Journal of Robotics Research, vol. 4, pp. 109–117, 1985.
[10] A. Heim and O. Stryk, “Trajectory optimization of industrial robots
with application to computer aided robotics and robot controllers,”
Optimization, vol. 47, pp. 407–420, 2000.
[11] T. Tsang, “Generalised predictive control with input constraints,” IEE
Proceedings on Control Theory and Applications, vol. 135, pp. 451–
460, 1988.
[12] K. Fujimoto, T. Horiuchi, and T. Sugei, “Optimal control of hamiltonian
systems with input constraints via iterative learning,” in Proceeding of
IEEE Conference on Decision and Control, pp. 4387–4392, 2003.
[13] G. Yamaguchi, Dynamic Modeling of Musculoskeletal Motion: A Vec-
torized Appoach for Biomechanical Analysis in Three Dimensions.
Springer, 2005.
[14] F. Anderson and M. Pandy, “Dynamic optimization of human walking,”
Journal of Biomechanical Engineering, vol. 125, pp. 381–390, 2001.
[15] K. Manal, R. Gonzalez, D. Lloyd, and T. Buchanan, “A real-time
emg-driven virtual arm,” Computers in Biology and Medicine, vol. 32,
pp. 25–36, 2002.
[16] R. Neptune, “Optimization algorithm performance in determining opti-
mal controls in human movement analysis,” Journal of Biomechanical
Engineering, vol. 121, pp. 249–252, 1999.
[17] D. Graupe, Identification of Systems. Litton Educational Publishing,
1972.
[18] K. Zhou and J. Doyle, Essentials of Robust Control. Prentice Hall,
1997.
[19] J. Slotine and W. Li, Applied Nonlinear Control. Prentice Hall, 1991.
[20] M. Brown and C. Harris, Neurofuzzy Adaptive Modelling and Control.
Prentice Hall, 1994.
[21] A. Nagano, S. Yoshioka, T. Komura, R. Himeno, and S. Fukashiro, “A
three-dimensional linked segment model of the whole human body,”
International Journal of Sport and Health Science, vol. 3, pp. 311–
325, 2005.
16471647