ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.17k stars 16.74k forks source link

Rover/Boat: improve steering for mixed Ackermann+SkidSteering vehicles #26877

Open rmackay9 opened 2 months ago

rmackay9 commented 2 months ago

In cases where a Rover or Boat uses both Ackmerann and Skid-steering (see types here) users find that the skid-steering motors adjust their throttle too much especially at higher speeds.

We should be able to provide a smarter blending of steering output where skid-steering provides all the turning while at low speeds and the rudder provides all the steering at very high speeds.

This request comes from this Rover-4.5 discussion.

geofrancis commented 2 months ago

I had something but i never got around to testing it, basically use a lua to reassign outputs and pid on the fly, It kind of worked but could only switch when disarmed as ardupilot wont let you change some parameters when armed.

What about something like propulsion profiles? on my boat I was going to have 3 modes, one with just rudder and propulsion, one with rudder and skid steer and the third with thrusters. so what about a file on the sd card with a list of servo out values and pid values that can be switched using an aux function or speed.

This Issue also effects sailing, basically when sailing it disables forward propulsion, but it will still try and use thrusters and tank steering with the rudder.

xianglunkai commented 2 months ago

Perhaps it is possible to establish this type of dynamic distribution equation, linearize it, and optimize it online based on some indicators to obtain the control distribution matrix