Omni Thruster configurations

I have been looking at the current OMNI frame classes and from what I can tell they are essentially just rover layouts and are more like theoretically ideal setups rather than what is possible. the reason I bring it up is that I have had some debates recently about how to apply omni frame control to real world boats.

these 3 frames can be easily modified to fit most existing ships and boats with bow or stern thrusters using some slightly different layouts

Omni 3A would represent most standard omni capable boats that are out there, something like a twin screw tug, 2 propellers and a bow thruster, the reason it would work as an omni is even through the bow thruster is really far forward and applies a lot of yawing force, it can still push the boat to the side as long as the main motors can counteract the yaw, it will move slowly and use a lot of power to do it but it will be possible. I added the rudder to show how it can also help divert some flow from the propellers to help with translating, twin rudders would work better but a single one will still help.

The omni 3 plus layout is basically a single screw boat with bow and stern thrusters. this is configured as a Omniplus with the 4th motor not used, since 4 and 2 just mirror each other it makes motor 4 redundant.

OmnPlus advanced is the omni plus configuration, but we have replaced motors 2 and 4 with left and right motor output. This gives the advantage of having much more yaw authority since you have both left and right motors doing yaw along with the thrusters. this makes sideways movement far more accurate, as your not relying just on small thrusters to control yaw and propel the boat sideways.

these 3 extra layouts can be done with current code as is the only issue I ran into was with prearm checks because it’s using 2 steering methods at the same time for omniplus A plus the lack of motor 4 for omni3plus.

1 Like

The problem is, last I heard loiter is not possible yet with these omni configurations. A combination of differential steering and ackerman could probably be used. Steering rate tuning may be tricky though.

Hello Geofrancis
I’m looking at building a 5x4 meter platform with “dynamic positioning”. I’m envisioning a Trimaran configuration (Composite Center hull and additional inflatable hulls on either side). I like your OmniPlus A setup. I could put a bow and stern thruster in the center hull, and a main thruster on each side.
have you been able to do any real testing?

The only reason I would recommend the omni +A is if you have really weak bow and stern thrusters, so the propulsion motors will help with yaw control.

Copy that. We like the trimaran setup as this should allow for fairly good travel speeds for when the platform needs to get from A to B.
Have to tried around with ArduSub? ArduSub allows for custom setups:
http://www.ardusub.com/developers/developers.html#making-a-custom-configuration
I wonder how the ArduSub firmware allows you to hold position…
I also just saw your other posts. Wow, that is an impressive Build!

I tried posting the following on the ArduSub Forum and they more or less sent me back to Ardurover :wink:

Maybe we I can get some more ideas?

Hello. We have been building USVs (skid steering setup) for the last couple of years and optimizing them for good position holding (loitering in ArduRover). We have very good precision but are dependent on wind direction, as the vehicle always points against the wind (and or a combination with Current when available).
We are now venturing into a dynamic positioning project. More concretely we want to build a larger platform (5m x 4m) for scientific purposes. This platform must be able to hold position and any direction.

We are thinking of a trimaran setup , with both a bow and stern thruster and a main motor on either side. The idea being that we should have fairly efficient position holding and also cruising capabilities.
What is the current status in the Arduboat software? Is any kind of Positioning with a given heading (with an OmniPlus A configuration) possible?
We’ll be happy to put in some legwork and testing…

Thanks!
platform_config.pdf (263.2 KB)

I believe it currently works in acro mode but not auto mode.

Hi Chris, did you guys make any progress towards this? I haven’t seen any official Ardupilot Rover progress on lateral thruster control.

Hey Spencer. Unfortunately I just kinda got pinged back and forth between the ardusub and ardurover guys… A bit surprising as i think there should be some solid interest in small scale Omni Thruster konfigurations…

Gotcha. Might be that “station keeping” using omni thrusters isn’t a huge help since the disturbances (wind, current) possibly end up aligning the craft in the direction of the skid steer thrusters. I’m an aero guy though so boats are new to me!

I have ended up just setting the thrusters on mine to Passthrough just now. I am eventually going to have a lua script to be able to dynamically disable motors depending on what modes im using but there isnt much point at the moment until the thrusters can be used in automatic modes.

I have been thinking of ways to try and get some kind of lateral control using as few modifications as possible, the simplest idea I have came up with is to selectively reverse the rear thruster using a simple lua by setting it to mirror the forward thruster. this is not the correct way to run thrusters but a hack to at least make them do something useful automatically.

The idea is if it’s in loiter and if the heading is within tolerance of whatever heading it trying to hold, it will reverse the rear thruster so both front and rear thrusters push the same direction when trying to yaw, that way the thrusters will basically try and push the boat sideways to the waypoint rather than yawing as long as the heading is within the limit. If the heading gets out of tolerance, then it will switch the rear thruster to normal mode so it can adjust its heading or reposition as a regular boat.

so something like this if holding position
heading < heading limit rear then rear thruster = forward thruster
else rear thruster = normal

when moving it could use something like cross track error to control it
cross track error < track error limit then rear thruster= forward thruster
else rear thruster = normal

it will probably need some scaling too depending on how strong the thrusters are.

If you have a rudder or left and right main motors then they are still going to try and correct the heading by pointing the boat in the direction of the waypoint but they shouldnt have to turn as much with the thrusters pushing the boat.