def distance_drive(self, x, y, angle):
        """Call this from your :func:`PhysicsEngine.update_sim` function.
           Will update the robot's position on the simulation field.
           
           This moves the robot some relative distance and angle from
           its current position.
           
           :param x:     Feet to move the robot in the x direction
           :param y:     Feet to move the robot in the y direction
           :param angle: Radians to turn the robot
        """
        with self._lock:
            self.vx += x
            self.vy += y
            self.angle += angle

            c = math.cos(self.angle)
            s = math.sin(self.angle)

            self.x += x * c - y * s
            self.y += x * s + y * c

            self._update_gyros(angle)