NOMENCLATURE v J = Jacobian linear velocity ϖ J = Jacobian angular velocity A B P = position vector of {B} with respect to {A} A B R = rotation matrix of {B} with respect to {A} i j θ = joint angle of the robot where i = 1 for right foot, i = 2 for left foot, i = 3 for right arm, i = 4 for left arm, and j is the joint number (j = 1, … , 6) B Θ = rotation vector of robot center of gravity (COG) B P = position vector of robot COG e i Θ = rotation vector of palms and soles of the robot where i = 1 for right palm, i = 2 for left palm, i = 3 for right sole, and i = 4 for left sole e i P = position vector of palms and soles of the robot where i =1 for right palm, i = 2 for left palm, i = 3 for right sole, and i = 4 for left soleThis study proposes a method of real-time posture optimization of humanoid robots using a genetic algorithm and neural network. Here, the motion of a humanoid robot pushing an object is considered. When the robot starts pushing the object, the palms of its hands and the soles of its feet are assumed to be fixed on the object and on the ground, respectively, and they sense the reaction force from those surfaces. The reaction force results in changes of torques in the joints. This study determines an optimized posture using a genetic algorithm such that either the torques are evenly distributed over all joints or the torque of the weakest joint is rapidly reduced. Several different optimized postures are then generated by varying the reaction forces at the palms and the soles. The data is used as training patterns for a multilayer perceptron neural network with a back-propagation learning algorithm.Using the trained neural network, the humanoid robot can find the optimal posture for different reaction forces in real time. Several simulations were conducted to confirm the effectiveness of the proposed method. The simulation results showed that the proposed method can be used for real-time posture optimization of humanoid robots.