Whole-Body Motion Planning for Humanoid Robots by Specifying Via-Points

We design a framework about the planning of whole body motion for humanoid robots. Motion planning with various constraints is essential to success the task. In this research, we propose a motion planning method corresponding to various conditions for achieving the task. We specify some via-points to deal with the conditions for target achievement depending on various constraints. Together with certain constraints including task accomplishment, the via-point representation plays a crucial role in the optimization process of our method. Furthermore, the via-points as the optimization parameters are related to some physical conditions. We applied this method to generate the kicking motion of a humanoid robot HOAP-3. We have confirmed that the robot was able to complete the task of kicking a ball over an obstacle into a goal in addition to changing conditions of the location of a ball. These results show that the proposed motion planning method using via-point representation can increase articulation of the motion.


Introduction
Humanoid robots with many degrees of freedom can perform a variety of movements.If humanoid robots had the ability to adapt themselves to the human environment, the robots could play useful roles as substitutes for the humans in various areas such as working in construction and nursing care.However, in planning the motion for humanoid robots, the redundancy problem has to be solved under a great number of constraints, such as maintaining balance, range of motion, and torque limitation.Furthermore, the conditions for achieving the target also need to be considered in the motion plan.
Accomplishment of the task is an important factor in motion planning.Despite the fact that the motion has been planned by considering a set of constraints such as balance, the planned motion is not beneficial if the robot does not accomplish the task.To achieve the motion objective, it is important to represent the conditions for achieving the task.These conditions are usually represented by equality constraints in motion planning for the robots.By representing the appropriate equality constraints during the motion, the robot can achieve the goal of motion.
The equation for whole body motion for humanoid robots has strong nonlinearity, since the movements are generated by a combination of multi-joints.In previous works, humanoid robots were controlled by using simple linear models, e.g., a 2D or 3D inverted pendulum model [1][2] or a cart on table model [3].Moreover, there are motion planning methods based on specific physical quantities, e.g., resolved momentum [4], and angular momentum [5].The motion for humanoid robots with complex kinematics and dynamics can be calculated quickly using simplified or reduced models.However, there are many constraints that should be considered, and the motion planning method introduced by these models cannot deal with these.
To resolve the above problem, motion planning can be transformed into a constrained nonlinear optimization problem by joint angle trajectory parameterization [8].Constraints such as balance and joint range of the motion are considered as inequality constraints, while the conditions for target achievement are represented by equality constraints in the optimization process.The problem of control for a humanoid robot is solved by Quadratic Programming (QP) [6] or Second Order Cone Programming (SOCP) [7].Moreover, Semi Infinite Programming (SIP) is used to resolve the problem of whole body motion planning for humanoid robots by joint angle trajectory parameterization [8][9].Motion planning as SIP is useful for a variety of constraints, such as multi-contact motion [10].
However, joint angle trajectory parameterization in the motion planning as constrained optimization problem remains a critical problem to increase articulation of the motion.In previous works, joint angle trajectories have often been parameterized using B-spline basis function [11].In this case, the motion planning problem is solved by calculating adequate coefficients of B-spline basis function [8][9][10].However, the coefficients do not explicitly represent any quantities related to the motion.Therefore, even if only specific condition is changed in the replanning, all the parameters have to be recalculated.If we define the optimization parameters as quantities related to the trajectory, we would reduce the number of optimization parameter under the change of certain conditions.Via-point representation, which is mathematically straightforward to calculate, is a way of representing the equality constraints during the motion.The advantage of the via-point representation is that via-points as an optimization parameter is explicitly associated with some physical conditions.A via-point is a significant component in quantitative reproduction of human exercise.Dynamic movement of a human can be expressed by assigning various via-points and calculating joint trajectories based on the principle of optimization [12][13].Furthermore, via-point representation based on human movement is used to control the robot manipulator.By taking some via-points from measured human motion and applying them to the robot manipulators, the robot can perform the same task as a human [14].
In this research, we propose a new motion planning method using via-point representation to deal with various conditions for accomplishing tasks.Our method deals with various constraints including the conditions for achieving the target, as conditions of the via-point in the optimization process.First, we represent the joint angle trajectory of the robot by the conditions of the viapoints based on a jerk cost function.Second, the motion is planned by calculating the optimal parameters of the viapoints satisfied with various constraints, including the conditions for target achievement.This problem can be regarded as the SIP problem [15].In addition, we introduce simple re-planning technique by changing some parameters.This method produces a motion corresponding to changing some conditions.Kicking motion, which is one type of whole body motion, is performed to kick a ball into a goal.A humanoid robot needs to maintain its balance on one supporting leg, and complete the task while taking into account the changing surrounding conditions with the other flying leg.To be able to effectuate a variety of motion in robots, the motion must be planned according to the motion objective.In our proposed motion planning method, joint angle trajectories already include the conditions for target achievement as certain via-points.Therefore, the robot can deal with varying conditions for accomplishing the task.Furthermore, other constraint conditions such as maintaining balance are also integrated as the conditions of via-points.Our method is applied to generate the kicking motion of a HOAP-3 humanoid robot.We confirmed that the robot was able to success the kicking task [16], even if there is an obstacle in front of the goal.Furthermore, the robot can re-plan the motions corresponding to various conditions of kicking speed efficiently.
The paper is organized as follows.Section 2 defines the motion planning problem using via-point representation.Section 3 presents the conditions that should be considered in motion planning for humanoid robots as the parameters of the via-point.Section 4 illustrates an application of proposed method in generating the kicking motion of a HOAP-3 humanoid robot.In Section 5, we discuss our motion planning method and compare proposed method with previous works which generate kicking motions.We conclude the paper by describing the advantages and limitations of our motion planning method using the via-points, and emphasize prospective enhancements of our method.

Motion Planning Problem
In this section, we explain the motion planning problem using via-point representation.The motion planning problem is usually solved by calculating the set of optimal joint angle trajectories.In our motion planning framework, a via-point representation is used to deal with the various conditions for accomplishing the task.Furthermore, each joint angle trajectory is represented by the parameters of the via-points.In other words, the motion planning problem is essentially one of finding the optimal parameters of via-points.In the subsequent subsections, we detail the particulars of the motion planning process.

Joint Angle Trajectory using Via-point Representation
Minimum jerk cost is a typical criterion to generate multijoint motion of a human and the robot manipulators.In the mathematical model explaining human coordination of smooth arm movement, the minimum jerk is used as a biological indicator [12].Additionally, the jerk cost function is sufficient for considering energy efficiency in the robot control [17][18].A simple minimum jerk trajectory can be represented by a fifth order polynomial function ����, which has six parameters (see Appendix A).
The position, velocity, and acceleration at the start time (� � �) are � � , � � � , and � � � , and those at the end time (� � � � ) are � � , � � � , and � � � , respectively.Generally, the velocity and acceleration of the initial and final states are zero, because the movement is stationary at the start and end points.As a result, the fifth order polynomial function is determined by the initial and final positions.However, this simple function cannot take into account the various constraints, since this trajectory function depends only on the positions of the start and end points.To represent the various constraints, motion planning requires an alternative method.
In motion planning, the robot can accomplish the task by specifying certain equality constraints.We make use of via-point representation to consider the conditions of the various constraints, of which target achievement is the most important.These constraints are transformed into conditions of the via-points.In this case, the specification of the via-point is an essential problem.In general wholebody motion, specifying appropriate via-points is fairly difficult problem.In this paper, we deal with the motion planning problem in which appropriate via-point to achieve the task can be obviously estimated.The constraints are represented by the positions � � and velocities � � � of the via-points at time � � , � � �, � , �.For The joint angle trajectory ���� with the constraints of the m via-points can be calculated for optimization with Lagrange multipliers, � �,� and � �,� �� � �, � , �� based on the jerk cost function (see Appendix B).We obtain following equation.
where � � , � , � � are the times at the via-points, and � � is the end time of the movement.This equation has � � �� parameters, determined by the six conditions of the initial and final states, and �� conditions of each joint angle and angular velocity at the � via-points.We assume that the time at the via-points and the initial and final positions are given.Therefore, we need to determine the �� conditions of the via-points (� � and � � � , � � �, � , �) to represent the joint angle trajectory.Briefly, we express the parameters of the via-points as The motion planning problem in this paper involves finding suitable values for the via-point parameters in Eq. ( 4).Here, parameters � ��� and � � ��� are combined and represented by �.
It is assumed that the number of controlled joint motors is n.There are ��� parameters of the via-points that need to be specified to represent the joint angle trajectories.� represents the position, posture and velocity of the humanoid robot at the given time through the via-points.Therefore, we can deal with the conditions for achieving the task as the via-point.Additionally, the set of joint angle, angular velocity and angular acceleration trajectory functions are given by where � denotes an arbitrary time in the interval ��, � � �.

Motion Planning as a SIP Problem
We can determine the joint angle trajectories by optimizing parameter � of the via-points.However, there are numerous constraints during the motion that have to be considered.In these constraints, the conditions that are satisfied over the whole motion duration, e.g., balance and range of motion, are represented by inequality constraints.The function of the constraints that are represented by inequality can be expressed by the joint angle, angular velocity, and angular acceleration functions.The function of the inequality constraints is expressed as Moreover, we can define the function of the inequality constraints using only the set of joint angle parameters � and time �, because the joint angle, angular velocity, and angular acceleration trajectories are determined by � and �.
We consider the constraints to succeed in accomplishing the task directly using via-point representation.The conditions for target achievement represented by equality constraints need to be considered only at time � ��� of the via-points.Therefore, we can represent the conditions for achieving the task as equality constraints using only �.
We focus on the nonlinear constrained optimization problem to determine parameter � of the joint angle trajectory.Indeed, the motion planning problem is transformed into a SIP problem [15], which consists of finding parameter � of the joint angle trajectory.
where ���� is cost function to solve redundancy problem.Specifically, various constraints are considered by the states of via-points in this motion planning problem.

Partial Re-planning as a SIP Problem
An advantage of our method is that the optimization parameters consist of the kinematic quantities related to the motion of the robot.Indeed, � ��� and � � ��� are related to the conditions of position and velocity, respectively.Therefore, we can deal with only certain conditions without optimizing all parameters.For example, it is possible to suppress only conditions of velocity for achieving the task.In this case, we have to recalculate only � � ��� under the same � ��� .It is not necessary to optimize entirety of �.By using the calculated conditions � ��� , re-planning problem could be formulated as follows; where ���� � ��� �, ���� � ��� � �� and ������ � ��� � are new cost function, inequality and equality constraint functions.When some conditions to accomplish the task are changed, the robot can re-plan a motion by optimizing some of the via-point parameters.

Motion Planning for Humanoid Robots
In this section, we describe motion planning for humanoid robots using the problem defined in Section 2.
In the following, we illustrate the conditions that must be considered in motion planning for humanoid robots.

Humanoid Robots
First, we represent the kinematics, dynamics, and balance of humanoid robots with parameter � of the joint angle trajectory.

Kinematics
Once the joint angle trajectories have been determined, the humanoid robot's joint positions, postures, velocities, and angular velocities can be calculated by the kinematics equations.The positions �, postures �, velocities �, and angular velocities � at time � are defined by parameter � of the joint angle trajectory as follows; where �, �, � , and � are 3-dimensional vectors.
In motion planning, the robot can accomplish the task by constraining the kinematics information.In particular, the kinematics information at the via-points is the most important.Therefore, the kinematics information for accomplishing the task needs to be focused on the viapoints.Because parameter � of the via-points consists of the joint angle � ��� , and the angular velocity � � ��� at the via-points, the kinematics information at time � ��� of the via-points is represented only by �.
These are calculated by the robot manipulator's forward kinematics [19].

Dynamics
We must consider each motor torque � � , � � �� � � �, in motion planning owing to the upper and lower limitations in motor torque.These are calculated by the dynamics equations.The joint angle torque can be calculated by Newton-Euler's formula [19], as expressed by the following functions:

Balance
The humanoid robot must maintain its balance during motion.The balance of a humanoid robot can be evaluated by the ZMP (Zero Moment Point) [20].The ZMP is the point at which the total inertia force is equal to 0 on the supporting area.If the ZMP of the planned motion exists at the base of the support with sufficient margins, the humanoid robot can maintain its balance.The function of the ZMP is defined as where � ��� and � ��� are the ZMP values in the � and � directions.

Motion Planning for Humanoid Robots as a SIP Problem
Motion for humanoid robots is performed by determining parameter � of the viapoints.The problem of calculating parameter � of the joint angle trajectory is considered as a SIP problem, in which we need to set up the conditions including the cost function, and inequality and equality constraints.In the following, we describe the conditions for calculating the optimal parameters of the via-points for motion planning.

Inequality Constraints
The conditions for maintaining balance, and the limitations of the joint angle and torque must be satisfied throughout the duration of the whole motion.These constraints can be represented by inequality constraints in the SIP problem.
Furthermore, the range of motion, such as the positions and postures of the joints, needs to be restricted.The limits of the joint positions and postures can also be represented by inequality constraints: Here, ���� �� and ���� �� are the kinematics functions for calculating the positions and postures of the joint, and (� � , � � ) and (� � , � � ) are the lower and upper limits on the positions and postures of the joints, respectively.The inequality constraint function represented by Eq. ( 7), includes Eqs. ( 15) and ( 16) in the motion planning for humanoid robots.

Equality Constraints
The conditions for achieving the goal during the motion are represented by equality constraints.We assume that the target information for accomplishing the task is given by the position � � , posture � � , velocity � � , and angular velocity � � of the joints.Humanoid robots can accomplish the task by performing the motion as given by the target information.In our study, we use via-point representation to deal with the conditions for achieving the target.In our method, only the state at the via-points is considered to be the target information.Therefore, the conditions for target achievement are expressed only using only the parameter � of the via-point as follows: Finally, the conditions for accomplishing the task given in Eq. ( 17) are represented by the equality constraint function given in Eq. (8).

Cost Function
The cost function ���� is the most important in the optimization process for motion planning.The characteristic of robot motion depends on the choice of the cost function.The cost function, e.g., minimizing the sum of squared torque [9] and energy consumption [9], can be sufficient in improving the autonomy of the robot.Biologically inspired cost functions such as the minimum torque change [13] can also be considered.Minimized jerk [12,17] is a typical cost function for robot manipulators, because the criterion requires a smooth trajectory for adequate motor control.In this research, the joint angle trajectory with the via-points is already optimized using a minimized jerk cost function.In other words, the trajectory is optimal under the conditions that are satisfied with the constraints as the via-points.For this reason, to determine the joint angle trajectory's parameter �, we set up a criterion function to improve the motion performance.The details are explained in Section 4 through application to generate the kicking motion for humanoid robots.

Application to Kicking Motion
In this section, we describe a simple application of the proposed motion planning method.We applied our motion planning method to generate the kicking motion for a HOAP-3 humanoid robot.Kicking motion is one of the motions in which explicit via-point can be easily estimated; e.g., the moment when robot kicks the ball.Various methods based on optimization have been developed to generate kicking motion for humanoid robots [4,[8][9][10].Although these methods considered the constraints of balance, and ranges of joint angles and torques, they did not address various requirements to perform the task depending on the surrounding environment.
On the other hand, Xu et al. proposed a control-based planning method for kicking motion [21].It enables the robot to perform an online motion control with fast planning technique of kicking trajectory.In their method, the joint angle trajectories were generated by inverse kinematics.However, a redundancy problem had to be solved in the use of the inverse kinematics equations.Furthermore, singular posture problem had to be taken into account for the planning.To avoid these problems, it is desired to plan the motions in joint space.Nevertheless, these studies set out to consider how to kick a ball, which imposed certain conditions for accomplishing the task in the motion planning.Indeed, in previous works, the robot always kicked a ball on the ground, even if the robot had the ability to respond when the location of the ball changed [9,21].For example, if there is an obstacle in front of the robot, the robot needs to kick the ball in the air to score a goal [16].As such, we must consider the course of the ball, including how to kick it.
In the kicking motion, the most important point is the instant at which the robot kicks the ball.A humanoid robot can perform a variety of kicking motions depending on the surrounding conditions by considering the information when the robot kicks the ball.We improve the performance of the kicking motion by constraining the information at the instant when the robot kicks the ball by means of a via-point.Here, we use only one via-point which corresponds to the moment when the robot kicks the ball.Based on Eq. ( 3), the joint angle trajectory with one via-point is expressed as (see Appendix B) Eq. ( 18) has eight parameters (� � , � � , � � , � � , � � , � � , � � , � � ), which are determined by six conditions namely angle, angular velocity (� �), and angular acceleration (� �) at the start and end points, and two further conditions, namely, the angle(� ��� ) and angular velocity(� � ��� ) at the via-point.In generating the kicking motion, we specify that the initial and final positions are the standing state.Furthermore, the time at the via-point at which the robot kicks the ball is given.As a result, we need to determine the two conditions of the via-point to represent joint angle trajectory.These parameters of the via-point are represented as �.In our application to kicking motion, we focus on how the robot kicks the ball in addition to how the robot responds to the ball changing location.In this paper, we introduce two types of kicking motion, that is, kicking a ball on the ground and in the air.

Planning of Kicking Motion for HOAP-3 Humanoid Robot
We use a HOAP-3 humanoid robot with 28 degrees of freedom, height 6� ����, and weight 8�8 ����.Controlled joints in the generation of the kicking motion are the lower body's 12 motors and upper body's 1 motor.In total, 13 motors must be controlled in generating the kicking motion (except only arm motors).Therefore, the number of parameters of the joint angle trajectory � is 26 (2 � 13, 2 conditions of the via-point and 13 controlled joint motors).
The instant when the robot kicks the ball is considered as to be time � ��� of the via-point.We decided that the motion to kick the ball would be performed by the right foot.By determining parameter � of the joint angle trajectory, we can calculate position �, posture �, and velocity � of the flying foot's toe at the moment when the robot kicks the ball (Fig. 1) by using the forward kinematics equation (origin: left foot's toe, end effector: right foot's toe).For simplicity, we ignore the angular velocity � when the robot kicks a ball.The robot can accomplish the kicking task taking into account the surrounding conditions by controlling the information of the moment when the robot kicks the ball.In the following, we describe the generation of the kicking motion for the HOAP-3 by setting up the cost function, and inequality and equality constraint functions of the SIP problem.In this research, fmincon function of a numerical computing language MATALB supplied by Math Works Inc. was used to solve the SIP Problem.

Inequality Constraint Function
The inequality constraint function represents the conditions that must be satisfied during the movement.In generating a kicking motion, we must deal with the conditions of the limits of each segment's angle and torque, maintaining balance, and collision avoidance with the ground.

Equality Constraint Function
The equality constraint function deals with the conditions for accomplishing the task.Indeed, the toe position � � and posture � � of the flying foot when the robot kicks a ball are constrained by the equality constraint function.
The size of each of the vectors � � and � � is three.We assume that the information for � � and � � is given.Therefore, we can express the equality constraint function as The humanoid robot can accurately kick a ball with the given conditions for � � and � � .

Cost Function
The velocity � � of the flying foot's toe when the robot kicks a ball is the most important condition in accomplishing the kicking task.In our motion planning, a cost function is used to improve the motion performance.
In the application to generate the kicking motion, the velocity when the robot kicks a ball is optimized by the cost function depending on the situation.In kicking a ball on the ground, for example, we can improve the motion performance by minimizing the time to reach the goal.To minimize the time to reach the goal, the robot has to kick the ball with maximum velocity in the horizontal direction under the various constraints such as balance.We can represent the criterion for maximizing the horizontal velocity of the flying foot when the robot kicks a ball as Here � � is the horizontal velocity of the flying foot's toe when the robot kicks a ball.In generating motion to kick a ball on the ground, the velocity of the flying foot in the other directions, � � and � � , is set to 0 .
To kick a ball in the air, we need to consider the velocity in both the horizontal and vertical directions (� and � directions).To improve the performance in kicking a ball in the air, we can consider maximizing the flying distance or highest reached point.In the current work, we use a cost function to maximize the flying distance.If the ball can be assumed to be a mass point and the rotation of the ball can be ignored, the cost function for maximizing flying distance is expressed as where � is gravitational acceleration.

Experiments involving Kicking Motion for the HOAP-3
Two types of kicking motion for a HOAP-3 humanoid robot were generated using our proposed method with the target information given.The location of the ball (� and �) and the kicking point (� � ) and posture (� � ) are illustrated in Fig. 2. Position � � and posture � � of the flying foot (Fig. 1) were calculated by �, �, � � and � � .
Table 1 shows the experimental environment for the investigation of the kicking motion.
Fig. 3 shows scenes of the kicking motion of the HOAP-3 humanoid robot corresponding to the parameter values for experiments 1 and 2 as given in Table 1.Fig. 3a shows the robot kicking a ball on the ground.In Fig. 3a, location of the ball isplaced ��� ���� away (Exp.1-a).The robot was able to score a goal by kicking the ball on the ground, if there was no obstacle (Fig. 3a-1).However, with an obstacle in front of the goal, the ball did not reach the goal when kicked on the ground (Fig. 3a-2).In addition, the HOAP-3 succeeded in kicking a ball in the air as shown in Fig. 3b.The situation shown in Fig 3b is also with the ball located ��� ���� distant from the robot (Exp.2-a).We confirmed that kicking the ball in the air, the ball flew in a parabola through the air and reached the goal over the obstacle.Therefore, the robot can accomplish the kicking task irrespective of the surrounding conditions.
Fig. 4 illustrates the planned trajectories of the flying foot for the two types of kicking motion.We can see that the robot took reciprocatory action by setting only one viapoint.When kicking a ball in the air, the velocity in the zdirection at the via-point is higher than when kicking a ball on the ground.Therefore, the peakof the vertical position when kicking a ball in the air (Fig. 4b) is higher than that when kicking a ball on the ground (Fig. 4a).
Additionally, the posture of the flying foot was horizontal and slanted in Figs.4a and 4b.To kick a ball in the air, the robot angled the flying foot and aimed the kick at the lower point of the ball.The difference in the trajectories of the flying foot is the result of the given information only at the via-point.The planned ZMP of the HOAP-3 humanoid robot is shown in Fig. 5.The upper and lower boundaries on the supporting area of the � and � directions are (��� ����,�� ����) and (���� ����,����� ����), respectively.With sufficient margins (between the dashdotted line and dashed line in Fig. 5) for the upper and lower limits, the HOAP-3 was able to maintain its balance during each kicking motion.

Discussion
In comparison with the previous works of generating kicking motions [9,21], the advanced articulation of kicking motions was implemented in the proposed method; the robot could take into account how to kick the ball such as kicking the ball in the air.However, the proposed method only provides off-line planning because of computation time.We could confirm the specific computation time of each motion from Table 1.
In the kicking motion, it is important to control kick strength.In Exp.1' and Exp.2', we consider the motion planning to kick the ball weaker (about half) than velocity � of Exp. 1 and Exp. 2. Table 2 shows the specific values of optimized new velocity.In this motion planning, only the conditions of � were changed.The other conditions are the same as Table 1.Fig. 7 shows the planned trajectories of the flying foot based on Eq. ( 10) under the same conditions of � ��� in Exp.1-a.We confirmed that the trajectory was re-planned under the same postures of flying foot as Exp.1-a.
In our motion planning method based on via-point representation, the optimization parameters have a clear physical meaning related to the trajectory, specifically joint angle and angular velocity in this research.Indeed, joint angle is directly related to position and posture of the robot and joint angular velocity is connected to velocity of the robot.Therefore, we can control the trajectory focused on certain conditions with fewer optimization parameters.In this research, we consider the situation to control kick strength.Changing only some parts of optimization parameters, we can also reduce the computation time.We can confirm that specific computation time from Table 1 and 2. In the case of Exp.1-a to Exp. 1-a', the computation time was reduced from ������ ����� to ����� �����.
On the other hand, when the B-spline basis function is used for the motion planning, all parameters have to be recalculated even if the situation like Exp. 1-a'.Furthermore, the joint angle trajectory is already optimized solution under a jerk cost function.Consequently, when we use proposed method, the smoothness of the trajectory is guaranteed than using B-spline basis function.
We expect that the proposed method would be applied to plan various whole-body motions reflecting surrounding conditions; sit-to-stand motion, throwing motion, walking motion and so on.In each motion, there are important points to achieve the task; the point of seat-off in sit-to-stand motion, the releasing point of the ball in throwing motion and the time of toe-off in walking motion.These points could be regarded as the via-points to accomplish the task in the motion planning for humanoid robots.

Conclusion
In this paper, we focused on varying conditions for accomplishing the task in motion planning for humanoid robots.In our proposed motion planning method, we represent the joint angle trajectory using via-point representation based on a cost function minimizing jerk.The various constraints including the conditions for accomplishing the task are considered by the conditions of the via-point.The robot's motion is planned by optimizing the conditions of the via-point as a SIP problem.Furthermore, we demonstrated a simple application of the proposed method to implement kicking motion of a humanoid.
In the application to the kicking motion, the moment at which the robot kicks a ball is constrained as a via-point.Briefly, the kicking motion of a HOAP-3 humanoid robot is planned by calculating the joint angle and angular velocity at the moment when the robot kicks the ball.We successfully generated two types of kicking motion, namely, kicking a ball on the ground and in the air.The HOAP-3 can accomplish the kicking task by kicking a ball in the air, even if there is an obstacle in front of the robot.As such, we improved the kicking motion performance using our proposed method.If we consider specific external impulse model of the ball [22], the trajectory of the ball could be controlled precisely.Furthermore, the situation to control kick strength was considered.We did not have to recalculate all parameters, because optimization parameteres are realted to the physical conditions.However, the computation time for optimizing a viapoint is still too expensive for application to on-line control of humanoid robots.However, the motion for robots must be planned in real-time in order to be effective in an unpredictable human environment.Online motion planning is an essential problem for improving motion performance.In the future, we intend approaching on-line motion planning using via-point representation.In our proposed method, the parameters of the joint angle trajectory denote the joint angle and angular velocity at the via-point.These parameters can be calculated by the manipulator's constrained motion planning method.Considering these observations, we will investigate an on-line motion planning framework with via-point representation for humanoid robots.
In this research, we assumed that the number of via-points and its timing is already given.For the motions where we cannot specify the via-points such as dancing motion, it is difficult to apply the proposed method.We will expand our motion planning algorithm so as to determine the number of via-point and its timing for complex wholebody motions.We are expecting that motion performance would be improved by specifying several via-points which are important for the task.

Acknowledgements
The authors would like to thank Associate Kouichi Taji for his helpful suggestions.This study was supports by a Grant-in-Aid for Scientific Research (B) No.21300092 and (C) No.23560526.

Appendix A: Joint Angle Trajectory without Via-point Constraints
In this paper, joint angle trajectory is formulated based on cost function for minimizing jerk.First, we set the criterion to be minimized in the time interval � � �0, � � �.
Therefore, simple minimum jerk trajectory is represented by a fifth order polynomial.

Appendix B: Joint Angle Trajectory with Via-point Constraints
For simplicity, we formulate the minimum jerk trajectory with one via-point constraint.It is easy to extend the formula to the minimum jerk trajectory with � via-point constraints.
In this paper, the constraint is given by specifying the position � � and velocity � � at intermediate time � � .

� � � �, �� � �, �� � �� ����
The cost function is expressed by The optimization problem can be solved by Potryagim maximum principle.The optimal solution is obtained by allowing discontinuities in the co-state function.
We let � � � signify just before � � and � � � signify just after � � .Therefore, the following conditions can be obtained.Considering the condition (B10), the optimal solution can be expressed as follows,

Figure 2 .
Figure 2. Experimental environment for kicking motion.(�: distance from the center of the ball to the toe of the supporting foot; �: height of the center of the ball; � � : angle of the flying foot relative to the horizontal axis; � � : angle of the line between the center of the ball and the contact point.)

Figure 3 .
Figure 3. Experimental scenes showing two kinds of kicking motion by the HOAP-3 humanoid robot.

Figure 4 .
Figure 4. Planned trajectory of the flying foot on the x-z plane in Exp.1-a and 2-a.

Figure 5 .Figure 6 .
Figure 5. Planned ZMP of an HOAP-3 humanoid robot for two kinds of kicking motion.(Vertical axis of the left and right graphs in each subfigure: ZMP of the x-and y-axes, respectively; Horizontal axis of all graphs: time; Dash-dotted lines: upper and lower limits of supporting foot; Dashed lines: upper and lower limits of optimization process.)

Table 1 .
Experimental environment and Computation time.