Rover channel software description / flowcharts

I am looking for help understanding Rover 4.0.x code and how it processes inputs through to servo outputs.
Any insights would be much appreciated.
I have been looking through the code for a few days now and running tests but no luck in finding the final output code.
Thanks

There is a little info here, https://ardupilot.org/dev/docs/rover-adding-a-new-drive-mode.html. The copter documentation is more comprehensive and is quite similar to rover.

Thanks for the suggestion Peter.
I have looked at this material already but will check the copter docs as well.
Jim

Something like that !

Probably already outdated since I wrote it 2 years agos …

1 Like

Hello khancyr,
You most likely can point directly to the code I need to look at.

Problem: When manually controlling with my radio, my rover turns too abruptly, with the smallest commanded input.
Where can I introduce some attenuation of the steering input so that I can control the rate of turn?

@jwcalvert,

Is the vehicle being controlled in Manual mode or another mode like Acro?

If the vehicle is being controlled in Manual mode then there may not be much that can be done. If it’s Acro mode though then the autopilot will help using the turn rate controller and it’s very likely we can get it working smoothly. Advice on tuning the turn rate controller is here although I suspect you may have already seen this.

Might be good to provide an onboard log.

Hello Randy,
After a lot of looking, I think I have found the culprit. The power control board which drives the two sets of motors had very poor response to the first 25% of throttle. So I have done a little coding for its Arduino board to bias the pwm values upwards at low end and now the rover turns much better. It was while I was manually controlling it but this fix, since it is below the HAL layer, should benefit all modes.
Thanks to everyone

OK, if there’s a big deadzone in the motor controller/ESC it’s possible to use THR_MIN to avoid it.