code: def solve(self, angles):
          
          return reduce(
              lambda a, m: np.dot(m, a),
              reversed(self._matrices(angles)),
              np.array([0., 0., 0., 1.])
          )[:3]
docs: Calculate a position of the end-effector and return it.