code: def ik_robot_eef_joint_cartesian_pose(self):
          
          eef_pos_in_world = np.array(p.getLinkState(self.ik_robot, 6)[0])
          eef_orn_in_world = np.array(p.getLinkState(self.ik_robot, 6)[1])
          eef_pose_in_world = T.pose2mat((eef_pos_in_world, eef_orn_in_world))
  
          base_pos_in_world = np.array(p.getBasePositionAndOrientation(self.ik_robot)[0])
          base_orn_in_world = np.array(p.getBasePositionAndOrientation(self.ik_robot)[1])
          base_pose_in_world = T.pose2mat((base_pos_in_world, base_orn_in_world))
          world_pose_in_base = T.pose_inv(base_pose_in_world)
  
          eef_pose_in_base = T.pose_in_A_to_pose_in_B(
              pose_A=eef_pose_in_world, pose_A_in_B=world_pose_in_base
          )
  
          return T.mat2pose(eef_pose_in_base)
docs: Returns the current cartesian pose of the last joint of the ik robot with respect to the base frame as
          a (pos, orn) tuple where orn is a x-y-z-w quaternion