Biomimetic Operational Space Control for Musculoskeletal Humanoid
Optimizing Across Muscle Activation and Joint Nullspace
Yasunori Toshimitsu1, Kento Kawaharazuka1, Manabu Nishiura1, Yuya Koga1, Yusuke Omura1
Yuki Asano1, Kei Okada1, Koji Kawasaki2, and Masayuki Inaba1
Abstract— We have implemented a force-based operational
space controller on a physical musculoskeletal humanoid robot
arm. The controller calculates muscle activations based on a
biomimetic Hill-type muscle model. We propose a method to
include the joint torque nullspace in the optimization process,
which enables the robot to exploit the nullspace to gradually
lower its overall muscle activation. We have veriﬁed in exper-
iments that it can react compliantly to external disturbances
while retaining its operational space task.
Musculoskeletal humanoid robots have a biomimetic struc-
ture that mimic the human body by emulating muscles,
using contractile actuators. They can be contrasted with con-
ventional robots which contain axis-driven actuators. These
musculoskeletal humanoids have a highly nonlinear mapping
between the task (e.g. hand position / force), joint pose, and
muscle, and there has been many control schemes proposed
to move these robots effectively –.
The movement of musculoskeletal robots can be analyzed
in 3 spaces: operational space, joint space, and muscle space.
The ﬁrst two spaces are used for axis-driven robots as well:
the operational space describes the task of the robot (such
as hand position trajectory) and the joint space describes the
joint angle-based pose of the robot. The third space is unique
to musculoskeletal robots- the muscle space, which describes
the state of each muscle.
Controllers for musculoskeletal robots can be grouped
by looking at which spaces the controller interfaces with.
A biomimetic controller based on motor directional tuning,
previously proposed by the author, used a sensory-motor
mapping between operational space and muscle space .
However, the lack of an internal model and relying on a
simple control rule has made it challenging to move the robot
accurately across a wide range of poses.
There has also been much research which considers the
joint space and muscle space. Kawaharazuka et al. used
a neural network to learn the relationship between joint
and muscle space parameters , . J¨
antsch et al. has
applied computed muscle control to achieve torque control
of musculoskeletal robots . These methods enable mus-
culoskeletal humanoids to be controlled in joint space, to
1The authors are with Department of Mechano-Informatics, Graduate
School of Information Science and Technology, The University of Tokyo,
7-3-1 Hongo, Bunkyo-ku, Tokyo, 113-8656, Japan. [toshimitsu, kawa-
harazuka, nishiura, koga, oomura, asano, k-okada, inaba]@jsk.t.u-
2The author is associated with TOYOTA MOTOR CORPORATION.
be treated like axis-driven robots. However, when executing
operational space tasks such as controlling hand position,
a separate controller is required to convert the operational
space commands to joint space commands (e.g. inverse
The proposed operational space controller for muscu-
loskeletal humanoid robots considers all three spaces. A
single controller can compute muscle commands from op-
erational space tasks given to it, while taking advantage of
the joint and muscle redundancies. There has been several
implementations of operational space control to simulated
musculoskeletal bodies , . In this research, we propose
a method to include the torque nullspace vector in the
optimization problem, enabling the controller to exploit the
nullspace to gradually drift to a pose that requires less muscle
activation. To the best of our knowledge, it is the ﬁrst
implementation of a force-based operational space controller
on a physical musculoskeletal humanoid robot.
II. MUS CULOSKELETAL DYNAMICS
In this section, we will brieﬂy introduce key concepts
for musculoskeletal robots and biomechanics, which are
important elements of the proposed controller.
A. Relation Between Joint & Muscle Space
The differential relationship between joint space and
muscle space can be described using the muscle Jacobian
(sometimes refered to as muscle moment arms) Jm.
Where lis muscle length, qis the joint angle vector, fis
muscle tension, and τis joint torque.
Although it is a simple matrix calculation to calculate joint
torque τfrom muscle force f, the computation of its inverse
is not straightforward because of the muscle redundancy. In
the biomechanics ﬁeld, this problem is solved with the in-
verse dynamics-based static optimization method, which uses
an objective function to resolve this redundancy . The
objective function is usually designed to minimize muscle
tension or stress. Joint-torque controllers for musculoskeletal
robots have been proposed based on this method, using the
sum of muscle forces squared as its objective function ,
Fig. 1: Force-length relationship curve of muscle.
B. Hill-type Model for Muscles
The Hill-type muscle model is commonly used to describe
the macroscopic behavior of biological muscles . Using
this model, the muscle contractile force can be calculated
from the muscle activation value a. The isometric force
can be calculated from the force-length relation. In non-
isometric conditions, the force-velocity relation must also be
considered, which states that muscles exert more force while
lengthening than when they are shortening.
For this research, only the force-length relationship was
considered since it was considered to capture enough of
the nonlinear properties of muscles without introducing too
The force-length curve used for the proposed controller is
described in Fig. 1, when the activation ais 1 and 0.5 as an
example. The total muscle force is the sum of the active force
afa, which depends on both the muscle length and activation
a, and passive force fp, which only depends on muscle
length. The resulting muscle force fcan be calculated as
f=afa(l) + fp(l) (0 ≤a≤1) (2)
In this research, the Hill-type muscle model was adapted
for use in musculoskeletal humanoids. However, since the
”optimal length” (where fapeaks) for each muscle of
musculoskeletal humanoid robot is not obvious, we cannot
directly apply this model. We propose a model which uses
the minimum and maximum length (respectively lmin and
lmax) of the muscle during nominal movement to deﬁne the
horizontal scale of the force-length curve. The active and
passive force curves were approximated respectively by a
cosine and quadratic function, which captured the general
shape of the curves measured from biological muscles.
lo:= lmin +lmax
lrange := lmax −lmin
fa(l) = ((1 + cos(2πl−lo
2,if |l−l0| ≤ 0.75lrange
fp(l) = (fmin,if l < lo
The functions fa(l)and fp(l)as deﬁned in (4) are depicted
in Fig. 1. f1and f2deﬁne the scale of the two graphs, and
fmin is the baseline tension which is necessary to keep the
muscle wires taut.
From a control system aspect, we can view this force-
length relationship of muscle actuators as a kind of ”soft
Fig. 2: Overview of the proposed controller.
limit” to body movements, which limit the range of joint
movements gradually before they reach their ”hard limit”
deﬁned by the joint structure. As joints are moved and
muscles deviate from their optimal length, their ability to
produce output (described with fa) decreases, and also the
passive element fpacts like a nonlinear spring that inhibits
further movement away from the optimal length. As a result,
further movement towards joint limits is gradually inhibited.
III. OPE RATIO NAL SPACE CO NTROLLE R FOR
MUS CUL OSKELETAL ROBOTS
The operational space control attempts to resolve the
redundancy of robot structures by designing the controller to
achieve goals deﬁned in operational space, rather than joint
space , . After brieﬂy introducing the original force-
based operational space controller proposed for axis-driven
robots, in Section III-A, we will later extended it in Section
III-B so that it can be applied to musculoskeletal robots.
A. Operational Space Control
Our proposed operational space controller for muscu-
loskeletal robots was based on the force-based operational
space control, formulated by Khatib in 1987, which directly
computes the joint torque commands from the operational
space command (usually given as a desired pose for the end
The behavior of the robot can be described with the
standard manipulator equation
q) + g(q) = τ(5)
where qis the generalized coordinates represented as a
joint angle vector, M(q)is the inertial matrix, C(q,˙
vector for Coriolis and centripetal force, g(q)is the gravity
compensation torque, and τis the vector of joint torque. The
relationship between the joint space and operational space
can be given by the forward kinematics function f(q)and
Jacobian matrix Jas such:
Where xrepresents the operational space conﬁguration,
usually the end effector pose.
The inertial matrix in operational space is
Using this matrix ¯
M, the desired acceleration in operational
xrcan be calculated as a force in operational space
xrand mapped to a joint torque control law:
xr) + C+g+ (I−JT¯
Jis the inertia-weighted pseudo-inverse of the Jacobian,
deﬁned as ¯
J=M−1JT(JM−1JT)−1.τnull is the nullspace
vector, which can take any value and not affect the resulting
acceleration or velocity in operational space.
B. Application of Simpliﬁed Hill’s Muscle Model
The proposed operational space controller for muscu-
loskeletal humanoid robots will now be derived. To resolve
the redundancy when converting joint torques to muscle
forces, we will create an objective function. This function is
based on the muscle activation values a. After ais obtained,
muscle forces will be calculated from (2) and (4), then sent to
the muscle actuators as a reference tension value command.
The overview of the proposed controller is described in Fig.
The operational space formulation of (8) can be adapted to
a quadratic optimization problem that optimizes for muscle
activation values aas follows.
subject to (−JT
m(afa+fp) = JT¯
Note that the nullspace has been ignored in this formulation
(it will be re-introduced later). Also, the Coriolis and cen-
trifugal force vector Cwas not used in this research, as it was
considered negligible compared to the gravity and feedback
forces. Here, ||·|| is the L2 norm, and is the element-wise
product of two vectors. The objective function is the squared
sum of activation values, and the equality constraint ensures
that the muscle force realizes the joint torque calculated from
the operational space formulation.
The formulation of (9) assumes that a solution exists for
the equation of motion described as an equality constraint.
However, this may not always be the case, such as when the
robot is trying to reach out of its workspace. In a manner
similar to that introduced in , the equation of motion was
moved to the objective function to act as a ”soft” equality
constraint, and the optimization will attempt to fulﬁll it as
much as possible without actually requiring it to be solvable.
m(afa+fp) + JT¯
subject to a≥0
where a larger value of the constant kwill trade off torque
accuracy for minimization of muscle activation values.
(a) Joint arrangement. (b) Muscle Arrangement.
Fig. 3: Structure of musculoskeletal humanoid Musashi’s left
C. Considering the Nullspace in the Optimization Process
Finally, we will re-introduce the nullspace into the opti-
mization problem formulation. By including the nullspace
vector in the optimization, the controller can exploit the
nullspace to achieve a more optimal muscle activation. The
effect of this consideration is veriﬁed later in the experi-
subject to a≥0
The term r||τnull||2was included to make the objective
function be always convex for τnull and improve the stability
of the optimization results. rwas set to 0.1 in the following
experiments. This was given to a quadratic programming
solver by formulating (11) to optimize for x, where x:=
IV. IMP LEM ENTATI ON ON T HE MUSCULOSKEL ETA L
HUMANOID ROB OT MUSA SHI
Musashi is a modularized musculoskeletal humanoid de-
veloped at the JSK robotics lab in the University of Tokyo
. One of its features is that it contains a potentiometer
in each of its joints, enabling measurement of joint pose that
can be used in the controller. Each muscle is implemented
as a tendon-driven actuator using a sensor-driver integrated
module, which can accept target tension commands .
Only the left arm was used in this experiment. Fig. 3 shows
the joint and muscle structure of the arm.
The muscle Jacobian was calculated from the joint-muscle
mapping proposed by Kawaharazuka et al., which uses a
neural network to learn the relation between joint and muscle
on the actual robot .
The controller was implemented in C++, using the rigid
body dynamics library Pinocchio ,  and used sep-
arate threads for rigid body dynamic parameter calculation
(running at 20Hz) and the quadratic optimization process
(running at 125 Hz).
In the following experiments, the operational space con-
sisted of 5 dimensions: the xyz positional coordinates and
rotation around the yand zaxis (The coordinate axes used
here are shown in Fig. 3). Allowing rotation around the
”gripping axis” (xaxis in Fig. 3) of the hand was found
to be easier to control than attempting to control the full
6-dimensional position and orientation. The resulting joint
Jacobian Jis a 5-by-7 matrix:
Furthermore, before inputting into the optimization process,
we have modiﬁed the joint Jacobian computed from the link
model, by setting some of the elements to 0.
J1,i =J2,i =J3,i = 0 (i= 5,6)
J4,j =J5,j = 0 (j= 1,2,3,4) (13)
This effectively informs the controller that the proximal
joints (shoulder-p/r/y joints and elbow-p joint) are to be used
only to control position, and some of the distal joints (elbow-
yand wrist-r joints) are to be used only for orientation
control. Heuristically, this decoupling procedure has realized
a more stable behavior of the robot.
The reference acceleration ¨
xrwas calculated as follows.
For the position goal, a PD feedback rule was applied, based
on a given desired goal xdes,˙
xr,pos =kp(xdes −xpos) + kd(˙
xpos) + ¨
where xpos indicates the positonal part of x(i.e. the ﬁrst 3
elements), and kpand kdare feedback gains. By setting kd=
2pkp, the hand will make a critically damped approach to
the target position. For the orientation, a simple proportianal
feedback was used:
where xori indicates the orientational part of x(i.e. the last
2 elements), kris the feedback gain, and ∆θy,∆θzare the
angle difference in the yand zaxis between the current and
desired goal orientations.
In the experiments, some of the muscles actuating the
ﬁngers (#13, #15, and #16 in Fig. 3) were kept at a constant
target tension and was not involved in the operational space
controller. In total, 15 muscles and 7 joints were used in the
controller. Unless otherwise noted, the quadratic optimization
fomulation in (11) was used, resulting in a optimization
process of 22 variables. Table I shows the parameter values
used in the experiments.
We have also created a simple graphical user interface,
shown in Fig. 4a, which enables control of the hand position
and orientation by moving a marker with the mouse, and
conducted demonstrations utilizing tools such as badminton
rackets, which in effect extend the end effector of the robot.
They are documented in the attached video, together with
video footage of the experiments detailed in the next section.
TABLE I: Parameter values used in experiments
fmin 5 [N]
kr300 [m/rad ·s2]
(a) Simple GUI. (b) Tool usage task.
Fig. 4: Applications of the proposed controller.
A. Compliant response to external disturbance
This experiment measures how the controller can adapt
compliantly to external forces applied to the arm. The
experiment is described in Fig. 5. A force gauge was used
to push the elbow 4 cm inwards, as external disturbance.
The desired position xdes for the operational space controller
was ﬁxed to the initial hand position. For comparison with
the proposed method, controllers based on joint stiffness and
muscle stiffness were used.
The joint stiffness controller implements torque control to
achieve desired joint position. The formulation is similar to
the joint-space controller proposed by Kawamura et al. .
mf+K(qdes −q) + g||2)
subject to f≥fmin
The proportional term which accounts for joint stiffness, K,
was set to diag(40,40,40,15,2,2,2)[Nm/rad].
The muscle stiffness controller implements P control at
the muscle level and has also been used to control muscu-
Fig. 5: Overview of the external disturbance experiment.
Fig. 6: Result of external disturbance experiment.
loskeletal robots .
ldes := g(qdes)
for each muscle i...
fi=max(km(li−ldes,i),0) + fmin
where g(·)is the joint-muscle mapping, kmis the muscle
stiffness term, and liis the length of muscle i.
For both comparison experiments, which accepts goal
input as joint pose, a desired pose of qdes = (-0.43, 0.48, -
0.43, -1.8, 0.68, 0.5, 0.4)[rad]was given, to match the initial
pose in the trial using the operational space controller.
The results are shown in Fig. 6. The left column shows the
results for the proposed operational space controller, and the
middle and right columns are the comparison controllers.
Only the representative muscles and joints are plotted for
the lower two graphs. The hand position deviation from
the initial position was always kept below 2 [cm] for the
proposed controller, while in the comparison methods it
rose to above 4 [cm]. The pushing force measured by the
force gauge also shows a signiﬁcant difference between the
proposed and comparison methods; in the proposed method,
the force increases as the elbow is displaced, peaking at
around 40 [N] and then gradually decreases to 0 [N], even
as the 4 [cm] elbow displacement is held in place. In the
comparison methods, constant force is required to hold the
elbow in place.
It should be noted that the proposed method does not
explicitly consider external disturbances (e.g. using distur-
bance observers or contact sensors). Instead, as the elbow
is displaced and the joints move, the controller detects the
error in operational space, and generates feedback output to
decrease the error.
B. Dynamic trajectory tracking with different arm poses
In this experiment, the ability of the controller to execute
the same operational space trajectory with different poses
was veriﬁed. The robot followed the same pre-calculated
dynamic trajectory in each trial, moving between two points
distanced 20[cm]apart, as depicted in Fig. 7. In this experi-
ment, orientation feedback was disabled, and only positional
control was used (i.e., krwas set to 0).
The results are shown in Fig. 7. The 3 poses used are
depicted in the same ﬁgure, and it can be seen that they are
achieving the same operational space trajectory with different
joint angle pose. For graph legibility, the hand position is
plotted as the difference from the center of the movement,
It can be seen that for poses A and B, the robot shows
relatively good tracking with an average tracking error of
respectively 3.5[cm]and 5.0[cm]. However, for pose C,
where the elbow was higher, the robot struggles to track the
desired trajectory, and average error increases to 7.7[cm].
C. Effect of optimization across nullspace
This experiment evaluated the effect of including the
nullspace vector in the optimization process. It compared
the full optimization problem formulation which includes the
nullspace vector τnull, described in (11), and the formulation
that does not include τnull, described in (10).
The robot was manually set to a pose with a high elbow
position (shown in Fig. 8a), and released at t= 0.
Fig. 7: Result of dynamic trajectory following experiment. The same trajectory was executed starting from different poses.
(a) Robot was released manu-
ally from this pose at t= 0 (b) Results.
Fig. 8: Nullspace optimization experiment.
The results are shown in Fig. 8b. This pose requires a
higher muscle activation to keep in place than when the
elbow is lower, and in both cases, the L2 norm of the muscle
activation ||a|| starts around 10. When the nullspace vector
is included in the optimization, ||a|| gradually decreases to
below 5 as time goes by, while ||a|| does not signiﬁcantly
change in the other formulation. The resulting joint angle
history shows that for the proposed method, the robot drifts
to a smaller shoulder-r angle, lowering the elbow position.
We have implemented an operational space controller on a
physical musculoskeletal humanoid arm robot. It can receive
commands describing the task in operational space, and
through a quadratic optimization process using parameters
calculated from a dynamic rigid body model, joint-muscle
mapping model, and biomimetic muscle activation model, it
can calculate muscle activation values. With this controller,
we can achieve reaching tasks without a process that ex-
plicitly considers the target joint angles, such as inverse
kinematics. Because the robot does not consider its joint
angle pose, it can adapt compliantly to external disturbances
while still achieving the operational space task. We have also
proposed a method to include the torque nullspace vector
into the quadratic optimization. This effectively informs the
optimizer of possible movements that do not affect the
task, which enables the robot to automatically adjust its
pose in order to lower the overall muscle activation without
sacriﬁcing operational space accuracy.
In order to have robots that can work together with
humans, we consider it imperative that they can react com-
pliantly to external disturbances while achieving the desired
task. To that end, we take the task-oriented approach of
the operational space formulation and apply the concept
of muscle models inspired by biological muscles to realize
compliant motion in musculoskeletal robots. In the future,
we hope to extend this approach to other semgents of the
musculoskeletal humanoid, such as the trunk and legs, in
order to create a full-body operational space controller that
can consider its dynamic balance while achieving operational
 Y. Toshimitsu, K. Kawaharazuka, K. Tsuzuki, M. Onitsuka,
M. Nishiura, Y. Koga, Y. Omura, M. Tomita, Y. Asano, K. Okada,
K. Kawasaki, and M. Inaba, “Biomimetic Control Scheme for Mus-
culoskeletal Humanoids Based on Motor Directional Tuning in the
Brain,” in Proceedings of the 2020 IEEE/RSJ International Conference
on Intelligent Robots and Systems, 2020.
 K. Kawaharazuka, K. Tsuzuki, M. Onitsuka, Y. Asano, K. Okada,
K. Kawasaki, and M. Inaba, “Musculoskeletal AutoEncoder: A Uni-
ﬁed Online Acquisition Method of Intersensory Networks for State
Estimation, Control, and Simulation of Musculoskeletal Humanoids,”
IEEE Robotics and Automation Letters, vol. 5, no. 2, pp. 2411–2418,
 K. Kawaharazuka, S. Makino, M. Kawamura, A. Fujii, Y. Asano,
K. Okada, and M. Inaba, “Online Self-body Image Acquisition Con-
sidering Changes in Muscle Routes Caused by Softness of Body Tissue
for Tendon-driven Musculoskeletal Humanoids,” in Proceedings of the
2018 IEEE/RSJ International Conference on Intelligent Robots and
Systems, 2018, pp. 1711–1717.
 M. J¨
antsch, C. Schmaler, S. Wittmeier, K. Dalamagkidis, and A. Knoll,
“A scalable joint-space controller for musculoskeletal robots with
spherical joints,” in Proceedings of the 2011 IEEE International
Conference on Robotics and Biomimetics, 2011, pp. 2211–2216.
 G. Martius, R. Hostettler, A. Knoll, and R. Der, “Compliant control
for soft robots: Emergent behavior of a tendon driven anthropomor-
phic arm,” in 2016 IEEE/RSJ International Conference on Intelligent
Robots and Systems (IROS), Oct 2016, pp. 767–773.
 M. Kawamura, S. Ookubo, Y. Asano, T. Kozuki, K. Okada, and
M. Inaba, “A Joint-Space Controller Based on Redundant Muscle
Tension for Multiple DOF Joints in Musculoskeletal Humanoids,”
in Proceedings of the 2016 IEEE-RAS International Conference on
Humanoid Robots, 2016, pp. 814–819.
 T. Shirai, J. Urata, Y. Nakanishi, K. Okada, and M. Inaba, “Whole
body adapting behavior with muscle level stiffness control of tendon-
driven multijoint robot,” in Proceedings of the 2011 IEEE Interna-
tional Conference on Robotics and Biomimetics, 2011, pp. 2229–2234.
 D. Stanev and K. Moustakas, “Simulation of constrained muscu-
loskeletal systems in task space,” IEEE Transactions on Biomedical
Engineering, vol. 65, pp. 307–318, 02 2018.
 S. Menon, T. Migimatsu, and O. Khatib, Controlling Muscle-Actuated
Articulated Bodies in Operational Space, 01 2020, pp. 1037–1053.
 A. Erdemir, S. Mclean, W. Herzog, and A. van den Bogert, “Model-
based estimation of muscle forces during movements,” Clinical biome-
chanics (Bristol, Avon), vol. 22, pp. 131–54, 03 2007.
 F. Zajac, “Muscle and tendon: properties, models, scaling, and ap-
plication to biomechanics and motor control.” Critical reviews in
biomedical engineering, vol. 17 4, pp. 359–411, 1989.
 O. Khatib, “A uniﬁed approach for motion and force control of robot
manipulators: The operational space formulation,” IEEE Journal on
Robotics and Automation, vol. 3, no. 1, pp. 43–53, 1987.
 J. Nakanishi, R. Cory, M. Mistry, J. Peters, and S. Schaal, “Oper-
ational space control: A theoretical and empirical comparison,” The
International Journal of Robotics Research, vol. 27, p. 737, 06 2008.
 K. Kawaharazuka, S. Makino, K. Tsuzuki, M. Onitsuka, Y. Nagamatsu,
K. Shinjo, T. Makabe, Y. Asano, K. Okada, K. Kawasaki, and
M. Inaba, “Component Modularized Design of Musculoskeletal Hu-
manoid Platform Musashi to Investigate Learning Control Systems,”
in Proceedings of the 2019 IEEE/RSJ International Conference on
Intelligent Robots and Systems, 2019, pp. 7294–7301.
 Y. Asano, T. Kozuki, S. Ookubo, K. Kawasaki, T. Shirai, K. Kimura,
K. Okada, and M. Inaba, “A Sensor-driver Integrated Muscle Module
with High-tension Measurability and Flexibility for Tendon-driven
Robots,” in Proceedings of the 2015 IEEE/RSJ International Con-
ference on Intelligent Robots and Systems, 2015, pp. 5960–5965.
 J. Carpentier, F. Valenza, N. Mansard, et al., “Pinocchio: fast forward
and inverse dynamics for poly-articulated systems,” https://stack-of-
 J. Carpentier, G. Saurel, G. Buondonno, J. Mirabel, F. Lamiraux,
O. Stasse, and N. Mansard, “The pinocchio c++ library – a fast and
ﬂexible implementation of rigid body dynamics algorithms and their
analytical derivatives,” in IEEE International Symposium on System
Integrations (SII), 2019.