Rover S-Curves alpha testing

Hi @AnJu,

Yes, Rover’s avoidance supports the slide behaviour now. I should say though that because rovers can’t move sideways (at least most of them) it may not slide that much unless it is just brushling along the side of a fence. It may also move very slowly as it slides.

I guess I’m just trying to lower expectations and point out that it’s not a substitute for the more advanced avoidance features like Dijkstra’s and BendyRuler.

Thanks, i will test it on my skidrover. It is just now that i understand the meaning of the “slide” and why it was available on copter and not on the rover on which i am looking for (for years now). I hope i will be able to use it as i was using a simple few degrees “dodge” to the left or right on old Ardurover 2.4x. If not i will keep trying :slight_smile:
I only need minimal corrections to help me keep somewhat in the center of the corridor of the plants. I was experimenting with Geofracises LUA code, but the circle path came out too agresive.

Hope anyway this works for me, if not, Is there a branch where a similar old times simple “dodge” mode can be selected ? Or do you think it would be possible to add a mode with something like this:

if (sonar.has_data(1)) {
// we have two sonars
obstacle.sonar1_distance_cm = sonar.distance_cm(0);
obstacle.sonar2_distance_cm = sonar.distance_cm(1);
if (obstacle.sonar1_distance_cm <= (uint16_t)g.sonar_trigger_cm &&
obstacle.sonar1_distance_cm <= (uint16_t)obstacle.sonar2_distance_cm) {
// we have an object on the left
if (obstacle.detected_count < 127) {
obstacle.detected_count++;
}
if (obstacle.detected_count == g.sonar_debounce) {
gcs_send_text_fmt(PSTR(“Sonar1 obstacle %u cm”),
(unsigned)obstacle.sonar1_distance_cm);
}
obstacle.detected_time_ms = hal.scheduler->millis();
obstacle.turn_angle = g.sonar_turn_angle;
} else if (obstacle.sonar2_distance_cm <= (uint16_t)g.sonar_trigger_cm) {
// we have an object on the right
if (obstacle.detected_count < 127) {
obstacle.detected_count++;
}
if (obstacle.detected_count == g.sonar_debounce) {
gcs_send_text_fmt(PSTR(“Sonar2 obstacle %u cm”),
(unsigned)obstacle.sonar2_distance_cm);
}
obstacle.detected_time_ms = hal.scheduler->millis();
obstacle.turn_angle = -g.sonar_turn_angle;