<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(dq0, dq1, t):
 """Return the interpolation of two DualQuaternions. This uses the Dual Quaternion Linear Blending Method as described by Matthew Smith's 'Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation' https://www.cosc.canterbury.ac.nz/research/reports/HonsReps/2013/hons_1305.pdf Parameters dq0 : :obj:`DualQuaternion` The first DualQuaternion. dq1 : :obj:`DualQuaternion` The second DualQuaternion. t : float The interpolation step in [0,1]. When t=0, this returns dq0, and when t=1, this returns dq1. Returns ------- :obj:`DualQuaternion` The interpolated DualQuaternion. Raises ------ ValueError If t isn't in [0,1]. """

        if not 0 <= t <= 1:
            raise ValueError("Interpolation step must be between 0 and 1! Got {0}".format(t))

        dqt = dq0 * (1-t) + dq1 * t
        return dqt.normalized