def inverse_kinematics(self, target, initial_position=None, **kwargs):
<EOL>target = np.array(target)<EOL>if target.shape != (<NUM_LIT:4>, <NUM_LIT:4>):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if initial_position is None:<EOL><INDENT>initial_position = [<NUM_LIT:0>] * len(self.links)<EOL><DEDENT>return ik.inverse_kinematic_optimization(self, target, starting_nodes_angles=initial_position, **kwargs)<EOL>
Computes the inverse kinematic on the specified target

        Parameters
        ----------
        target: numpy.array
            The frame target of the inverse kinematic, in meters. It must be 4x4 transformation matrix
        initial_position: numpy.array
            Optional : the initial position of each joint of the chain. Defaults to 0 for each joint

        Returns
        -------
        The list of the positions of each joint according to the target. Note : Inactive joints are in the list.