DO_CHANGE_SPEED command not working if waypoints are too close together

Hi All,
I’m trying to capture boat propeller efficiency data over a certain speed range. To do this I created a waypoint mission that travels through a series of waypoints in a straight line. The DO_CHANGE_SPEED command is used to increment the speed by +0.1m/s at each waypoint. Here’s a video of my situation:

The issue is, if the waypoints are too close together, the DO_CHANGE_SPEED command gets ignored. It seems like this problem is dependent on time and not distance. As the boat goes faster and faster, the waypoints have to be spaced further apart in order for the DO_CHANGE_SPEED command to work.

At my starting speed of 2 m/s, the minimum distance between waypoints that works is around 7m. At 4 m/s they have to be around 14m apart.

I thought it could have something to do with the waypoint acceptance radius, but I tried decreasing that all the way down to 1m without luck.

Any ideas on a fix or workaround that would allow me to space my DO_CHANGE_SPEED commands closer together? Thanks!

1 Like

Oh hey Daniel! Huge fan of your channel and videos!

I’ll try to help, but probably someone with more Ardurover experience will chime in soon.
Does your boat reach a steady speed fast, but not as high as you want, or does the speed ramp up and down, without reaching a steady speed and without reaching your target speed? You can see the target, desired and actual velocity in the PSCE and PSCN logs.

If it ramps up and down without reaching a steady speed, is it possible that your acceleration limits are too low? ATC_ACCEL_MAX and WP_ACCEL. Maybe even the jerk parameters (rate of change of acceleration). I unfortunately think this might not be your issue, the boat looks like it’s moving at a fairly constant speed in your video.

Ive had unusual behavior with the rover and vehicle:set_desired_speed() in lua. I tracked it down to the “throttle nudge” while in auto. I now leave the throttle at zero, and get consistent results. Probably not what you are seeing - but be aware of it.