ArduPilot / ardupilot

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

Rover/Boat: support bow thruster #19238

Open AlksSAV opened 2 years ago

AlksSAV commented 2 years ago

Feature request

Manoeuvering thruster (bow thruster or stern thruster) is a transversal propulsion device built into to the bow or stern, of a ship or boat to make it more manoeuvrable.

This innovation will add even more features for the LOITER mode. I have a Pixhawk-based ship model, the thruster only works in manual mode

It seems to me that the execution is similar to:

Describe alternatives you've considered Previously I created a topic in discuss ardupilot

Platform [X] Rover

Additional thruster

geofrancis commented 2 years ago

A bow thruster is already supported as a yaw device, and to transverse it can be used as a motor in an omni 3 configuration. I don't see how having it has a separate thing is going to add anything? Like what scenarios should it be operational that is not covered by a yaw device or the omni 3?

AlksSAV commented 2 years ago

A bow thruster is already supported as a yaw device, and to transverse it can be used as a motor in an omni 3 configuration. I don't see how having it has a separate thing is going to add anything? Like what scenarios should it be operational that is not covered by a yaw device or the omni 3?

Maybe I expressed myself incorrectly earlier. I want to make the bow thruster work like on real ships. That is, the bow thruster does not work constantly, but only then it is turned on by the operator. But at the same time, I would like the autopilot to be able to use this device during the mission, and other drive modes(loiter, auto etc).

I will try on your recommendation, there is another thruster. I am confused by the fact that the thrust vector of the stern motors is not the same as on my model.

geofrancis commented 2 years ago

A bow thruster is already supported as a yaw device, and to transverse it can be used as a motor in an omni 3 configuration. I don't see how having it has a separate thing is going to add anything? Like what scenarios should it be operational that is not covered by a yaw device or the omni 3?

Maybe I expressed myself incorrectly earlier. I want to make the bow thruster work like on real ships. That is, the bow thruster does not work constantly, but only then it is turned on by the operator. But at the same time, I would like the autopilot to be able to use this device during the mission, and other drive modes(loiter, auto etc).

I will try on your recommendation, there is another thruster. I am confused by the fact that the thrust vector of the stern motors is not the same as on my model.

So my understanding is you essentially want to selectively enable the bow thruster at low throttle to help with yaw. I think someone done a script very similar to what you're wanting to do, but they were just adding thrust to the main motor to help the boat to turn, you would just need to change that to the servo output of the bow thruster, I believe they had it setup so it was only active if the main throttle was below a specific level so essentially when the rudder had the least authority. https://discuss.ardupilot.org/t/improve-steering-if-motor-throttle-is-off/74572

you might do something like if Throttle < 10% and Rudder > 20% then set Servo3 to 100% of Rudder

Another option would be to use the vectored thrust option to limit power to the bow thruster at high throttle levels. https://ardupilot.org/rover/docs/rover-vectored-thrust.html

I believe OMNI3 should work with your boat because It will also be assisted by your rudders ability to vector the thrust from the rear of the boat, your bow thruster is technically pushing the boat sideways but because it's offset from the centre of mass it will cause it to yaw, but that can be counteracted by the main propellers running opposite directions, leaving a net force pushing you to the side.

The more I think about it, I think it would be a useful feature to be able to disable thruster motors above a set speed so low speed manoeuvring thrusters aren't getting used when they shouldn't, but then you have to take into account throttle and speed since you could be stationary at high throttle levels on something like a river, or sailing at high speed with low throttle but I don't know if that would be something that would be better done with a script or added to the firmware using the vectored thrust mode but with a bitmask to only use select yaw devices.

rmackay9 commented 2 years ago

I'm sure we had a request for this before in the issues list but I can't immediately find it. This seems like a valid enhancement request to me. Auto, Guided, etc don't yet make use of a boat's ability to move laterally even on the Omni vehicles.