diff --git a/dist/roverd b/dist/roverd index ddd4a458..bcc7251d 100755 Binary files a/dist/roverd and b/dist/roverd differ diff --git a/dist/servoverifier b/dist/servoverifier index 6633c19c..60967375 100755 Binary files a/dist/servoverifier and b/dist/servoverifier differ diff --git a/pi/roverd/camera_servo.go b/pi/roverd/camera_servo.go index 69b3aac3..d1b2b067 100644 --- a/pi/roverd/camera_servo.go +++ b/pi/roverd/camera_servo.go @@ -174,13 +174,16 @@ func (s *CameraServo) rateLimitAngleLocked(target float64) float64 { now := time.Now() if s.lastMove.IsZero() { s.lastMove = now - return target } elapsed := now.Sub(s.lastMove).Seconds() if elapsed <= 0 { s.lastMove = now return s.currentAngle } + maxElapsed := servoStepInterval.Seconds() + if elapsed > maxElapsed { + elapsed = maxElapsed + } maxDelta := maxServoDegPerSec * elapsed delta := target - s.currentAngle if math.Abs(delta) <= maxDelta {