Abstract
1. Introduction
The ultimate purpose of humanoid robots is to provide convenience for humans in human living environments. In order for humanoids to assist or substitute for humans, reliable mobility in various environments and dexterous manipulability are required. Therefore, humanoids are designed to have structural similarities to humans, i.e., two arms and two legs. With this structural characteristic a humanoid robot is able to perform multiple tasks simultaneously. However, this design introduces many degrees of freedom (DOF) and makes dynamic problems very complicated. A position-controlled humanoid, in this sense, allows simpler kinematic approaches.
The task-priority method [13, 18], which uses task Jacobian and its null space projection operators, is very suitable to handle the kinematic problems of a humanoid robot in multiple tasks. But simple inversion of the Jacobian does not take into account unilateral constraints such as the joint range, velocity, and acceleration limits. For this reason, several methods have introduced tasks to cope with unilateral constraints. The potential field is a task that pushes joints away from their limit positions [9]. An objective function that has a minimum value at the centre of the joint range is used in the gradient projection method [11]. However, the priorities of these tasks are always lower than those of the primary tasks, and thus satisfaction of the constraint is not guaranteed. In addition, it is difficult to select appropriate parameters that determine the strength of the repulsion or attraction. A method using the weighted least-norm solution was proposed in [3] to overcome the shortcomings of the gradient projection method; however, joint velocity and acceleration limits were not taken into account.
Clamping the joint velocity and acceleration to the limit values is the simplest way to satisfy the constraints but may result in unpredictable task errors. By using the infinity-norm, the lowest possible joint velocity solution was obtained in [5]. However, it is not guaranteed that the lowest velocity solution will satisfy the velocity limit. In [2, 1], the task-space trajectory was slowed down when the joint velocity or acceleration limits were encountered.
A typical joint position controller uses a high-gain PD control and thus discontinuous position commands should be avoided to protect joints from being damaged. For this reason, not only joint range but also joint velocity and acceleration limits should be considered simultaneously. A unified framework in which the three kinds of joint constraints are explicitly taken into account was proposed in [6]. The method has the same starting point as ours in shaping the joint velocity bounds. However, our inverse kinematics algorithm is defined at the acceleration level and is different from their method since they dealt with a redundant manipulator, whereas we are interested in a humanoid robot, which may not be redundant due to multiple tasks. From the aspect of multiple tasks, a general framework was proposed in [8] for a system with prioritized equality and/or inequality tasks. However, the constraints considered in this paper always have the highest priority and this allows a more efficient algorithm to be developed.
The high-gain position controllers of a humanoid robot introduce stiffness of joints and make the system vulnerable to impact forces. Even a small impact on the foot may cause a jolt to the system since a humanoid robot is not fixed on the ground. A damping controller can be used to reduce the jolt but normally high control bandwidth is required. For this reason, compliant materials are used, as shown in Figure 9, to absorb impacts on the contact surface; these materials function as a low-pass filter, lowering the required control bandwidth. Thus the damping controller should take into account the effect of these compliant materials.

The proposed inverse kinematic control scheme.

A cart-table model for the proof of Proposition 3.1.

3R planar manipulator for the simulation in 3.3.

Tracking of the task trajectory (red circles) under joint limit constraints using (a) GF and (b) IKTC.

Trajectories of q1, q̇1, and q̈1 corresponding to the simulation results in Figure 4.

Trajectories of q2, q̇2, and q̈1 corresponding to the simulation results in Figure 4.

Trajectories of q3, q̇3, and q̈3 corresponding to the simulation results in Figure 4.

Error trajectories of the three tasks in the simulation in Section 3.3.

Compliant materials around the foot of humanoid robot
In this paper, we propose an inverse kinematic control framework for a position controlled humanoid robot that has constraints of joint range, velocity, and acceleration limits. The proposed framework is comprised of two components, an inverse kinematics algorithm and a damping controller, as shown in Figure 1.
The proposed inverse kinematics algorithm, IKTC, is based on the second order task-priority method. When the minimum norm solution exceeds the joint bounds, an optimal task correction that would let the solution reside within the bounds is found by using quadratic programming. While the general method proposed in [8] has to solve a cascade of quadratic programs, IKTC solves a quadratic program once and thus can increase computational efficiency. In order to express the three kinds of constraints as a second order box constraint, a novel method is also proposed.
The proposed damping controller uses an inverted pendulum model with a compliant joint (IPCJ), as in [10]. While the damping controller proposed in [10] had the purpose of attenuation of the vibration in SSP (single support phase) only, our damping controller uses ZMP measurement and is applicable not only in SSP but also in DSP (double support phase).
The proposed methods are validated by imitating a captured human motion with a position controlled humanoid robot. Since there are kinematic and dynamic differences between humans and humanoids, the imitation of a captured human motion will be a good challenge to verify the proposed methods.
This paper is organized as follows. In Section 2, the background of the proposed methods is given. Section 3 presents the inverse kinematics algorithm and Section 4 presents the damping controller. The experiments are presented in Section 5 and conclusions are drawn in Section 6.
2. Background
2.1 Task-Priority based Inverse Kinematics
As mentioned earlier, a humanoid robot has a lot of DOF and thus is capable of performing multiple tasks simultaneously. However, a solution does not exist that is able to achieve all the tasks when there is a conflict. The least-squares solution can be used to minimize the second-norm of task errors when there is no exact solution, though this may not satisfy any of the tasks exactly.
The task-priority strategy is devised to handle tasks according to their order of priority [7,12,13]. By executing a task of lower priority in the null space of a higher priority task, conflicts between tasks are dealt with. A general framework of the methodology is proposed in [18] and is briefly reviewed in the following.
Consider a kinematic equation for the
where
where
The null space projection operator of the
where the superscript + denotes the pseudo-inverse of a matrix and I is an n × n identity matrix.
If we let the (
acceleration that achieves higher
with
As shown in (5), q̈i can be divided into two components, the solution of previous (
previous tasks and therefore any components that would disturb the previous tasks are excluded by the task-consistent Jacobian.
2.2 Damped Least-Squares Inverse
When a task Jacobian loses its rank, the task cannot be executed and it is called a
To handle the singularities, we use the damped least-squares method proposed in [19]. The damped least-squares (DLS) inverse is given by
or, equivalently,
where λ ∈ ℝ is the damping factor.
The DLS inverse (8) provides the solution of
Therefore, the solution norm is bounded to a certain value and singularity-robustness is obtained. However, the DLS inverse is not so sophisticated that the solution satisfies the given joint constraints. Thus we use the DLS inverse only for regularization of the solution in the neighbour of the singularity.
2.3 Closed-Loop Inverse Kinematics (CLIK)
In the task-priority strategy, lower priority tasks are sacrificed to achieve higher priority tasks when there is a conflict between the tasks. The error due to the sacrifice cannot be compensated for by the
For the generic
where the subscript
where ei = xi,d - xi. Eq. (12) is the error dynamics of the
2.4 Consideration of Linear Inequality Constraints Using Quadratic Programming
In the presence of joint limits, an inverse kinematics problem can be treated as a quadratic optimization problem with linear inequality constraints such as
where bu ∈ ℝn and bl ∈ ℝn are the upper and lower bounds of the joint acceleration, respectively. The optimal solution of (13) can be found by using a typical quadratic programming (QP) algorithm [15].
The optimization algorithm proposed in [8] uses a sequence of QP in order to handle prioritized tasks. From the highest to the lowest priority task, QP is carried out during each task to solve an optimization problem given in the form of (13); the solution of the current priority task is imposed as a linear equality constraint on the next priority task. This algorithm is generous such that not only prioritized linear equality tasks but also prioritized linear inequality tasks can be taken into account. However, since here the constraints of the joint range, velocity, and acceleration limits always have the highest priority, a more efficient algorithm could possibly be developed.
3. Inverse Kinematics Algorithm
3.1 Joint Range, Velocity, and Acceleration Limits
Since we deal with inverse kinematics problems at the acceleration level, the joint range, velocity, and acceleration limits should be taken into account in the form of a second-order inequality constraint, as shown in (13).
If the joint acceleration q̈ satisfies the inequality (14), the joint position, velocity, and acceleration are kept below their limits, respectively,
where qmin, qmax,
By the third term in the min/max function, the joint velocity q is constrained such that
and, as the result of this, the joint position is kept inside the position range [qmin,qmax]. As for the proof, we show that the joint position gets out of the range if (15) does not hold.
Consider a cart of unit mass on a table, as shown in Figure 2. Let us assume that the initial velocity of the cart is
and that it decelerates maximally so as not to fall from the table. From the viewpoint of energy, the kinetic energy of the cart should be zero, at least on the edge of the table, in order not to fall. By applying the principle of the conservation of the energy, the cart has kinetic energy KE@qmax at q = qmaxand KE@qmax is given by
where Wdec is the work done by an external force during deceleration. Since k was assumed to be k>1, the kinetic energy KE@qmax is greater than zero and therefore the cart falls from the table. In order for the cart not to fall from the table, k must be |k| < 1 and the right inequality in (15) has been proved. The left inequality in (15) can be proved in the same way.
3.2 Inverse Kinematics with Task Correction (IKTC) Algorithm
In our inverse kinematics algorithm, some or all tasks are corrected such that the joint acceleration solution satisfies the inequality constraints (14) and the corrections are determined by solving a quadratic optimization problem.
Before proceeding, it should be mentioned that an over-constrained system is not considered in this paper. We are interested in a system that has DOF more than or equal to the task dimension. Thus,
where n is the system DOF, mi is the dimension of the
If we let the correction of the
For given nT tasks, (19) can be rewritten as
with
where q̈1,…q̈nT are joint accelerations obtained by (5) and g1,…,gnT are determined by collecting the coefficient matrices T of Δhi's. Therefore, with the proper manipulation of Δhi's, G can be obtained easily using (5); this process is described in Algorithm 1.
since the dimension of G is
Furthermore, using DLS inverse J̄λ+ instead of J̄+ in Algorithm 1, it can be guaranteed that G always has full rank even when there are singularities.
As shown in (20), q̈*nT is composed of two components, the joint acceleration q̈*nT from original tasks and the corrective task term by which the inequality constraints are satisfied. Substituting q̈*nT into the inequality constraints (14) gives
Obtaining G in (20)
Any task corrections satisfying (22) can be chosen as the solution for q̈*nT. However, since the task corrections are equal to the task errors, and there are priorities given to tasks, the task corrections should be as small as possible and should avoid higher priority tasks as much as possible. For these purposes, let us consider an optimization problem:
where Δhai and gai are defined by
Solving (23) begins with ΔhanT and ganT in order to avoid higher priority task errors. However, a solution may not exist because ganT has rank of mnT and mnT ≤n. The existence of the solution is checked using the simplex method [15]; if there does not exist a no solution exists satisfying the inequality constraints, (23) is extended to higher priority tasks by taking Δhai-1 andgai-1. These steps are repeated until a solution is found: this process is summarized in Algorithm 2. If we assume that there is a solution when
Solving a quadratic optimization problem (23) taking into consideration the task priority.
The joint acceleration solution q̈*nT given in (25) satisfies the inequality constraints by virtue of the correction tasks Δhk,…,ΔhnT. ‘nT
Before the solution has been obtained, the costly QP is carried out once, which increases the efficiency of the proposed algorithm remarkably better than does the use of the general method proposed in [8].
3.3 Simulation
A 3R planar manipulator, shown in Figure 3, is considered here to present the simulation. All links have the same unit length and the inverse kinematics is solved for the three prioritized tasks. Each joint has position range, velocity, and acceleration limits and, due to these constraints, task corrections happen in the IKTC algorithm. The simulation was conducted using two methods, the general framework (GF) proposed in [8] and the IKTC algorithm. In order to consider the joint constraints in GF, we used the inequality constraints (14) in GF.
The joint range limits of the manipulator are qmax = (180°, 120°, 120°), qmin = (60°,-120°,-120°). The joint velocity and acceleration limits are
Figure 4 shows the simulation results generated by the GF and IKTC algorithms. Both sets of results show that the error of the lowest priority task increases when the three tasks become infeasible as the tip moves right and q1 reaches its range limit. But, owing to the error, higher priority tasks can be achieved without violating the joint constraints. This can be verified in Figure 8, in which the task errors are shown.
The position, velocity, and acceleration trajectories of the three joints are shown in Figures 5, 6, and 7. None of these have violated their limits and thus the proposed inequality constraint in (14) is validated.
From Figure 8, it can be said that both the GF and IKTC algorithms generated almost the same results. In this simulation, however, GF carried out QP three times at every time step while IKTC carried out QP once at most. This leads to a situation in which the computation cost of IKTC is less than that of the GF algorithm.
4. Damping Controller
4.1 Inverted Pendulum Model with a Compliant Joint (IPCJ)
The compliance around the foot of a humanoid robot can be thought of as a combination of translational springs and rotational springs, as illustrated in Figure 10. Since the translational movement is negligible and a position controlled humanoid robot can be regarded as a rigid body in a moment, we use the IPCJs as illustrated in Figure 11 for the damping controller. We use an IPCJ even in DSP because the coupling moment due to translational springs is not ignorable in DSP, as shown in Figure 10.

Inverted pendulum models with springs that represent compliances around feet. (a) SSP (b) DSP.

IPCJs defined in local y˜z˜ planes in (a) DSP and (b) SSP.
In each of the supporting phases, we define a local coordinate frame x˜y˜z˜, as shown in Figure 11, and apply damping controllers in the x˜z˜ plane and y˜z˜ plane, respectively. Figure 11 depicts only the two IPCJs used in the y˜z˜ plane, but two more IPCJs are used in the x˜y˜ planes in the same way.
The linearized equation of motion (EOM) of an IPCJ is
where m and l are the mass and length of the pendulum, θ denotes the actual inclined angle due to the compliance, and u is the reference angle derived from the reference position of the centre of mass (COM) of the humanoid robot. K is the stiffness and b is the damping coefficient of the compliance; τ is the exerted torque on the pendulum and
In designing a damping controller, we use ZMP rather than the torque τ because ZMP can be measured not only in SSP but also in DSP.
If we choose ZMP as the output of IPCJ, then the state-space representation of IPCJ is
The measured ZMP is given by
where fRFz and fLFz are measured normal forces, and
4.2 Model Identification
The parameters of IPCJ can be identified through frequency response methods. We measured sinusoidal responses for various input frequencies with our humanoid robot

Bode plot of
In Figure 12, the measured response shows increasing phase shift and nonzero slope of the magnitude plot in the high frequency domain. This means time delay and unmodelled dynamics exist in addition to IPCJ. Since the slope of the magnitude plot in the high frequency domain is about −20dB/dec, the unmodelled dynamics can be approximated by a first-order model. With the Pade approximation [14] of the time delay and the additional use of the first-order model, the transfer function of IPCJ is given by
where τs is the time constant of the first-order model and T is the time delay. With the transfer function in (31), the real system can be approximated quite well, as shown in Figure 12.
4.3 Pole Placements
Figure 13 shows the root locus of the IPCJ system identified in Figure 12. As shown in the figure, the system is a lightly damped non-minimum phase system.

Root locus of the IPCJ system identified in Figure 12.
The damping characteristic of the system can be improved by moving the IPCJ poles to more damped poles. The poles of (31) are
where
Since the poles of the IPCJ dynamics are dominant, we move only those poles. Then, the desired poles can be written as
where ζdes and

Block diagram of the damping controller.
5. Experiments
5.1 Experimental Setup
For the experiments, we use a life-size humanoid robot,
The kinematic and inertial parameters are obtained from a 3D CAD model of
5.2 Effect of the Damping Controller
In order to identify the system parameters, we conducted frequency response tests for four cases: x˜z˜-DSP, y˜z˜ -DSP, x˜z˜-SSP, and y˜z˜-SSP. Damping controllers were designed to move the open-loop poles to damped ones such that damping ratios became 0.72.
As shown in Figure 15, we exerted external forces on the humanoid robot and measured ZMP. Figure 16 and Figure 17 show the results. From these figures, it can be verified that the damping controller damps out the oscillation caused by external force.

Exerting external force on the humanoid robot to verify the effectiveness of the proposed damping controller. (a) DSP (b) SSP

Time response of measured ZMP in DSP.

Time response of measured ZMP in SSP.
5.3 Imitating Captured Motion by a Humanoid Robot
In this experiment, a captured human motion was imitated by the humanoid robot in order to verify the proposed inverse kinematic control framework. We used captured motion data given as joint trajectories for the arms and attitudes for the pelvis. Tracking of the captured motion data was treated as one task among others, e.g., positioning of COM for balancing. For the given joint constraints, a solution satisfying the constraints and tasks in order of priority was obtained using the proposed methods.
The captured motion data contain stepping but we used our own walking pattern for the lower body motion. Because of the kinematic and dynamic differences between humanoids and humans, the imitation of stepping motion requires more complicated mapping of the captured motion and thus is beyond the scope of this paper.
The tasks for imitating the captured motion are shown in Table 1.
Tasks for imitating a captured motion.
In order to verify the IKTC algorithm, we narrowed the range limits of the left-knee joint (LKN) and the left-hip-roll (LHR) joint compared to the ordinary ranges. This caused corrections of the lower priority tasks, pelvis height, and attitude tasks.
As shown in Figures 18 and 19, the LKN and LHR joints did not violate constraints. Figure 20 shows task corrections of the pelvis height and pelvis attitude tasks. Figure 21 shows a comparison of the captured motion and the motion imitated by the robot.

Trajectories of qLKN, q̇LKN and q̈LKN in Experiment 5.3.

Trajectories of qLHR, qLHR and qLHR in the experiment 5.3.

Desired task trajectories and their corrected trajectories in Experiment 5.3. Top: pelvis height task; bottom: pelvis attitude task.

Captured human motion and imitated motion by a humanoid robot in Experiment 5.3.
6. Conclusion
In this paper, we proposed an inverse kinematic control framework for a position controlled humanoid robot with bounded joint range, velocity, and acceleration limits.
The proposed framework comprises IKTC and a damping controller.
In the IKTC algorithm, an inverse kinematics solution that considers task priority is found. The three different kinds of joint constraints are taken into account as second-order inequality constraints and are satisfied by optimal task corrections. The efficiency of the algorithm is attained by reducing the number of QPs to one.
The damping controller reduces the instability of the
The validity of the proposed methods was shown through experiments.
