<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def interpolate_with(self, other_tf, t):
 """Interpolate with another rigid transformation. Parameters other_tf : :obj:`RigidTransform` The transform to interpolate with. t : float The interpolation step in [0,1], where 0 favors this RigidTransform. Returns ------- :obj:`RigidTransform` The interpolated RigidTransform. Raises ------ ValueError If t isn't in [0,1]. """

        if t < 0 or t > 1:
            raise ValueError('Must interpolate between 0 and 1')

        interp_translation = (1.0 - t) * self.translation + t * other_tf.translation
        interp_rotation = transformations.quaternion_slerp(self.quaternion, other_tf.quaternion, t)
        interp_tf = RigidTransform(rotation=interp_rotation, translation=interp_translation,
                                  from_frame = self.from_frame, to_frame = self.to_frame)
        return interp_tf