In this paper, three methods to imitate human upper body motion are implemented on a NAO humanoid robot: (i) direct angle mapping method (ii) inverse kinematics using fuzzy logic and (iii) inverse kinematics using iterative Jacobian. In the first method, the Kinect sensor is used to obtain coordinates of the shoulder, elbow and wrist joints of the operator. The four angles that are required to completely describe the position of the robot's wrist-shoulder roll, shoulder pitch, elbow roll and elbow yaw-are then calculated using vector algebra. In a unique approach, the human arm lengths instead of the robot's link lengths are used to find the inverse kinematics model for the robot arms. The model is then used to train adaptive neural network and the inverse kinematics problem is solved using the trained ANFIS in the second method. In the third approach, the Jacobian matrices of the arms are first found by differentiating the position components of the transformation matrix with respect to the joint variables. The Moore-Penrose pseudo-inverse of the Jacobian is then used to iteratively solve the inverse kinematics problem. Performance of the three methods is then compared.